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