Line data Source code
1 : /*
2 : * DO NOT EDIT. THIS FILE IS GENERATED FROM ../../../dist/idl/nsIUDPSocket.idl
3 : */
4 :
5 : #ifndef __gen_nsIUDPSocket_h__
6 : #define __gen_nsIUDPSocket_h__
7 :
8 :
9 : #ifndef __gen_nsISupports_h__
10 : #include "nsISupports.h"
11 : #endif
12 :
13 : #include "js/Value.h"
14 :
15 : /* For IDL files that don't want to include root IDL files. */
16 : #ifndef NS_NO_VTABLE
17 : #define NS_NO_VTABLE
18 : #endif
19 : class nsINetAddr; /* forward declaration */
20 :
21 : class nsIUDPSocketListener; /* forward declaration */
22 :
23 : class nsIUDPMessage; /* forward declaration */
24 :
25 : class nsISocketTransport; /* forward declaration */
26 :
27 : class nsIOutputStream; /* forward declaration */
28 :
29 : class nsIInputStream; /* forward declaration */
30 :
31 : class nsIPrincipal; /* forward declaration */
32 :
33 : #include "nsTArrayForwardDeclare.h"
34 : namespace mozilla {
35 : namespace net {
36 : union NetAddr;
37 : }
38 : }
39 :
40 : /* starting interface: nsIUDPSocket */
41 : #define NS_IUDPSOCKET_IID_STR "d423bf4e-4499-40cf-bc03-153e2bf206d1"
42 :
43 : #define NS_IUDPSOCKET_IID \
44 : {0xd423bf4e, 0x4499, 0x40cf, \
45 : { 0xbc, 0x03, 0x15, 0x3e, 0x2b, 0xf2, 0x06, 0xd1 }}
46 :
47 0 : class NS_NO_VTABLE nsIUDPSocket : public nsISupports {
48 : public:
49 :
50 : NS_DECLARE_STATIC_IID_ACCESSOR(NS_IUDPSOCKET_IID)
51 :
52 : /* [optional_argc] void init (in long aPort, in boolean aLoopbackOnly, in nsIPrincipal aPrincipal, [optional] in boolean aAddressReuse); */
53 : NS_IMETHOD Init(int32_t aPort, bool aLoopbackOnly, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc) = 0;
54 :
55 : /* [optional_argc] void init2 (in AUTF8String aAddr, in long aPort, in nsIPrincipal aPrincipal, [optional] in boolean aAddressReuse); */
56 : NS_IMETHOD Init2(const nsACString & aAddr, int32_t aPort, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc) = 0;
57 :
58 : /* [noscript,optional_argc] void initWithAddress ([const] in NetAddrPtr aAddr, in nsIPrincipal aPrincipal, [optional] in boolean aAddressReuse); */
59 : NS_IMETHOD InitWithAddress(const mozilla::net::NetAddr *aAddr, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc) = 0;
60 :
61 : /* void close (); */
62 : NS_IMETHOD Close(void) = 0;
63 :
64 : /* void asyncListen (in nsIUDPSocketListener aListener); */
65 : NS_IMETHOD AsyncListen(nsIUDPSocketListener *aListener) = 0;
66 :
67 : /* void connect ([const] in NetAddrPtr aAddr); */
68 : NS_IMETHOD Connect(const mozilla::net::NetAddr *aAddr) = 0;
69 :
70 : /* readonly attribute nsINetAddr localAddr; */
71 : NS_IMETHOD GetLocalAddr(nsINetAddr * *aLocalAddr) = 0;
72 :
73 : /* readonly attribute long port; */
74 : NS_IMETHOD GetPort(int32_t *aPort) = 0;
75 :
76 : /* [noscript] NetAddr getAddress (); */
77 : NS_IMETHOD GetAddress(mozilla::net::NetAddr *_retval) = 0;
78 :
79 : /* unsigned long send (in AUTF8String host, in unsigned short port, [array, size_is (dataLength), const] in uint8_t data, in unsigned long dataLength); */
80 : NS_IMETHOD Send(const nsACString & host, uint16_t port, const uint8_t *data, uint32_t dataLength, uint32_t *_retval) = 0;
81 :
82 : /* unsigned long sendWithAddr (in nsINetAddr addr, [array, size_is (dataLength), const] in uint8_t data, in unsigned long dataLength); */
83 : NS_IMETHOD SendWithAddr(nsINetAddr *addr, const uint8_t *data, uint32_t dataLength, uint32_t *_retval) = 0;
84 :
85 : /* [noscript] unsigned long sendWithAddress ([const] in NetAddrPtr addr, [array, size_is (dataLength), const] in uint8_t data, in unsigned long dataLength); */
86 : NS_IMETHOD SendWithAddress(const mozilla::net::NetAddr *addr, const uint8_t *data, uint32_t dataLength, uint32_t *_retval) = 0;
87 :
88 : /* void sendBinaryStream (in AUTF8String host, in unsigned short port, in nsIInputStream stream); */
89 : NS_IMETHOD SendBinaryStream(const nsACString & host, uint16_t port, nsIInputStream *stream) = 0;
90 :
91 : /* void sendBinaryStreamWithAddress ([const] in NetAddrPtr addr, in nsIInputStream stream); */
92 : NS_IMETHOD SendBinaryStreamWithAddress(const mozilla::net::NetAddr *addr, nsIInputStream *stream) = 0;
93 :
94 : /* void joinMulticast (in AUTF8String addr, [optional] in AUTF8String iface); */
95 : NS_IMETHOD JoinMulticast(const nsACString & addr, const nsACString & iface) = 0;
96 :
97 : /* [noscript] void joinMulticastAddr ([const] in NetAddr addr, [const, optional] in NetAddrPtr iface); */
98 : NS_IMETHOD JoinMulticastAddr(const mozilla::net::NetAddr addr, const mozilla::net::NetAddr *iface) = 0;
99 :
100 : /* void leaveMulticast (in AUTF8String addr, [optional] in AUTF8String iface); */
101 : NS_IMETHOD LeaveMulticast(const nsACString & addr, const nsACString & iface) = 0;
102 :
103 : /* [noscript] void leaveMulticastAddr ([const] in NetAddr addr, [const, optional] in NetAddrPtr iface); */
104 : NS_IMETHOD LeaveMulticastAddr(const mozilla::net::NetAddr addr, const mozilla::net::NetAddr *iface) = 0;
105 :
106 : /* attribute boolean multicastLoopback; */
107 : NS_IMETHOD GetMulticastLoopback(bool *aMulticastLoopback) = 0;
108 : NS_IMETHOD SetMulticastLoopback(bool aMulticastLoopback) = 0;
109 :
110 : /* attribute AUTF8String multicastInterface; */
111 : NS_IMETHOD GetMulticastInterface(nsACString & aMulticastInterface) = 0;
112 : NS_IMETHOD SetMulticastInterface(const nsACString & aMulticastInterface) = 0;
113 :
114 : /* [noscript] attribute NetAddr multicastInterfaceAddr; */
115 : NS_IMETHOD GetMulticastInterfaceAddr(mozilla::net::NetAddr *aMulticastInterfaceAddr) = 0;
116 : NS_IMETHOD SetMulticastInterfaceAddr(mozilla::net::NetAddr aMulticastInterfaceAddr) = 0;
117 :
118 : /* [noscript] attribute long recvBufferSize; */
119 : NS_IMETHOD GetRecvBufferSize(int32_t *aRecvBufferSize) = 0;
120 : NS_IMETHOD SetRecvBufferSize(int32_t aRecvBufferSize) = 0;
121 :
122 : /* [noscript] attribute long sendBufferSize; */
123 : NS_IMETHOD GetSendBufferSize(int32_t *aSendBufferSize) = 0;
124 : NS_IMETHOD SetSendBufferSize(int32_t aSendBufferSize) = 0;
125 :
126 : };
127 :
128 : NS_DEFINE_STATIC_IID_ACCESSOR(nsIUDPSocket, NS_IUDPSOCKET_IID)
129 :
130 : /* Use this macro when declaring classes that implement this interface. */
131 : #define NS_DECL_NSIUDPSOCKET \
132 : NS_IMETHOD Init(int32_t aPort, bool aLoopbackOnly, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc) override; \
133 : NS_IMETHOD Init2(const nsACString & aAddr, int32_t aPort, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc) override; \
134 : NS_IMETHOD InitWithAddress(const mozilla::net::NetAddr *aAddr, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc) override; \
135 : NS_IMETHOD Close(void) override; \
136 : NS_IMETHOD AsyncListen(nsIUDPSocketListener *aListener) override; \
137 : NS_IMETHOD Connect(const mozilla::net::NetAddr *aAddr) override; \
138 : NS_IMETHOD GetLocalAddr(nsINetAddr * *aLocalAddr) override; \
139 : NS_IMETHOD GetPort(int32_t *aPort) override; \
140 : NS_IMETHOD GetAddress(mozilla::net::NetAddr *_retval) override; \
141 : NS_IMETHOD Send(const nsACString & host, uint16_t port, const uint8_t *data, uint32_t dataLength, uint32_t *_retval) override; \
142 : NS_IMETHOD SendWithAddr(nsINetAddr *addr, const uint8_t *data, uint32_t dataLength, uint32_t *_retval) override; \
143 : NS_IMETHOD SendWithAddress(const mozilla::net::NetAddr *addr, const uint8_t *data, uint32_t dataLength, uint32_t *_retval) override; \
144 : NS_IMETHOD SendBinaryStream(const nsACString & host, uint16_t port, nsIInputStream *stream) override; \
145 : NS_IMETHOD SendBinaryStreamWithAddress(const mozilla::net::NetAddr *addr, nsIInputStream *stream) override; \
146 : NS_IMETHOD JoinMulticast(const nsACString & addr, const nsACString & iface) override; \
147 : NS_IMETHOD JoinMulticastAddr(const mozilla::net::NetAddr addr, const mozilla::net::NetAddr *iface) override; \
148 : NS_IMETHOD LeaveMulticast(const nsACString & addr, const nsACString & iface) override; \
149 : NS_IMETHOD LeaveMulticastAddr(const mozilla::net::NetAddr addr, const mozilla::net::NetAddr *iface) override; \
150 : NS_IMETHOD GetMulticastLoopback(bool *aMulticastLoopback) override; \
151 : NS_IMETHOD SetMulticastLoopback(bool aMulticastLoopback) override; \
152 : NS_IMETHOD GetMulticastInterface(nsACString & aMulticastInterface) override; \
153 : NS_IMETHOD SetMulticastInterface(const nsACString & aMulticastInterface) override; \
154 : NS_IMETHOD GetMulticastInterfaceAddr(mozilla::net::NetAddr *aMulticastInterfaceAddr) override; \
155 : NS_IMETHOD SetMulticastInterfaceAddr(mozilla::net::NetAddr aMulticastInterfaceAddr) override; \
156 : NS_IMETHOD GetRecvBufferSize(int32_t *aRecvBufferSize) override; \
157 : NS_IMETHOD SetRecvBufferSize(int32_t aRecvBufferSize) override; \
158 : NS_IMETHOD GetSendBufferSize(int32_t *aSendBufferSize) override; \
159 : NS_IMETHOD SetSendBufferSize(int32_t aSendBufferSize) override;
160 :
161 : /* Use this macro when declaring the members of this interface when the
162 : class doesn't implement the interface. This is useful for forwarding. */
163 : #define NS_DECL_NON_VIRTUAL_NSIUDPSOCKET \
164 : nsresult Init(int32_t aPort, bool aLoopbackOnly, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc); \
165 : nsresult Init2(const nsACString & aAddr, int32_t aPort, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc); \
166 : nsresult InitWithAddress(const mozilla::net::NetAddr *aAddr, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc); \
167 : nsresult Close(void); \
168 : nsresult AsyncListen(nsIUDPSocketListener *aListener); \
169 : nsresult Connect(const mozilla::net::NetAddr *aAddr); \
170 : nsresult GetLocalAddr(nsINetAddr * *aLocalAddr); \
171 : nsresult GetPort(int32_t *aPort); \
172 : nsresult GetAddress(mozilla::net::NetAddr *_retval); \
173 : nsresult Send(const nsACString & host, uint16_t port, const uint8_t *data, uint32_t dataLength, uint32_t *_retval); \
174 : nsresult SendWithAddr(nsINetAddr *addr, const uint8_t *data, uint32_t dataLength, uint32_t *_retval); \
175 : nsresult SendWithAddress(const mozilla::net::NetAddr *addr, const uint8_t *data, uint32_t dataLength, uint32_t *_retval); \
176 : nsresult SendBinaryStream(const nsACString & host, uint16_t port, nsIInputStream *stream); \
177 : nsresult SendBinaryStreamWithAddress(const mozilla::net::NetAddr *addr, nsIInputStream *stream); \
178 : nsresult JoinMulticast(const nsACString & addr, const nsACString & iface); \
179 : nsresult JoinMulticastAddr(const mozilla::net::NetAddr addr, const mozilla::net::NetAddr *iface); \
180 : nsresult LeaveMulticast(const nsACString & addr, const nsACString & iface); \
181 : nsresult LeaveMulticastAddr(const mozilla::net::NetAddr addr, const mozilla::net::NetAddr *iface); \
182 : nsresult GetMulticastLoopback(bool *aMulticastLoopback); \
183 : nsresult SetMulticastLoopback(bool aMulticastLoopback); \
184 : nsresult GetMulticastInterface(nsACString & aMulticastInterface); \
185 : nsresult SetMulticastInterface(const nsACString & aMulticastInterface); \
186 : nsresult GetMulticastInterfaceAddr(mozilla::net::NetAddr *aMulticastInterfaceAddr); \
187 : nsresult SetMulticastInterfaceAddr(mozilla::net::NetAddr aMulticastInterfaceAddr); \
188 : nsresult GetRecvBufferSize(int32_t *aRecvBufferSize); \
189 : nsresult SetRecvBufferSize(int32_t aRecvBufferSize); \
190 : nsresult GetSendBufferSize(int32_t *aSendBufferSize); \
191 : nsresult SetSendBufferSize(int32_t aSendBufferSize);
192 :
193 : /* Use this macro to declare functions that forward the behavior of this interface to another object. */
194 : #define NS_FORWARD_NSIUDPSOCKET(_to) \
195 : NS_IMETHOD Init(int32_t aPort, bool aLoopbackOnly, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc) override { return _to Init(aPort, aLoopbackOnly, aPrincipal, aAddressReuse, _argc); } \
196 : NS_IMETHOD Init2(const nsACString & aAddr, int32_t aPort, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc) override { return _to Init2(aAddr, aPort, aPrincipal, aAddressReuse, _argc); } \
197 : NS_IMETHOD InitWithAddress(const mozilla::net::NetAddr *aAddr, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc) override { return _to InitWithAddress(aAddr, aPrincipal, aAddressReuse, _argc); } \
198 : NS_IMETHOD Close(void) override { return _to Close(); } \
199 : NS_IMETHOD AsyncListen(nsIUDPSocketListener *aListener) override { return _to AsyncListen(aListener); } \
200 : NS_IMETHOD Connect(const mozilla::net::NetAddr *aAddr) override { return _to Connect(aAddr); } \
201 : NS_IMETHOD GetLocalAddr(nsINetAddr * *aLocalAddr) override { return _to GetLocalAddr(aLocalAddr); } \
202 : NS_IMETHOD GetPort(int32_t *aPort) override { return _to GetPort(aPort); } \
203 : NS_IMETHOD GetAddress(mozilla::net::NetAddr *_retval) override { return _to GetAddress(_retval); } \
204 : NS_IMETHOD Send(const nsACString & host, uint16_t port, const uint8_t *data, uint32_t dataLength, uint32_t *_retval) override { return _to Send(host, port, data, dataLength, _retval); } \
205 : NS_IMETHOD SendWithAddr(nsINetAddr *addr, const uint8_t *data, uint32_t dataLength, uint32_t *_retval) override { return _to SendWithAddr(addr, data, dataLength, _retval); } \
206 : NS_IMETHOD SendWithAddress(const mozilla::net::NetAddr *addr, const uint8_t *data, uint32_t dataLength, uint32_t *_retval) override { return _to SendWithAddress(addr, data, dataLength, _retval); } \
207 : NS_IMETHOD SendBinaryStream(const nsACString & host, uint16_t port, nsIInputStream *stream) override { return _to SendBinaryStream(host, port, stream); } \
208 : NS_IMETHOD SendBinaryStreamWithAddress(const mozilla::net::NetAddr *addr, nsIInputStream *stream) override { return _to SendBinaryStreamWithAddress(addr, stream); } \
209 : NS_IMETHOD JoinMulticast(const nsACString & addr, const nsACString & iface) override { return _to JoinMulticast(addr, iface); } \
210 : NS_IMETHOD JoinMulticastAddr(const mozilla::net::NetAddr addr, const mozilla::net::NetAddr *iface) override { return _to JoinMulticastAddr(addr, iface); } \
211 : NS_IMETHOD LeaveMulticast(const nsACString & addr, const nsACString & iface) override { return _to LeaveMulticast(addr, iface); } \
212 : NS_IMETHOD LeaveMulticastAddr(const mozilla::net::NetAddr addr, const mozilla::net::NetAddr *iface) override { return _to LeaveMulticastAddr(addr, iface); } \
213 : NS_IMETHOD GetMulticastLoopback(bool *aMulticastLoopback) override { return _to GetMulticastLoopback(aMulticastLoopback); } \
214 : NS_IMETHOD SetMulticastLoopback(bool aMulticastLoopback) override { return _to SetMulticastLoopback(aMulticastLoopback); } \
215 : NS_IMETHOD GetMulticastInterface(nsACString & aMulticastInterface) override { return _to GetMulticastInterface(aMulticastInterface); } \
216 : NS_IMETHOD SetMulticastInterface(const nsACString & aMulticastInterface) override { return _to SetMulticastInterface(aMulticastInterface); } \
217 : NS_IMETHOD GetMulticastInterfaceAddr(mozilla::net::NetAddr *aMulticastInterfaceAddr) override { return _to GetMulticastInterfaceAddr(aMulticastInterfaceAddr); } \
218 : NS_IMETHOD SetMulticastInterfaceAddr(mozilla::net::NetAddr aMulticastInterfaceAddr) override { return _to SetMulticastInterfaceAddr(aMulticastInterfaceAddr); } \
219 : NS_IMETHOD GetRecvBufferSize(int32_t *aRecvBufferSize) override { return _to GetRecvBufferSize(aRecvBufferSize); } \
220 : NS_IMETHOD SetRecvBufferSize(int32_t aRecvBufferSize) override { return _to SetRecvBufferSize(aRecvBufferSize); } \
221 : NS_IMETHOD GetSendBufferSize(int32_t *aSendBufferSize) override { return _to GetSendBufferSize(aSendBufferSize); } \
222 : NS_IMETHOD SetSendBufferSize(int32_t aSendBufferSize) override { return _to SetSendBufferSize(aSendBufferSize); }
223 :
224 : /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
225 : #define NS_FORWARD_SAFE_NSIUDPSOCKET(_to) \
226 : NS_IMETHOD Init(int32_t aPort, bool aLoopbackOnly, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Init(aPort, aLoopbackOnly, aPrincipal, aAddressReuse, _argc); } \
227 : NS_IMETHOD Init2(const nsACString & aAddr, int32_t aPort, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Init2(aAddr, aPort, aPrincipal, aAddressReuse, _argc); } \
228 : NS_IMETHOD InitWithAddress(const mozilla::net::NetAddr *aAddr, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc) override { return !_to ? NS_ERROR_NULL_POINTER : _to->InitWithAddress(aAddr, aPrincipal, aAddressReuse, _argc); } \
229 : NS_IMETHOD Close(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Close(); } \
230 : NS_IMETHOD AsyncListen(nsIUDPSocketListener *aListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AsyncListen(aListener); } \
231 : NS_IMETHOD Connect(const mozilla::net::NetAddr *aAddr) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Connect(aAddr); } \
232 : NS_IMETHOD GetLocalAddr(nsINetAddr * *aLocalAddr) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocalAddr(aLocalAddr); } \
233 : NS_IMETHOD GetPort(int32_t *aPort) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPort(aPort); } \
234 : NS_IMETHOD GetAddress(mozilla::net::NetAddr *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAddress(_retval); } \
235 : NS_IMETHOD Send(const nsACString & host, uint16_t port, const uint8_t *data, uint32_t dataLength, uint32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Send(host, port, data, dataLength, _retval); } \
236 : NS_IMETHOD SendWithAddr(nsINetAddr *addr, const uint8_t *data, uint32_t dataLength, uint32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SendWithAddr(addr, data, dataLength, _retval); } \
237 : NS_IMETHOD SendWithAddress(const mozilla::net::NetAddr *addr, const uint8_t *data, uint32_t dataLength, uint32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SendWithAddress(addr, data, dataLength, _retval); } \
238 : NS_IMETHOD SendBinaryStream(const nsACString & host, uint16_t port, nsIInputStream *stream) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SendBinaryStream(host, port, stream); } \
239 : NS_IMETHOD SendBinaryStreamWithAddress(const mozilla::net::NetAddr *addr, nsIInputStream *stream) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SendBinaryStreamWithAddress(addr, stream); } \
240 : NS_IMETHOD JoinMulticast(const nsACString & addr, const nsACString & iface) override { return !_to ? NS_ERROR_NULL_POINTER : _to->JoinMulticast(addr, iface); } \
241 : NS_IMETHOD JoinMulticastAddr(const mozilla::net::NetAddr addr, const mozilla::net::NetAddr *iface) override { return !_to ? NS_ERROR_NULL_POINTER : _to->JoinMulticastAddr(addr, iface); } \
242 : NS_IMETHOD LeaveMulticast(const nsACString & addr, const nsACString & iface) override { return !_to ? NS_ERROR_NULL_POINTER : _to->LeaveMulticast(addr, iface); } \
243 : NS_IMETHOD LeaveMulticastAddr(const mozilla::net::NetAddr addr, const mozilla::net::NetAddr *iface) override { return !_to ? NS_ERROR_NULL_POINTER : _to->LeaveMulticastAddr(addr, iface); } \
244 : NS_IMETHOD GetMulticastLoopback(bool *aMulticastLoopback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMulticastLoopback(aMulticastLoopback); } \
245 : NS_IMETHOD SetMulticastLoopback(bool aMulticastLoopback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMulticastLoopback(aMulticastLoopback); } \
246 : NS_IMETHOD GetMulticastInterface(nsACString & aMulticastInterface) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMulticastInterface(aMulticastInterface); } \
247 : NS_IMETHOD SetMulticastInterface(const nsACString & aMulticastInterface) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMulticastInterface(aMulticastInterface); } \
248 : NS_IMETHOD GetMulticastInterfaceAddr(mozilla::net::NetAddr *aMulticastInterfaceAddr) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMulticastInterfaceAddr(aMulticastInterfaceAddr); } \
249 : NS_IMETHOD SetMulticastInterfaceAddr(mozilla::net::NetAddr aMulticastInterfaceAddr) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMulticastInterfaceAddr(aMulticastInterfaceAddr); } \
250 : NS_IMETHOD GetRecvBufferSize(int32_t *aRecvBufferSize) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecvBufferSize(aRecvBufferSize); } \
251 : NS_IMETHOD SetRecvBufferSize(int32_t aRecvBufferSize) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRecvBufferSize(aRecvBufferSize); } \
252 : NS_IMETHOD GetSendBufferSize(int32_t *aSendBufferSize) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSendBufferSize(aSendBufferSize); } \
253 : NS_IMETHOD SetSendBufferSize(int32_t aSendBufferSize) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSendBufferSize(aSendBufferSize); }
254 :
255 : #if 0
256 : /* Use the code below as a template for the implementation class for this interface. */
257 :
258 : /* Header file */
259 : class nsUDPSocket : public nsIUDPSocket
260 : {
261 : public:
262 : NS_DECL_ISUPPORTS
263 : NS_DECL_NSIUDPSOCKET
264 :
265 : nsUDPSocket();
266 :
267 : private:
268 : ~nsUDPSocket();
269 :
270 : protected:
271 : /* additional members */
272 : };
273 :
274 : /* Implementation file */
275 : NS_IMPL_ISUPPORTS(nsUDPSocket, nsIUDPSocket)
276 :
277 : nsUDPSocket::nsUDPSocket()
278 : {
279 : /* member initializers and constructor code */
280 : }
281 :
282 : nsUDPSocket::~nsUDPSocket()
283 : {
284 : /* destructor code */
285 : }
286 :
287 : /* [optional_argc] void init (in long aPort, in boolean aLoopbackOnly, in nsIPrincipal aPrincipal, [optional] in boolean aAddressReuse); */
288 : NS_IMETHODIMP nsUDPSocket::Init(int32_t aPort, bool aLoopbackOnly, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc)
289 : {
290 : return NS_ERROR_NOT_IMPLEMENTED;
291 : }
292 :
293 : /* [optional_argc] void init2 (in AUTF8String aAddr, in long aPort, in nsIPrincipal aPrincipal, [optional] in boolean aAddressReuse); */
294 : NS_IMETHODIMP nsUDPSocket::Init2(const nsACString & aAddr, int32_t aPort, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc)
295 : {
296 : return NS_ERROR_NOT_IMPLEMENTED;
297 : }
298 :
299 : /* [noscript,optional_argc] void initWithAddress ([const] in NetAddrPtr aAddr, in nsIPrincipal aPrincipal, [optional] in boolean aAddressReuse); */
300 : NS_IMETHODIMP nsUDPSocket::InitWithAddress(const mozilla::net::NetAddr *aAddr, nsIPrincipal *aPrincipal, bool aAddressReuse, uint8_t _argc)
301 : {
302 : return NS_ERROR_NOT_IMPLEMENTED;
303 : }
304 :
305 : /* void close (); */
306 : NS_IMETHODIMP nsUDPSocket::Close()
307 : {
308 : return NS_ERROR_NOT_IMPLEMENTED;
309 : }
310 :
311 : /* void asyncListen (in nsIUDPSocketListener aListener); */
312 : NS_IMETHODIMP nsUDPSocket::AsyncListen(nsIUDPSocketListener *aListener)
313 : {
314 : return NS_ERROR_NOT_IMPLEMENTED;
315 : }
316 :
317 : /* void connect ([const] in NetAddrPtr aAddr); */
318 : NS_IMETHODIMP nsUDPSocket::Connect(const mozilla::net::NetAddr *aAddr)
319 : {
320 : return NS_ERROR_NOT_IMPLEMENTED;
321 : }
322 :
323 : /* readonly attribute nsINetAddr localAddr; */
324 : NS_IMETHODIMP nsUDPSocket::GetLocalAddr(nsINetAddr * *aLocalAddr)
325 : {
326 : return NS_ERROR_NOT_IMPLEMENTED;
327 : }
328 :
329 : /* readonly attribute long port; */
330 : NS_IMETHODIMP nsUDPSocket::GetPort(int32_t *aPort)
331 : {
332 : return NS_ERROR_NOT_IMPLEMENTED;
333 : }
334 :
335 : /* [noscript] NetAddr getAddress (); */
336 : NS_IMETHODIMP nsUDPSocket::GetAddress(mozilla::net::NetAddr *_retval)
337 : {
338 : return NS_ERROR_NOT_IMPLEMENTED;
339 : }
340 :
341 : /* unsigned long send (in AUTF8String host, in unsigned short port, [array, size_is (dataLength), const] in uint8_t data, in unsigned long dataLength); */
342 : NS_IMETHODIMP nsUDPSocket::Send(const nsACString & host, uint16_t port, const uint8_t *data, uint32_t dataLength, uint32_t *_retval)
343 : {
344 : return NS_ERROR_NOT_IMPLEMENTED;
345 : }
346 :
347 : /* unsigned long sendWithAddr (in nsINetAddr addr, [array, size_is (dataLength), const] in uint8_t data, in unsigned long dataLength); */
348 : NS_IMETHODIMP nsUDPSocket::SendWithAddr(nsINetAddr *addr, const uint8_t *data, uint32_t dataLength, uint32_t *_retval)
349 : {
350 : return NS_ERROR_NOT_IMPLEMENTED;
351 : }
352 :
353 : /* [noscript] unsigned long sendWithAddress ([const] in NetAddrPtr addr, [array, size_is (dataLength), const] in uint8_t data, in unsigned long dataLength); */
354 : NS_IMETHODIMP nsUDPSocket::SendWithAddress(const mozilla::net::NetAddr *addr, const uint8_t *data, uint32_t dataLength, uint32_t *_retval)
355 : {
356 : return NS_ERROR_NOT_IMPLEMENTED;
357 : }
358 :
359 : /* void sendBinaryStream (in AUTF8String host, in unsigned short port, in nsIInputStream stream); */
360 : NS_IMETHODIMP nsUDPSocket::SendBinaryStream(const nsACString & host, uint16_t port, nsIInputStream *stream)
361 : {
362 : return NS_ERROR_NOT_IMPLEMENTED;
363 : }
364 :
365 : /* void sendBinaryStreamWithAddress ([const] in NetAddrPtr addr, in nsIInputStream stream); */
366 : NS_IMETHODIMP nsUDPSocket::SendBinaryStreamWithAddress(const mozilla::net::NetAddr *addr, nsIInputStream *stream)
367 : {
368 : return NS_ERROR_NOT_IMPLEMENTED;
369 : }
370 :
371 : /* void joinMulticast (in AUTF8String addr, [optional] in AUTF8String iface); */
372 : NS_IMETHODIMP nsUDPSocket::JoinMulticast(const nsACString & addr, const nsACString & iface)
373 : {
374 : return NS_ERROR_NOT_IMPLEMENTED;
375 : }
376 :
377 : /* [noscript] void joinMulticastAddr ([const] in NetAddr addr, [const, optional] in NetAddrPtr iface); */
378 : NS_IMETHODIMP nsUDPSocket::JoinMulticastAddr(const mozilla::net::NetAddr addr, const mozilla::net::NetAddr *iface)
379 : {
380 : return NS_ERROR_NOT_IMPLEMENTED;
381 : }
382 :
383 : /* void leaveMulticast (in AUTF8String addr, [optional] in AUTF8String iface); */
384 : NS_IMETHODIMP nsUDPSocket::LeaveMulticast(const nsACString & addr, const nsACString & iface)
385 : {
386 : return NS_ERROR_NOT_IMPLEMENTED;
387 : }
388 :
389 : /* [noscript] void leaveMulticastAddr ([const] in NetAddr addr, [const, optional] in NetAddrPtr iface); */
390 : NS_IMETHODIMP nsUDPSocket::LeaveMulticastAddr(const mozilla::net::NetAddr addr, const mozilla::net::NetAddr *iface)
391 : {
392 : return NS_ERROR_NOT_IMPLEMENTED;
393 : }
394 :
395 : /* attribute boolean multicastLoopback; */
396 : NS_IMETHODIMP nsUDPSocket::GetMulticastLoopback(bool *aMulticastLoopback)
397 : {
398 : return NS_ERROR_NOT_IMPLEMENTED;
399 : }
400 : NS_IMETHODIMP nsUDPSocket::SetMulticastLoopback(bool aMulticastLoopback)
401 : {
402 : return NS_ERROR_NOT_IMPLEMENTED;
403 : }
404 :
405 : /* attribute AUTF8String multicastInterface; */
406 : NS_IMETHODIMP nsUDPSocket::GetMulticastInterface(nsACString & aMulticastInterface)
407 : {
408 : return NS_ERROR_NOT_IMPLEMENTED;
409 : }
410 : NS_IMETHODIMP nsUDPSocket::SetMulticastInterface(const nsACString & aMulticastInterface)
411 : {
412 : return NS_ERROR_NOT_IMPLEMENTED;
413 : }
414 :
415 : /* [noscript] attribute NetAddr multicastInterfaceAddr; */
416 : NS_IMETHODIMP nsUDPSocket::GetMulticastInterfaceAddr(mozilla::net::NetAddr *aMulticastInterfaceAddr)
417 : {
418 : return NS_ERROR_NOT_IMPLEMENTED;
419 : }
420 : NS_IMETHODIMP nsUDPSocket::SetMulticastInterfaceAddr(mozilla::net::NetAddr aMulticastInterfaceAddr)
421 : {
422 : return NS_ERROR_NOT_IMPLEMENTED;
423 : }
424 :
425 : /* [noscript] attribute long recvBufferSize; */
426 : NS_IMETHODIMP nsUDPSocket::GetRecvBufferSize(int32_t *aRecvBufferSize)
427 : {
428 : return NS_ERROR_NOT_IMPLEMENTED;
429 : }
430 : NS_IMETHODIMP nsUDPSocket::SetRecvBufferSize(int32_t aRecvBufferSize)
431 : {
432 : return NS_ERROR_NOT_IMPLEMENTED;
433 : }
434 :
435 : /* [noscript] attribute long sendBufferSize; */
436 : NS_IMETHODIMP nsUDPSocket::GetSendBufferSize(int32_t *aSendBufferSize)
437 : {
438 : return NS_ERROR_NOT_IMPLEMENTED;
439 : }
440 : NS_IMETHODIMP nsUDPSocket::SetSendBufferSize(int32_t aSendBufferSize)
441 : {
442 : return NS_ERROR_NOT_IMPLEMENTED;
443 : }
444 :
445 : /* End of implementation class template. */
446 : #endif
447 :
448 :
449 : /* starting interface: nsIUDPSocketListener */
450 : #define NS_IUDPSOCKETLISTENER_IID_STR "2e4b5dd3-7358-4281-b81f-10c62ef39cb5"
451 :
452 : #define NS_IUDPSOCKETLISTENER_IID \
453 : {0x2e4b5dd3, 0x7358, 0x4281, \
454 : { 0xb8, 0x1f, 0x10, 0xc6, 0x2e, 0xf3, 0x9c, 0xb5 }}
455 :
456 0 : class NS_NO_VTABLE nsIUDPSocketListener : public nsISupports {
457 : public:
458 :
459 : NS_DECLARE_STATIC_IID_ACCESSOR(NS_IUDPSOCKETLISTENER_IID)
460 :
461 : /* void onPacketReceived (in nsIUDPSocket aSocket, in nsIUDPMessage aMessage); */
462 : NS_IMETHOD OnPacketReceived(nsIUDPSocket *aSocket, nsIUDPMessage *aMessage) = 0;
463 :
464 : /* void onStopListening (in nsIUDPSocket aSocket, in nsresult aStatus); */
465 : NS_IMETHOD OnStopListening(nsIUDPSocket *aSocket, nsresult aStatus) = 0;
466 :
467 : };
468 :
469 : NS_DEFINE_STATIC_IID_ACCESSOR(nsIUDPSocketListener, NS_IUDPSOCKETLISTENER_IID)
470 :
471 : /* Use this macro when declaring classes that implement this interface. */
472 : #define NS_DECL_NSIUDPSOCKETLISTENER \
473 : NS_IMETHOD OnPacketReceived(nsIUDPSocket *aSocket, nsIUDPMessage *aMessage) override; \
474 : NS_IMETHOD OnStopListening(nsIUDPSocket *aSocket, nsresult aStatus) override;
475 :
476 : /* Use this macro when declaring the members of this interface when the
477 : class doesn't implement the interface. This is useful for forwarding. */
478 : #define NS_DECL_NON_VIRTUAL_NSIUDPSOCKETLISTENER \
479 : nsresult OnPacketReceived(nsIUDPSocket *aSocket, nsIUDPMessage *aMessage); \
480 : nsresult OnStopListening(nsIUDPSocket *aSocket, nsresult aStatus);
481 :
482 : /* Use this macro to declare functions that forward the behavior of this interface to another object. */
483 : #define NS_FORWARD_NSIUDPSOCKETLISTENER(_to) \
484 : NS_IMETHOD OnPacketReceived(nsIUDPSocket *aSocket, nsIUDPMessage *aMessage) override { return _to OnPacketReceived(aSocket, aMessage); } \
485 : NS_IMETHOD OnStopListening(nsIUDPSocket *aSocket, nsresult aStatus) override { return _to OnStopListening(aSocket, aStatus); }
486 :
487 : /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
488 : #define NS_FORWARD_SAFE_NSIUDPSOCKETLISTENER(_to) \
489 : NS_IMETHOD OnPacketReceived(nsIUDPSocket *aSocket, nsIUDPMessage *aMessage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OnPacketReceived(aSocket, aMessage); } \
490 : NS_IMETHOD OnStopListening(nsIUDPSocket *aSocket, nsresult aStatus) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OnStopListening(aSocket, aStatus); }
491 :
492 : #if 0
493 : /* Use the code below as a template for the implementation class for this interface. */
494 :
495 : /* Header file */
496 : class nsUDPSocketListener : public nsIUDPSocketListener
497 : {
498 : public:
499 : NS_DECL_ISUPPORTS
500 : NS_DECL_NSIUDPSOCKETLISTENER
501 :
502 : nsUDPSocketListener();
503 :
504 : private:
505 : ~nsUDPSocketListener();
506 :
507 : protected:
508 : /* additional members */
509 : };
510 :
511 : /* Implementation file */
512 : NS_IMPL_ISUPPORTS(nsUDPSocketListener, nsIUDPSocketListener)
513 :
514 : nsUDPSocketListener::nsUDPSocketListener()
515 : {
516 : /* member initializers and constructor code */
517 : }
518 :
519 : nsUDPSocketListener::~nsUDPSocketListener()
520 : {
521 : /* destructor code */
522 : }
523 :
524 : /* void onPacketReceived (in nsIUDPSocket aSocket, in nsIUDPMessage aMessage); */
525 : NS_IMETHODIMP nsUDPSocketListener::OnPacketReceived(nsIUDPSocket *aSocket, nsIUDPMessage *aMessage)
526 : {
527 : return NS_ERROR_NOT_IMPLEMENTED;
528 : }
529 :
530 : /* void onStopListening (in nsIUDPSocket aSocket, in nsresult aStatus); */
531 : NS_IMETHODIMP nsUDPSocketListener::OnStopListening(nsIUDPSocket *aSocket, nsresult aStatus)
532 : {
533 : return NS_ERROR_NOT_IMPLEMENTED;
534 : }
535 :
536 : /* End of implementation class template. */
537 : #endif
538 :
539 :
540 : /* starting interface: nsIUDPMessage */
541 : #define NS_IUDPMESSAGE_IID_STR "afdc743f-9cc0-40d8-b442-695dc54bbb74"
542 :
543 : #define NS_IUDPMESSAGE_IID \
544 : {0xafdc743f, 0x9cc0, 0x40d8, \
545 : { 0xb4, 0x42, 0x69, 0x5d, 0xc5, 0x4b, 0xbb, 0x74 }}
546 :
547 0 : class NS_NO_VTABLE nsIUDPMessage : public nsISupports {
548 : public:
549 :
550 : NS_DECLARE_STATIC_IID_ACCESSOR(NS_IUDPMESSAGE_IID)
551 :
552 : /* readonly attribute nsINetAddr fromAddr; */
553 : NS_IMETHOD GetFromAddr(nsINetAddr * *aFromAddr) = 0;
554 :
555 : /* readonly attribute ACString data; */
556 : NS_IMETHOD GetData(nsACString & aData) = 0;
557 :
558 : /* readonly attribute nsIOutputStream outputStream; */
559 : NS_IMETHOD GetOutputStream(nsIOutputStream * *aOutputStream) = 0;
560 :
561 : /* [implicit_jscontext] readonly attribute jsval rawData; */
562 : NS_IMETHOD GetRawData(JSContext* cx, JS::MutableHandleValue aRawData) = 0;
563 :
564 : /* [noscript,nostdcall,notxpcom] Uint8TArrayRef getDataAsTArray (); */
565 : virtual FallibleTArray<uint8_t> & GetDataAsTArray(void) = 0;
566 :
567 : };
568 :
569 : NS_DEFINE_STATIC_IID_ACCESSOR(nsIUDPMessage, NS_IUDPMESSAGE_IID)
570 :
571 : /* Use this macro when declaring classes that implement this interface. */
572 : #define NS_DECL_NSIUDPMESSAGE \
573 : NS_IMETHOD GetFromAddr(nsINetAddr * *aFromAddr) override; \
574 : NS_IMETHOD GetData(nsACString & aData) override; \
575 : NS_IMETHOD GetOutputStream(nsIOutputStream * *aOutputStream) override; \
576 : NS_IMETHOD GetRawData(JSContext* cx, JS::MutableHandleValue aRawData) override; \
577 : virtual FallibleTArray<uint8_t> & GetDataAsTArray(void) override;
578 :
579 : /* Use this macro when declaring the members of this interface when the
580 : class doesn't implement the interface. This is useful for forwarding. */
581 : #define NS_DECL_NON_VIRTUAL_NSIUDPMESSAGE \
582 : nsresult GetFromAddr(nsINetAddr * *aFromAddr); \
583 : nsresult GetData(nsACString & aData); \
584 : nsresult GetOutputStream(nsIOutputStream * *aOutputStream); \
585 : nsresult GetRawData(JSContext* cx, JS::MutableHandleValue aRawData); \
586 : FallibleTArray<uint8_t> & GetDataAsTArray(void);
587 :
588 : /* Use this macro to declare functions that forward the behavior of this interface to another object. */
589 : #define NS_FORWARD_NSIUDPMESSAGE(_to) \
590 : NS_IMETHOD GetFromAddr(nsINetAddr * *aFromAddr) override { return _to GetFromAddr(aFromAddr); } \
591 : NS_IMETHOD GetData(nsACString & aData) override { return _to GetData(aData); } \
592 : NS_IMETHOD GetOutputStream(nsIOutputStream * *aOutputStream) override { return _to GetOutputStream(aOutputStream); } \
593 : NS_IMETHOD GetRawData(JSContext* cx, JS::MutableHandleValue aRawData) override { return _to GetRawData(cx, aRawData); } \
594 : virtual FallibleTArray<uint8_t> & GetDataAsTArray(void) override { return _to GetDataAsTArray(); }
595 :
596 : /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
597 : #define NS_FORWARD_SAFE_NSIUDPMESSAGE(_to) \
598 : NS_IMETHOD GetFromAddr(nsINetAddr * *aFromAddr) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFromAddr(aFromAddr); } \
599 : NS_IMETHOD GetData(nsACString & aData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(aData); } \
600 : NS_IMETHOD GetOutputStream(nsIOutputStream * *aOutputStream) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOutputStream(aOutputStream); } \
601 : NS_IMETHOD GetRawData(JSContext* cx, JS::MutableHandleValue aRawData) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRawData(cx, aRawData); } \
602 : virtual FallibleTArray<uint8_t> & GetDataAsTArray(void) override;
603 :
604 : #if 0
605 : /* Use the code below as a template for the implementation class for this interface. */
606 :
607 : /* Header file */
608 : class nsUDPMessage : public nsIUDPMessage
609 : {
610 : public:
611 : NS_DECL_ISUPPORTS
612 : NS_DECL_NSIUDPMESSAGE
613 :
614 : nsUDPMessage();
615 :
616 : private:
617 : ~nsUDPMessage();
618 :
619 : protected:
620 : /* additional members */
621 : };
622 :
623 : /* Implementation file */
624 : NS_IMPL_ISUPPORTS(nsUDPMessage, nsIUDPMessage)
625 :
626 : nsUDPMessage::nsUDPMessage()
627 : {
628 : /* member initializers and constructor code */
629 : }
630 :
631 : nsUDPMessage::~nsUDPMessage()
632 : {
633 : /* destructor code */
634 : }
635 :
636 : /* readonly attribute nsINetAddr fromAddr; */
637 : NS_IMETHODIMP nsUDPMessage::GetFromAddr(nsINetAddr * *aFromAddr)
638 : {
639 : return NS_ERROR_NOT_IMPLEMENTED;
640 : }
641 :
642 : /* readonly attribute ACString data; */
643 : NS_IMETHODIMP nsUDPMessage::GetData(nsACString & aData)
644 : {
645 : return NS_ERROR_NOT_IMPLEMENTED;
646 : }
647 :
648 : /* readonly attribute nsIOutputStream outputStream; */
649 : NS_IMETHODIMP nsUDPMessage::GetOutputStream(nsIOutputStream * *aOutputStream)
650 : {
651 : return NS_ERROR_NOT_IMPLEMENTED;
652 : }
653 :
654 : /* [implicit_jscontext] readonly attribute jsval rawData; */
655 : NS_IMETHODIMP nsUDPMessage::GetRawData(JSContext* cx, JS::MutableHandleValue aRawData)
656 : {
657 : return NS_ERROR_NOT_IMPLEMENTED;
658 : }
659 :
660 : /* [noscript,nostdcall,notxpcom] Uint8TArrayRef getDataAsTArray (); */
661 : FallibleTArray<uint8_t> & nsUDPMessage::GetDataAsTArray()
662 : {
663 : return NS_ERROR_NOT_IMPLEMENTED;
664 : }
665 :
666 : /* End of implementation class template. */
667 : #endif
668 :
669 :
670 : #endif /* __gen_nsIUDPSocket_h__ */
|