1 : //
2 : // Automatically generated by ipdlc.
3 : // Edit at your own risk
4 : //
5 :
6 :
7 : #include "mozilla/net/PWebSocketChild.h"
8 :
9 : #include "mozilla/net/PNeckoChild.h"
10 : #include "mozilla/dom/PBrowserChild.h"
11 :
12 : typedef IPC::Message Message;
13 : typedef mozilla::ipc::RPCChannel Channel;
14 : typedef mozilla::ipc::RPCChannel::RPCListener ChannelListener;
15 : typedef base::ProcessHandle ProcessHandle;
16 : typedef mozilla::ipc::AsyncChannel AsyncChannel;
17 : typedef mozilla::ipc::SharedMemory SharedMemory;
18 : typedef mozilla::ipc::Trigger Trigger;
19 : typedef mozilla::ipc::ActorHandle ActorHandle;
20 : typedef mozilla::ipc::Shmem Shmem;
21 : typedef IPC::URI URI;
22 : typedef IPC::InputStream InputStream;
23 : using mozilla::net::PNeckoChild;
24 : using mozilla::dom::PBrowserChild;
25 :
26 : namespace mozilla {
27 : namespace net {
28 :
29 :
30 : bool
31 0 : PWebSocketChild::Recv__delete__()
32 : {
33 0 : return true;
34 : }
35 :
36 : void
37 0 : PWebSocketChild::ActorDestroy(ActorDestroyReason why)
38 : {
39 0 : }
40 :
41 0 : PWebSocketChild::PWebSocketChild() :
42 : mId(0),
43 0 : mState(PWebSocket::__Dead)
44 : {
45 0 : MOZ_COUNT_CTOR(PWebSocketChild);
46 0 : }
47 :
48 0 : PWebSocketChild::~PWebSocketChild()
49 : {
50 0 : MOZ_COUNT_DTOR(PWebSocketChild);
51 0 : }
52 :
53 : PNeckoChild*
54 0 : PWebSocketChild::Manager()
55 : {
56 0 : return static_cast<PNeckoChild*>(mManager);
57 : }
58 :
59 : PWebSocket::State
60 0 : PWebSocketChild::state()
61 : {
62 0 : return mState;
63 : }
64 :
65 : bool
66 0 : PWebSocketChild::SendAsyncOpen(
67 : const URI& aURI,
68 : const nsCString& aOrigin,
69 : const nsCString& aProtocol,
70 : const bool& aSecure)
71 : {
72 0 : PWebSocket::Msg_AsyncOpen* __msg = new PWebSocket::Msg_AsyncOpen();
73 :
74 0 : Write(aURI, __msg);
75 0 : Write(aOrigin, __msg);
76 0 : Write(aProtocol, __msg);
77 0 : Write(aSecure, __msg);
78 :
79 0 : (__msg)->set_routing_id(mId);
80 :
81 :
82 :
83 0 : if (mozilla::ipc::LoggingEnabled()) {
84 0 : (__msg)->Log("[PWebSocketChild] Sending ", stderr);
85 : }
86 0 : if ((!(PWebSocket::Transition(mState, Trigger(Trigger::Recv, PWebSocket::Msg_AsyncOpen__ID), (&(mState)))))) {
87 0 : NS_WARNING("bad state transition!");
88 : }
89 :
90 0 : bool __sendok = (mChannel)->Send(__msg);
91 0 : return __sendok;
92 : }
93 :
94 : bool
95 0 : PWebSocketChild::SendClose(
96 : const PRUint16& code,
97 : const nsCString& reason)
98 : {
99 0 : PWebSocket::Msg_Close* __msg = new PWebSocket::Msg_Close();
100 :
101 0 : Write(code, __msg);
102 0 : Write(reason, __msg);
103 :
104 0 : (__msg)->set_routing_id(mId);
105 :
106 :
107 :
108 0 : if (mozilla::ipc::LoggingEnabled()) {
109 0 : (__msg)->Log("[PWebSocketChild] Sending ", stderr);
110 : }
111 0 : if ((!(PWebSocket::Transition(mState, Trigger(Trigger::Recv, PWebSocket::Msg_Close__ID), (&(mState)))))) {
112 0 : NS_WARNING("bad state transition!");
113 : }
114 :
115 0 : bool __sendok = (mChannel)->Send(__msg);
116 0 : return __sendok;
117 : }
118 :
119 : bool
120 0 : PWebSocketChild::SendSendMsg(const nsCString& aMsg)
121 : {
122 0 : PWebSocket::Msg_SendMsg* __msg = new PWebSocket::Msg_SendMsg();
123 :
124 0 : Write(aMsg, __msg);
125 :
126 0 : (__msg)->set_routing_id(mId);
127 :
128 :
129 :
130 0 : if (mozilla::ipc::LoggingEnabled()) {
131 0 : (__msg)->Log("[PWebSocketChild] Sending ", stderr);
132 : }
133 0 : if ((!(PWebSocket::Transition(mState, Trigger(Trigger::Recv, PWebSocket::Msg_SendMsg__ID), (&(mState)))))) {
134 0 : NS_WARNING("bad state transition!");
135 : }
136 :
137 0 : bool __sendok = (mChannel)->Send(__msg);
138 0 : return __sendok;
139 : }
140 :
141 : bool
142 0 : PWebSocketChild::SendSendBinaryMsg(const nsCString& aMsg)
143 : {
144 0 : PWebSocket::Msg_SendBinaryMsg* __msg = new PWebSocket::Msg_SendBinaryMsg();
145 :
146 0 : Write(aMsg, __msg);
147 :
148 0 : (__msg)->set_routing_id(mId);
149 :
150 :
151 :
152 0 : if (mozilla::ipc::LoggingEnabled()) {
153 0 : (__msg)->Log("[PWebSocketChild] Sending ", stderr);
154 : }
155 0 : if ((!(PWebSocket::Transition(mState, Trigger(Trigger::Recv, PWebSocket::Msg_SendBinaryMsg__ID), (&(mState)))))) {
156 0 : NS_WARNING("bad state transition!");
157 : }
158 :
159 0 : bool __sendok = (mChannel)->Send(__msg);
160 0 : return __sendok;
161 : }
162 :
163 : bool
164 0 : PWebSocketChild::SendSendBinaryStream(
165 : const InputStream& aStream,
166 : const PRUint32& aLength)
167 : {
168 0 : PWebSocket::Msg_SendBinaryStream* __msg = new PWebSocket::Msg_SendBinaryStream();
169 :
170 0 : Write(aStream, __msg);
171 0 : Write(aLength, __msg);
172 :
173 0 : (__msg)->set_routing_id(mId);
174 :
175 :
176 :
177 0 : if (mozilla::ipc::LoggingEnabled()) {
178 0 : (__msg)->Log("[PWebSocketChild] Sending ", stderr);
179 : }
180 0 : if ((!(PWebSocket::Transition(mState, Trigger(Trigger::Recv, PWebSocket::Msg_SendBinaryStream__ID), (&(mState)))))) {
181 0 : NS_WARNING("bad state transition!");
182 : }
183 :
184 0 : bool __sendok = (mChannel)->Send(__msg);
185 0 : return __sendok;
186 : }
187 :
188 : bool
189 0 : PWebSocketChild::SendDeleteSelf()
190 : {
191 0 : PWebSocket::Msg_DeleteSelf* __msg = new PWebSocket::Msg_DeleteSelf();
192 :
193 :
194 0 : (__msg)->set_routing_id(mId);
195 :
196 :
197 :
198 0 : if (mozilla::ipc::LoggingEnabled()) {
199 0 : (__msg)->Log("[PWebSocketChild] Sending ", stderr);
200 : }
201 0 : if ((!(PWebSocket::Transition(mState, Trigger(Trigger::Recv, PWebSocket::Msg_DeleteSelf__ID), (&(mState)))))) {
202 0 : NS_WARNING("bad state transition!");
203 : }
204 :
205 0 : bool __sendok = (mChannel)->Send(__msg);
206 0 : return __sendok;
207 : }
208 :
209 : int32
210 0 : PWebSocketChild::Register(ChannelListener* aRouted)
211 : {
212 0 : return (mManager)->Register(aRouted);
213 : }
214 :
215 : int32
216 0 : PWebSocketChild::RegisterID(
217 : ChannelListener* aRouted,
218 : int32 aId)
219 : {
220 0 : return (mManager)->RegisterID(aRouted, aId);
221 : }
222 :
223 : ChannelListener*
224 0 : PWebSocketChild::Lookup(int32 aId)
225 : {
226 0 : return (mManager)->Lookup(aId);
227 : }
228 :
229 : void
230 0 : PWebSocketChild::Unregister(int32 aId)
231 : {
232 0 : return (mManager)->Unregister(aId);
233 : }
234 :
235 : void
236 0 : PWebSocketChild::RemoveManagee(
237 : int32 aProtocolId,
238 : ChannelListener* aListener)
239 : {
240 0 : NS_RUNTIMEABORT("unreached");
241 : return;
242 : }
243 :
244 : Shmem::SharedMemory*
245 0 : PWebSocketChild::CreateSharedMemory(
246 : size_t aSize,
247 : Shmem::SharedMemory::SharedMemoryType type,
248 : bool unsafe,
249 : Shmem::id_t* aId)
250 : {
251 0 : return (mManager)->CreateSharedMemory(aSize, type, unsafe, aId);
252 : }
253 :
254 : bool
255 0 : PWebSocketChild::AdoptSharedMemory(
256 : Shmem::SharedMemory* segment,
257 : Shmem::id_t* aId)
258 : {
259 0 : return (mManager)->AdoptSharedMemory(segment, aId);
260 : }
261 :
262 : Shmem::SharedMemory*
263 0 : PWebSocketChild::LookupSharedMemory(Shmem::id_t aId)
264 : {
265 0 : return (mManager)->LookupSharedMemory(aId);
266 : }
267 :
268 : bool
269 0 : PWebSocketChild::IsTrackingSharedMemory(Shmem::SharedMemory* segment)
270 : {
271 0 : return (mManager)->IsTrackingSharedMemory(segment);
272 : }
273 :
274 : bool
275 0 : PWebSocketChild::DestroySharedMemory(Shmem& aShmem)
276 : {
277 0 : return (mManager)->DestroySharedMemory(aShmem);
278 : }
279 :
280 : ProcessHandle
281 0 : PWebSocketChild::OtherProcess() const
282 : {
283 0 : return (mManager)->OtherProcess();
284 : }
285 :
286 : AsyncChannel*
287 0 : PWebSocketChild::GetIPCChannel()
288 : {
289 0 : return mChannel;
290 : }
291 :
292 : PWebSocketChild::Result
293 0 : PWebSocketChild::OnMessageReceived(const Message& __msg)
294 : {
295 0 : switch ((__msg).type()) {
296 : case PWebSocket::Msg_OnStart__ID:
297 : {
298 0 : (const_cast<Message&>(__msg)).set_name("PWebSocket::Msg_OnStart");
299 0 : if (mozilla::ipc::LoggingEnabled()) {
300 0 : (static_cast<const PWebSocket::Msg_OnStart*>((&(__msg))))->Log("[PWebSocketChild] Received ", stderr);
301 : }
302 :
303 0 : void* __iter = 0;
304 0 : nsCString aProtocol;
305 0 : nsCString aExtensions;
306 :
307 0 : if ((!(Read((&(aProtocol)), (&(__msg)), (&(__iter)))))) {
308 0 : FatalError("error deserializing (better message TODO)");
309 0 : return MsgValueError;
310 : }
311 0 : if ((!(Read((&(aExtensions)), (&(__msg)), (&(__iter)))))) {
312 0 : FatalError("error deserializing (better message TODO)");
313 0 : return MsgValueError;
314 : }
315 0 : (__msg).EndRead(__iter);
316 0 : if ((!(PWebSocket::Transition(mState, Trigger(Trigger::Send, PWebSocket::Msg_OnStart__ID), (&(mState)))))) {
317 0 : NS_WARNING("bad state transition!");
318 : }
319 0 : if ((!(RecvOnStart(aProtocol, aExtensions)))) {
320 0 : return MsgProcessingError;
321 : }
322 :
323 0 : return MsgProcessed;
324 : }
325 : case PWebSocket::Msg_OnStop__ID:
326 : {
327 0 : (const_cast<Message&>(__msg)).set_name("PWebSocket::Msg_OnStop");
328 0 : if (mozilla::ipc::LoggingEnabled()) {
329 0 : (static_cast<const PWebSocket::Msg_OnStop*>((&(__msg))))->Log("[PWebSocketChild] Received ", stderr);
330 : }
331 :
332 0 : void* __iter = 0;
333 : nsresult aStatusCode;
334 :
335 0 : if ((!(Read((&(aStatusCode)), (&(__msg)), (&(__iter)))))) {
336 0 : FatalError("error deserializing (better message TODO)");
337 0 : return MsgValueError;
338 : }
339 0 : (__msg).EndRead(__iter);
340 0 : if ((!(PWebSocket::Transition(mState, Trigger(Trigger::Send, PWebSocket::Msg_OnStop__ID), (&(mState)))))) {
341 0 : NS_WARNING("bad state transition!");
342 : }
343 0 : if ((!(RecvOnStop(aStatusCode)))) {
344 0 : return MsgProcessingError;
345 : }
346 :
347 0 : return MsgProcessed;
348 : }
349 : case PWebSocket::Msg_OnMessageAvailable__ID:
350 : {
351 0 : (const_cast<Message&>(__msg)).set_name("PWebSocket::Msg_OnMessageAvailable");
352 0 : if (mozilla::ipc::LoggingEnabled()) {
353 0 : (static_cast<const PWebSocket::Msg_OnMessageAvailable*>((&(__msg))))->Log("[PWebSocketChild] Received ", stderr);
354 : }
355 :
356 0 : void* __iter = 0;
357 0 : nsCString aMsg;
358 :
359 0 : if ((!(Read((&(aMsg)), (&(__msg)), (&(__iter)))))) {
360 0 : FatalError("error deserializing (better message TODO)");
361 0 : return MsgValueError;
362 : }
363 0 : (__msg).EndRead(__iter);
364 0 : if ((!(PWebSocket::Transition(mState, Trigger(Trigger::Send, PWebSocket::Msg_OnMessageAvailable__ID), (&(mState)))))) {
365 0 : NS_WARNING("bad state transition!");
366 : }
367 0 : if ((!(RecvOnMessageAvailable(aMsg)))) {
368 0 : return MsgProcessingError;
369 : }
370 :
371 0 : return MsgProcessed;
372 : }
373 : case PWebSocket::Msg_OnBinaryMessageAvailable__ID:
374 : {
375 0 : (const_cast<Message&>(__msg)).set_name("PWebSocket::Msg_OnBinaryMessageAvailable");
376 0 : if (mozilla::ipc::LoggingEnabled()) {
377 0 : (static_cast<const PWebSocket::Msg_OnBinaryMessageAvailable*>((&(__msg))))->Log("[PWebSocketChild] Received ", stderr);
378 : }
379 :
380 0 : void* __iter = 0;
381 0 : nsCString aMsg;
382 :
383 0 : if ((!(Read((&(aMsg)), (&(__msg)), (&(__iter)))))) {
384 0 : FatalError("error deserializing (better message TODO)");
385 0 : return MsgValueError;
386 : }
387 0 : (__msg).EndRead(__iter);
388 0 : if ((!(PWebSocket::Transition(mState, Trigger(Trigger::Send, PWebSocket::Msg_OnBinaryMessageAvailable__ID), (&(mState)))))) {
389 0 : NS_WARNING("bad state transition!");
390 : }
391 0 : if ((!(RecvOnBinaryMessageAvailable(aMsg)))) {
392 0 : return MsgProcessingError;
393 : }
394 :
395 0 : return MsgProcessed;
396 : }
397 : case PWebSocket::Msg_OnAcknowledge__ID:
398 : {
399 0 : (const_cast<Message&>(__msg)).set_name("PWebSocket::Msg_OnAcknowledge");
400 0 : if (mozilla::ipc::LoggingEnabled()) {
401 0 : (static_cast<const PWebSocket::Msg_OnAcknowledge*>((&(__msg))))->Log("[PWebSocketChild] Received ", stderr);
402 : }
403 :
404 0 : void* __iter = 0;
405 : PRUint32 aSize;
406 :
407 0 : if ((!(Read((&(aSize)), (&(__msg)), (&(__iter)))))) {
408 0 : FatalError("error deserializing (better message TODO)");
409 0 : return MsgValueError;
410 : }
411 0 : (__msg).EndRead(__iter);
412 0 : if ((!(PWebSocket::Transition(mState, Trigger(Trigger::Send, PWebSocket::Msg_OnAcknowledge__ID), (&(mState)))))) {
413 0 : NS_WARNING("bad state transition!");
414 : }
415 0 : if ((!(RecvOnAcknowledge(aSize)))) {
416 0 : return MsgProcessingError;
417 : }
418 :
419 0 : return MsgProcessed;
420 : }
421 : case PWebSocket::Msg_OnServerClose__ID:
422 : {
423 0 : (const_cast<Message&>(__msg)).set_name("PWebSocket::Msg_OnServerClose");
424 0 : if (mozilla::ipc::LoggingEnabled()) {
425 0 : (static_cast<const PWebSocket::Msg_OnServerClose*>((&(__msg))))->Log("[PWebSocketChild] Received ", stderr);
426 : }
427 :
428 0 : void* __iter = 0;
429 : PRUint16 code;
430 0 : nsCString aReason;
431 :
432 0 : if ((!(Read((&(code)), (&(__msg)), (&(__iter)))))) {
433 0 : FatalError("error deserializing (better message TODO)");
434 0 : return MsgValueError;
435 : }
436 0 : if ((!(Read((&(aReason)), (&(__msg)), (&(__iter)))))) {
437 0 : FatalError("error deserializing (better message TODO)");
438 0 : return MsgValueError;
439 : }
440 0 : (__msg).EndRead(__iter);
441 0 : if ((!(PWebSocket::Transition(mState, Trigger(Trigger::Send, PWebSocket::Msg_OnServerClose__ID), (&(mState)))))) {
442 0 : NS_WARNING("bad state transition!");
443 : }
444 0 : if ((!(RecvOnServerClose(code, aReason)))) {
445 0 : return MsgProcessingError;
446 : }
447 :
448 0 : return MsgProcessed;
449 : }
450 : case PWebSocket::Msg___delete____ID:
451 : {
452 0 : (const_cast<Message&>(__msg)).set_name("PWebSocket::Msg___delete__");
453 0 : if (mozilla::ipc::LoggingEnabled()) {
454 0 : (static_cast<const PWebSocket::Msg___delete__*>((&(__msg))))->Log("[PWebSocketChild] Received ", stderr);
455 : }
456 :
457 0 : void* __iter = 0;
458 : PWebSocketChild* actor;
459 :
460 0 : if ((!(Read((&(actor)), (&(__msg)), (&(__iter)), false)))) {
461 0 : FatalError("error deserializing (better message TODO)");
462 0 : return MsgValueError;
463 : }
464 0 : (__msg).EndRead(__iter);
465 0 : if ((!(PWebSocket::Transition(mState, Trigger(Trigger::Send, PWebSocket::Msg___delete____ID), (&(mState)))))) {
466 0 : NS_WARNING("bad state transition!");
467 : }
468 0 : if ((!(Recv__delete__()))) {
469 0 : return MsgProcessingError;
470 : }
471 :
472 0 : (actor)->DestroySubtree(Deletion);
473 0 : (actor)->DeallocSubtree();
474 0 : ((actor)->mManager)->RemoveManagee(PWebSocketMsgStart, actor);
475 :
476 :
477 0 : return MsgProcessed;
478 : }
479 : default:
480 : {
481 0 : return MsgNotKnown;
482 : }
483 : }
484 : }
485 :
486 : PWebSocketChild::Result
487 0 : PWebSocketChild::OnMessageReceived(
488 : const Message& __msg,
489 : Message*& __reply)
490 : {
491 0 : return MsgNotKnown;
492 : }
493 :
494 : PWebSocketChild::Result
495 0 : PWebSocketChild::OnCallReceived(
496 : const Message& __msg,
497 : Message*& __reply)
498 : {
499 0 : return MsgNotKnown;
500 : }
501 :
502 : void
503 0 : PWebSocketChild::OnProcessingError(Result code)
504 : {
505 0 : NS_RUNTIMEABORT("`OnProcessingError' called on non-toplevel actor");
506 0 : }
507 :
508 : bool
509 0 : PWebSocketChild::OnReplyTimeout()
510 : {
511 0 : NS_RUNTIMEABORT("`OnReplyTimeout' called on non-toplevel actor");
512 0 : return false;
513 : }
514 :
515 : void
516 0 : PWebSocketChild::OnChannelClose()
517 : {
518 0 : NS_RUNTIMEABORT("`OnClose' called on non-toplevel actor");
519 0 : }
520 :
521 : void
522 0 : PWebSocketChild::OnChannelError()
523 : {
524 0 : NS_RUNTIMEABORT("`OnError' called on non-toplevel actor");
525 0 : }
526 :
527 : void
528 0 : PWebSocketChild::OnChannelConnected(int32 pid)
529 : {
530 0 : NS_RUNTIMEABORT("'OnConnected' called on non-toplevel actor");
531 0 : }
532 :
533 : bool
534 0 : PWebSocketChild::AllocShmem(
535 : size_t aSize,
536 : Shmem::SharedMemory::SharedMemoryType aType,
537 : Shmem* aMem)
538 : {
539 : Shmem::id_t aId;
540 0 : nsAutoPtr<Shmem::SharedMemory> rawmem(CreateSharedMemory(aSize, aType, false, (&(aId))));
541 0 : if ((!(rawmem))) {
542 0 : return false;
543 : }
544 :
545 0 : (*(aMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), (rawmem).forget(), aId);
546 0 : return true;
547 : }
548 :
549 : bool
550 0 : PWebSocketChild::AllocUnsafeShmem(
551 : size_t aSize,
552 : Shmem::SharedMemory::SharedMemoryType aType,
553 : Shmem* aMem)
554 : {
555 : Shmem::id_t aId;
556 0 : nsAutoPtr<Shmem::SharedMemory> rawmem(CreateSharedMemory(aSize, aType, true, (&(aId))));
557 0 : if ((!(rawmem))) {
558 0 : return false;
559 : }
560 :
561 0 : (*(aMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), (rawmem).forget(), aId);
562 0 : return true;
563 : }
564 :
565 : bool
566 0 : PWebSocketChild::AdoptShmem(
567 : Shmem& aMem,
568 : Shmem* aOutMem)
569 : {
570 0 : Shmem::SharedMemory* rawmem = (aMem).Segment(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead());
571 0 : if (((!(rawmem))) || (IsTrackingSharedMemory(rawmem))) {
572 0 : NS_RUNTIMEABORT("bad Shmem");
573 : }
574 :
575 : Shmem::id_t aId;
576 0 : if ((!(AdoptSharedMemory(rawmem, (&(aId)))))) {
577 0 : return false;
578 : }
579 :
580 0 : (*(aOutMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), rawmem, aId);
581 0 : return true;
582 : }
583 :
584 : bool
585 0 : PWebSocketChild::DeallocShmem(Shmem& aMem)
586 : {
587 0 : bool ok = DestroySharedMemory(aMem);
588 0 : (aMem).forget(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead());
589 0 : return ok;
590 : }
591 :
592 : void
593 0 : PWebSocketChild::FatalError(const char* const msg) const
594 : {
595 : // Virtual method to prevent inlining.
596 : // This give us better error reporting.
597 : // See bug 589371
598 :
599 0 : NS_ERROR("IPDL error:");
600 0 : NS_ERROR(msg);
601 :
602 0 : NS_RUNTIMEABORT("[PWebSocketChild] abort()ing as a result");
603 0 : }
604 :
605 : void
606 0 : PWebSocketChild::DestroySubtree(ActorDestroyReason why)
607 : {
608 : // Unregister from our manager.
609 0 : Unregister(mId);
610 0 : mId = 1;
611 :
612 : // Finally, destroy "us".
613 0 : ActorDestroy(why);
614 0 : }
615 :
616 : void
617 0 : PWebSocketChild::DeallocSubtree()
618 : {
619 0 : }
620 :
621 : void
622 0 : PWebSocketChild::Write(
623 : PWebSocketChild* __v,
624 : Message* __msg,
625 : bool __nullable)
626 : {
627 : int32 id;
628 0 : if ((!(__v))) {
629 0 : if ((!(__nullable))) {
630 0 : NS_RUNTIMEABORT("NULL actor value passed to non-nullable param");
631 : }
632 0 : id = 0;
633 : }
634 : else {
635 0 : id = (__v)->mId;
636 0 : if ((1) == (id)) {
637 0 : NS_RUNTIMEABORT("actor has been |delete|d");
638 : }
639 : }
640 :
641 0 : Write(id, __msg);
642 0 : }
643 :
644 : bool
645 0 : PWebSocketChild::Read(
646 : PWebSocketChild** __v,
647 : const Message* __msg,
648 : void** __iter,
649 : bool __nullable)
650 : {
651 : int32 id;
652 0 : if ((!(Read((&(id)), __msg, __iter)))) {
653 0 : return false;
654 : }
655 0 : if (((1) == (id)) || (((0) == (id)) && ((!(__nullable))))) {
656 0 : return false;
657 : }
658 :
659 0 : if ((0) == (id)) {
660 0 : (*(__v)) = 0;
661 : }
662 : else {
663 0 : (*(__v)) = static_cast<PWebSocketChild*>(Lookup(id));
664 0 : if ((!((*(__v))))) {
665 0 : return false;
666 : }
667 : }
668 0 : return true;
669 : }
670 :
671 :
672 :
673 : } // namespace net
674 : } // namespace mozilla
|