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