Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(208)

Side by Side Diff: gecko-sdk/include/nsIWeakReference.h

Issue 20346: Version 1.8 of gecko-sdk. Downloaded from here:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gecko-sdk/include/nsIUploadChannel.h ('k') | gecko-sdk/include/nsIWeakReferenceUtils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 /*
2 * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/builds/tinderbox/XR-Mozilla1.8.0 -Release/WINNT_5.2_Depend/mozilla/xpcom/base/nsIWeakReference.idl
3 */
4
5 #ifndef __gen_nsIWeakReference_h__
6 #define __gen_nsIWeakReference_h__
7
8
9 #ifndef __gen_nsISupports_h__
10 #include "nsISupports.h"
11 #endif
12
13 /* For IDL files that don't want to include root IDL files. */
14 #ifndef NS_NO_VTABLE
15 #define NS_NO_VTABLE
16 #endif
17
18 /* starting interface: nsIWeakReference */
19 #define NS_IWEAKREFERENCE_IID_STR "9188bc85-f92e-11d2-81ef-0060083a0bcf"
20
21 #define NS_IWEAKREFERENCE_IID \
22 {0x9188bc85, 0xf92e, 0x11d2, \
23 { 0x81, 0xef, 0x00, 0x60, 0x08, 0x3a, 0x0b, 0xcf }}
24
25 /**
26 * An instance of |nsIWeakReference| is a proxy object that cooperates with
27 * its referent to give clients a non-owning, non-dangling reference. Clients
28 * own the proxy, and should generally manage it with an |nsCOMPtr| (see the
29 * type |nsWeakPtr| for a |typedef| name that stands out) as they would any
30 * other XPCOM object. The |QueryReferent| member function provides a
31 * (hopefully short-lived) owning reference on demand, through which clients
32 * can get useful access to the referent, while it still exists.
33 *
34 * @status FROZEN
35 * @version 1.0
36 * @see nsISupportsWeakReference
37 * @see nsWeakReference
38 * @see nsWeakPtr
39 */
40 class NS_NO_VTABLE nsIWeakReference : public nsISupports {
41 public:
42
43 NS_DEFINE_STATIC_IID_ACCESSOR(NS_IWEAKREFERENCE_IID)
44
45 /**
46 * |QueryReferent| queries the referent, if it exists, and like |QueryInterf ace|, produces
47 * an owning reference to the desired interface. It is designed to look and act exactly
48 * like (a proxied) |QueryInterface|. Don't hold on to the produced interfa ce permanently;
49 * that would defeat the purpose of using a non-owning |nsIWeakReference| in the first place.
50 */
51 /* void QueryReferent (in nsIIDRef uuid, [iid_is (uuid), retval] out nsQIResul t result); */
52 NS_IMETHOD QueryReferent(const nsIID & uuid, void * *result) = 0;
53
54 };
55
56 /* Use this macro when declaring classes that implement this interface. */
57 #define NS_DECL_NSIWEAKREFERENCE \
58 NS_IMETHOD QueryReferent(const nsIID & uuid, void * *result);
59
60 /* Use this macro to declare functions that forward the behavior of this interfa ce to another object. */
61 #define NS_FORWARD_NSIWEAKREFERENCE(_to) \
62 NS_IMETHOD QueryReferent(const nsIID & uuid, void * *result) { return _to Quer yReferent(uuid, result); }
63
64 /* Use this macro to declare functions that forward the behavior of this interfa ce to another object in a safe way. */
65 #define NS_FORWARD_SAFE_NSIWEAKREFERENCE(_to) \
66 NS_IMETHOD QueryReferent(const nsIID & uuid, void * *result) { return !_to ? N S_ERROR_NULL_POINTER : _to->QueryReferent(uuid, result); }
67
68 #if 0
69 /* Use the code below as a template for the implementation class for this interf ace. */
70
71 /* Header file */
72 class nsWeakReference : public nsIWeakReference
73 {
74 public:
75 NS_DECL_ISUPPORTS
76 NS_DECL_NSIWEAKREFERENCE
77
78 nsWeakReference();
79
80 private:
81 ~nsWeakReference();
82
83 protected:
84 /* additional members */
85 };
86
87 /* Implementation file */
88 NS_IMPL_ISUPPORTS1(nsWeakReference, nsIWeakReference)
89
90 nsWeakReference::nsWeakReference()
91 {
92 /* member initializers and constructor code */
93 }
94
95 nsWeakReference::~nsWeakReference()
96 {
97 /* destructor code */
98 }
99
100 /* void QueryReferent (in nsIIDRef uuid, [iid_is (uuid), retval] out nsQIResult result); */
101 NS_IMETHODIMP nsWeakReference::QueryReferent(const nsIID & uuid, void * *result)
102 {
103 return NS_ERROR_NOT_IMPLEMENTED;
104 }
105
106 /* End of implementation class template. */
107 #endif
108
109
110 /* starting interface: nsISupportsWeakReference */
111 #define NS_ISUPPORTSWEAKREFERENCE_IID_STR "9188bc86-f92e-11d2-81ef-0060083a0bcf"
112
113 #define NS_ISUPPORTSWEAKREFERENCE_IID \
114 {0x9188bc86, 0xf92e, 0x11d2, \
115 { 0x81, 0xef, 0x00, 0x60, 0x08, 0x3a, 0x0b, 0xcf }}
116
117 /**
118 * |nsISupportsWeakReference| is a factory interface which produces appropriate
119 * instances of |nsIWeakReference|. Weak references in this scheme can only be
120 * produced for objects that implement this interface.
121 *
122 * @status FROZEN
123 * @version 1.0
124 * @see nsIWeakReference
125 * @see nsSupportsWeakReference
126 */
127 class NS_NO_VTABLE nsISupportsWeakReference : public nsISupports {
128 public:
129
130 NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISUPPORTSWEAKREFERENCE_IID)
131
132 /**
133 * |GetWeakReference| produces an appropriate instance of |nsIWeakReference| .
134 * As with all good XPCOM `getters', you own the resulting interface and sho uld
135 * manage it with an |nsCOMPtr|.
136 *
137 * @see nsIWeakReference
138 * @see nsWeakPtr
139 * @see nsCOMPtr
140 */
141 /* nsIWeakReference GetWeakReference (); */
142 NS_IMETHOD GetWeakReference(nsIWeakReference **_retval) = 0;
143
144 };
145
146 /* Use this macro when declaring classes that implement this interface. */
147 #define NS_DECL_NSISUPPORTSWEAKREFERENCE \
148 NS_IMETHOD GetWeakReference(nsIWeakReference **_retval);
149
150 /* Use this macro to declare functions that forward the behavior of this interfa ce to another object. */
151 #define NS_FORWARD_NSISUPPORTSWEAKREFERENCE(_to) \
152 NS_IMETHOD GetWeakReference(nsIWeakReference **_retval) { return _to GetWeakRe ference(_retval); }
153
154 /* Use this macro to declare functions that forward the behavior of this interfa ce to another object in a safe way. */
155 #define NS_FORWARD_SAFE_NSISUPPORTSWEAKREFERENCE(_to) \
156 NS_IMETHOD GetWeakReference(nsIWeakReference **_retval) { return !_to ? NS_ERR OR_NULL_POINTER : _to->GetWeakReference(_retval); }
157
158 #if 0
159 /* Use the code below as a template for the implementation class for this interf ace. */
160
161 /* Header file */
162 class nsSupportsWeakReference : public nsISupportsWeakReference
163 {
164 public:
165 NS_DECL_ISUPPORTS
166 NS_DECL_NSISUPPORTSWEAKREFERENCE
167
168 nsSupportsWeakReference();
169
170 private:
171 ~nsSupportsWeakReference();
172
173 protected:
174 /* additional members */
175 };
176
177 /* Implementation file */
178 NS_IMPL_ISUPPORTS1(nsSupportsWeakReference, nsISupportsWeakReference)
179
180 nsSupportsWeakReference::nsSupportsWeakReference()
181 {
182 /* member initializers and constructor code */
183 }
184
185 nsSupportsWeakReference::~nsSupportsWeakReference()
186 {
187 /* destructor code */
188 }
189
190 /* nsIWeakReference GetWeakReference (); */
191 NS_IMETHODIMP nsSupportsWeakReference::GetWeakReference(nsIWeakReference **_retv al)
192 {
193 return NS_ERROR_NOT_IMPLEMENTED;
194 }
195
196 /* End of implementation class template. */
197 #endif
198
199 #ifdef MOZILLA_INTERNAL_API
200 #include "nsIWeakReferenceUtils.h"
201 #endif
202
203 #endif /* __gen_nsIWeakReference_h__ */
OLDNEW
« no previous file with comments | « gecko-sdk/include/nsIUploadChannel.h ('k') | gecko-sdk/include/nsIWeakReferenceUtils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698