1 : //
2 : // Automatically generated by ipdlc.
3 : // Edit at your own risk
4 : //
5 :
6 :
7 : #include "mozilla/plugins/PBrowserStreamChild.h"
8 :
9 : #include "mozilla/plugins/PPluginInstanceChild.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 mozilla::plugins::Buffer Buffer;
21 : typedef mozilla::plugins::IPCByteRanges IPCByteRanges;
22 : using mozilla::plugins::PPluginInstanceChild;
23 :
24 : namespace mozilla {
25 : namespace plugins {
26 :
27 :
28 : bool
29 0 : PBrowserStreamChild::Recv__delete__()
30 : {
31 0 : return true;
32 : }
33 :
34 : void
35 0 : PBrowserStreamChild::ActorDestroy(ActorDestroyReason why)
36 : {
37 0 : }
38 :
39 0 : PBrowserStreamChild::PBrowserStreamChild() :
40 : mId(0),
41 0 : mState(PBrowserStream::__Dead)
42 : {
43 0 : MOZ_COUNT_CTOR(PBrowserStreamChild);
44 0 : }
45 :
46 0 : PBrowserStreamChild::~PBrowserStreamChild()
47 : {
48 0 : MOZ_COUNT_DTOR(PBrowserStreamChild);
49 0 : }
50 :
51 : PPluginInstanceChild*
52 0 : PBrowserStreamChild::Manager()
53 : {
54 0 : return static_cast<PPluginInstanceChild*>(mManager);
55 : }
56 :
57 : PBrowserStream::State
58 0 : PBrowserStreamChild::state()
59 : {
60 0 : return mState;
61 : }
62 :
63 : bool
64 0 : PBrowserStreamChild::CallNPN_RequestRead(
65 : const IPCByteRanges& ranges,
66 : NPError* result)
67 : {
68 0 : PBrowserStream::Msg_NPN_RequestRead* __msg = new PBrowserStream::Msg_NPN_RequestRead();
69 :
70 0 : Write(ranges, __msg);
71 :
72 0 : (__msg)->set_routing_id(mId);
73 0 : (__msg)->set_rpc();
74 :
75 :
76 0 : Message __reply;
77 :
78 0 : if (mozilla::ipc::LoggingEnabled()) {
79 0 : (__msg)->Log("[PBrowserStreamChild] Sending ", stderr);
80 : }
81 0 : if ((!(PBrowserStream::Transition(mState, Trigger(Trigger::Recv, PBrowserStream::Msg_NPN_RequestRead__ID), (&(mState)))))) {
82 0 : NS_WARNING("bad state transition!");
83 : }
84 :
85 0 : bool __sendok = (mChannel)->Call(__msg, (&(__reply)));
86 0 : if ((!(__sendok))) {
87 0 : return false;
88 : }
89 :
90 0 : if (mozilla::ipc::LoggingEnabled()) {
91 0 : (static_cast<const PBrowserStream::Reply_NPN_RequestRead*>((&(__reply))))->Log("[PBrowserStreamChild] Received reply ", stderr);
92 : }
93 :
94 0 : void* __iter = 0;
95 0 : if ((!(Read(result, (&(__reply)), (&(__iter)))))) {
96 0 : FatalError("error deserializing (better message TODO)");
97 0 : return false;
98 : }
99 0 : (__reply).EndRead(__iter);
100 :
101 0 : return true;
102 : }
103 :
104 : bool
105 0 : PBrowserStreamChild::SendNPN_DestroyStream(const NPReason& reason)
106 : {
107 0 : PBrowserStream::Msg_NPN_DestroyStream* __msg = new PBrowserStream::Msg_NPN_DestroyStream();
108 :
109 0 : Write(reason, __msg);
110 :
111 0 : (__msg)->set_routing_id(mId);
112 :
113 :
114 :
115 0 : if (mozilla::ipc::LoggingEnabled()) {
116 0 : (__msg)->Log("[PBrowserStreamChild] Sending ", stderr);
117 : }
118 0 : if ((!(PBrowserStream::Transition(mState, Trigger(Trigger::Recv, PBrowserStream::Msg_NPN_DestroyStream__ID), (&(mState)))))) {
119 0 : NS_WARNING("bad state transition!");
120 : }
121 :
122 0 : bool __sendok = (mChannel)->Send(__msg);
123 0 : return __sendok;
124 : }
125 :
126 : bool
127 0 : PBrowserStreamChild::SendStreamDestroyed()
128 : {
129 0 : PBrowserStream::Msg_StreamDestroyed* __msg = new PBrowserStream::Msg_StreamDestroyed();
130 :
131 :
132 0 : (__msg)->set_routing_id(mId);
133 :
134 :
135 :
136 0 : if (mozilla::ipc::LoggingEnabled()) {
137 0 : (__msg)->Log("[PBrowserStreamChild] Sending ", stderr);
138 : }
139 0 : if ((!(PBrowserStream::Transition(mState, Trigger(Trigger::Recv, PBrowserStream::Msg_StreamDestroyed__ID), (&(mState)))))) {
140 0 : NS_WARNING("bad state transition!");
141 : }
142 :
143 0 : bool __sendok = (mChannel)->Send(__msg);
144 0 : return __sendok;
145 : }
146 :
147 : int32
148 0 : PBrowserStreamChild::Register(ChannelListener* aRouted)
149 : {
150 0 : return (mManager)->Register(aRouted);
151 : }
152 :
153 : int32
154 0 : PBrowserStreamChild::RegisterID(
155 : ChannelListener* aRouted,
156 : int32 aId)
157 : {
158 0 : return (mManager)->RegisterID(aRouted, aId);
159 : }
160 :
161 : ChannelListener*
162 0 : PBrowserStreamChild::Lookup(int32 aId)
163 : {
164 0 : return (mManager)->Lookup(aId);
165 : }
166 :
167 : void
168 0 : PBrowserStreamChild::Unregister(int32 aId)
169 : {
170 0 : return (mManager)->Unregister(aId);
171 : }
172 :
173 : void
174 0 : PBrowserStreamChild::RemoveManagee(
175 : int32 aProtocolId,
176 : ChannelListener* aListener)
177 : {
178 0 : NS_RUNTIMEABORT("unreached");
179 : return;
180 : }
181 :
182 : Shmem::SharedMemory*
183 0 : PBrowserStreamChild::CreateSharedMemory(
184 : size_t aSize,
185 : Shmem::SharedMemory::SharedMemoryType type,
186 : bool unsafe,
187 : Shmem::id_t* aId)
188 : {
189 0 : return (mManager)->CreateSharedMemory(aSize, type, unsafe, aId);
190 : }
191 :
192 : bool
193 0 : PBrowserStreamChild::AdoptSharedMemory(
194 : Shmem::SharedMemory* segment,
195 : Shmem::id_t* aId)
196 : {
197 0 : return (mManager)->AdoptSharedMemory(segment, aId);
198 : }
199 :
200 : Shmem::SharedMemory*
201 0 : PBrowserStreamChild::LookupSharedMemory(Shmem::id_t aId)
202 : {
203 0 : return (mManager)->LookupSharedMemory(aId);
204 : }
205 :
206 : bool
207 0 : PBrowserStreamChild::IsTrackingSharedMemory(Shmem::SharedMemory* segment)
208 : {
209 0 : return (mManager)->IsTrackingSharedMemory(segment);
210 : }
211 :
212 : bool
213 0 : PBrowserStreamChild::DestroySharedMemory(Shmem& aShmem)
214 : {
215 0 : return (mManager)->DestroySharedMemory(aShmem);
216 : }
217 :
218 : ProcessHandle
219 0 : PBrowserStreamChild::OtherProcess() const
220 : {
221 0 : return (mManager)->OtherProcess();
222 : }
223 :
224 : AsyncChannel*
225 0 : PBrowserStreamChild::GetIPCChannel()
226 : {
227 0 : return mChannel;
228 : }
229 :
230 : PBrowserStreamChild::Result
231 0 : PBrowserStreamChild::OnMessageReceived(const Message& __msg)
232 : {
233 0 : switch ((__msg).type()) {
234 : case PBrowserStream::Msg_Write__ID:
235 : {
236 0 : (const_cast<Message&>(__msg)).set_name("PBrowserStream::Msg_Write");
237 0 : if (mozilla::ipc::LoggingEnabled()) {
238 0 : (static_cast<const PBrowserStream::Msg_Write*>((&(__msg))))->Log("[PBrowserStreamChild] Received ", stderr);
239 : }
240 :
241 0 : void* __iter = 0;
242 : int32_t offset;
243 0 : Buffer data;
244 : uint32_t newlength;
245 :
246 0 : if ((!(Read((&(offset)), (&(__msg)), (&(__iter)))))) {
247 0 : FatalError("error deserializing (better message TODO)");
248 0 : return MsgValueError;
249 : }
250 0 : if ((!(Read((&(data)), (&(__msg)), (&(__iter)))))) {
251 0 : FatalError("error deserializing (better message TODO)");
252 0 : return MsgValueError;
253 : }
254 0 : if ((!(Read((&(newlength)), (&(__msg)), (&(__iter)))))) {
255 0 : FatalError("error deserializing (better message TODO)");
256 0 : return MsgValueError;
257 : }
258 0 : (__msg).EndRead(__iter);
259 0 : if ((!(PBrowserStream::Transition(mState, Trigger(Trigger::Send, PBrowserStream::Msg_Write__ID), (&(mState)))))) {
260 0 : NS_WARNING("bad state transition!");
261 : }
262 0 : if ((!(RecvWrite(offset, data, newlength)))) {
263 0 : return MsgProcessingError;
264 : }
265 :
266 0 : return MsgProcessed;
267 : }
268 : case PBrowserStream::Msg_NPP_StreamAsFile__ID:
269 : {
270 0 : (const_cast<Message&>(__msg)).set_name("PBrowserStream::Msg_NPP_StreamAsFile");
271 0 : if (mozilla::ipc::LoggingEnabled()) {
272 0 : (static_cast<const PBrowserStream::Msg_NPP_StreamAsFile*>((&(__msg))))->Log("[PBrowserStreamChild] Received ", stderr);
273 : }
274 :
275 0 : void* __iter = 0;
276 0 : nsCString fname;
277 :
278 0 : if ((!(Read((&(fname)), (&(__msg)), (&(__iter)))))) {
279 0 : FatalError("error deserializing (better message TODO)");
280 0 : return MsgValueError;
281 : }
282 0 : (__msg).EndRead(__iter);
283 0 : if ((!(PBrowserStream::Transition(mState, Trigger(Trigger::Send, PBrowserStream::Msg_NPP_StreamAsFile__ID), (&(mState)))))) {
284 0 : NS_WARNING("bad state transition!");
285 : }
286 0 : if ((!(RecvNPP_StreamAsFile(fname)))) {
287 0 : return MsgProcessingError;
288 : }
289 :
290 0 : return MsgProcessed;
291 : }
292 : case PBrowserStream::Msg_NPP_DestroyStream__ID:
293 : {
294 0 : (const_cast<Message&>(__msg)).set_name("PBrowserStream::Msg_NPP_DestroyStream");
295 0 : if (mozilla::ipc::LoggingEnabled()) {
296 0 : (static_cast<const PBrowserStream::Msg_NPP_DestroyStream*>((&(__msg))))->Log("[PBrowserStreamChild] Received ", stderr);
297 : }
298 :
299 0 : void* __iter = 0;
300 : NPReason reason;
301 :
302 0 : if ((!(Read((&(reason)), (&(__msg)), (&(__iter)))))) {
303 0 : FatalError("error deserializing (better message TODO)");
304 0 : return MsgValueError;
305 : }
306 0 : (__msg).EndRead(__iter);
307 0 : if ((!(PBrowserStream::Transition(mState, Trigger(Trigger::Send, PBrowserStream::Msg_NPP_DestroyStream__ID), (&(mState)))))) {
308 0 : NS_WARNING("bad state transition!");
309 : }
310 0 : if ((!(RecvNPP_DestroyStream(reason)))) {
311 0 : return MsgProcessingError;
312 : }
313 :
314 0 : return MsgProcessed;
315 : }
316 : case PBrowserStream::Msg___delete____ID:
317 : {
318 0 : (const_cast<Message&>(__msg)).set_name("PBrowserStream::Msg___delete__");
319 0 : if (mozilla::ipc::LoggingEnabled()) {
320 0 : (static_cast<const PBrowserStream::Msg___delete__*>((&(__msg))))->Log("[PBrowserStreamChild] Received ", stderr);
321 : }
322 :
323 0 : void* __iter = 0;
324 : PBrowserStreamChild* actor;
325 :
326 0 : if ((!(Read((&(actor)), (&(__msg)), (&(__iter)), false)))) {
327 0 : FatalError("error deserializing (better message TODO)");
328 0 : return MsgValueError;
329 : }
330 0 : (__msg).EndRead(__iter);
331 0 : if ((!(PBrowserStream::Transition(mState, Trigger(Trigger::Send, PBrowserStream::Msg___delete____ID), (&(mState)))))) {
332 0 : NS_WARNING("bad state transition!");
333 : }
334 0 : if ((!(Recv__delete__()))) {
335 0 : return MsgProcessingError;
336 : }
337 :
338 0 : (actor)->DestroySubtree(Deletion);
339 0 : (actor)->DeallocSubtree();
340 0 : ((actor)->mManager)->RemoveManagee(PBrowserStreamMsgStart, actor);
341 :
342 :
343 0 : return MsgProcessed;
344 : }
345 : default:
346 : {
347 0 : return MsgNotKnown;
348 : }
349 : }
350 : }
351 :
352 : PBrowserStreamChild::Result
353 0 : PBrowserStreamChild::OnMessageReceived(
354 : const Message& __msg,
355 : Message*& __reply)
356 : {
357 0 : return MsgNotKnown;
358 : }
359 :
360 : PBrowserStreamChild::Result
361 0 : PBrowserStreamChild::OnCallReceived(
362 : const Message& __msg,
363 : Message*& __reply)
364 : {
365 0 : return MsgNotKnown;
366 : }
367 :
368 : void
369 0 : PBrowserStreamChild::OnProcessingError(Result code)
370 : {
371 0 : NS_RUNTIMEABORT("`OnProcessingError' called on non-toplevel actor");
372 0 : }
373 :
374 : bool
375 0 : PBrowserStreamChild::OnReplyTimeout()
376 : {
377 0 : NS_RUNTIMEABORT("`OnReplyTimeout' called on non-toplevel actor");
378 0 : return false;
379 : }
380 :
381 : void
382 0 : PBrowserStreamChild::OnChannelClose()
383 : {
384 0 : NS_RUNTIMEABORT("`OnClose' called on non-toplevel actor");
385 0 : }
386 :
387 : void
388 0 : PBrowserStreamChild::OnChannelError()
389 : {
390 0 : NS_RUNTIMEABORT("`OnError' called on non-toplevel actor");
391 0 : }
392 :
393 : void
394 0 : PBrowserStreamChild::OnChannelConnected(int32 pid)
395 : {
396 0 : NS_RUNTIMEABORT("'OnConnected' called on non-toplevel actor");
397 0 : }
398 :
399 : bool
400 0 : PBrowserStreamChild::AllocShmem(
401 : size_t aSize,
402 : Shmem::SharedMemory::SharedMemoryType aType,
403 : Shmem* aMem)
404 : {
405 : Shmem::id_t aId;
406 0 : nsAutoPtr<Shmem::SharedMemory> rawmem(CreateSharedMemory(aSize, aType, false, (&(aId))));
407 0 : if ((!(rawmem))) {
408 0 : return false;
409 : }
410 :
411 0 : (*(aMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), (rawmem).forget(), aId);
412 0 : return true;
413 : }
414 :
415 : bool
416 0 : PBrowserStreamChild::AllocUnsafeShmem(
417 : size_t aSize,
418 : Shmem::SharedMemory::SharedMemoryType aType,
419 : Shmem* aMem)
420 : {
421 : Shmem::id_t aId;
422 0 : nsAutoPtr<Shmem::SharedMemory> rawmem(CreateSharedMemory(aSize, aType, true, (&(aId))));
423 0 : if ((!(rawmem))) {
424 0 : return false;
425 : }
426 :
427 0 : (*(aMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), (rawmem).forget(), aId);
428 0 : return true;
429 : }
430 :
431 : bool
432 0 : PBrowserStreamChild::AdoptShmem(
433 : Shmem& aMem,
434 : Shmem* aOutMem)
435 : {
436 0 : Shmem::SharedMemory* rawmem = (aMem).Segment(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead());
437 0 : if (((!(rawmem))) || (IsTrackingSharedMemory(rawmem))) {
438 0 : NS_RUNTIMEABORT("bad Shmem");
439 : }
440 :
441 : Shmem::id_t aId;
442 0 : if ((!(AdoptSharedMemory(rawmem, (&(aId)))))) {
443 0 : return false;
444 : }
445 :
446 0 : (*(aOutMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), rawmem, aId);
447 0 : return true;
448 : }
449 :
450 : bool
451 0 : PBrowserStreamChild::DeallocShmem(Shmem& aMem)
452 : {
453 0 : bool ok = DestroySharedMemory(aMem);
454 0 : (aMem).forget(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead());
455 0 : return ok;
456 : }
457 :
458 : void
459 0 : PBrowserStreamChild::FatalError(const char* const msg) const
460 : {
461 : // Virtual method to prevent inlining.
462 : // This give us better error reporting.
463 : // See bug 589371
464 :
465 0 : NS_ERROR("IPDL error:");
466 0 : NS_ERROR(msg);
467 :
468 0 : NS_RUNTIMEABORT("[PBrowserStreamChild] abort()ing as a result");
469 0 : }
470 :
471 : void
472 0 : PBrowserStreamChild::DestroySubtree(ActorDestroyReason why)
473 : {
474 : // Unregister from our manager.
475 0 : Unregister(mId);
476 0 : mId = 1;
477 :
478 : // Finally, destroy "us".
479 0 : ActorDestroy(why);
480 0 : }
481 :
482 : void
483 0 : PBrowserStreamChild::DeallocSubtree()
484 : {
485 0 : }
486 :
487 : void
488 0 : PBrowserStreamChild::Write(
489 : PBrowserStreamChild* __v,
490 : Message* __msg,
491 : bool __nullable)
492 : {
493 : int32 id;
494 0 : if ((!(__v))) {
495 0 : if ((!(__nullable))) {
496 0 : NS_RUNTIMEABORT("NULL actor value passed to non-nullable param");
497 : }
498 0 : id = 0;
499 : }
500 : else {
501 0 : id = (__v)->mId;
502 0 : if ((1) == (id)) {
503 0 : NS_RUNTIMEABORT("actor has been |delete|d");
504 : }
505 : }
506 :
507 0 : Write(id, __msg);
508 0 : }
509 :
510 : bool
511 0 : PBrowserStreamChild::Read(
512 : PBrowserStreamChild** __v,
513 : const Message* __msg,
514 : void** __iter,
515 : bool __nullable)
516 : {
517 : int32 id;
518 0 : if ((!(Read((&(id)), __msg, __iter)))) {
519 0 : return false;
520 : }
521 0 : if (((1) == (id)) || (((0) == (id)) && ((!(__nullable))))) {
522 0 : return false;
523 : }
524 :
525 0 : if ((0) == (id)) {
526 0 : (*(__v)) = 0;
527 : }
528 : else {
529 0 : (*(__v)) = static_cast<PBrowserStreamChild*>(Lookup(id));
530 0 : if ((!((*(__v))))) {
531 0 : return false;
532 : }
533 : }
534 0 : return true;
535 : }
536 :
537 :
538 :
539 : } // namespace plugins
540 : } // namespace mozilla
|