summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/api/socket/tcp_socket.cc
diff options
context:
space:
mode:
authorrpaquay@chromium.org <rpaquay@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-18 03:49:15 +0000
committerrpaquay@chromium.org <rpaquay@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-18 03:49:15 +0000
commit96a0c067d816576735856452608a03bd7e914504 (patch)
tree513fe241364a307f7c83963d05f028055a66ab76 /chrome/browser/extensions/api/socket/tcp_socket.cc
parentb1d1ea068f578e933054c8573e985402ca014319 (diff)
downloadchromium_src-96a0c067d816576735856452608a03bd7e914504.zip
chromium_src-96a0c067d816576735856452608a03bd7e914504.tar.gz
chromium_src-96a0c067d816576735856452608a03bd7e914504.tar.bz2
sockets.tcpServer API implementation.
Implement a new API for TCP *server* sockets. This CL is similar to sockets.tcp (see https://codereview.chromium.org/24684002) and follows the same design pattern. BUG=165273 BUG=173241 Review URL: https://codereview.chromium.org/27076004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229304 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/api/socket/tcp_socket.cc')
-rw-r--r--chrome/browser/extensions/api/socket/tcp_socket.cc31
1 files changed, 31 insertions, 0 deletions
diff --git a/chrome/browser/extensions/api/socket/tcp_socket.cc b/chrome/browser/extensions/api/socket/tcp_socket.cc
index 8401dc26..4c0de16 100644
--- a/chrome/browser/extensions/api/socket/tcp_socket.cc
+++ b/chrome/browser/extensions/api/socket/tcp_socket.cc
@@ -28,6 +28,17 @@ ApiResourceManager<ResumableTCPSocket>::GetFactoryInstance() {
return &g_factory.Get();
}
+static base::LazyInstance<ProfileKeyedAPIFactory<
+ ApiResourceManager<ResumableTCPServerSocket> > >
+ g_server_factory = LAZY_INSTANCE_INITIALIZER;
+
+// static
+template <>
+ProfileKeyedAPIFactory<ApiResourceManager<ResumableTCPServerSocket> >*
+ApiResourceManager<ResumableTCPServerSocket>::GetFactoryInstance() {
+ return &g_server_factory.Get();
+}
+
TCPSocket::TCPSocket(const std::string& owner_extension_id)
: Socket(owner_extension_id),
socket_mode_(UNKNOWN) {
@@ -304,8 +315,28 @@ ResumableTCPSocket::ResumableTCPSocket(const std::string& owner_extension_id)
paused_(false) {
}
+ResumableTCPSocket::ResumableTCPSocket(net::TCPClientSocket* tcp_client_socket,
+ const std::string& owner_extension_id,
+ bool is_connected)
+ : TCPSocket(tcp_client_socket, owner_extension_id, is_connected),
+ persistent_(false),
+ buffer_size_(0),
+ paused_(false) {
+}
+
bool ResumableTCPSocket::persistent() const {
return persistent_;
}
+ResumableTCPServerSocket::ResumableTCPServerSocket(
+ const std::string& owner_extension_id)
+ : TCPSocket(owner_extension_id),
+ persistent_(false),
+ paused_(false) {
+}
+
+bool ResumableTCPServerSocket::persistent() const {
+ return persistent_;
+}
+
} // namespace extensions