Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Unified Diff: net/base/tcp_listen_socket.cc

Issue 10108015: Upstream changes making ListenSocket an abstract class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add listen_socket.cc. Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/base/tcp_listen_socket.h ('k') | net/base/tcp_listen_socket_unittest.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/tcp_listen_socket.cc
diff --git a/net/base/listen_socket.cc b/net/base/tcp_listen_socket.cc
similarity index 81%
copy from net/base/listen_socket.cc
copy to net/base/tcp_listen_socket.cc
index c6005941a8c9b8e74c6d2d1fff7ea12da68cfafe..dfec16ffc7a114c8f21ce9ba756de9486cf11abc 100644
--- a/net/base/listen_socket.cc
+++ b/net/base/tcp_listen_socket.cc
@@ -21,7 +21,7 @@
#include "base/sys_byteorder.h"
#include "base/threading/platform_thread.h"
#include "net/base/net_util.h"
-#include "net/base/listen_socket.h"
+#include "net/base/tcp_listen_socket.h"
#if defined(OS_WIN)
typedef int socklen_t;
@@ -36,43 +36,32 @@ const int kReadBufSize = 4096;
} // namespace
#if defined(OS_WIN)
-const SOCKET ListenSocket::kInvalidSocket = INVALID_SOCKET;
-const int ListenSocket::kSocketError = SOCKET_ERROR;
+const SOCKET TCPListenSocket::kInvalidSocket = INVALID_SOCKET;
+const int TCPListenSocket::kSocketError = SOCKET_ERROR;
#elif defined(OS_POSIX)
-const SOCKET ListenSocket::kInvalidSocket = -1;
-const int ListenSocket::kSocketError = -1;
+const SOCKET TCPListenSocket::kInvalidSocket = -1;
+const int TCPListenSocket::kSocketError = -1;
#endif
-ListenSocket* ListenSocket::Listen(std::string ip, int port,
- ListenSocketDelegate* del) {
- SOCKET s = Listen(ip, port);
+TCPListenSocket* TCPListenSocket::CreateAndListen(
+ std::string ip, int port, ListenSocket::ListenSocketDelegate *del) {
+ SOCKET s = CreateAndBind(ip, port);
if (s == kInvalidSocket) {
// TODO(erikkay): error handling
} else {
- ListenSocket* sock = new ListenSocket(s, del);
+ TCPListenSocket* sock = new TCPListenSocket(s, del);
sock->Listen();
return sock;
}
return NULL;
}
-void ListenSocket::Send(const char* bytes, int len, bool append_linefeed) {
- SendInternal(bytes, len);
- if (append_linefeed) {
- SendInternal("\r\n", 2);
- }
-}
-
-void ListenSocket::Send(const std::string& str, bool append_linefeed) {
- Send(str.data(), static_cast<int>(str.length()), append_linefeed);
-}
-
-void ListenSocket::PauseReads() {
+void TCPListenSocket::PauseReads() {
DCHECK(!reads_paused_);
reads_paused_ = true;
}
-void ListenSocket::ResumeReads() {
+void TCPListenSocket::ResumeReads() {
DCHECK(reads_paused_);
reads_paused_ = false;
if (has_pending_reads_) {
@@ -81,9 +70,10 @@ void ListenSocket::ResumeReads() {
}
}
-ListenSocket::ListenSocket(SOCKET s, ListenSocketDelegate *del)
- : socket_(s),
- socket_delegate_(del),
+TCPListenSocket::TCPListenSocket(SOCKET s,
+ ListenSocket::ListenSocketDelegate *del)
+ : ListenSocket(del),
+ socket_(s),
reads_paused_(false),
has_pending_reads_(false) {
#if defined(OS_WIN)
@@ -95,7 +85,7 @@ ListenSocket::ListenSocket(SOCKET s, ListenSocketDelegate *del)
#endif
}
-ListenSocket::~ListenSocket() {
+TCPListenSocket::~TCPListenSocket() {
#if defined(OS_WIN)
if (socket_event_) {
WSACloseEvent(socket_event_);
@@ -105,7 +95,7 @@ ListenSocket::~ListenSocket() {
CloseSocket(socket_);
}
-SOCKET ListenSocket::Listen(std::string ip, int port) {
+SOCKET TCPListenSocket::CreateAndBind(std::string ip, int port) {
SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (s != kInvalidSocket) {
#if defined(OS_POSIX)
@@ -130,7 +120,7 @@ SOCKET ListenSocket::Listen(std::string ip, int port) {
return s;
}
-SOCKET ListenSocket::Accept(SOCKET s) {
+SOCKET TCPListenSocket::Accept(SOCKET s) {
sockaddr_in from;
socklen_t from_len = sizeof(from);
SOCKET conn =
@@ -141,7 +131,7 @@ SOCKET ListenSocket::Accept(SOCKET s) {
return conn;
}
-void ListenSocket::SendInternal(const char* bytes, int len) {
+void TCPListenSocket::SendInternal(const char* bytes, int len) {
char* send_buf = const_cast<char *>(bytes);
int len_left = len;
while (true) {
@@ -171,7 +161,7 @@ void ListenSocket::SendInternal(const char* bytes, int len) {
}
}
-void ListenSocket::Listen() {
+void TCPListenSocket::Listen() {
int backlog = 10; // TODO(erikkay): maybe don't allow any backlog?
listen(socket_, backlog);
// TODO(erikkay): error handling
@@ -180,11 +170,11 @@ void ListenSocket::Listen() {
#endif
}
-void ListenSocket::Accept() {
+void TCPListenSocket::Accept() {
SOCKET conn = Accept(socket_);
if (conn != kInvalidSocket) {
- scoped_refptr<ListenSocket> sock(
- new ListenSocket(conn, socket_delegate_));
+ scoped_refptr<TCPListenSocket> sock(
+ new TCPListenSocket(conn, socket_delegate_));
// it's up to the delegate to AddRef if it wants to keep it around
#if defined(OS_POSIX)
sock->WatchSocket(WAITING_READ);
@@ -195,7 +185,7 @@ void ListenSocket::Accept() {
}
}
-void ListenSocket::Read() {
+void TCPListenSocket::Read() {
char buf[kReadBufSize + 1]; // +1 for null termination
int len;
do {
@@ -228,7 +218,7 @@ void ListenSocket::Read() {
} while (len == kReadBufSize);
}
-void ListenSocket::Close() {
+void TCPListenSocket::Close() {
#if defined(OS_POSIX)
if (wait_state_ == NOT_WAITING)
return;
@@ -238,7 +228,7 @@ void ListenSocket::Close() {
socket_delegate_->DidClose(this);
}
-void ListenSocket::CloseSocket(SOCKET s) {
+void TCPListenSocket::CloseSocket(SOCKET s) {
if (s && s != kInvalidSocket) {
UnwatchSocket();
#if defined(OS_WIN)
@@ -249,7 +239,7 @@ void ListenSocket::CloseSocket(SOCKET s) {
}
}
-void ListenSocket::WatchSocket(WaitState state) {
+void TCPListenSocket::WatchSocket(WaitState state) {
#if defined(OS_WIN)
WSAEventSelect(socket_, socket_event_, FD_ACCEPT | FD_CLOSE | FD_READ);
watcher_.StartWatching(socket_event_, this);
@@ -261,7 +251,7 @@ void ListenSocket::WatchSocket(WaitState state) {
#endif
}
-void ListenSocket::UnwatchSocket() {
+void TCPListenSocket::UnwatchSocket() {
#if defined(OS_WIN)
watcher_.StopWatching();
#elif defined(OS_POSIX)
@@ -272,7 +262,7 @@ void ListenSocket::UnwatchSocket() {
// TODO(ibrar): We can add these functions into OS dependent files
#if defined(OS_WIN)
// MessageLoop watcher callback
-void ListenSocket::OnObjectSignaled(HANDLE object) {
+void TCPListenSocket::OnObjectSignaled(HANDLE object) {
WSANETWORKEVENTS ev;
if (kSocketError == WSAEnumNetworkEvents(socket_, socket_event_, &ev)) {
// TODO
@@ -302,7 +292,7 @@ void ListenSocket::OnObjectSignaled(HANDLE object) {
}
}
#elif defined(OS_POSIX)
-void ListenSocket::OnFileCanReadWithoutBlocking(int fd) {
+void TCPListenSocket::OnFileCanReadWithoutBlocking(int fd) {
switch (wait_state_) {
case WAITING_ACCEPT:
Accept();
@@ -321,7 +311,7 @@ void ListenSocket::OnFileCanReadWithoutBlocking(int fd) {
}
}
-void ListenSocket::OnFileCanWriteWithoutBlocking(int fd) {
+void TCPListenSocket::OnFileCanWriteWithoutBlocking(int fd) {
// MessagePumpLibevent callback, we don't listen for write events
// so we shouldn't ever reach here.
NOTREACHED();
« no previous file with comments | « net/base/tcp_listen_socket.h ('k') | net/base/tcp_listen_socket_unittest.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698