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