| Index: net/base/client_socket_handle.h
|
| diff --git a/net/base/client_socket_handle.h b/net/base/client_socket_handle.h
|
| index 5bac2c8c5ea99c2963491e4526f6530063f0f125..1328369fcdaeb5bcae331b47c91a014a604322f0 100644
|
| --- a/net/base/client_socket_handle.h
|
| +++ b/net/base/client_socket_handle.h
|
| @@ -11,43 +11,40 @@
|
| #include "base/scoped_ptr.h"
|
| #include "net/base/client_socket.h"
|
| #include "net/base/completion_callback.h"
|
| -#include "net/base/load_states.h"
|
|
|
| namespace net {
|
|
|
| class ClientSocketPool;
|
|
|
| -// A container for a ClientSocket.
|
| +// A container for a connected 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.
|
| //
|
| +// A handle is initialized with a null socket. It is the consumer's job to
|
| +// initialize a ClientSocket object and set it on the handle.
|
| +//
|
| 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.
|
| + // ClientSocketPool to locate a socket to possibly reuse. 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 |host| |port| pair.
|
| + // socket if an existing socket was available to reuse. Otherwise, the
|
| + // consumer should set the socket member of this handle.
|
| //
|
| // This method returns ERR_IO_PENDING if it cannot complete synchronously, in
|
| - // which case the consumer will be notified of completion via |callback|.
|
| + // which case the consumer should wait for the completion callback to run.
|
| //
|
| // Init may be called multiple times.
|
| //
|
| int Init(const std::string& group_name,
|
| - const std::string& host,
|
| - int port,
|
| int priority,
|
| CompletionCallback* callback);
|
|
|
| @@ -57,40 +54,25 @@ class ClientSocketHandle {
|
| // 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.
|
| + // Disconnect method.
|
| + //
|
| 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.
|
| + // 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_; }
|
| + ClientSocket* socket() { return socket_->get(); }
|
| + ClientSocket* release_socket() { return socket_->release(); }
|
| + void set_socket(ClientSocket* s) { socket_->reset(s); }
|
|
|
| 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);
|
| + friend class ClientSocketPool;
|
|
|
| scoped_refptr<ClientSocketPool> pool_;
|
| - scoped_ptr<ClientSocket> socket_;
|
| + scoped_ptr<ClientSocket>* socket_;
|
| std::string group_name_;
|
| - bool is_reused_;
|
| - CompletionCallbackImpl<ClientSocketHandle> callback_;
|
| - CompletionCallback* user_callback_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ClientSocketHandle);
|
| };
|
|
|