Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Unified Diff: net/socket/client_socket_pool_base.cc

Issue 6094005: Create "Prebind" a wrapper to tr1::bind. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/base
Patch Set: Remove closure.h and ThunkState Created 9 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« base/prebind.h ('K') | « net/socket/client_socket_pool_base.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/socket/client_socket_pool_base.cc
diff --git a/net/socket/client_socket_pool_base.cc b/net/socket/client_socket_pool_base.cc
index 86ba2dd47212c94da9f2816ba22dbdbd7be52909..7c8e03bc4ee6aa8c4571e9fcb6aff73756063ef6 100644
--- a/net/socket/client_socket_pool_base.cc
+++ b/net/socket/client_socket_pool_base.cc
@@ -133,7 +133,7 @@ namespace internal {
ClientSocketPoolBaseHelper::Request::Request(
ClientSocketHandle* handle,
- CompletionCallback* callback,
+ Tr1CompletionCallback callback,
RequestPriority priority,
Flags flags,
const BoundNetLog& net_log)
@@ -160,8 +160,7 @@ ClientSocketPoolBaseHelper::ClientSocketPoolBaseHelper(
used_idle_socket_timeout_(used_idle_socket_timeout),
connect_job_factory_(connect_job_factory),
connect_backup_jobs_enabled_(false),
- pool_generation_number_(0),
- method_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
+ pool_generation_number_(0) {
DCHECK_LE(0, max_sockets_per_group);
DCHECK_LE(max_sockets_per_group, max_sockets);
@@ -208,7 +207,6 @@ ClientSocketPoolBaseHelper::RemoveRequestFromQueue(
int ClientSocketPoolBaseHelper::RequestSocket(
const std::string& group_name,
const Request* request) {
- CHECK(request->callback());
CHECK(request->handle());
request->net_log().BeginEvent(NetLog::TYPE_SOCKET_POOL, NULL);
@@ -229,7 +227,6 @@ void ClientSocketPoolBaseHelper::RequestSockets(
const std::string& group_name,
const Request& request,
int num_sockets) {
- DCHECK(!request.callback());
DCHECK(!request.handle());
if (num_sockets > max_sockets_per_group_) {
@@ -975,14 +972,15 @@ bool ClientSocketPoolBaseHelper::CloseOneIdleSocketExceptInGroup(
}
void ClientSocketPoolBaseHelper::InvokeUserCallbackLater(
- ClientSocketHandle* handle, CompletionCallback* callback, int rv) {
+ ClientSocketHandle* handle, Tr1CompletionCallback callback, int rv) {
CHECK(!ContainsKey(pending_callback_map_, handle));
pending_callback_map_[handle] = CallbackResultPair(callback, rv);
- MessageLoop::current()->PostTask(
- FROM_HERE,
- method_factory_.NewRunnableMethod(
- &ClientSocketPoolBaseHelper::InvokeUserCallback,
- handle));
+
+ base::Thunk<void(void)> invoke_thunk =
+ base::Prebind(&ClientSocketPoolBaseHelper::InvokeUserCallback,
+ base::Unretained(this), handle);
+ MessageLoop::current()->PostThunk(FROM_HERE,
+ thunk_canceller_.Wrap(invoke_thunk));
}
void ClientSocketPoolBaseHelper::InvokeUserCallback(
@@ -994,15 +992,14 @@ void ClientSocketPoolBaseHelper::InvokeUserCallback(
return;
CHECK(!handle->is_initialized());
- CompletionCallback* callback = it->second.callback;
+ Tr1CompletionCallback callback = it->second.callback;
int result = it->second.result;
pending_callback_map_.erase(it);
- callback->Run(result);
+ callback(result);
}
ClientSocketPoolBaseHelper::Group::Group()
- : active_socket_count_(0),
- ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {}
+ : active_socket_count_(0) {}
ClientSocketPoolBaseHelper::Group::~Group() {
CleanupBackupJob();
@@ -1012,13 +1009,14 @@ void ClientSocketPoolBaseHelper::Group::StartBackupSocketTimer(
const std::string& group_name,
ClientSocketPoolBaseHelper* pool) {
// Only allow one timer pending to create a backup socket.
- if (!method_factory_.empty())
+ if (!thunk_canceller_.empty())
return;
- MessageLoop::current()->PostDelayedTask(
+
+ MessageLoop::current()->PostDelayedThunk(
FROM_HERE,
- method_factory_.NewRunnableMethod(
- &Group::OnBackupSocketTimerFired, group_name, pool),
+ thunk_canceller_.Wrap(base::Prebind(&Group::OnBackupSocketTimerFired,
+ base::Unretained(this), group_name, pool)),
pool->ConnectRetryIntervalMs());
}
@@ -1074,7 +1072,7 @@ void ClientSocketPoolBaseHelper::Group::RemoveAllJobs() {
STLDeleteElements(&jobs_);
// Cancel pending backup job.
- method_factory_.RevokeAll();
+ thunk_canceller_.RevokeAll();
}
} // namespace internal
« base/prebind.h ('K') | « net/socket/client_socket_pool_base.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698