[XPCOM] Keep the JS context with the Service/Method objects, we
[browser-dbus-bridge.git] / xpcom-dbusservice / IDBusService.idl
1 /**
2  * Browser D-Bus Bridge, XPCOM version
3  *
4  * Copyright © 2008 Movial Creative Technologies Inc
5  *  Contact: Movial Creative Technologies Inc, <info@movial.com>
6  *  Authors: Lauri Mylläri, <lauri.myllari@movial.fi>
7  *
8  * The contents of this file are subject to the Mozilla Public License
9  * Version 1.1 (the "License"); you may not use this file except in
10  * compliance with the License. You may obtain a copy of the License at
11  * http://www.mozilla.org/MPL/
12  *
13  * Software distributed under the License is distributed on an "AS IS"
14  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
15  * License for the specific language governing rights and limitations
16  * under the License.
17  *
18  * The Original Code is the Browser D-Bus Bridge, XPCOM version.
19  *
20  * The Initial Developer of the Original Code is Movial Creative Technologies
21  * Inc. Portions created by Initial Developer are Copyright (C) 2008
22  * Movial Creative Technologies Inc. All Rights Reserved.
23  *
24  */
25
26 #include "nsISupports.idl"
27 #include "nsIWeakReference.idl"
28 #include "nsIVariant.idl"
29 #include "nsIArray.idl"
30 #include "nsIXPConnect.idl"
31
32 [function, scriptable, uuid(8eeddd8d-6e82-438a-9451-753f92bef2db)]
33 interface IDBusMethodCallback : nsISupports
34 {
35         void onReply(in nsIVariant args);
36 };
37
38 [scriptable, uuid(71fd21e1-ca1b-4d42-9435-a32382532820)]
39 interface IDBusMethod : nsISupports
40 {
41         attribute boolean async;
42         attribute IDBusMethodCallback onReply;
43         attribute IDBusMethodCallback onError;
44
45         void doCall([array, size_is(count)] in nsIVariant args,
46                     in PRUint32 count);
47
48         [noscript] readonly attribute JSContextPtr JSContext;        
49 };
50
51 [function, scriptable, uuid(0f87e70b-af7b-44c0-b0a3-1df8e3fa66da)]
52 interface IDBusSignalObserver : nsISupports
53 {
54         void onSignal(in nsIVariant args);
55                       
56 };
57
58 [scriptable, uuid(d8107805-9980-46ed-bccf-f3e6ac9fe989)]
59 interface IDBusSignal : nsISupports
60 {
61         attribute IDBusSignalObserver onEmit;
62         attribute boolean enabled;
63
64         readonly attribute PRUint32 busType;
65         readonly attribute ACString interfaceName;
66         readonly attribute ACString signalName;
67         readonly attribute ACString sender;
68         readonly attribute ACString objectPath;
69
70         [noscript] readonly attribute JSContextPtr JSContext;        
71 };
72
73 [scriptable, uuid(084b9397-0d6b-4c2c-93f9-f929f6b6e9e7)]
74 interface IDBusService : nsISupports
75 {
76         const PRUint32 SYSTEM = 0;
77         const PRUint32 SESSION = 1;
78
79         IDBusSignal getSignal(in PRUint32 busType,
80                               in ACString interfaceName,
81                               in ACString signalName,
82                               in ACString sender,
83                               in ACString objectPath);
84
85         IDBusMethod getMethod(in PRUint32 busType,
86                               in ACString destination,
87                               in ACString objectPath,
88                               in ACString methodName,
89                               in ACString interfaceName,
90                               in ACString signature);
91
92 };
93
94
95
96 /* vim: set cindent ts=8 et sw=8: */