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