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