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 3 // found in the LICENSE file. 4 5 #ifndef EXTENSIONS_BROWSER_API_SOCKETS_TCP_SERVER_SOCKETS_TCP_SERVER_API_H_ 6 #define EXTENSIONS_BROWSER_API_SOCKETS_TCP_SERVER_SOCKETS_TCP_SERVER_API_H_ 7 8 #include "extensions/browser/api/socket/socket_api.h" 9 #include "extensions/common/api/sockets_tcp_server.h" 10 11 namespace extensions { 12 class ResumableTCPServerSocket; 13 } 14 15 namespace extensions { 16 namespace core_api { 17 18 class TCPServerSocketAsyncApiFunction : public SocketAsyncApiFunction { 19 protected: 20 virtual ~TCPServerSocketAsyncApiFunction(); 21 22 virtual scoped_ptr<SocketResourceManagerInterface> 23 CreateSocketResourceManager() OVERRIDE; 24 25 ResumableTCPServerSocket* GetTcpSocket(int socket_id); 26 }; 27 28 class SocketsTcpServerCreateFunction : public TCPServerSocketAsyncApiFunction { 29 public: 30 DECLARE_EXTENSION_FUNCTION("sockets.tcpServer.create", 31 SOCKETS_TCP_SERVER_CREATE) 32 33 SocketsTcpServerCreateFunction(); 34 35 protected: 36 virtual ~SocketsTcpServerCreateFunction(); 37 38 // AsyncApiFunction: 39 virtual bool Prepare() OVERRIDE; 40 virtual void Work() OVERRIDE; 41 42 private: 43 FRIEND_TEST_ALL_PREFIXES(SocketsTcpServerUnitTest, Create); 44 scoped_ptr<sockets_tcp_server::Create::Params> params_; 45 }; 46 47 class SocketsTcpServerUpdateFunction : public TCPServerSocketAsyncApiFunction { 48 public: 49 DECLARE_EXTENSION_FUNCTION("sockets.tcpServer.update", 50 SOCKETS_TCP_SERVER_UPDATE) 51 52 SocketsTcpServerUpdateFunction(); 53 54 protected: 55 virtual ~SocketsTcpServerUpdateFunction(); 56 57 // AsyncApiFunction: 58 virtual bool Prepare() OVERRIDE; 59 virtual void Work() OVERRIDE; 60 61 private: 62 scoped_ptr<sockets_tcp_server::Update::Params> params_; 63 }; 64 65 class SocketsTcpServerSetPausedFunction 66 : public TCPServerSocketAsyncApiFunction { 67 public: 68 DECLARE_EXTENSION_FUNCTION("sockets.tcpServer.setPaused", 69 SOCKETS_TCP_SERVER_SETPAUSED) 70 71 SocketsTcpServerSetPausedFunction(); 72 73 protected: 74 virtual ~SocketsTcpServerSetPausedFunction(); 75 76 // AsyncApiFunction 77 virtual bool Prepare() OVERRIDE; 78 virtual void Work() OVERRIDE; 79 80 private: 81 scoped_ptr<sockets_tcp_server::SetPaused::Params> params_; 82 TCPServerSocketEventDispatcher* socket_event_dispatcher_; 83 }; 84 85 class SocketsTcpServerListenFunction : public TCPServerSocketAsyncApiFunction { 86 public: 87 DECLARE_EXTENSION_FUNCTION("sockets.tcpServer.listen", 88 SOCKETS_TCP_SERVER_LISTEN) 89 90 SocketsTcpServerListenFunction(); 91 92 protected: 93 virtual ~SocketsTcpServerListenFunction(); 94 95 // AsyncApiFunction: 96 virtual bool Prepare() OVERRIDE; 97 virtual void Work() OVERRIDE; 98 99 private: 100 scoped_ptr<sockets_tcp_server::Listen::Params> params_; 101 TCPServerSocketEventDispatcher* socket_event_dispatcher_; 102 }; 103 104 class SocketsTcpServerDisconnectFunction 105 : public TCPServerSocketAsyncApiFunction { 106 public: 107 DECLARE_EXTENSION_FUNCTION("sockets.tcpServer.disconnect", 108 SOCKETS_TCP_SERVER_DISCONNECT) 109 110 SocketsTcpServerDisconnectFunction(); 111 112 protected: 113 virtual ~SocketsTcpServerDisconnectFunction(); 114 115 // AsyncApiFunction: 116 virtual bool Prepare() OVERRIDE; 117 virtual void Work() OVERRIDE; 118 119 private: 120 scoped_ptr<sockets_tcp_server::Disconnect::Params> params_; 121 }; 122 123 class SocketsTcpServerCloseFunction : public TCPServerSocketAsyncApiFunction { 124 public: 125 DECLARE_EXTENSION_FUNCTION("sockets.tcpServer.close", 126 SOCKETS_TCP_SERVER_CLOSE) 127 128 SocketsTcpServerCloseFunction(); 129 130 protected: 131 virtual ~SocketsTcpServerCloseFunction(); 132 133 // AsyncApiFunction: 134 virtual bool Prepare() OVERRIDE; 135 virtual void Work() OVERRIDE; 136 137 private: 138 scoped_ptr<sockets_tcp_server::Close::Params> params_; 139 }; 140 141 class SocketsTcpServerGetInfoFunction : public TCPServerSocketAsyncApiFunction { 142 public: 143 DECLARE_EXTENSION_FUNCTION("sockets.tcpServer.getInfo", 144 SOCKETS_TCP_SERVER_GETINFO) 145 146 SocketsTcpServerGetInfoFunction(); 147 148 protected: 149 virtual ~SocketsTcpServerGetInfoFunction(); 150 151 // AsyncApiFunction: 152 virtual bool Prepare() OVERRIDE; 153 virtual void Work() OVERRIDE; 154 155 private: 156 scoped_ptr<sockets_tcp_server::GetInfo::Params> params_; 157 }; 158 159 class SocketsTcpServerGetSocketsFunction 160 : public TCPServerSocketAsyncApiFunction { 161 public: 162 DECLARE_EXTENSION_FUNCTION("sockets.tcpServer.getSockets", 163 SOCKETS_TCP_SERVER_GETSOCKETS) 164 165 SocketsTcpServerGetSocketsFunction(); 166 167 protected: 168 virtual ~SocketsTcpServerGetSocketsFunction(); 169 170 // AsyncApiFunction: 171 virtual bool Prepare() OVERRIDE; 172 virtual void Work() OVERRIDE; 173 }; 174 175 } // namespace core_api 176 } // namespace extensions 177 178 #endif // EXTENSIONS_BROWSER_API_SOCKETS_TCP_SERVER_SOCKETS_TCP_SERVER_API_H_ 179