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