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

Unified Diff: net/base/single_request_host_resolver.cc

Issue 8549004: base::Bind: Convert HostResolver::Resolve. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 9 years, 1 month 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
« no previous file with comments | « net/base/single_request_host_resolver.h ('k') | net/base/single_request_host_resolver_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/single_request_host_resolver.cc
diff --git a/net/base/single_request_host_resolver.cc b/net/base/single_request_host_resolver.cc
index 5af3dd5cfed45d45842aa1b8c0cdcd772372c0b2..b975c0092df1680c7509e5514ee1d4e32d878def 100644
--- a/net/base/single_request_host_resolver.cc
+++ b/net/base/single_request_host_resolver.cc
@@ -4,6 +4,8 @@
#include "net/base/single_request_host_resolver.h"
+#include "base/bind.h"
+#include "base/bind_helpers.h"
#include "base/compiler_specific.h"
#include "base/logging.h"
#include "net/base/net_errors.h"
@@ -13,9 +15,9 @@ namespace net {
SingleRequestHostResolver::SingleRequestHostResolver(HostResolver* resolver)
: resolver_(resolver),
cur_request_(NULL),
- cur_request_callback_(NULL),
- ALLOW_THIS_IN_INITIALIZER_LIST(
- callback_(this, &SingleRequestHostResolver::OnResolveCompletion)) {
+ ALLOW_THIS_IN_INITIALIZER_LIST(callback_(
+ base::Bind(&SingleRequestHostResolver::OnResolveCompletion,
+ base::Unretained(this)))) {
DCHECK(resolver_ != NULL);
}
@@ -23,25 +25,25 @@ SingleRequestHostResolver::~SingleRequestHostResolver() {
Cancel();
}
-int SingleRequestHostResolver::Resolve(const HostResolver::RequestInfo& info,
- AddressList* addresses,
- OldCompletionCallback* callback,
- const BoundNetLog& net_log) {
+int SingleRequestHostResolver::Resolve(
+ const HostResolver::RequestInfo& info, AddressList* addresses,
+ const CompletionCallback& callback, const BoundNetLog& net_log) {
DCHECK(addresses);
- DCHECK(callback);
- DCHECK(!cur_request_callback_) << "resolver already in use";
+ DCHECK_EQ(false, callback.is_null());
+ DCHECK(cur_request_callback_.is_null()) << "resolver already in use";
HostResolver::RequestHandle request = NULL;
// We need to be notified of completion before |callback| is called, so that
// we can clear out |cur_request_*|.
- OldCompletionCallback* transient_callback = callback ? &callback_ : NULL;
+ CompletionCallback transient_callback =
+ callback.is_null() ? CompletionCallback() : callback_;
int rv = resolver_->Resolve(
info, addresses, transient_callback, &request, net_log);
if (rv == ERR_IO_PENDING) {
- DCHECK(callback);
+ DCHECK_EQ(false, callback.is_null());
// Cleared in OnResolveCompletion().
cur_request_ = request;
cur_request_callback_ = callback;
@@ -51,24 +53,25 @@ int SingleRequestHostResolver::Resolve(const HostResolver::RequestInfo& info,
}
void SingleRequestHostResolver::Cancel() {
- if (cur_request_callback_) {
+ if (!cur_request_callback_.is_null()) {
resolver_->CancelRequest(cur_request_);
cur_request_ = NULL;
- cur_request_callback_ = NULL;
+ cur_request_callback_.Reset();
}
}
void SingleRequestHostResolver::OnResolveCompletion(int result) {
- DCHECK(cur_request_ && cur_request_callback_);
+ DCHECK(cur_request_);
+ DCHECK_EQ(false, cur_request_callback_.is_null());
- OldCompletionCallback* callback = cur_request_callback_;
+ CompletionCallback callback = cur_request_callback_;
// Clear the outstanding request information.
cur_request_ = NULL;
- cur_request_callback_ = NULL;
+ cur_request_callback_.Reset();
// Call the user's original callback.
- callback->Run(result);
+ callback.Run(result);
}
} // namespace net
« no previous file with comments | « net/base/single_request_host_resolver.h ('k') | net/base/single_request_host_resolver_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698