Import the XPCOM version
[browser-dbus-bridge.git] / xpcom-dbusservice / DBusMethod.h
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 #ifndef __DBUSMETHOD_H__
27 #define __DBUSMETHOD_H__
28
29 #include "nsEmbedString.h"
30 #include "nsIWeakReference.h"
31 #include "nsIWeakReferenceUtils.h"
32 #include "nsIVariant.h"
33
34 #include "DBusService.h"
35
36 //
37 // DBusMethod declarations
38 //
39
40 #define DBUSMETHOD_CID \
41 { \
42     0x2832f621, \
43     0xad9b, \
44     0x4034, \
45     0x91, 0x0b, 0xcd, 0x8e, 0xea, 0xdf, 0x5c, 0x42 \
46 }
47
48 class DBusMethod : public IDBusMethod
49 {
50 public:
51     NS_DECL_ISUPPORTS
52     NS_DECL_IDBUSMETHOD
53
54     DBusMethod(DBusService *aDBusService,
55                PRUint32 aBusType,
56                const nsACString& aDestination,
57                const nsACString& aObjectPath,
58                const nsACString& aMethodName,
59                const nsACString& aInterfaceName,
60                const nsACString& aSignature);
61
62 private:
63     ~DBusMethod();
64
65 protected:
66     DBusService *mDBusService;
67     PRUint32    mBusType;
68     nsCString   mDestination;
69     nsCString   mObject;
70     nsCString   mInterface;
71     nsCString   mMethod;
72     nsCString   mSignature;
73     PRBool      mAsync;
74     IDBusMethodCallback *mCallback;
75     IDBusMethodCallback *mErrorCallback;
76 };
77
78
79 #endif /* __DBUSMETHOD_H__ */
80
81 /* vim: set cindent ts=4 et sw=4: */