Index: net/base/client_socket_handle.h |
=================================================================== |
--- net/base/client_socket_handle.h (revision 18948) |
+++ net/base/client_socket_handle.h (working copy) |
@@ -1,100 +0,0 @@ |
-// Copyright (c) 2006-2008 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_CLIENT_SOCKET_HANDLE_H_ |
-#define NET_BASE_CLIENT_SOCKET_HANDLE_H_ |
- |
-#include <string> |
- |
-#include "base/ref_counted.h" |
-#include "base/scoped_ptr.h" |
-#include "net/base/client_socket.h" |
-#include "net/base/completion_callback.h" |
-#include "net/base/host_resolver.h" |
-#include "net/base/load_states.h" |
- |
-namespace net { |
- |
-class ClientSocketPool; |
- |
-// A container for a ClientSocket. |
-// |
-// The handle's |group_name| uniquely identifies the origin and type of the |
-// connection. It is used by the ClientSocketPool to group similar connected |
-// client socket objects. |
-// |
-class ClientSocketHandle { |
- public: |
- explicit ClientSocketHandle(ClientSocketPool* pool); |
- ~ClientSocketHandle(); |
- |
- // Initializes a ClientSocketHandle object, which involves talking to the |
- // ClientSocketPool to obtain a connected socket, possibly reusing one. This |
- // method returns either OK or ERR_IO_PENDING. On ERR_IO_PENDING, |priority| |
- // is used to determine the placement in ClientSocketPool's wait list. |
- // |
- // If this method succeeds, then the socket member will be set to an existing |
- // connected socket if an existing connected socket was available to reuse, |
- // otherwise it will be set to a new connected socket. Consumers can then |
- // call is_reused() to see if the socket was reused. If not reusing an |
- // existing socket, ClientSocketPool may need to establish a new |
- // connection to the |resolve_info.host| |resolve_info.port| pair. |
- // |
- // This method returns ERR_IO_PENDING if it cannot complete synchronously, in |
- // which case the consumer will be notified of completion via |callback|. |
- // |
- // Init may be called multiple times. |
- // |
- int Init(const std::string& group_name, |
- const HostResolver::RequestInfo& resolve_info, |
- int priority, |
- CompletionCallback* callback); |
- |
- // An initialized handle can be reset, which causes it to return to the |
- // un-initialized state. This releases the underlying socket, which in the |
- // case of a socket that still has an established connection, indicates that |
- // the socket may be kept alive for use by a subsequent ClientSocketHandle. |
- // |
- // NOTE: To prevent the socket from being kept alive, be sure to call its |
- // Disconnect method. This will result in the ClientSocketPool deleting the |
- // ClientSocket. |
- void Reset(); |
- |
- // Used after Init() is called, but before the ClientSocketPool has |
- // initialized the ClientSocketHandle. |
- LoadState GetLoadState() const; |
- |
- // Returns true when Init() has completed successfully. |
- bool is_initialized() const { return socket_ != NULL; } |
- |
- // Used by ClientSocketPool to initialize the ClientSocketHandle. |
- void set_is_reused(bool is_reused) { is_reused_ = is_reused; } |
- void set_socket(ClientSocket* s) { socket_.reset(s); } |
- |
- // These may only be used if is_initialized() is true. |
- const std::string& group_name() const { return group_name_; } |
- ClientSocket* socket() { return socket_.get(); } |
- ClientSocket* release_socket() { return socket_.release(); } |
- bool is_reused() const { return is_reused_; } |
- |
- private: |
- void OnIOComplete(int result); |
- |
- // Resets the state of the ClientSocketHandle. |cancel| indicates whether or |
- // not to try to cancel the request with the ClientSocketPool. |
- void ResetInternal(bool cancel); |
- |
- scoped_refptr<ClientSocketPool> pool_; |
- scoped_ptr<ClientSocket> socket_; |
- std::string group_name_; |
- bool is_reused_; |
- CompletionCallbackImpl<ClientSocketHandle> callback_; |
- CompletionCallback* user_callback_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ClientSocketHandle); |
-}; |
- |
-} // namespace net |
- |
-#endif // NET_BASE_CLIENT_SOCKET_HANDLE_H_ |