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 11namespace extensions { 12class ResumableTCPServerSocket; 13} 14 15namespace extensions { 16namespace core_api { 17 18class 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 28class 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 47class 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 65class 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 85class 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 104class 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 123class 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 141class 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 159class 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