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