1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
/*
* DO NOT EDIT. THIS FILE IS GENERATED FROM c:/mozilla/xpcom/ds/nsIObserverService.idl
*/
#ifndef __gen_nsIObserverService_h__
#define __gen_nsIObserverService_h__
#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif
/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIObserver; /* forward declaration */
class nsISimpleEnumerator; /* forward declaration */
/* starting interface: nsIObserverService */
#define NS_IOBSERVERSERVICE_IID_STR "d07f5192-e3d1-11d2-8acd-00105a1b8860"
#define NS_IOBSERVERSERVICE_IID \
{0xd07f5192, 0xe3d1, 0x11d2, \
{ 0x8a, 0xcd, 0x00, 0x10, 0x5a, 0x1b, 0x88, 0x60 }}
/**
* nsIObserverService
*
* Service allows a client listener (nsIObserver) to register and unregister for
* notifications of specific string referenced topic. Service also provides a
* way to notify registered listeners and a way to enumerate registered client
* listeners.
*
* @status FROZEN
*/
class NS_NO_VTABLE nsIObserverService : public nsISupports {
public:
NS_DEFINE_STATIC_IID_ACCESSOR(NS_IOBSERVERSERVICE_IID)
/**
* AddObserver
*
* Registers a given listener for a notifications regarding the specified
* topic.
*
* @param anObserve : The interface pointer which will receive notifications.
* @param aTopic : The notification topic or subject.
* @param ownsWeak : If set to false, the nsIObserverService will hold a
* strong reference to |anObserver|. If set to true and
* |anObserver| supports the nsIWeakReference interface,
* a weak reference will be held. Otherwise an error will be
* returned.
*/
/* void addObserver (in nsIObserver anObserver, in string aTopic, in boolean ownsWeak); */
NS_IMETHOD AddObserver(nsIObserver *anObserver, const char *aTopic, PRBool ownsWeak) = 0;
/**
* removeObserver
*
* Unregisters a given listener from notifications regarding the specified
* topic.
*
* @param anObserver : The interface pointer which will stop recieving
* notifications.
* @param aTopic : The notification topic or subject.
*/
/* void removeObserver (in nsIObserver anObserver, in string aTopic); */
NS_IMETHOD RemoveObserver(nsIObserver *anObserver, const char *aTopic) = 0;
/**
* notifyObservers
*
* Notifies all registered listeners of the given topic.
*
* @param aSubject : Notification specific interface pointer.
* @param aTopic : The notification topic or subject.
* @param someData : Notification specific wide string.
*/
/* void notifyObservers (in nsISupports aSubject, in string aTopic, in wstring someData); */
NS_IMETHOD NotifyObservers(nsISupports *aSubject, const char *aTopic, const PRUnichar *someData) = 0;
/**
* enumerateObservers
*
* Returns an enumeration of all registered listeners.
*
* @param aTopic : The notification topic or subject.
*/
/* nsISimpleEnumerator enumerateObservers (in string aTopic); */
NS_IMETHOD EnumerateObservers(const char *aTopic, nsISimpleEnumerator **_retval) = 0;
};
/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIOBSERVERSERVICE \
NS_IMETHOD AddObserver(nsIObserver *anObserver, const char *aTopic, PRBool ownsWeak); \
NS_IMETHOD RemoveObserver(nsIObserver *anObserver, const char *aTopic); \
NS_IMETHOD NotifyObservers(nsISupports *aSubject, const char *aTopic, const PRUnichar *someData); \
NS_IMETHOD EnumerateObservers(const char *aTopic, nsISimpleEnumerator **_retval);
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIOBSERVERSERVICE(_to) \
NS_IMETHOD AddObserver(nsIObserver *anObserver, const char *aTopic, PRBool ownsWeak) { return _to AddObserver(anObserver, aTopic, ownsWeak); } \
NS_IMETHOD RemoveObserver(nsIObserver *anObserver, const char *aTopic) { return _to RemoveObserver(anObserver, aTopic); } \
NS_IMETHOD NotifyObservers(nsISupports *aSubject, const char *aTopic, const PRUnichar *someData) { return _to NotifyObservers(aSubject, aTopic, someData); } \
NS_IMETHOD EnumerateObservers(const char *aTopic, nsISimpleEnumerator **_retval) { return _to EnumerateObservers(aTopic, _retval); }
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIOBSERVERSERVICE(_to) \
NS_IMETHOD AddObserver(nsIObserver *anObserver, const char *aTopic, PRBool ownsWeak) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddObserver(anObserver, aTopic, ownsWeak); } \
NS_IMETHOD RemoveObserver(nsIObserver *anObserver, const char *aTopic) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveObserver(anObserver, aTopic); } \
NS_IMETHOD NotifyObservers(nsISupports *aSubject, const char *aTopic, const PRUnichar *someData) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyObservers(aSubject, aTopic, someData); } \
NS_IMETHOD EnumerateObservers(const char *aTopic, nsISimpleEnumerator **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnumerateObservers(aTopic, _retval); }
#if 0
/* Use the code below as a template for the implementation class for this interface. */
/* Header file */
class nsObserverService : public nsIObserverService
{
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIOBSERVERSERVICE
nsObserverService();
private:
~nsObserverService();
protected:
/* additional members */
};
/* Implementation file */
NS_IMPL_ISUPPORTS1(nsObserverService, nsIObserverService)
nsObserverService::nsObserverService()
{
/* member initializers and constructor code */
}
nsObserverService::~nsObserverService()
{
/* destructor code */
}
/* void addObserver (in nsIObserver anObserver, in string aTopic, in boolean ownsWeak); */
NS_IMETHODIMP nsObserverService::AddObserver(nsIObserver *anObserver, const char *aTopic, PRBool ownsWeak)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void removeObserver (in nsIObserver anObserver, in string aTopic); */
NS_IMETHODIMP nsObserverService::RemoveObserver(nsIObserver *anObserver, const char *aTopic)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void notifyObservers (in nsISupports aSubject, in string aTopic, in wstring someData); */
NS_IMETHODIMP nsObserverService::NotifyObservers(nsISupports *aSubject, const char *aTopic, const PRUnichar *someData)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* nsISimpleEnumerator enumerateObservers (in string aTopic); */
NS_IMETHODIMP nsObserverService::EnumerateObservers(const char *aTopic, nsISimpleEnumerator **_retval)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* End of implementation class template. */
#endif
#endif /* __gen_nsIObserverService_h__ */
|