summaryrefslogtreecommitdiffstats
path: root/net/base/tcp_client_socket.h
diff options
context:
space:
mode:
authorevanm@google.com <evanm@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-09-18 00:23:24 +0000
committerevanm@google.com <evanm@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-09-18 00:23:24 +0000
commit35aa85ac00fbfa16bd9f52b05e47eb09a3b6a0ce (patch)
tree1f42710b6f0e4250bca214f340ab752491f6d20a /net/base/tcp_client_socket.h
parentdab8619b4848bb10dfe78a3f0c59d6e661ec9610 (diff)
downloadchromium_src-35aa85ac00fbfa16bd9f52b05e47eb09a3b6a0ce.zip
chromium_src-35aa85ac00fbfa16bd9f52b05e47eb09a3b6a0ce.tar.gz
chromium_src-35aa85ac00fbfa16bd9f52b05e47eb09a3b6a0ce.tar.bz2
Revert "Make tcp_client_socket_unittest pass on Linux."
This reverts commit d63170654d935f5a8ff6517bfacb60893f186a6b. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2347 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/tcp_client_socket.h')
-rw-r--r--net/base/tcp_client_socket.h71
1 files changed, 18 insertions, 53 deletions
diff --git a/net/base/tcp_client_socket.h b/net/base/tcp_client_socket.h
index 32cd59a..06a57fe 100644
--- a/net/base/tcp_client_socket.h
+++ b/net/base/tcp_client_socket.h
@@ -5,19 +5,9 @@
#ifndef NET_BASE_TCP_CLIENT_SOCKET_H_
#define NET_BASE_TCP_CLIENT_SOCKET_H_
-#include "build/build_config.h"
-
-#if defined(OS_WIN)
#include <ws2tcpip.h>
+
#include "base/object_watcher.h"
-#elif defined(OS_POSIX)
-struct event; // From libevent
-#define SOCKET int
-#include "base/message_pump_libevent.h"
-#endif
-
-#include "base/completion_callback.h"
-#include "base/scoped_ptr.h"
#include "net/base/address_list.h"
#include "net/base/client_socket.h"
@@ -28,12 +18,7 @@ namespace net {
// NOTE: The implementation supports half duplex only. Read and Write calls
// must not be in progress at the same time.
class TCPClientSocket : public ClientSocket,
-#if defined(OS_WIN)
- public base::ObjectWatcher::Delegate
-#elif defined(OS_POSIX)
- public base::MessagePumpLibevent::Watcher
-#endif
-{
+ public base::ObjectWatcher::Delegate {
public:
// The IP address(es) and port number to connect to. The TCP socket will try
// each IP address in the list until it succeeds in establishing a
@@ -49,23 +34,31 @@ class TCPClientSocket : public ClientSocket,
virtual bool IsConnected() const;
// Socket methods:
- // Try to transfer buf_len bytes to/from socket.
- // If a result is available now, return it; else call back later with one.
- // Do not call again until a result is returned!
- // If any bytes were transferred, the result is the byte count.
- // On error, result is a negative error code; see net/base/net_error_list.h
- // TODO: what would a zero return value indicate?
- // TODO: support multiple outstanding requests?
virtual int Read(char* buf, int buf_len, CompletionCallback* callback);
virtual int Write(const char* buf, int buf_len, CompletionCallback* callback);
private:
+ int CreateSocket(const struct addrinfo* ai);
+ void DoCallback(int rv);
+ void DidCompleteConnect();
+ void DidCompleteIO();
+
+ // base::ObjectWatcher::Delegate methods:
+ virtual void OnObjectSignaled(HANDLE object);
+
SOCKET socket_;
+ OVERLAPPED overlapped_;
+ WSABUF buffer_;
+
+ base::ObjectWatcher watcher_;
+
+ CompletionCallback* callback_;
// The list of addresses we should try in order to establish a connection.
AddressList addresses_;
- // Where we are in above list, or NULL if all addrinfos have been tried.
+ // The addrinfo that we are attempting to use or NULL if all addrinfos have
+ // been tried.
const struct addrinfo* current_ai_;
enum WaitState {
@@ -75,34 +68,6 @@ class TCPClientSocket : public ClientSocket,
WAITING_WRITE
};
WaitState wait_state_;
-
-#if defined(OS_WIN)
- // base::ObjectWatcher::Delegate methods:
- virtual void OnObjectSignaled(HANDLE object);
-
- OVERLAPPED overlapped_;
- WSABUF buffer_;
-
- base::ObjectWatcher watcher_;
-#elif defined(OS_POSIX)
- // The socket's libevent wrapper
- scoped_ptr<event> event_;
-
- // Called by MessagePumpLibevent when the socket is ready to do I/O
- void OnSocketReady(short flags);
-
- // The buffer used by OnSocketReady to retry Read and Write requests
- char* buf_;
- int buf_len_;
-#endif
-
- // External callback; called when read or write is complete.
- CompletionCallback* callback_;
-
- int CreateSocket(const struct addrinfo* ai);
- void DoCallback(int rv);
- void DidCompleteConnect();
- void DidCompleteIO();
};
} // namespace net