Import the XPCOM version
[browser-dbus-bridge.git] / xpcom-dbusservice / DBusSignal.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 __DBUSSIGNAL_H__
27 #define __DBUSSIGNAL_H__
28
29 #include "nsEmbedString.h"
30 #include "nsWeakReference.h"
31
32 #include "DBusService.h"
33
34 //
35 // DBusSignal declarations
36 //
37
38 #define DBUSSIGNAL_CID \
39 { \
40     0xde515b88, \
41     0xb8a0, \
42     0x416e, \
43     0xb4, 0x38, 0x52, 0x4e, 0xf7, 0x96, 0xfb, 0x13 \
44 }
45
46 class DBusSignal : public IDBusSignal, public nsSupportsWeakReference
47 {
48 public:
49     NS_DECL_ISUPPORTS
50     NS_DECL_IDBUSSIGNAL
51
52     DBusSignal(DBusService *aDBusService,
53                PRUint32 aBusType,
54                const nsACString& aInterface,
55                const nsACString& aSignal,
56                const nsACString& aSender,
57                const nsACString& aObject);
58
59 private:
60     ~DBusSignal();
61
62     void filterEnable();
63     void filterDisable();
64
65 protected:
66     DBusService *mDBusService;
67     PRUint32 mBusType;
68     const nsCString mInterface;
69     const nsCString mSignal;
70     const nsCString mSender;
71     const nsCString mObject;
72     IDBusSignalObserver *mCallback;
73     PRBool mEnabled;
74     PRBool mFilterActive;
75 };
76
77
78 #endif /* __DBUSSIGNAL_H__ */
79
80 /* vim: set cindent ts=4 et sw=4: */