diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-17 23:59:33 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-17 23:59:33 +0000 |
commit | b391fb3da5e5af2388b71076234d2982327ceb48 (patch) | |
tree | f7d75fbb0b7def6fc8ca48578e825490e25fcaa5 /net/base/tcp_client_socket_win.h | |
parent | 5f78651f721e01b6b064697e6a513d44eaef8c90 (diff) | |
download | chromium_src-b391fb3da5e5af2388b71076234d2982327ceb48.zip chromium_src-b391fb3da5e5af2388b71076234d2982327ceb48.tar.gz chromium_src-b391fb3da5e5af2388b71076234d2982327ceb48.tar.bz2 |
Reverting 13983.
Review URL: http://codereview.chromium.org/79066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13987 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/tcp_client_socket_win.h')
-rw-r--r-- | net/base/tcp_client_socket_win.h | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/net/base/tcp_client_socket_win.h b/net/base/tcp_client_socket_win.h deleted file mode 100644 index 63f2b93..0000000 --- a/net/base/tcp_client_socket_win.h +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef NET_BASE_TCP_CLIENT_SOCKET_WIN_H_ -#define NET_BASE_TCP_CLIENT_SOCKET_WIN_H_ - -#include <ws2tcpip.h> - -#include "base/object_watcher.h" -#include "net/base/address_list.h" -#include "net/base/client_socket.h" -#include "net/base/completion_callback.h" - -namespace net { - -class TCPClientSocketWin : public ClientSocket { - 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 - // connection. - explicit TCPClientSocketWin(const AddressList& addresses); - - ~TCPClientSocketWin(); - - // ClientSocket methods: - virtual int Connect(CompletionCallback* callback); - virtual void Disconnect(); - virtual bool IsConnected() const; - virtual bool IsConnectedAndIdle() const; - - // Socket methods: - // Multiple outstanding requests are not supported. - // Full duplex mode (reading and writing at the same time) is supported - virtual int Read(char* buf, int buf_len, CompletionCallback* callback); - virtual int Write(const char* buf, int buf_len, CompletionCallback* callback); - - private: - class ReadDelegate : public base::ObjectWatcher::Delegate { - public: - explicit ReadDelegate(TCPClientSocketWin* tcp_socket) - : tcp_socket_(tcp_socket) { } - virtual ~ReadDelegate() { } - - // base::ObjectWatcher::Delegate methods: - virtual void OnObjectSignaled(HANDLE object); - - private: - TCPClientSocketWin* const tcp_socket_; - }; - - class WriteDelegate : public base::ObjectWatcher::Delegate { - public: - explicit WriteDelegate(TCPClientSocketWin* tcp_socket) - : tcp_socket_(tcp_socket) { } - virtual ~WriteDelegate() { } - - // base::ObjectWatcher::Delegate methods: - virtual void OnObjectSignaled(HANDLE object); - - private: - TCPClientSocketWin* const tcp_socket_; - }; - - int CreateSocket(const struct addrinfo* ai); - void DoReadCallback(int rv); - void DoWriteCallback(int rv); - void DidCompleteConnect(); - - SOCKET socket_; - - // 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. - const struct addrinfo* current_ai_; - - // The various states that the socket could be in. - bool waiting_connect_; - bool waiting_read_; - bool waiting_write_; - - // The separate OVERLAPPED variables for asynchronous operation. - // |read_overlapped_| is used for both Connect() and Read(). - // |write_overlapped_| is only used for Write(); - OVERLAPPED read_overlapped_; - OVERLAPPED write_overlapped_; - - // The buffers used in Read() and Write(). - WSABUF read_buffer_; - WSABUF write_buffer_; - - // |reader_| handles the signals from |read_watcher_|. - ReadDelegate reader_; - // |writer_| handles the signals from |write_watcher_|. - WriteDelegate writer_; - - // |read_watcher_| watches for events from Connect() and Read(). - base::ObjectWatcher read_watcher_; - // |write_watcher_| watches for events from Write(); - base::ObjectWatcher write_watcher_; - - // External callback; called when connect or read is complete. - CompletionCallback* read_callback_; - - // External callback; called when write is complete. - CompletionCallback* write_callback_; - - DISALLOW_COPY_AND_ASSIGN(TCPClientSocketWin); -}; - -} // namespace net - -#endif // NET_BASE_TCP_CLIENT_SOCKET_WIN_H_ |