diff options
author | evanm@google.com <evanm@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-18 00:23:24 +0000 |
---|---|---|
committer | evanm@google.com <evanm@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-18 00:23:24 +0000 |
commit | 35aa85ac00fbfa16bd9f52b05e47eb09a3b6a0ce (patch) | |
tree | 1f42710b6f0e4250bca214f340ab752491f6d20a /net/base/tcp_client_socket.h | |
parent | dab8619b4848bb10dfe78a3f0c59d6e661ec9610 (diff) | |
download | chromium_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.h | 71 |
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 |