OLD | NEW |
| (Empty) |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef CHROME_BROWSER_EXTENSIONS_API_SOCKETS_UDP_SOCKETS_UDP_API_H_ | |
6 #define CHROME_BROWSER_EXTENSIONS_API_SOCKETS_UDP_SOCKETS_UDP_API_H_ | |
7 | |
8 #include "chrome/browser/extensions/api/socket/socket_api.h" | |
9 #include "chrome/common/extensions/api/sockets_udp.h" | |
10 | |
11 namespace extensions { | |
12 class ResumableUDPSocket; | |
13 } | |
14 | |
15 namespace extensions { | |
16 namespace api { | |
17 | |
18 class UDPSocketEventDispatcher; | |
19 | |
20 class UDPSocketAsyncApiFunction : public SocketAsyncApiFunction { | |
21 protected: | |
22 virtual ~UDPSocketAsyncApiFunction(); | |
23 | |
24 virtual scoped_ptr<SocketResourceManagerInterface> | |
25 CreateSocketResourceManager() OVERRIDE; | |
26 | |
27 ResumableUDPSocket* GetUdpSocket(int socket_id); | |
28 }; | |
29 | |
30 class UDPSocketExtensionWithDnsLookupFunction | |
31 : public SocketExtensionWithDnsLookupFunction { | |
32 protected: | |
33 virtual ~UDPSocketExtensionWithDnsLookupFunction(); | |
34 | |
35 virtual scoped_ptr<SocketResourceManagerInterface> | |
36 CreateSocketResourceManager() OVERRIDE; | |
37 | |
38 ResumableUDPSocket* GetUdpSocket(int socket_id); | |
39 }; | |
40 | |
41 class SocketsUdpCreateFunction : public UDPSocketAsyncApiFunction { | |
42 public: | |
43 DECLARE_EXTENSION_FUNCTION("sockets.udp.create", SOCKETS_UDP_CREATE) | |
44 | |
45 SocketsUdpCreateFunction(); | |
46 | |
47 protected: | |
48 virtual ~SocketsUdpCreateFunction(); | |
49 | |
50 // AsyncApiFunction: | |
51 virtual bool Prepare() OVERRIDE; | |
52 virtual void Work() OVERRIDE; | |
53 | |
54 private: | |
55 FRIEND_TEST_ALL_PREFIXES(SocketsUdpUnitTest, Create); | |
56 scoped_ptr<sockets_udp::Create::Params> params_; | |
57 }; | |
58 | |
59 class SocketsUdpUpdateFunction : public UDPSocketAsyncApiFunction { | |
60 public: | |
61 DECLARE_EXTENSION_FUNCTION("sockets.udp.update", SOCKETS_UDP_UPDATE) | |
62 | |
63 SocketsUdpUpdateFunction(); | |
64 | |
65 protected: | |
66 virtual ~SocketsUdpUpdateFunction(); | |
67 | |
68 // AsyncApiFunction: | |
69 virtual bool Prepare() OVERRIDE; | |
70 virtual void Work() OVERRIDE; | |
71 | |
72 private: | |
73 scoped_ptr<sockets_udp::Update::Params> params_; | |
74 }; | |
75 | |
76 class SocketsUdpSetPausedFunction | |
77 : public UDPSocketAsyncApiFunction { | |
78 public: | |
79 DECLARE_EXTENSION_FUNCTION("sockets.udp.setPaused", SOCKETS_UDP_SETPAUSED) | |
80 | |
81 SocketsUdpSetPausedFunction(); | |
82 | |
83 protected: | |
84 virtual ~SocketsUdpSetPausedFunction(); | |
85 | |
86 // AsyncApiFunction | |
87 virtual bool Prepare() OVERRIDE; | |
88 virtual void Work() OVERRIDE; | |
89 | |
90 private: | |
91 scoped_ptr<sockets_udp::SetPaused::Params> params_; | |
92 UDPSocketEventDispatcher* socket_event_dispatcher_; | |
93 }; | |
94 | |
95 class SocketsUdpBindFunction : public UDPSocketAsyncApiFunction { | |
96 public: | |
97 DECLARE_EXTENSION_FUNCTION("sockets.udp.bind", SOCKETS_UDP_BIND) | |
98 | |
99 SocketsUdpBindFunction(); | |
100 | |
101 protected: | |
102 virtual ~SocketsUdpBindFunction(); | |
103 | |
104 // AsyncApiFunction: | |
105 virtual bool Prepare() OVERRIDE; | |
106 virtual void Work() OVERRIDE; | |
107 | |
108 private: | |
109 scoped_ptr<sockets_udp::Bind::Params> params_; | |
110 UDPSocketEventDispatcher* socket_event_dispatcher_; | |
111 }; | |
112 | |
113 class SocketsUdpSendFunction : public UDPSocketExtensionWithDnsLookupFunction { | |
114 public: | |
115 DECLARE_EXTENSION_FUNCTION("sockets.udp.send", SOCKETS_UDP_SEND) | |
116 | |
117 SocketsUdpSendFunction(); | |
118 | |
119 protected: | |
120 virtual ~SocketsUdpSendFunction(); | |
121 | |
122 // AsyncApiFunction: | |
123 virtual bool Prepare() OVERRIDE; | |
124 virtual void AsyncWorkStart() OVERRIDE; | |
125 void OnCompleted(int net_result); | |
126 void SetSendResult(int net_result, int bytes_sent); | |
127 | |
128 // SocketExtensionWithDnsLookupFunction: | |
129 virtual void AfterDnsLookup(int lookup_result) OVERRIDE; | |
130 | |
131 private: | |
132 void StartSendTo(); | |
133 | |
134 scoped_ptr<sockets_udp::Send::Params> params_; | |
135 scoped_refptr<net::IOBuffer> io_buffer_; | |
136 size_t io_buffer_size_; | |
137 }; | |
138 | |
139 class SocketsUdpCloseFunction : public UDPSocketAsyncApiFunction { | |
140 public: | |
141 DECLARE_EXTENSION_FUNCTION("sockets.udp.close", SOCKETS_UDP_CLOSE) | |
142 | |
143 SocketsUdpCloseFunction(); | |
144 | |
145 protected: | |
146 virtual ~SocketsUdpCloseFunction(); | |
147 | |
148 // AsyncApiFunction: | |
149 virtual bool Prepare() OVERRIDE; | |
150 virtual void Work() OVERRIDE; | |
151 | |
152 private: | |
153 scoped_ptr<sockets_udp::Close::Params> params_; | |
154 }; | |
155 | |
156 class SocketsUdpGetInfoFunction : public UDPSocketAsyncApiFunction { | |
157 public: | |
158 DECLARE_EXTENSION_FUNCTION("sockets.udp.getInfo", SOCKETS_UDP_GETINFO) | |
159 | |
160 SocketsUdpGetInfoFunction(); | |
161 | |
162 protected: | |
163 virtual ~SocketsUdpGetInfoFunction(); | |
164 | |
165 // AsyncApiFunction: | |
166 virtual bool Prepare() OVERRIDE; | |
167 virtual void Work() OVERRIDE; | |
168 | |
169 private: | |
170 scoped_ptr<sockets_udp::GetInfo::Params> params_; | |
171 }; | |
172 | |
173 class SocketsUdpGetSocketsFunction : public UDPSocketAsyncApiFunction { | |
174 public: | |
175 DECLARE_EXTENSION_FUNCTION("sockets.udp.getSockets", SOCKETS_UDP_GETSOCKETS) | |
176 | |
177 SocketsUdpGetSocketsFunction(); | |
178 | |
179 protected: | |
180 virtual ~SocketsUdpGetSocketsFunction(); | |
181 | |
182 // AsyncApiFunction: | |
183 virtual bool Prepare() OVERRIDE; | |
184 virtual void Work() OVERRIDE; | |
185 }; | |
186 | |
187 class SocketsUdpJoinGroupFunction : public UDPSocketAsyncApiFunction { | |
188 public: | |
189 DECLARE_EXTENSION_FUNCTION("sockets.udp.joinGroup", SOCKETS_UDP_JOINGROUP) | |
190 | |
191 SocketsUdpJoinGroupFunction(); | |
192 | |
193 protected: | |
194 virtual ~SocketsUdpJoinGroupFunction(); | |
195 | |
196 // AsyncApiFunction | |
197 virtual bool Prepare() OVERRIDE; | |
198 virtual void Work() OVERRIDE; | |
199 | |
200 private: | |
201 scoped_ptr<sockets_udp::JoinGroup::Params> params_; | |
202 }; | |
203 | |
204 class SocketsUdpLeaveGroupFunction : public UDPSocketAsyncApiFunction { | |
205 public: | |
206 DECLARE_EXTENSION_FUNCTION("sockets.udp.leaveGroup", SOCKETS_UDP_LEAVEGROUP) | |
207 | |
208 SocketsUdpLeaveGroupFunction(); | |
209 | |
210 protected: | |
211 virtual ~SocketsUdpLeaveGroupFunction(); | |
212 | |
213 // AsyncApiFunction | |
214 virtual bool Prepare() OVERRIDE; | |
215 virtual void Work() OVERRIDE; | |
216 | |
217 private: | |
218 scoped_ptr<sockets_udp::LeaveGroup::Params> params_; | |
219 }; | |
220 | |
221 class SocketsUdpSetMulticastTimeToLiveFunction | |
222 : public UDPSocketAsyncApiFunction { | |
223 public: | |
224 DECLARE_EXTENSION_FUNCTION("sockets.udp.setMulticastTimeToLive", | |
225 SOCKETS_UDP_SETMULTICASTTIMETOLIVE) | |
226 | |
227 SocketsUdpSetMulticastTimeToLiveFunction(); | |
228 | |
229 protected: | |
230 virtual ~SocketsUdpSetMulticastTimeToLiveFunction(); | |
231 | |
232 // AsyncApiFunction | |
233 virtual bool Prepare() OVERRIDE; | |
234 virtual void Work() OVERRIDE; | |
235 | |
236 private: | |
237 scoped_ptr<sockets_udp::SetMulticastTimeToLive::Params> params_; | |
238 }; | |
239 | |
240 class SocketsUdpSetMulticastLoopbackModeFunction | |
241 : public UDPSocketAsyncApiFunction { | |
242 public: | |
243 DECLARE_EXTENSION_FUNCTION("sockets.udp.setMulticastLoopbackMode", | |
244 SOCKETS_UDP_SETMULTICASTLOOPBACKMODE) | |
245 | |
246 SocketsUdpSetMulticastLoopbackModeFunction(); | |
247 | |
248 protected: | |
249 virtual ~SocketsUdpSetMulticastLoopbackModeFunction(); | |
250 | |
251 // AsyncApiFunction | |
252 virtual bool Prepare() OVERRIDE; | |
253 virtual void Work() OVERRIDE; | |
254 | |
255 private: | |
256 scoped_ptr<sockets_udp::SetMulticastLoopbackMode::Params> params_; | |
257 }; | |
258 | |
259 class SocketsUdpGetJoinedGroupsFunction : public UDPSocketAsyncApiFunction { | |
260 public: | |
261 DECLARE_EXTENSION_FUNCTION("sockets.udp.getJoinedGroups", | |
262 SOCKETS_UDP_GETJOINEDGROUPS) | |
263 | |
264 SocketsUdpGetJoinedGroupsFunction(); | |
265 | |
266 protected: | |
267 virtual ~SocketsUdpGetJoinedGroupsFunction(); | |
268 | |
269 // AsyncApiFunction | |
270 virtual bool Prepare() OVERRIDE; | |
271 virtual void Work() OVERRIDE; | |
272 | |
273 private: | |
274 scoped_ptr<sockets_udp::GetJoinedGroups::Params> params_; | |
275 }; | |
276 | |
277 } // namespace api | |
278 } // namespace extensions | |
279 | |
280 #endif // CHROME_BROWSER_EXTENSIONS_API_SOCKETS_UDP_SOCKETS_UDP_API_H_ | |
OLD | NEW |