1 : //
2 : // Automatically generated by ipdlc.
3 : // Edit at your own risk
4 : //
5 :
6 :
7 : #include "mozilla/jsipc/PObjectWrapperChild.h"
8 :
9 : #include "mozilla/jsipc/PContextWrapperChild.h"
10 :
11 : typedef IPC::Message Message;
12 : typedef mozilla::ipc::RPCChannel Channel;
13 : typedef mozilla::ipc::RPCChannel::RPCListener ChannelListener;
14 : typedef base::ProcessHandle ProcessHandle;
15 : typedef mozilla::ipc::AsyncChannel AsyncChannel;
16 : typedef mozilla::ipc::SharedMemory SharedMemory;
17 : typedef mozilla::ipc::Trigger Trigger;
18 : typedef mozilla::ipc::ActorHandle ActorHandle;
19 : typedef mozilla::jsipc::JSVariant JSVariant;
20 : typedef mozilla::jsipc::OperationStatus OperationStatus;
21 : typedef mozilla::ipc::Shmem Shmem;
22 : typedef mozilla::void_t void_t;
23 : using mozilla::jsipc::PContextWrapperChild;
24 :
25 : namespace mozilla {
26 : namespace jsipc {
27 :
28 :
29 : bool
30 0 : PObjectWrapperChild::Recv__delete__()
31 : {
32 0 : return true;
33 : }
34 :
35 : void
36 0 : PObjectWrapperChild::ActorDestroy(ActorDestroyReason why)
37 : {
38 0 : }
39 :
40 0 : PObjectWrapperChild::PObjectWrapperChild() :
41 : mId(0),
42 0 : mState(PObjectWrapper::__Dead)
43 : {
44 0 : MOZ_COUNT_CTOR(PObjectWrapperChild);
45 0 : }
46 :
47 0 : PObjectWrapperChild::~PObjectWrapperChild()
48 : {
49 0 : MOZ_COUNT_DTOR(PObjectWrapperChild);
50 0 : }
51 :
52 : PContextWrapperChild*
53 0 : PObjectWrapperChild::Manager()
54 : {
55 0 : return static_cast<PContextWrapperChild*>(mManager);
56 : }
57 :
58 : PObjectWrapper::State
59 0 : PObjectWrapperChild::state()
60 : {
61 0 : return mState;
62 : }
63 :
64 : int32
65 0 : PObjectWrapperChild::Register(ChannelListener* aRouted)
66 : {
67 0 : return (mManager)->Register(aRouted);
68 : }
69 :
70 : int32
71 0 : PObjectWrapperChild::RegisterID(
72 : ChannelListener* aRouted,
73 : int32 aId)
74 : {
75 0 : return (mManager)->RegisterID(aRouted, aId);
76 : }
77 :
78 : ChannelListener*
79 0 : PObjectWrapperChild::Lookup(int32 aId)
80 : {
81 0 : return (mManager)->Lookup(aId);
82 : }
83 :
84 : void
85 0 : PObjectWrapperChild::Unregister(int32 aId)
86 : {
87 0 : return (mManager)->Unregister(aId);
88 : }
89 :
90 : void
91 0 : PObjectWrapperChild::RemoveManagee(
92 : int32 aProtocolId,
93 : ChannelListener* aListener)
94 : {
95 0 : NS_RUNTIMEABORT("unreached");
96 : return;
97 : }
98 :
99 : Shmem::SharedMemory*
100 0 : PObjectWrapperChild::CreateSharedMemory(
101 : size_t aSize,
102 : Shmem::SharedMemory::SharedMemoryType type,
103 : bool unsafe,
104 : Shmem::id_t* aId)
105 : {
106 0 : return (mManager)->CreateSharedMemory(aSize, type, unsafe, aId);
107 : }
108 :
109 : bool
110 0 : PObjectWrapperChild::AdoptSharedMemory(
111 : Shmem::SharedMemory* segment,
112 : Shmem::id_t* aId)
113 : {
114 0 : return (mManager)->AdoptSharedMemory(segment, aId);
115 : }
116 :
117 : Shmem::SharedMemory*
118 0 : PObjectWrapperChild::LookupSharedMemory(Shmem::id_t aId)
119 : {
120 0 : return (mManager)->LookupSharedMemory(aId);
121 : }
122 :
123 : bool
124 0 : PObjectWrapperChild::IsTrackingSharedMemory(Shmem::SharedMemory* segment)
125 : {
126 0 : return (mManager)->IsTrackingSharedMemory(segment);
127 : }
128 :
129 : bool
130 0 : PObjectWrapperChild::DestroySharedMemory(Shmem& aShmem)
131 : {
132 0 : return (mManager)->DestroySharedMemory(aShmem);
133 : }
134 :
135 : ProcessHandle
136 0 : PObjectWrapperChild::OtherProcess() const
137 : {
138 0 : return (mManager)->OtherProcess();
139 : }
140 :
141 : AsyncChannel*
142 0 : PObjectWrapperChild::GetIPCChannel()
143 : {
144 0 : return mChannel;
145 : }
146 :
147 : PObjectWrapperChild::Result
148 0 : PObjectWrapperChild::OnMessageReceived(const Message& __msg)
149 : {
150 0 : switch ((__msg).type()) {
151 : case PObjectWrapper::Msg___delete____ID:
152 : {
153 0 : (const_cast<Message&>(__msg)).set_name("PObjectWrapper::Msg___delete__");
154 0 : if (mozilla::ipc::LoggingEnabled()) {
155 0 : (static_cast<const PObjectWrapper::Msg___delete__*>((&(__msg))))->Log("[PObjectWrapperChild] Received ", stderr);
156 : }
157 :
158 0 : void* __iter = 0;
159 : PObjectWrapperChild* actor;
160 :
161 0 : if ((!(Read((&(actor)), (&(__msg)), (&(__iter)), false)))) {
162 0 : FatalError("error deserializing (better message TODO)");
163 0 : return MsgValueError;
164 : }
165 0 : (__msg).EndRead(__iter);
166 0 : if ((!(PObjectWrapper::Transition(mState, Trigger(Trigger::Send, PObjectWrapper::Msg___delete____ID), (&(mState)))))) {
167 0 : NS_WARNING("bad state transition!");
168 : }
169 0 : if ((!(Recv__delete__()))) {
170 0 : return MsgProcessingError;
171 : }
172 :
173 0 : (actor)->DestroySubtree(Deletion);
174 0 : (actor)->DeallocSubtree();
175 0 : ((actor)->mManager)->RemoveManagee(PObjectWrapperMsgStart, actor);
176 :
177 :
178 0 : return MsgProcessed;
179 : }
180 : case PObjectWrapper::Msg_NewEnumerateDestroy__ID:
181 : {
182 0 : (const_cast<Message&>(__msg)).set_name("PObjectWrapper::Msg_NewEnumerateDestroy");
183 0 : if (mozilla::ipc::LoggingEnabled()) {
184 0 : (static_cast<const PObjectWrapper::Msg_NewEnumerateDestroy*>((&(__msg))))->Log("[PObjectWrapperChild] Received ", stderr);
185 : }
186 :
187 0 : void* __iter = 0;
188 0 : JSVariant in_state;
189 :
190 0 : if ((!(Read((&(in_state)), (&(__msg)), (&(__iter)))))) {
191 0 : FatalError("error deserializing (better message TODO)");
192 0 : return MsgValueError;
193 : }
194 0 : (__msg).EndRead(__iter);
195 0 : if ((!(PObjectWrapper::Transition(mState, Trigger(Trigger::Send, PObjectWrapper::Msg_NewEnumerateDestroy__ID), (&(mState)))))) {
196 0 : NS_WARNING("bad state transition!");
197 : }
198 0 : if ((!(RecvNewEnumerateDestroy(in_state)))) {
199 0 : return MsgProcessingError;
200 : }
201 :
202 0 : return MsgProcessed;
203 : }
204 : default:
205 : {
206 0 : return MsgNotKnown;
207 : }
208 : }
209 : }
210 :
211 : PObjectWrapperChild::Result
212 0 : PObjectWrapperChild::OnMessageReceived(
213 : const Message& __msg,
214 : Message*& __reply)
215 : {
216 0 : return MsgNotKnown;
217 : }
218 :
219 : PObjectWrapperChild::Result
220 0 : PObjectWrapperChild::OnCallReceived(
221 : const Message& __msg,
222 : Message*& __reply)
223 : {
224 0 : switch ((__msg).type()) {
225 : case PObjectWrapper::Msg_AddProperty__ID:
226 : {
227 0 : (const_cast<Message&>(__msg)).set_name("PObjectWrapper::Msg_AddProperty");
228 0 : if (mozilla::ipc::LoggingEnabled()) {
229 0 : (static_cast<const PObjectWrapper::Msg_AddProperty*>((&(__msg))))->Log("[PObjectWrapperChild] Received ", stderr);
230 : }
231 :
232 0 : void* __iter = 0;
233 0 : nsString id;
234 :
235 0 : if ((!(Read((&(id)), (&(__msg)), (&(__iter)))))) {
236 0 : FatalError("error deserializing (better message TODO)");
237 0 : return MsgValueError;
238 : }
239 0 : (__msg).EndRead(__iter);
240 0 : if ((!(PObjectWrapper::Transition(mState, Trigger(Trigger::Send, PObjectWrapper::Msg_AddProperty__ID), (&(mState)))))) {
241 0 : NS_WARNING("bad state transition!");
242 : }
243 0 : OperationStatus status;
244 0 : int32 __id = mId;
245 0 : if ((!(AnswerAddProperty(id, (&(status)))))) {
246 0 : return MsgProcessingError;
247 : }
248 :
249 0 : __reply = new PObjectWrapper::Reply_AddProperty();
250 :
251 0 : Write(status, __reply);
252 0 : (__reply)->set_routing_id(__id);
253 0 : (__reply)->set_rpc();
254 0 : (__reply)->set_reply();
255 :
256 0 : if (mozilla::ipc::LoggingEnabled()) {
257 0 : (static_cast<const PObjectWrapper::Reply_AddProperty*>(__reply))->Log("[PObjectWrapperChild] Sending reply ", stderr);
258 : }
259 0 : return MsgProcessed;
260 : }
261 : case PObjectWrapper::Msg_GetProperty__ID:
262 : {
263 0 : (const_cast<Message&>(__msg)).set_name("PObjectWrapper::Msg_GetProperty");
264 0 : if (mozilla::ipc::LoggingEnabled()) {
265 0 : (static_cast<const PObjectWrapper::Msg_GetProperty*>((&(__msg))))->Log("[PObjectWrapperChild] Received ", stderr);
266 : }
267 :
268 0 : void* __iter = 0;
269 0 : nsString id;
270 :
271 0 : if ((!(Read((&(id)), (&(__msg)), (&(__iter)))))) {
272 0 : FatalError("error deserializing (better message TODO)");
273 0 : return MsgValueError;
274 : }
275 0 : (__msg).EndRead(__iter);
276 0 : if ((!(PObjectWrapper::Transition(mState, Trigger(Trigger::Send, PObjectWrapper::Msg_GetProperty__ID), (&(mState)))))) {
277 0 : NS_WARNING("bad state transition!");
278 : }
279 0 : OperationStatus status;
280 0 : JSVariant vp;
281 0 : int32 __id = mId;
282 0 : if ((!(AnswerGetProperty(id, (&(status)), (&(vp)))))) {
283 0 : return MsgProcessingError;
284 : }
285 :
286 0 : __reply = new PObjectWrapper::Reply_GetProperty();
287 :
288 0 : Write(status, __reply);
289 0 : Write(vp, __reply);
290 0 : (__reply)->set_routing_id(__id);
291 0 : (__reply)->set_rpc();
292 0 : (__reply)->set_reply();
293 :
294 0 : if (mozilla::ipc::LoggingEnabled()) {
295 0 : (static_cast<const PObjectWrapper::Reply_GetProperty*>(__reply))->Log("[PObjectWrapperChild] Sending reply ", stderr);
296 : }
297 0 : return MsgProcessed;
298 : }
299 : case PObjectWrapper::Msg_SetProperty__ID:
300 : {
301 0 : (const_cast<Message&>(__msg)).set_name("PObjectWrapper::Msg_SetProperty");
302 0 : if (mozilla::ipc::LoggingEnabled()) {
303 0 : (static_cast<const PObjectWrapper::Msg_SetProperty*>((&(__msg))))->Log("[PObjectWrapperChild] Received ", stderr);
304 : }
305 :
306 0 : void* __iter = 0;
307 0 : nsString id;
308 0 : JSVariant v;
309 :
310 0 : if ((!(Read((&(id)), (&(__msg)), (&(__iter)))))) {
311 0 : FatalError("error deserializing (better message TODO)");
312 0 : return MsgValueError;
313 : }
314 0 : if ((!(Read((&(v)), (&(__msg)), (&(__iter)))))) {
315 0 : FatalError("error deserializing (better message TODO)");
316 0 : return MsgValueError;
317 : }
318 0 : (__msg).EndRead(__iter);
319 0 : if ((!(PObjectWrapper::Transition(mState, Trigger(Trigger::Send, PObjectWrapper::Msg_SetProperty__ID), (&(mState)))))) {
320 0 : NS_WARNING("bad state transition!");
321 : }
322 0 : OperationStatus status;
323 0 : JSVariant vp;
324 0 : int32 __id = mId;
325 0 : if ((!(AnswerSetProperty(id, v, (&(status)), (&(vp)))))) {
326 0 : return MsgProcessingError;
327 : }
328 :
329 0 : __reply = new PObjectWrapper::Reply_SetProperty();
330 :
331 0 : Write(status, __reply);
332 0 : Write(vp, __reply);
333 0 : (__reply)->set_routing_id(__id);
334 0 : (__reply)->set_rpc();
335 0 : (__reply)->set_reply();
336 :
337 0 : if (mozilla::ipc::LoggingEnabled()) {
338 0 : (static_cast<const PObjectWrapper::Reply_SetProperty*>(__reply))->Log("[PObjectWrapperChild] Sending reply ", stderr);
339 : }
340 0 : return MsgProcessed;
341 : }
342 : case PObjectWrapper::Msg_DelProperty__ID:
343 : {
344 0 : (const_cast<Message&>(__msg)).set_name("PObjectWrapper::Msg_DelProperty");
345 0 : if (mozilla::ipc::LoggingEnabled()) {
346 0 : (static_cast<const PObjectWrapper::Msg_DelProperty*>((&(__msg))))->Log("[PObjectWrapperChild] Received ", stderr);
347 : }
348 :
349 0 : void* __iter = 0;
350 0 : nsString id;
351 :
352 0 : if ((!(Read((&(id)), (&(__msg)), (&(__iter)))))) {
353 0 : FatalError("error deserializing (better message TODO)");
354 0 : return MsgValueError;
355 : }
356 0 : (__msg).EndRead(__iter);
357 0 : if ((!(PObjectWrapper::Transition(mState, Trigger(Trigger::Send, PObjectWrapper::Msg_DelProperty__ID), (&(mState)))))) {
358 0 : NS_WARNING("bad state transition!");
359 : }
360 0 : OperationStatus status;
361 0 : JSVariant vp;
362 0 : int32 __id = mId;
363 0 : if ((!(AnswerDelProperty(id, (&(status)), (&(vp)))))) {
364 0 : return MsgProcessingError;
365 : }
366 :
367 0 : __reply = new PObjectWrapper::Reply_DelProperty();
368 :
369 0 : Write(status, __reply);
370 0 : Write(vp, __reply);
371 0 : (__reply)->set_routing_id(__id);
372 0 : (__reply)->set_rpc();
373 0 : (__reply)->set_reply();
374 :
375 0 : if (mozilla::ipc::LoggingEnabled()) {
376 0 : (static_cast<const PObjectWrapper::Reply_DelProperty*>(__reply))->Log("[PObjectWrapperChild] Sending reply ", stderr);
377 : }
378 0 : return MsgProcessed;
379 : }
380 : case PObjectWrapper::Msg_NewEnumerateInit__ID:
381 : {
382 0 : (const_cast<Message&>(__msg)).set_name("PObjectWrapper::Msg_NewEnumerateInit");
383 0 : if (mozilla::ipc::LoggingEnabled()) {
384 0 : (static_cast<const PObjectWrapper::Msg_NewEnumerateInit*>((&(__msg))))->Log("[PObjectWrapperChild] Received ", stderr);
385 : }
386 :
387 0 : if ((!(PObjectWrapper::Transition(mState, Trigger(Trigger::Send, PObjectWrapper::Msg_NewEnumerateInit__ID), (&(mState)))))) {
388 0 : NS_WARNING("bad state transition!");
389 : }
390 0 : OperationStatus status;
391 0 : JSVariant statep;
392 : int idp;
393 0 : int32 __id = mId;
394 0 : if ((!(AnswerNewEnumerateInit((&(status)), (&(statep)), (&(idp)))))) {
395 0 : return MsgProcessingError;
396 : }
397 :
398 0 : __reply = new PObjectWrapper::Reply_NewEnumerateInit();
399 :
400 0 : Write(status, __reply);
401 0 : Write(statep, __reply);
402 0 : Write(idp, __reply);
403 0 : (__reply)->set_routing_id(__id);
404 0 : (__reply)->set_rpc();
405 0 : (__reply)->set_reply();
406 :
407 0 : if (mozilla::ipc::LoggingEnabled()) {
408 0 : (static_cast<const PObjectWrapper::Reply_NewEnumerateInit*>(__reply))->Log("[PObjectWrapperChild] Sending reply ", stderr);
409 : }
410 0 : return MsgProcessed;
411 : }
412 : case PObjectWrapper::Msg_NewEnumerateNext__ID:
413 : {
414 0 : (const_cast<Message&>(__msg)).set_name("PObjectWrapper::Msg_NewEnumerateNext");
415 0 : if (mozilla::ipc::LoggingEnabled()) {
416 0 : (static_cast<const PObjectWrapper::Msg_NewEnumerateNext*>((&(__msg))))->Log("[PObjectWrapperChild] Received ", stderr);
417 : }
418 :
419 0 : void* __iter = 0;
420 0 : JSVariant in_state;
421 :
422 0 : if ((!(Read((&(in_state)), (&(__msg)), (&(__iter)))))) {
423 0 : FatalError("error deserializing (better message TODO)");
424 0 : return MsgValueError;
425 : }
426 0 : (__msg).EndRead(__iter);
427 0 : if ((!(PObjectWrapper::Transition(mState, Trigger(Trigger::Send, PObjectWrapper::Msg_NewEnumerateNext__ID), (&(mState)))))) {
428 0 : NS_WARNING("bad state transition!");
429 : }
430 0 : OperationStatus status;
431 0 : JSVariant statep;
432 0 : nsString idp;
433 0 : int32 __id = mId;
434 0 : if ((!(AnswerNewEnumerateNext(in_state, (&(status)), (&(statep)), (&(idp)))))) {
435 0 : return MsgProcessingError;
436 : }
437 :
438 0 : __reply = new PObjectWrapper::Reply_NewEnumerateNext();
439 :
440 0 : Write(status, __reply);
441 0 : Write(statep, __reply);
442 0 : Write(idp, __reply);
443 0 : (__reply)->set_routing_id(__id);
444 0 : (__reply)->set_rpc();
445 0 : (__reply)->set_reply();
446 :
447 0 : if (mozilla::ipc::LoggingEnabled()) {
448 0 : (static_cast<const PObjectWrapper::Reply_NewEnumerateNext*>(__reply))->Log("[PObjectWrapperChild] Sending reply ", stderr);
449 : }
450 0 : return MsgProcessed;
451 : }
452 : case PObjectWrapper::Msg_NewResolve__ID:
453 : {
454 0 : (const_cast<Message&>(__msg)).set_name("PObjectWrapper::Msg_NewResolve");
455 0 : if (mozilla::ipc::LoggingEnabled()) {
456 0 : (static_cast<const PObjectWrapper::Msg_NewResolve*>((&(__msg))))->Log("[PObjectWrapperChild] Received ", stderr);
457 : }
458 :
459 0 : void* __iter = 0;
460 0 : nsString id;
461 : int flags;
462 :
463 0 : if ((!(Read((&(id)), (&(__msg)), (&(__iter)))))) {
464 0 : FatalError("error deserializing (better message TODO)");
465 0 : return MsgValueError;
466 : }
467 0 : if ((!(Read((&(flags)), (&(__msg)), (&(__iter)))))) {
468 0 : FatalError("error deserializing (better message TODO)");
469 0 : return MsgValueError;
470 : }
471 0 : (__msg).EndRead(__iter);
472 0 : if ((!(PObjectWrapper::Transition(mState, Trigger(Trigger::Send, PObjectWrapper::Msg_NewResolve__ID), (&(mState)))))) {
473 0 : NS_WARNING("bad state transition!");
474 : }
475 0 : OperationStatus status;
476 : PObjectWrapperChild* obj2;
477 0 : int32 __id = mId;
478 0 : if ((!(AnswerNewResolve(id, flags, (&(status)), (&(obj2)))))) {
479 0 : return MsgProcessingError;
480 : }
481 :
482 0 : __reply = new PObjectWrapper::Reply_NewResolve();
483 :
484 0 : Write(status, __reply);
485 0 : Write(obj2, __reply, true);
486 0 : (__reply)->set_routing_id(__id);
487 0 : (__reply)->set_rpc();
488 0 : (__reply)->set_reply();
489 :
490 0 : if (mozilla::ipc::LoggingEnabled()) {
491 0 : (static_cast<const PObjectWrapper::Reply_NewResolve*>(__reply))->Log("[PObjectWrapperChild] Sending reply ", stderr);
492 : }
493 0 : return MsgProcessed;
494 : }
495 : case PObjectWrapper::Msg_Convert__ID:
496 : {
497 0 : (const_cast<Message&>(__msg)).set_name("PObjectWrapper::Msg_Convert");
498 0 : if (mozilla::ipc::LoggingEnabled()) {
499 0 : (static_cast<const PObjectWrapper::Msg_Convert*>((&(__msg))))->Log("[PObjectWrapperChild] Received ", stderr);
500 : }
501 :
502 0 : void* __iter = 0;
503 : JSType type;
504 :
505 0 : if ((!(Read((&(type)), (&(__msg)), (&(__iter)))))) {
506 0 : FatalError("error deserializing (better message TODO)");
507 0 : return MsgValueError;
508 : }
509 0 : (__msg).EndRead(__iter);
510 0 : if ((!(PObjectWrapper::Transition(mState, Trigger(Trigger::Send, PObjectWrapper::Msg_Convert__ID), (&(mState)))))) {
511 0 : NS_WARNING("bad state transition!");
512 : }
513 0 : OperationStatus status;
514 0 : JSVariant vp;
515 0 : int32 __id = mId;
516 0 : if ((!(AnswerConvert(type, (&(status)), (&(vp)))))) {
517 0 : return MsgProcessingError;
518 : }
519 :
520 0 : __reply = new PObjectWrapper::Reply_Convert();
521 :
522 0 : Write(status, __reply);
523 0 : Write(vp, __reply);
524 0 : (__reply)->set_routing_id(__id);
525 0 : (__reply)->set_rpc();
526 0 : (__reply)->set_reply();
527 :
528 0 : if (mozilla::ipc::LoggingEnabled()) {
529 0 : (static_cast<const PObjectWrapper::Reply_Convert*>(__reply))->Log("[PObjectWrapperChild] Sending reply ", stderr);
530 : }
531 0 : return MsgProcessed;
532 : }
533 : case PObjectWrapper::Msg_Call__ID:
534 : {
535 0 : (const_cast<Message&>(__msg)).set_name("PObjectWrapper::Msg_Call");
536 0 : if (mozilla::ipc::LoggingEnabled()) {
537 0 : (static_cast<const PObjectWrapper::Msg_Call*>((&(__msg))))->Log("[PObjectWrapperChild] Received ", stderr);
538 : }
539 :
540 0 : void* __iter = 0;
541 : PObjectWrapperChild* receiver;
542 0 : InfallibleTArray<JSVariant> argv;
543 :
544 0 : if ((!(Read((&(receiver)), (&(__msg)), (&(__iter)), false)))) {
545 0 : FatalError("error deserializing (better message TODO)");
546 0 : return MsgValueError;
547 : }
548 0 : if ((!(Read((&(argv)), (&(__msg)), (&(__iter)))))) {
549 0 : FatalError("error deserializing (better message TODO)");
550 0 : return MsgValueError;
551 : }
552 0 : (__msg).EndRead(__iter);
553 0 : if ((!(PObjectWrapper::Transition(mState, Trigger(Trigger::Send, PObjectWrapper::Msg_Call__ID), (&(mState)))))) {
554 0 : NS_WARNING("bad state transition!");
555 : }
556 0 : OperationStatus status;
557 0 : JSVariant rval;
558 0 : int32 __id = mId;
559 0 : if ((!(AnswerCall(receiver, argv, (&(status)), (&(rval)))))) {
560 0 : return MsgProcessingError;
561 : }
562 :
563 0 : __reply = new PObjectWrapper::Reply_Call();
564 :
565 0 : Write(status, __reply);
566 0 : Write(rval, __reply);
567 0 : (__reply)->set_routing_id(__id);
568 0 : (__reply)->set_rpc();
569 0 : (__reply)->set_reply();
570 :
571 0 : if (mozilla::ipc::LoggingEnabled()) {
572 0 : (static_cast<const PObjectWrapper::Reply_Call*>(__reply))->Log("[PObjectWrapperChild] Sending reply ", stderr);
573 : }
574 0 : return MsgProcessed;
575 : }
576 : case PObjectWrapper::Msg_Construct__ID:
577 : {
578 0 : (const_cast<Message&>(__msg)).set_name("PObjectWrapper::Msg_Construct");
579 0 : if (mozilla::ipc::LoggingEnabled()) {
580 0 : (static_cast<const PObjectWrapper::Msg_Construct*>((&(__msg))))->Log("[PObjectWrapperChild] Received ", stderr);
581 : }
582 :
583 0 : void* __iter = 0;
584 0 : InfallibleTArray<JSVariant> argv;
585 :
586 0 : if ((!(Read((&(argv)), (&(__msg)), (&(__iter)))))) {
587 0 : FatalError("error deserializing (better message TODO)");
588 0 : return MsgValueError;
589 : }
590 0 : (__msg).EndRead(__iter);
591 0 : if ((!(PObjectWrapper::Transition(mState, Trigger(Trigger::Send, PObjectWrapper::Msg_Construct__ID), (&(mState)))))) {
592 0 : NS_WARNING("bad state transition!");
593 : }
594 0 : OperationStatus status;
595 : PObjectWrapperChild* rval;
596 0 : int32 __id = mId;
597 0 : if ((!(AnswerConstruct(argv, (&(status)), (&(rval)))))) {
598 0 : return MsgProcessingError;
599 : }
600 :
601 0 : __reply = new PObjectWrapper::Reply_Construct();
602 :
603 0 : Write(status, __reply);
604 0 : Write(rval, __reply, true);
605 0 : (__reply)->set_routing_id(__id);
606 0 : (__reply)->set_rpc();
607 0 : (__reply)->set_reply();
608 :
609 0 : if (mozilla::ipc::LoggingEnabled()) {
610 0 : (static_cast<const PObjectWrapper::Reply_Construct*>(__reply))->Log("[PObjectWrapperChild] Sending reply ", stderr);
611 : }
612 0 : return MsgProcessed;
613 : }
614 : case PObjectWrapper::Msg_HasInstance__ID:
615 : {
616 0 : (const_cast<Message&>(__msg)).set_name("PObjectWrapper::Msg_HasInstance");
617 0 : if (mozilla::ipc::LoggingEnabled()) {
618 0 : (static_cast<const PObjectWrapper::Msg_HasInstance*>((&(__msg))))->Log("[PObjectWrapperChild] Received ", stderr);
619 : }
620 :
621 0 : void* __iter = 0;
622 0 : JSVariant v;
623 :
624 0 : if ((!(Read((&(v)), (&(__msg)), (&(__iter)))))) {
625 0 : FatalError("error deserializing (better message TODO)");
626 0 : return MsgValueError;
627 : }
628 0 : (__msg).EndRead(__iter);
629 0 : if ((!(PObjectWrapper::Transition(mState, Trigger(Trigger::Send, PObjectWrapper::Msg_HasInstance__ID), (&(mState)))))) {
630 0 : NS_WARNING("bad state transition!");
631 : }
632 0 : OperationStatus status;
633 : JSBool bp;
634 0 : int32 __id = mId;
635 0 : if ((!(AnswerHasInstance(v, (&(status)), (&(bp)))))) {
636 0 : return MsgProcessingError;
637 : }
638 :
639 0 : __reply = new PObjectWrapper::Reply_HasInstance();
640 :
641 0 : Write(status, __reply);
642 0 : Write(bp, __reply);
643 0 : (__reply)->set_routing_id(__id);
644 0 : (__reply)->set_rpc();
645 0 : (__reply)->set_reply();
646 :
647 0 : if (mozilla::ipc::LoggingEnabled()) {
648 0 : (static_cast<const PObjectWrapper::Reply_HasInstance*>(__reply))->Log("[PObjectWrapperChild] Sending reply ", stderr);
649 : }
650 0 : return MsgProcessed;
651 : }
652 : default:
653 : {
654 0 : return MsgNotKnown;
655 : }
656 : }
657 : }
658 :
659 : void
660 0 : PObjectWrapperChild::OnProcessingError(Result code)
661 : {
662 0 : NS_RUNTIMEABORT("`OnProcessingError' called on non-toplevel actor");
663 0 : }
664 :
665 : bool
666 0 : PObjectWrapperChild::OnReplyTimeout()
667 : {
668 0 : NS_RUNTIMEABORT("`OnReplyTimeout' called on non-toplevel actor");
669 0 : return false;
670 : }
671 :
672 : void
673 0 : PObjectWrapperChild::OnChannelClose()
674 : {
675 0 : NS_RUNTIMEABORT("`OnClose' called on non-toplevel actor");
676 0 : }
677 :
678 : void
679 0 : PObjectWrapperChild::OnChannelError()
680 : {
681 0 : NS_RUNTIMEABORT("`OnError' called on non-toplevel actor");
682 0 : }
683 :
684 : void
685 0 : PObjectWrapperChild::OnChannelConnected(int32 pid)
686 : {
687 0 : NS_RUNTIMEABORT("'OnConnected' called on non-toplevel actor");
688 0 : }
689 :
690 : bool
691 0 : PObjectWrapperChild::AllocShmem(
692 : size_t aSize,
693 : Shmem::SharedMemory::SharedMemoryType aType,
694 : Shmem* aMem)
695 : {
696 : Shmem::id_t aId;
697 0 : nsAutoPtr<Shmem::SharedMemory> rawmem(CreateSharedMemory(aSize, aType, false, (&(aId))));
698 0 : if ((!(rawmem))) {
699 0 : return false;
700 : }
701 :
702 0 : (*(aMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), (rawmem).forget(), aId);
703 0 : return true;
704 : }
705 :
706 : bool
707 0 : PObjectWrapperChild::AllocUnsafeShmem(
708 : size_t aSize,
709 : Shmem::SharedMemory::SharedMemoryType aType,
710 : Shmem* aMem)
711 : {
712 : Shmem::id_t aId;
713 0 : nsAutoPtr<Shmem::SharedMemory> rawmem(CreateSharedMemory(aSize, aType, true, (&(aId))));
714 0 : if ((!(rawmem))) {
715 0 : return false;
716 : }
717 :
718 0 : (*(aMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), (rawmem).forget(), aId);
719 0 : return true;
720 : }
721 :
722 : bool
723 0 : PObjectWrapperChild::AdoptShmem(
724 : Shmem& aMem,
725 : Shmem* aOutMem)
726 : {
727 0 : Shmem::SharedMemory* rawmem = (aMem).Segment(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead());
728 0 : if (((!(rawmem))) || (IsTrackingSharedMemory(rawmem))) {
729 0 : NS_RUNTIMEABORT("bad Shmem");
730 : }
731 :
732 : Shmem::id_t aId;
733 0 : if ((!(AdoptSharedMemory(rawmem, (&(aId)))))) {
734 0 : return false;
735 : }
736 :
737 0 : (*(aOutMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), rawmem, aId);
738 0 : return true;
739 : }
740 :
741 : bool
742 0 : PObjectWrapperChild::DeallocShmem(Shmem& aMem)
743 : {
744 0 : bool ok = DestroySharedMemory(aMem);
745 0 : (aMem).forget(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead());
746 0 : return ok;
747 : }
748 :
749 : void
750 0 : PObjectWrapperChild::FatalError(const char* const msg) const
751 : {
752 : // Virtual method to prevent inlining.
753 : // This give us better error reporting.
754 : // See bug 589371
755 :
756 0 : NS_ERROR("IPDL error:");
757 0 : NS_ERROR(msg);
758 :
759 0 : NS_RUNTIMEABORT("[PObjectWrapperChild] abort()ing as a result");
760 0 : }
761 :
762 : void
763 0 : PObjectWrapperChild::DestroySubtree(ActorDestroyReason why)
764 : {
765 : // Unregister from our manager.
766 0 : Unregister(mId);
767 0 : mId = 1;
768 :
769 : // Finally, destroy "us".
770 0 : ActorDestroy(why);
771 0 : }
772 :
773 : void
774 0 : PObjectWrapperChild::DeallocSubtree()
775 : {
776 0 : }
777 :
778 : void
779 0 : PObjectWrapperChild::Write(
780 : PObjectWrapperChild* __v,
781 : Message* __msg,
782 : bool __nullable)
783 : {
784 : int32 id;
785 0 : if ((!(__v))) {
786 0 : if ((!(__nullable))) {
787 0 : NS_RUNTIMEABORT("NULL actor value passed to non-nullable param");
788 : }
789 0 : id = 0;
790 : }
791 : else {
792 0 : id = (__v)->mId;
793 0 : if ((1) == (id)) {
794 0 : NS_RUNTIMEABORT("actor has been |delete|d");
795 : }
796 : }
797 :
798 0 : Write(id, __msg);
799 0 : }
800 :
801 : bool
802 0 : PObjectWrapperChild::Read(
803 : PObjectWrapperChild** __v,
804 : const Message* __msg,
805 : void** __iter,
806 : bool __nullable)
807 : {
808 : int32 id;
809 0 : if ((!(Read((&(id)), __msg, __iter)))) {
810 0 : return false;
811 : }
812 0 : if (((1) == (id)) || (((0) == (id)) && ((!(__nullable))))) {
813 0 : return false;
814 : }
815 :
816 0 : if ((0) == (id)) {
817 0 : (*(__v)) = 0;
818 : }
819 : else {
820 0 : (*(__v)) = static_cast<PObjectWrapperChild*>(Lookup(id));
821 0 : if ((!((*(__v))))) {
822 0 : return false;
823 : }
824 : }
825 0 : return true;
826 : }
827 :
828 : void
829 0 : PObjectWrapperChild::Write(
830 : const InfallibleTArray<JSVariant>& __v,
831 : Message* __msg)
832 : {
833 0 : uint32 length = (__v).Length();
834 0 : Write(length, __msg);
835 :
836 0 : for (uint32 i = 0; (i) < (length); (++(i))) {
837 0 : Write(__v[i], __msg);
838 : }
839 0 : }
840 :
841 : bool
842 0 : PObjectWrapperChild::Read(
843 : InfallibleTArray<JSVariant>* __v,
844 : const Message* __msg,
845 : void** __iter)
846 : {
847 0 : InfallibleTArray<JSVariant>& a = (*(__v));
848 : uint32 length;
849 0 : if ((!(Read((&(length)), __msg, __iter)))) {
850 0 : return false;
851 : }
852 :
853 0 : (__v)->SetLength(length);
854 0 : for (uint32 i = 0; (i) < (length); (++(i))) {
855 0 : if ((!(Read((&(a[i])), __msg, __iter)))) {
856 0 : return false;
857 : }
858 : }
859 0 : return true;
860 : }
861 :
862 : void
863 0 : PObjectWrapperChild::Write(
864 : const OperationStatus& __v,
865 : Message* __msg)
866 : {
867 : typedef OperationStatus __type;
868 0 : Write(int((__v).type()), __msg);
869 :
870 0 : switch ((__v).type()) {
871 : case __type::TJSBool:
872 : {
873 0 : Write((__v).get_JSBool(), __msg);
874 0 : return;
875 : }
876 : case __type::TJSVariant:
877 : {
878 0 : Write((__v).get_JSVariant(), __msg);
879 0 : return;
880 : }
881 : default:
882 : {
883 0 : NS_RUNTIMEABORT("unknown union type");
884 0 : return;
885 : }
886 : }
887 : }
888 :
889 : bool
890 0 : PObjectWrapperChild::Read(
891 : OperationStatus* __v,
892 : const Message* __msg,
893 : void** __iter)
894 : {
895 : typedef OperationStatus __type;
896 : int type;
897 0 : if ((!(Read((&(type)), __msg, __iter)))) {
898 0 : return false;
899 : }
900 :
901 0 : switch (type) {
902 : case __type::TJSBool:
903 : {
904 0 : JSBool tmp = JSBool();
905 0 : (*(__v)) = tmp;
906 0 : return Read((&((__v)->get_JSBool())), __msg, __iter);
907 : }
908 : case __type::TJSVariant:
909 : {
910 0 : JSVariant tmp = JSVariant();
911 0 : (*(__v)) = tmp;
912 0 : return Read((&((__v)->get_JSVariant())), __msg, __iter);
913 : }
914 : default:
915 : {
916 0 : return false;
917 : }
918 : }
919 : }
920 :
921 : void
922 0 : PObjectWrapperChild::Write(
923 : const JSVariant& __v,
924 : Message* __msg)
925 : {
926 : typedef JSVariant __type;
927 0 : Write(int((__v).type()), __msg);
928 :
929 0 : switch ((__v).type()) {
930 : case __type::Tvoid_t:
931 : {
932 0 : Write((__v).get_void_t(), __msg);
933 0 : return;
934 : }
935 : case __type::TPObjectWrapperParent:
936 : {
937 0 : NS_RUNTIMEABORT("wrong side!");
938 0 : return;
939 : }
940 : case __type::TPObjectWrapperChild:
941 : {
942 0 : Write((__v).get_PObjectWrapperChild(), __msg, true);
943 0 : return;
944 : }
945 : case __type::TnsString:
946 : {
947 0 : Write((__v).get_nsString(), __msg);
948 0 : return;
949 : }
950 : case __type::Tint:
951 : {
952 0 : Write((__v).get_int(), __msg);
953 0 : return;
954 : }
955 : case __type::Tdouble:
956 : {
957 0 : Write((__v).get_double(), __msg);
958 0 : return;
959 : }
960 : case __type::Tbool:
961 : {
962 0 : Write((__v).get_bool(), __msg);
963 0 : return;
964 : }
965 : default:
966 : {
967 0 : NS_RUNTIMEABORT("unknown union type");
968 0 : return;
969 : }
970 : }
971 : }
972 :
973 : bool
974 0 : PObjectWrapperChild::Read(
975 : JSVariant* __v,
976 : const Message* __msg,
977 : void** __iter)
978 : {
979 : typedef JSVariant __type;
980 : int type;
981 0 : if ((!(Read((&(type)), __msg, __iter)))) {
982 0 : return false;
983 : }
984 :
985 0 : switch (type) {
986 : case __type::Tvoid_t:
987 : {
988 0 : void_t tmp = void_t();
989 0 : (*(__v)) = tmp;
990 0 : return Read((&((__v)->get_void_t())), __msg, __iter);
991 : }
992 : case __type::TPObjectWrapperParent:
993 : {
994 0 : PObjectWrapperChild* tmp = static_cast<PObjectWrapperChild*>(0);
995 0 : (*(__v)) = tmp;
996 0 : return Read((&((__v)->get_PObjectWrapperChild())), __msg, __iter, true);
997 : }
998 : case __type::TPObjectWrapperChild:
999 : {
1000 0 : return false;
1001 : }
1002 : case __type::TnsString:
1003 : {
1004 0 : nsString tmp = nsString();
1005 0 : (*(__v)) = tmp;
1006 0 : return Read((&((__v)->get_nsString())), __msg, __iter);
1007 : }
1008 : case __type::Tint:
1009 : {
1010 0 : int tmp = int();
1011 0 : (*(__v)) = tmp;
1012 0 : return Read((&((__v)->get_int())), __msg, __iter);
1013 : }
1014 : case __type::Tdouble:
1015 : {
1016 0 : double tmp = double();
1017 0 : (*(__v)) = tmp;
1018 0 : return Read((&((__v)->get_double())), __msg, __iter);
1019 : }
1020 : case __type::Tbool:
1021 : {
1022 0 : bool tmp = bool();
1023 0 : (*(__v)) = tmp;
1024 0 : return Read((&((__v)->get_bool())), __msg, __iter);
1025 : }
1026 : default:
1027 : {
1028 0 : return false;
1029 : }
1030 : }
1031 : }
1032 :
1033 :
1034 :
1035 : } // namespace jsipc
1036 : } // namespace mozilla
|