|
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
|
2 /* vim: set ts=8 sts=4 et sw=4 tw=99: */ |
|
3 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
4 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
6 |
|
7 #ifndef nsAXPCNativeCallContext_h__ |
|
8 #define nsAXPCNativeCallContext_h__ |
|
9 |
|
10 class nsIXPConnectWrappedNative; |
|
11 |
|
12 /** |
|
13 * A native call context is allocated on the stack when XPConnect calls a |
|
14 * native method. Holding a pointer to this object beyond the currently |
|
15 * executing stack frame is not permitted. |
|
16 */ |
|
17 class nsAXPCNativeCallContext |
|
18 { |
|
19 public: |
|
20 NS_IMETHOD GetCallee(nsISupports **aResult) = 0; |
|
21 NS_IMETHOD GetCalleeMethodIndex(uint16_t *aResult) = 0; |
|
22 NS_IMETHOD GetCalleeWrapper(nsIXPConnectWrappedNative **aResult) = 0; |
|
23 NS_IMETHOD GetJSContext(JSContext **aResult) = 0; |
|
24 NS_IMETHOD GetArgc(uint32_t *aResult) = 0; |
|
25 NS_IMETHOD GetArgvPtr(JS::Value **aResult) = 0; |
|
26 |
|
27 // Methods added since mozilla 0.6.... |
|
28 |
|
29 NS_IMETHOD GetCalleeInterface(nsIInterfaceInfo **aResult) = 0; |
|
30 NS_IMETHOD GetCalleeClassInfo(nsIClassInfo **aResult) = 0; |
|
31 |
|
32 NS_IMETHOD GetPreviousCallContext(nsAXPCNativeCallContext **aResult) = 0; |
|
33 |
|
34 enum { LANG_UNKNOWN = 0, |
|
35 LANG_JS = 1, |
|
36 LANG_NATIVE = 2 }; |
|
37 |
|
38 NS_IMETHOD GetLanguage(uint16_t *aResult) = 0; |
|
39 }; |
|
40 |
|
41 #endif |