summaryrefslogtreecommitdiffstats
path: root/net/socket/tcp_client_socket_pool.cc
diff options
context:
space:
mode:
authoreroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-20 19:38:30 +0000
committereroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-20 19:38:30 +0000
commitfd7b7c97553ad90ca9c4e6b83b320c076e902af8 (patch)
tree26016f371b93d686f8f025edd931bbe01e7b7a0b /net/socket/tcp_client_socket_pool.cc
parentaf9a7a5f59a1b5988b9c0e948c95724f61910393 (diff)
downloadchromium_src-fd7b7c97553ad90ca9c4e6b83b320c076e902af8.zip
chromium_src-fd7b7c97553ad90ca9c4e6b83b320c076e902af8.tar.gz
chromium_src-fd7b7c97553ad90ca9c4e6b83b320c076e902af8.tar.bz2
Add instrumentation to ClientSocketPool, that writes to LoadLog.
BUG=http://crbug.com/14478 Review URL: http://codereview.chromium.org/174101 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23855 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket/tcp_client_socket_pool.cc')
-rw-r--r--net/socket/tcp_client_socket_pool.cc15
1 files changed, 9 insertions, 6 deletions
diff --git a/net/socket/tcp_client_socket_pool.cc b/net/socket/tcp_client_socket_pool.cc
index 2a23e55..77a5fad 100644
--- a/net/socket/tcp_client_socket_pool.cc
+++ b/net/socket/tcp_client_socket_pool.cc
@@ -29,8 +29,9 @@ TCPConnectJob::TCPConnectJob(
base::TimeDelta timeout_duration,
ClientSocketFactory* client_socket_factory,
HostResolver* host_resolver,
- Delegate* delegate)
- : ConnectJob(group_name, handle, timeout_duration, delegate),
+ Delegate* delegate,
+ LoadLog* load_log)
+ : ConnectJob(group_name, handle, timeout_duration, delegate, load_log),
resolve_info_(resolve_info),
client_socket_factory_(client_socket_factory),
ALLOW_THIS_IN_INITIALIZER_LIST(
@@ -51,7 +52,7 @@ int TCPConnectJob::ConnectInternal() {
void TCPConnectJob::OnIOComplete(int result) {
int rv = DoLoop(result);
if (rv != ERR_IO_PENDING)
- delegate()->OnConnectJobComplete(rv, this); // Deletes |this|
+ NotifyDelegateOfCompletion(rv); // Deletes |this|
}
int TCPConnectJob::DoLoop(int result) {
@@ -89,7 +90,7 @@ int TCPConnectJob::DoLoop(int result) {
int TCPConnectJob::DoResolveHost() {
set_load_state(LOAD_STATE_RESOLVING_HOST);
next_state_ = kStateResolveHostComplete;
- return resolver_.Resolve(resolve_info_, &addresses_, &callback_, NULL);
+ return resolver_.Resolve(resolve_info_, &addresses_, &callback_, load_log());
}
int TCPConnectJob::DoResolveHostComplete(int result) {
@@ -104,6 +105,7 @@ int TCPConnectJob::DoTCPConnect() {
set_load_state(LOAD_STATE_CONNECTING);
set_socket(client_socket_factory_->CreateTCPClientSocket(addresses_));
connect_start_time_ = base::TimeTicks::Now();
+ // TODO(eroman): Socket::Connect() should take a LoadLog.
return socket()->Connect(&callback_);
}
@@ -130,11 +132,12 @@ int TCPConnectJob::DoTCPConnectComplete(int result) {
ConnectJob* TCPClientSocketPool::TCPConnectJobFactory::NewConnectJob(
const std::string& group_name,
const PoolBase::Request& request,
- ConnectJob::Delegate* delegate) const {
+ ConnectJob::Delegate* delegate,
+ LoadLog* load_log) const {
return new TCPConnectJob(
group_name, request.params(), request.handle(),
base::TimeDelta::FromSeconds(kTCPConnectJobTimeoutInSeconds),
- client_socket_factory_, host_resolver_, delegate);
+ client_socket_factory_, host_resolver_, delegate, load_log);
}
TCPClientSocketPool::TCPClientSocketPool(