Line data Source code
1 : /*
2 : * DO NOT EDIT. THIS FILE IS GENERATED FROM ../../../dist/idl/nsIAsyncShutdown.idl
3 : */
4 :
5 : #ifndef __gen_nsIAsyncShutdown_h__
6 : #define __gen_nsIAsyncShutdown_h__
7 :
8 :
9 : #ifndef __gen_nsISupports_h__
10 : #include "nsISupports.h"
11 : #endif
12 :
13 : #ifndef __gen_nsIPropertyBag_h__
14 : #include "nsIPropertyBag.h"
15 : #endif
16 :
17 : #ifndef __gen_nsIVariant_h__
18 : #include "nsIVariant.h"
19 : #endif
20 :
21 : #include "js/Value.h"
22 :
23 : /* For IDL files that don't want to include root IDL files. */
24 : #ifndef NS_NO_VTABLE
25 : #define NS_NO_VTABLE
26 : #endif
27 : class nsIAsyncShutdownClient; /* forward declaration */
28 :
29 :
30 : /* starting interface: nsIAsyncShutdownBlocker */
31 : #define NS_IASYNCSHUTDOWNBLOCKER_IID_STR "4ef43f29-6715-4b57-a750-2ff83695ddce"
32 :
33 : #define NS_IASYNCSHUTDOWNBLOCKER_IID \
34 : {0x4ef43f29, 0x6715, 0x4b57, \
35 : { 0xa7, 0x50, 0x2f, 0xf8, 0x36, 0x95, 0xdd, 0xce }}
36 :
37 3 : class NS_NO_VTABLE nsIAsyncShutdownBlocker : public nsISupports {
38 : public:
39 :
40 : NS_DECLARE_STATIC_IID_ACCESSOR(NS_IASYNCSHUTDOWNBLOCKER_IID)
41 :
42 : /* readonly attribute AString name; */
43 : NS_IMETHOD GetName(nsAString & aName) = 0;
44 :
45 : /* void blockShutdown (in nsIAsyncShutdownClient aBarrierClient); */
46 : NS_IMETHOD BlockShutdown(nsIAsyncShutdownClient *aBarrierClient) = 0;
47 :
48 : /* readonly attribute nsIPropertyBag state; */
49 : NS_IMETHOD GetState(nsIPropertyBag * *aState) = 0;
50 :
51 : };
52 :
53 : NS_DEFINE_STATIC_IID_ACCESSOR(nsIAsyncShutdownBlocker, NS_IASYNCSHUTDOWNBLOCKER_IID)
54 :
55 : /* Use this macro when declaring classes that implement this interface. */
56 : #define NS_DECL_NSIASYNCSHUTDOWNBLOCKER \
57 : NS_IMETHOD GetName(nsAString & aName) override; \
58 : NS_IMETHOD BlockShutdown(nsIAsyncShutdownClient *aBarrierClient) override; \
59 : NS_IMETHOD GetState(nsIPropertyBag * *aState) override;
60 :
61 : /* Use this macro when declaring the members of this interface when the
62 : class doesn't implement the interface. This is useful for forwarding. */
63 : #define NS_DECL_NON_VIRTUAL_NSIASYNCSHUTDOWNBLOCKER \
64 : nsresult GetName(nsAString & aName); \
65 : nsresult BlockShutdown(nsIAsyncShutdownClient *aBarrierClient); \
66 : nsresult GetState(nsIPropertyBag * *aState);
67 :
68 : /* Use this macro to declare functions that forward the behavior of this interface to another object. */
69 : #define NS_FORWARD_NSIASYNCSHUTDOWNBLOCKER(_to) \
70 : NS_IMETHOD GetName(nsAString & aName) override { return _to GetName(aName); } \
71 : NS_IMETHOD BlockShutdown(nsIAsyncShutdownClient *aBarrierClient) override { return _to BlockShutdown(aBarrierClient); } \
72 : NS_IMETHOD GetState(nsIPropertyBag * *aState) override { return _to GetState(aState); }
73 :
74 : /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
75 : #define NS_FORWARD_SAFE_NSIASYNCSHUTDOWNBLOCKER(_to) \
76 : NS_IMETHOD GetName(nsAString & aName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
77 : NS_IMETHOD BlockShutdown(nsIAsyncShutdownClient *aBarrierClient) override { return !_to ? NS_ERROR_NULL_POINTER : _to->BlockShutdown(aBarrierClient); } \
78 : NS_IMETHOD GetState(nsIPropertyBag * *aState) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); }
79 :
80 : #if 0
81 : /* Use the code below as a template for the implementation class for this interface. */
82 :
83 : /* Header file */
84 : class nsAsyncShutdownBlocker : public nsIAsyncShutdownBlocker
85 : {
86 : public:
87 : NS_DECL_ISUPPORTS
88 : NS_DECL_NSIASYNCSHUTDOWNBLOCKER
89 :
90 : nsAsyncShutdownBlocker();
91 :
92 : private:
93 : ~nsAsyncShutdownBlocker();
94 :
95 : protected:
96 : /* additional members */
97 : };
98 :
99 : /* Implementation file */
100 : NS_IMPL_ISUPPORTS(nsAsyncShutdownBlocker, nsIAsyncShutdownBlocker)
101 :
102 : nsAsyncShutdownBlocker::nsAsyncShutdownBlocker()
103 : {
104 : /* member initializers and constructor code */
105 : }
106 :
107 : nsAsyncShutdownBlocker::~nsAsyncShutdownBlocker()
108 : {
109 : /* destructor code */
110 : }
111 :
112 : /* readonly attribute AString name; */
113 : NS_IMETHODIMP nsAsyncShutdownBlocker::GetName(nsAString & aName)
114 : {
115 : return NS_ERROR_NOT_IMPLEMENTED;
116 : }
117 :
118 : /* void blockShutdown (in nsIAsyncShutdownClient aBarrierClient); */
119 : NS_IMETHODIMP nsAsyncShutdownBlocker::BlockShutdown(nsIAsyncShutdownClient *aBarrierClient)
120 : {
121 : return NS_ERROR_NOT_IMPLEMENTED;
122 : }
123 :
124 : /* readonly attribute nsIPropertyBag state; */
125 : NS_IMETHODIMP nsAsyncShutdownBlocker::GetState(nsIPropertyBag * *aState)
126 : {
127 : return NS_ERROR_NOT_IMPLEMENTED;
128 : }
129 :
130 : /* End of implementation class template. */
131 : #endif
132 :
133 :
134 : /* starting interface: nsIAsyncShutdownClient */
135 : #define NS_IASYNCSHUTDOWNCLIENT_IID_STR "d2031049-b990-43a2-95be-59f8a3ca5954"
136 :
137 : #define NS_IASYNCSHUTDOWNCLIENT_IID \
138 : {0xd2031049, 0xb990, 0x43a2, \
139 : { 0x95, 0xbe, 0x59, 0xf8, 0xa3, 0xca, 0x59, 0x54 }}
140 :
141 : class NS_NO_VTABLE nsIAsyncShutdownClient : public nsISupports {
142 : public:
143 :
144 : NS_DECLARE_STATIC_IID_ACCESSOR(NS_IASYNCSHUTDOWNCLIENT_IID)
145 :
146 : /* readonly attribute AString name; */
147 : NS_IMETHOD GetName(nsAString & aName) = 0;
148 :
149 : /* void addBlocker (in nsIAsyncShutdownBlocker aBlocker, in AString aFileName, in long aLineNumber, in AString aStack); */
150 : NS_IMETHOD AddBlocker(nsIAsyncShutdownBlocker *aBlocker, const nsAString & aFileName, int32_t aLineNumber, const nsAString & aStack) = 0;
151 :
152 : /* void removeBlocker (in nsIAsyncShutdownBlocker aBlocker); */
153 : NS_IMETHOD RemoveBlocker(nsIAsyncShutdownBlocker *aBlocker) = 0;
154 :
155 : /* readonly attribute jsval jsclient; */
156 : NS_IMETHOD GetJsclient(JS::MutableHandleValue aJsclient) = 0;
157 :
158 : };
159 :
160 : NS_DEFINE_STATIC_IID_ACCESSOR(nsIAsyncShutdownClient, NS_IASYNCSHUTDOWNCLIENT_IID)
161 :
162 : /* Use this macro when declaring classes that implement this interface. */
163 : #define NS_DECL_NSIASYNCSHUTDOWNCLIENT \
164 : NS_IMETHOD GetName(nsAString & aName) override; \
165 : NS_IMETHOD AddBlocker(nsIAsyncShutdownBlocker *aBlocker, const nsAString & aFileName, int32_t aLineNumber, const nsAString & aStack) override; \
166 : NS_IMETHOD RemoveBlocker(nsIAsyncShutdownBlocker *aBlocker) override; \
167 : NS_IMETHOD GetJsclient(JS::MutableHandleValue aJsclient) override;
168 :
169 : /* Use this macro when declaring the members of this interface when the
170 : class doesn't implement the interface. This is useful for forwarding. */
171 : #define NS_DECL_NON_VIRTUAL_NSIASYNCSHUTDOWNCLIENT \
172 : nsresult GetName(nsAString & aName); \
173 : nsresult AddBlocker(nsIAsyncShutdownBlocker *aBlocker, const nsAString & aFileName, int32_t aLineNumber, const nsAString & aStack); \
174 : nsresult RemoveBlocker(nsIAsyncShutdownBlocker *aBlocker); \
175 : nsresult GetJsclient(JS::MutableHandleValue aJsclient);
176 :
177 : /* Use this macro to declare functions that forward the behavior of this interface to another object. */
178 : #define NS_FORWARD_NSIASYNCSHUTDOWNCLIENT(_to) \
179 : NS_IMETHOD GetName(nsAString & aName) override { return _to GetName(aName); } \
180 : NS_IMETHOD AddBlocker(nsIAsyncShutdownBlocker *aBlocker, const nsAString & aFileName, int32_t aLineNumber, const nsAString & aStack) override { return _to AddBlocker(aBlocker, aFileName, aLineNumber, aStack); } \
181 : NS_IMETHOD RemoveBlocker(nsIAsyncShutdownBlocker *aBlocker) override { return _to RemoveBlocker(aBlocker); } \
182 : NS_IMETHOD GetJsclient(JS::MutableHandleValue aJsclient) override { return _to GetJsclient(aJsclient); }
183 :
184 : /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
185 : #define NS_FORWARD_SAFE_NSIASYNCSHUTDOWNCLIENT(_to) \
186 : NS_IMETHOD GetName(nsAString & aName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
187 : NS_IMETHOD AddBlocker(nsIAsyncShutdownBlocker *aBlocker, const nsAString & aFileName, int32_t aLineNumber, const nsAString & aStack) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddBlocker(aBlocker, aFileName, aLineNumber, aStack); } \
188 : NS_IMETHOD RemoveBlocker(nsIAsyncShutdownBlocker *aBlocker) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveBlocker(aBlocker); } \
189 : NS_IMETHOD GetJsclient(JS::MutableHandleValue aJsclient) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJsclient(aJsclient); }
190 :
191 : #if 0
192 : /* Use the code below as a template for the implementation class for this interface. */
193 :
194 : /* Header file */
195 : class nsAsyncShutdownClient : public nsIAsyncShutdownClient
196 : {
197 : public:
198 : NS_DECL_ISUPPORTS
199 : NS_DECL_NSIASYNCSHUTDOWNCLIENT
200 :
201 : nsAsyncShutdownClient();
202 :
203 : private:
204 : ~nsAsyncShutdownClient();
205 :
206 : protected:
207 : /* additional members */
208 : };
209 :
210 : /* Implementation file */
211 : NS_IMPL_ISUPPORTS(nsAsyncShutdownClient, nsIAsyncShutdownClient)
212 :
213 : nsAsyncShutdownClient::nsAsyncShutdownClient()
214 : {
215 : /* member initializers and constructor code */
216 : }
217 :
218 : nsAsyncShutdownClient::~nsAsyncShutdownClient()
219 : {
220 : /* destructor code */
221 : }
222 :
223 : /* readonly attribute AString name; */
224 : NS_IMETHODIMP nsAsyncShutdownClient::GetName(nsAString & aName)
225 : {
226 : return NS_ERROR_NOT_IMPLEMENTED;
227 : }
228 :
229 : /* void addBlocker (in nsIAsyncShutdownBlocker aBlocker, in AString aFileName, in long aLineNumber, in AString aStack); */
230 : NS_IMETHODIMP nsAsyncShutdownClient::AddBlocker(nsIAsyncShutdownBlocker *aBlocker, const nsAString & aFileName, int32_t aLineNumber, const nsAString & aStack)
231 : {
232 : return NS_ERROR_NOT_IMPLEMENTED;
233 : }
234 :
235 : /* void removeBlocker (in nsIAsyncShutdownBlocker aBlocker); */
236 : NS_IMETHODIMP nsAsyncShutdownClient::RemoveBlocker(nsIAsyncShutdownBlocker *aBlocker)
237 : {
238 : return NS_ERROR_NOT_IMPLEMENTED;
239 : }
240 :
241 : /* readonly attribute jsval jsclient; */
242 : NS_IMETHODIMP nsAsyncShutdownClient::GetJsclient(JS::MutableHandleValue aJsclient)
243 : {
244 : return NS_ERROR_NOT_IMPLEMENTED;
245 : }
246 :
247 : /* End of implementation class template. */
248 : #endif
249 :
250 :
251 : /* starting interface: nsIAsyncShutdownCompletionCallback */
252 : #define NS_IASYNCSHUTDOWNCOMPLETIONCALLBACK_IID_STR "910c9309-1da0-4dd0-8bdb-a325a38c604e"
253 :
254 : #define NS_IASYNCSHUTDOWNCOMPLETIONCALLBACK_IID \
255 : {0x910c9309, 0x1da0, 0x4dd0, \
256 : { 0x8b, 0xdb, 0xa3, 0x25, 0xa3, 0x8c, 0x60, 0x4e }}
257 :
258 1 : class NS_NO_VTABLE nsIAsyncShutdownCompletionCallback : public nsISupports {
259 : public:
260 :
261 : NS_DECLARE_STATIC_IID_ACCESSOR(NS_IASYNCSHUTDOWNCOMPLETIONCALLBACK_IID)
262 :
263 : /* void done (); */
264 : NS_IMETHOD Done(void) = 0;
265 :
266 : };
267 :
268 : NS_DEFINE_STATIC_IID_ACCESSOR(nsIAsyncShutdownCompletionCallback, NS_IASYNCSHUTDOWNCOMPLETIONCALLBACK_IID)
269 :
270 : /* Use this macro when declaring classes that implement this interface. */
271 : #define NS_DECL_NSIASYNCSHUTDOWNCOMPLETIONCALLBACK \
272 : NS_IMETHOD Done(void) override;
273 :
274 : /* Use this macro when declaring the members of this interface when the
275 : class doesn't implement the interface. This is useful for forwarding. */
276 : #define NS_DECL_NON_VIRTUAL_NSIASYNCSHUTDOWNCOMPLETIONCALLBACK \
277 : nsresult Done(void);
278 :
279 : /* Use this macro to declare functions that forward the behavior of this interface to another object. */
280 : #define NS_FORWARD_NSIASYNCSHUTDOWNCOMPLETIONCALLBACK(_to) \
281 : NS_IMETHOD Done(void) override { return _to Done(); }
282 :
283 : /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
284 : #define NS_FORWARD_SAFE_NSIASYNCSHUTDOWNCOMPLETIONCALLBACK(_to) \
285 : NS_IMETHOD Done(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Done(); }
286 :
287 : #if 0
288 : /* Use the code below as a template for the implementation class for this interface. */
289 :
290 : /* Header file */
291 : class nsAsyncShutdownCompletionCallback : public nsIAsyncShutdownCompletionCallback
292 : {
293 : public:
294 : NS_DECL_ISUPPORTS
295 : NS_DECL_NSIASYNCSHUTDOWNCOMPLETIONCALLBACK
296 :
297 : nsAsyncShutdownCompletionCallback();
298 :
299 : private:
300 : ~nsAsyncShutdownCompletionCallback();
301 :
302 : protected:
303 : /* additional members */
304 : };
305 :
306 : /* Implementation file */
307 : NS_IMPL_ISUPPORTS(nsAsyncShutdownCompletionCallback, nsIAsyncShutdownCompletionCallback)
308 :
309 : nsAsyncShutdownCompletionCallback::nsAsyncShutdownCompletionCallback()
310 : {
311 : /* member initializers and constructor code */
312 : }
313 :
314 : nsAsyncShutdownCompletionCallback::~nsAsyncShutdownCompletionCallback()
315 : {
316 : /* destructor code */
317 : }
318 :
319 : /* void done (); */
320 : NS_IMETHODIMP nsAsyncShutdownCompletionCallback::Done()
321 : {
322 : return NS_ERROR_NOT_IMPLEMENTED;
323 : }
324 :
325 : /* End of implementation class template. */
326 : #endif
327 :
328 :
329 : /* starting interface: nsIAsyncShutdownBarrier */
330 : #define NS_IASYNCSHUTDOWNBARRIER_IID_STR "50fa8a86-9c91-4256-8389-17d310adec90"
331 :
332 : #define NS_IASYNCSHUTDOWNBARRIER_IID \
333 : {0x50fa8a86, 0x9c91, 0x4256, \
334 : { 0x83, 0x89, 0x17, 0xd3, 0x10, 0xad, 0xec, 0x90 }}
335 :
336 : class NS_NO_VTABLE nsIAsyncShutdownBarrier : public nsISupports {
337 : public:
338 :
339 : NS_DECLARE_STATIC_IID_ACCESSOR(NS_IASYNCSHUTDOWNBARRIER_IID)
340 :
341 : /* readonly attribute nsIAsyncShutdownClient client; */
342 : NS_IMETHOD GetClient(nsIAsyncShutdownClient * *aClient) = 0;
343 :
344 : /* readonly attribute nsIPropertyBag state; */
345 : NS_IMETHOD GetState(nsIPropertyBag * *aState) = 0;
346 :
347 : /* void wait (in nsIAsyncShutdownCompletionCallback aOnReady); */
348 : NS_IMETHOD Wait(nsIAsyncShutdownCompletionCallback *aOnReady) = 0;
349 :
350 : };
351 :
352 : NS_DEFINE_STATIC_IID_ACCESSOR(nsIAsyncShutdownBarrier, NS_IASYNCSHUTDOWNBARRIER_IID)
353 :
354 : /* Use this macro when declaring classes that implement this interface. */
355 : #define NS_DECL_NSIASYNCSHUTDOWNBARRIER \
356 : NS_IMETHOD GetClient(nsIAsyncShutdownClient * *aClient) override; \
357 : NS_IMETHOD GetState(nsIPropertyBag * *aState) override; \
358 : NS_IMETHOD Wait(nsIAsyncShutdownCompletionCallback *aOnReady) override;
359 :
360 : /* Use this macro when declaring the members of this interface when the
361 : class doesn't implement the interface. This is useful for forwarding. */
362 : #define NS_DECL_NON_VIRTUAL_NSIASYNCSHUTDOWNBARRIER \
363 : nsresult GetClient(nsIAsyncShutdownClient * *aClient); \
364 : nsresult GetState(nsIPropertyBag * *aState); \
365 : nsresult Wait(nsIAsyncShutdownCompletionCallback *aOnReady);
366 :
367 : /* Use this macro to declare functions that forward the behavior of this interface to another object. */
368 : #define NS_FORWARD_NSIASYNCSHUTDOWNBARRIER(_to) \
369 : NS_IMETHOD GetClient(nsIAsyncShutdownClient * *aClient) override { return _to GetClient(aClient); } \
370 : NS_IMETHOD GetState(nsIPropertyBag * *aState) override { return _to GetState(aState); } \
371 : NS_IMETHOD Wait(nsIAsyncShutdownCompletionCallback *aOnReady) override { return _to Wait(aOnReady); }
372 :
373 : /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
374 : #define NS_FORWARD_SAFE_NSIASYNCSHUTDOWNBARRIER(_to) \
375 : NS_IMETHOD GetClient(nsIAsyncShutdownClient * *aClient) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClient(aClient); } \
376 : NS_IMETHOD GetState(nsIPropertyBag * *aState) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
377 : NS_IMETHOD Wait(nsIAsyncShutdownCompletionCallback *aOnReady) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Wait(aOnReady); }
378 :
379 : #if 0
380 : /* Use the code below as a template for the implementation class for this interface. */
381 :
382 : /* Header file */
383 : class nsAsyncShutdownBarrier : public nsIAsyncShutdownBarrier
384 : {
385 : public:
386 : NS_DECL_ISUPPORTS
387 : NS_DECL_NSIASYNCSHUTDOWNBARRIER
388 :
389 : nsAsyncShutdownBarrier();
390 :
391 : private:
392 : ~nsAsyncShutdownBarrier();
393 :
394 : protected:
395 : /* additional members */
396 : };
397 :
398 : /* Implementation file */
399 : NS_IMPL_ISUPPORTS(nsAsyncShutdownBarrier, nsIAsyncShutdownBarrier)
400 :
401 : nsAsyncShutdownBarrier::nsAsyncShutdownBarrier()
402 : {
403 : /* member initializers and constructor code */
404 : }
405 :
406 : nsAsyncShutdownBarrier::~nsAsyncShutdownBarrier()
407 : {
408 : /* destructor code */
409 : }
410 :
411 : /* readonly attribute nsIAsyncShutdownClient client; */
412 : NS_IMETHODIMP nsAsyncShutdownBarrier::GetClient(nsIAsyncShutdownClient * *aClient)
413 : {
414 : return NS_ERROR_NOT_IMPLEMENTED;
415 : }
416 :
417 : /* readonly attribute nsIPropertyBag state; */
418 : NS_IMETHODIMP nsAsyncShutdownBarrier::GetState(nsIPropertyBag * *aState)
419 : {
420 : return NS_ERROR_NOT_IMPLEMENTED;
421 : }
422 :
423 : /* void wait (in nsIAsyncShutdownCompletionCallback aOnReady); */
424 : NS_IMETHODIMP nsAsyncShutdownBarrier::Wait(nsIAsyncShutdownCompletionCallback *aOnReady)
425 : {
426 : return NS_ERROR_NOT_IMPLEMENTED;
427 : }
428 :
429 : /* End of implementation class template. */
430 : #endif
431 :
432 :
433 : /* starting interface: nsIAsyncShutdownService */
434 : #define NS_IASYNCSHUTDOWNSERVICE_IID_STR "db365c78-c860-4e64-9a63-25b73f89a016"
435 :
436 : #define NS_IASYNCSHUTDOWNSERVICE_IID \
437 : {0xdb365c78, 0xc860, 0x4e64, \
438 : { 0x9a, 0x63, 0x25, 0xb7, 0x3f, 0x89, 0xa0, 0x16 }}
439 :
440 : class NS_NO_VTABLE nsIAsyncShutdownService : public nsISupports {
441 : public:
442 :
443 : NS_DECLARE_STATIC_IID_ACCESSOR(NS_IASYNCSHUTDOWNSERVICE_IID)
444 :
445 : /* nsIAsyncShutdownBarrier makeBarrier (in AString aName); */
446 : NS_IMETHOD MakeBarrier(const nsAString & aName, nsIAsyncShutdownBarrier * *_retval) = 0;
447 :
448 : /* readonly attribute nsIAsyncShutdownClient profileBeforeChange; */
449 : NS_IMETHOD GetProfileBeforeChange(nsIAsyncShutdownClient * *aProfileBeforeChange) = 0;
450 :
451 : /* readonly attribute nsIAsyncShutdownClient profileChangeTeardown; */
452 : NS_IMETHOD GetProfileChangeTeardown(nsIAsyncShutdownClient * *aProfileChangeTeardown) = 0;
453 :
454 : /* readonly attribute nsIAsyncShutdownClient quitApplicationGranted; */
455 : NS_IMETHOD GetQuitApplicationGranted(nsIAsyncShutdownClient * *aQuitApplicationGranted) = 0;
456 :
457 : /* readonly attribute nsIAsyncShutdownClient sendTelemetry; */
458 : NS_IMETHOD GetSendTelemetry(nsIAsyncShutdownClient * *aSendTelemetry) = 0;
459 :
460 : /* readonly attribute nsIAsyncShutdownClient webWorkersShutdown; */
461 : NS_IMETHOD GetWebWorkersShutdown(nsIAsyncShutdownClient * *aWebWorkersShutdown) = 0;
462 :
463 : /* readonly attribute nsIAsyncShutdownClient xpcomWillShutdown; */
464 : NS_IMETHOD GetXpcomWillShutdown(nsIAsyncShutdownClient * *aXpcomWillShutdown) = 0;
465 :
466 : };
467 :
468 : NS_DEFINE_STATIC_IID_ACCESSOR(nsIAsyncShutdownService, NS_IASYNCSHUTDOWNSERVICE_IID)
469 :
470 : /* Use this macro when declaring classes that implement this interface. */
471 : #define NS_DECL_NSIASYNCSHUTDOWNSERVICE \
472 : NS_IMETHOD MakeBarrier(const nsAString & aName, nsIAsyncShutdownBarrier * *_retval) override; \
473 : NS_IMETHOD GetProfileBeforeChange(nsIAsyncShutdownClient * *aProfileBeforeChange) override; \
474 : NS_IMETHOD GetProfileChangeTeardown(nsIAsyncShutdownClient * *aProfileChangeTeardown) override; \
475 : NS_IMETHOD GetQuitApplicationGranted(nsIAsyncShutdownClient * *aQuitApplicationGranted) override; \
476 : NS_IMETHOD GetSendTelemetry(nsIAsyncShutdownClient * *aSendTelemetry) override; \
477 : NS_IMETHOD GetWebWorkersShutdown(nsIAsyncShutdownClient * *aWebWorkersShutdown) override; \
478 : NS_IMETHOD GetXpcomWillShutdown(nsIAsyncShutdownClient * *aXpcomWillShutdown) override;
479 :
480 : /* Use this macro when declaring the members of this interface when the
481 : class doesn't implement the interface. This is useful for forwarding. */
482 : #define NS_DECL_NON_VIRTUAL_NSIASYNCSHUTDOWNSERVICE \
483 : nsresult MakeBarrier(const nsAString & aName, nsIAsyncShutdownBarrier * *_retval); \
484 : nsresult GetProfileBeforeChange(nsIAsyncShutdownClient * *aProfileBeforeChange); \
485 : nsresult GetProfileChangeTeardown(nsIAsyncShutdownClient * *aProfileChangeTeardown); \
486 : nsresult GetQuitApplicationGranted(nsIAsyncShutdownClient * *aQuitApplicationGranted); \
487 : nsresult GetSendTelemetry(nsIAsyncShutdownClient * *aSendTelemetry); \
488 : nsresult GetWebWorkersShutdown(nsIAsyncShutdownClient * *aWebWorkersShutdown); \
489 : nsresult GetXpcomWillShutdown(nsIAsyncShutdownClient * *aXpcomWillShutdown);
490 :
491 : /* Use this macro to declare functions that forward the behavior of this interface to another object. */
492 : #define NS_FORWARD_NSIASYNCSHUTDOWNSERVICE(_to) \
493 : NS_IMETHOD MakeBarrier(const nsAString & aName, nsIAsyncShutdownBarrier * *_retval) override { return _to MakeBarrier(aName, _retval); } \
494 : NS_IMETHOD GetProfileBeforeChange(nsIAsyncShutdownClient * *aProfileBeforeChange) override { return _to GetProfileBeforeChange(aProfileBeforeChange); } \
495 : NS_IMETHOD GetProfileChangeTeardown(nsIAsyncShutdownClient * *aProfileChangeTeardown) override { return _to GetProfileChangeTeardown(aProfileChangeTeardown); } \
496 : NS_IMETHOD GetQuitApplicationGranted(nsIAsyncShutdownClient * *aQuitApplicationGranted) override { return _to GetQuitApplicationGranted(aQuitApplicationGranted); } \
497 : NS_IMETHOD GetSendTelemetry(nsIAsyncShutdownClient * *aSendTelemetry) override { return _to GetSendTelemetry(aSendTelemetry); } \
498 : NS_IMETHOD GetWebWorkersShutdown(nsIAsyncShutdownClient * *aWebWorkersShutdown) override { return _to GetWebWorkersShutdown(aWebWorkersShutdown); } \
499 : NS_IMETHOD GetXpcomWillShutdown(nsIAsyncShutdownClient * *aXpcomWillShutdown) override { return _to GetXpcomWillShutdown(aXpcomWillShutdown); }
500 :
501 : /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
502 : #define NS_FORWARD_SAFE_NSIASYNCSHUTDOWNSERVICE(_to) \
503 : NS_IMETHOD MakeBarrier(const nsAString & aName, nsIAsyncShutdownBarrier * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MakeBarrier(aName, _retval); } \
504 : NS_IMETHOD GetProfileBeforeChange(nsIAsyncShutdownClient * *aProfileBeforeChange) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProfileBeforeChange(aProfileBeforeChange); } \
505 : NS_IMETHOD GetProfileChangeTeardown(nsIAsyncShutdownClient * *aProfileChangeTeardown) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProfileChangeTeardown(aProfileChangeTeardown); } \
506 : NS_IMETHOD GetQuitApplicationGranted(nsIAsyncShutdownClient * *aQuitApplicationGranted) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetQuitApplicationGranted(aQuitApplicationGranted); } \
507 : NS_IMETHOD GetSendTelemetry(nsIAsyncShutdownClient * *aSendTelemetry) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSendTelemetry(aSendTelemetry); } \
508 : NS_IMETHOD GetWebWorkersShutdown(nsIAsyncShutdownClient * *aWebWorkersShutdown) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWebWorkersShutdown(aWebWorkersShutdown); } \
509 : NS_IMETHOD GetXpcomWillShutdown(nsIAsyncShutdownClient * *aXpcomWillShutdown) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetXpcomWillShutdown(aXpcomWillShutdown); }
510 :
511 : #if 0
512 : /* Use the code below as a template for the implementation class for this interface. */
513 :
514 : /* Header file */
515 : class nsAsyncShutdownService : public nsIAsyncShutdownService
516 : {
517 : public:
518 : NS_DECL_ISUPPORTS
519 : NS_DECL_NSIASYNCSHUTDOWNSERVICE
520 :
521 : nsAsyncShutdownService();
522 :
523 : private:
524 : ~nsAsyncShutdownService();
525 :
526 : protected:
527 : /* additional members */
528 : };
529 :
530 : /* Implementation file */
531 : NS_IMPL_ISUPPORTS(nsAsyncShutdownService, nsIAsyncShutdownService)
532 :
533 : nsAsyncShutdownService::nsAsyncShutdownService()
534 : {
535 : /* member initializers and constructor code */
536 : }
537 :
538 : nsAsyncShutdownService::~nsAsyncShutdownService()
539 : {
540 : /* destructor code */
541 : }
542 :
543 : /* nsIAsyncShutdownBarrier makeBarrier (in AString aName); */
544 : NS_IMETHODIMP nsAsyncShutdownService::MakeBarrier(const nsAString & aName, nsIAsyncShutdownBarrier * *_retval)
545 : {
546 : return NS_ERROR_NOT_IMPLEMENTED;
547 : }
548 :
549 : /* readonly attribute nsIAsyncShutdownClient profileBeforeChange; */
550 : NS_IMETHODIMP nsAsyncShutdownService::GetProfileBeforeChange(nsIAsyncShutdownClient * *aProfileBeforeChange)
551 : {
552 : return NS_ERROR_NOT_IMPLEMENTED;
553 : }
554 :
555 : /* readonly attribute nsIAsyncShutdownClient profileChangeTeardown; */
556 : NS_IMETHODIMP nsAsyncShutdownService::GetProfileChangeTeardown(nsIAsyncShutdownClient * *aProfileChangeTeardown)
557 : {
558 : return NS_ERROR_NOT_IMPLEMENTED;
559 : }
560 :
561 : /* readonly attribute nsIAsyncShutdownClient quitApplicationGranted; */
562 : NS_IMETHODIMP nsAsyncShutdownService::GetQuitApplicationGranted(nsIAsyncShutdownClient * *aQuitApplicationGranted)
563 : {
564 : return NS_ERROR_NOT_IMPLEMENTED;
565 : }
566 :
567 : /* readonly attribute nsIAsyncShutdownClient sendTelemetry; */
568 : NS_IMETHODIMP nsAsyncShutdownService::GetSendTelemetry(nsIAsyncShutdownClient * *aSendTelemetry)
569 : {
570 : return NS_ERROR_NOT_IMPLEMENTED;
571 : }
572 :
573 : /* readonly attribute nsIAsyncShutdownClient webWorkersShutdown; */
574 : NS_IMETHODIMP nsAsyncShutdownService::GetWebWorkersShutdown(nsIAsyncShutdownClient * *aWebWorkersShutdown)
575 : {
576 : return NS_ERROR_NOT_IMPLEMENTED;
577 : }
578 :
579 : /* readonly attribute nsIAsyncShutdownClient xpcomWillShutdown; */
580 : NS_IMETHODIMP nsAsyncShutdownService::GetXpcomWillShutdown(nsIAsyncShutdownClient * *aXpcomWillShutdown)
581 : {
582 : return NS_ERROR_NOT_IMPLEMENTED;
583 : }
584 :
585 : /* End of implementation class template. */
586 : #endif
587 :
588 : #define NS_ASYNCSHUTDOWNSERVICE_CONTRACTID "@mozilla.org/async-shutdown-service;1"
589 :
590 : #endif /* __gen_nsIAsyncShutdown_h__ */
|