1 : //
2 : // Automatically generated by ipdlc.
3 : // Edit at your own risk
4 : //
5 :
6 : #ifndef PMemoryReportRequestParent_h
7 : #define PMemoryReportRequestParent_h
8 :
9 : #include "mozilla/dom/PMemoryReportRequest.h"
10 : namespace mozilla {
11 : namespace dom {
12 : class PContentParent;
13 : } // namespace dom
14 : } // namespace mozilla
15 :
16 : #ifdef DEBUG
17 : #include "prenv.h"
18 : #endif // DEBUG
19 : #include "base/id_map.h"
20 : #include "mozilla/ipc/RPCChannel.h"
21 :
22 :
23 : namespace mozilla {
24 : namespace dom {
25 : class PContentParent;
26 : } // namespace dom
27 : } // namespace mozilla
28 :
29 : namespace mozilla {
30 : namespace dom {
31 :
32 :
33 : class /*NS_ABSTRACT_CLASS*/ PMemoryReportRequestParent :
34 : protected mozilla::ipc::RPCChannel::RPCListener,
35 : protected mozilla::ipc::IProtocolManager<mozilla::ipc::RPCChannel::RPCListener>
36 : {
37 : friend class mozilla::dom::PContentParent;
38 :
39 : protected:
40 : typedef mozilla::ipc::ActorHandle ActorHandle;
41 : typedef mozilla::dom::MemoryReport MemoryReport;
42 : typedef mozilla::ipc::Shmem Shmem;
43 : typedef mozilla::dom::PContentParent PContentParent;
44 : typedef base::ProcessId ProcessId;
45 : typedef mozilla::ipc::ProtocolId ProtocolId;
46 : typedef mozilla::ipc::Transport Transport;
47 : typedef mozilla::ipc::TransportDescriptor TransportDescriptor;
48 :
49 : typedef PMemoryReportRequest::State State;
50 :
51 : virtual bool
52 : Recv__delete__(const InfallibleTArray<MemoryReport>& report);
53 :
54 : virtual void
55 : ActorDestroy(ActorDestroyReason why);
56 :
57 : public:
58 : typedef IPC::Message Message;
59 : typedef mozilla::ipc::RPCChannel Channel;
60 : typedef mozilla::ipc::RPCChannel::RPCListener ChannelListener;
61 : typedef base::ProcessHandle ProcessHandle;
62 : typedef mozilla::ipc::AsyncChannel AsyncChannel;
63 : typedef mozilla::ipc::SharedMemory SharedMemory;
64 : typedef mozilla::ipc::Trigger Trigger;
65 :
66 : public:
67 : PMemoryReportRequestParent();
68 :
69 : virtual ~PMemoryReportRequestParent();
70 :
71 : PContentParent*
72 : Manager();
73 :
74 : PMemoryReportRequest::State
75 : state();
76 :
77 : virtual int32
78 : Register(ChannelListener* aRouted);
79 : virtual int32
80 : RegisterID(
81 : ChannelListener* aRouted,
82 : int32 aId);
83 : virtual ChannelListener*
84 : Lookup(int32 aId);
85 : virtual void
86 : Unregister(int32 aId);
87 : virtual void
88 : RemoveManagee(
89 : int32 aProtocolId,
90 : ChannelListener* aListener);
91 : virtual Shmem::SharedMemory*
92 : CreateSharedMemory(
93 : size_t aSize,
94 : Shmem::SharedMemory::SharedMemoryType type,
95 : bool unsafe,
96 : Shmem::id_t* aId);
97 : virtual bool
98 : AdoptSharedMemory(
99 : Shmem::SharedMemory* segment,
100 : Shmem::id_t* aId);
101 : virtual Shmem::SharedMemory*
102 : LookupSharedMemory(Shmem::id_t aId);
103 : virtual bool
104 : IsTrackingSharedMemory(Shmem::SharedMemory* segment);
105 : virtual bool
106 : DestroySharedMemory(Shmem& aShmem);
107 : virtual ProcessHandle
108 : OtherProcess() const;
109 : virtual AsyncChannel*
110 : GetIPCChannel();
111 :
112 : virtual Result
113 : OnMessageReceived(const Message& __msg);
114 :
115 : virtual Result
116 : OnMessageReceived(
117 : const Message& __msg,
118 : Message*& __reply);
119 :
120 : virtual Result
121 : OnCallReceived(
122 : const Message& __msg,
123 : Message*& __reply);
124 :
125 : void
126 : OnProcessingError(Result code);
127 :
128 : bool
129 : OnReplyTimeout();
130 :
131 : void
132 : OnChannelClose();
133 :
134 : void
135 : OnChannelError();
136 :
137 : void
138 : OnChannelConnected(int32 pid);
139 :
140 : // Methods for managing shmem
141 : bool
142 : AllocShmem(
143 : size_t aSize,
144 : Shmem::SharedMemory::SharedMemoryType aType,
145 : Shmem* aMem);
146 :
147 : bool
148 : AllocUnsafeShmem(
149 : size_t aSize,
150 : Shmem::SharedMemory::SharedMemoryType aType,
151 : Shmem* aMem);
152 :
153 : bool
154 : AdoptShmem(
155 : Shmem& aMem,
156 : Shmem* aOutMem);
157 :
158 : bool
159 : DeallocShmem(Shmem& aMem);
160 :
161 : private:
162 : virtual void
163 : FatalError(const char* const msg) const;
164 :
165 : void
166 : DestroySubtree(ActorDestroyReason why);
167 :
168 : void
169 : DeallocSubtree();
170 :
171 : template<typename T>
172 : void
173 0 : Write(
174 : const T& __v,
175 : Message* __msg)
176 : {
177 0 : IPC::WriteParam(__msg, __v);
178 0 : }
179 :
180 : template<typename T>
181 : bool
182 0 : Read(
183 : T* __v,
184 : const Message* __msg,
185 : void** __iter)
186 : {
187 0 : return IPC::ReadParam(__msg, __iter, __v);
188 : }
189 :
190 : void
191 : Write(
192 : const InfallibleTArray<MemoryReport>& __v,
193 : Message* __msg);
194 :
195 : bool
196 : Read(
197 : InfallibleTArray<MemoryReport>* __v,
198 : const Message* __msg,
199 : void** __iter) NS_WARN_UNUSED_RESULT;
200 :
201 : void
202 : Write(
203 : PMemoryReportRequestParent* __v,
204 : Message* __msg,
205 : bool __nullable);
206 :
207 : bool
208 : Read(
209 : PMemoryReportRequestParent** __v,
210 : const Message* __msg,
211 : void** __iter,
212 : bool __nullable) NS_WARN_UNUSED_RESULT;
213 :
214 : void
215 : Write(
216 : const MemoryReport& __v,
217 : Message* __msg);
218 :
219 : bool
220 : Read(
221 : MemoryReport* __v,
222 : const Message* __msg,
223 : void** __iter) NS_WARN_UNUSED_RESULT;
224 :
225 : Channel* mChannel;
226 : int32 mId;
227 : mozilla::ipc::IProtocolManager<mozilla::ipc::RPCChannel::RPCListener>* mManager;
228 : State mState;
229 : };
230 :
231 :
232 : } // namespace dom
233 : } // namespace mozilla
234 :
235 : #if 0
236 :
237 : //-----------------------------------------------------------------------------
238 : // Skeleton implementation of abstract actor class
239 :
240 : // Header file contents
241 : namespace mozilla {
242 : namespace dom {
243 : class MemoryReportRequestParent :
244 : public PMemoryReportRequestParent
245 : {
246 : MemoryReportRequestParent();
247 : virtual ~MemoryReportRequestParent();
248 : };
249 : } // namespace dom
250 : } // namespace mozilla
251 :
252 :
253 : // C++ file contents
254 : namespace mozilla {
255 : namespace dom {
256 : MemoryReportRequestParent::MemoryReportRequestParent()
257 : {
258 : MOZ_COUNT_CTOR(MemoryReportRequestParent);
259 : }
260 :
261 : MemoryReportRequestParent::~MemoryReportRequestParent()
262 : {
263 : MOZ_COUNT_DTOR(MemoryReportRequestParent);
264 : }
265 :
266 : } // namespace dom
267 : } // namespace mozilla
268 : #endif // if 0
269 :
270 : #endif // ifndef PMemoryReportRequestParent_h
|