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