base::Bind: Convert most of net/http.
BUG=none
TEST=none
R=csilv
Review URL: http://codereview.chromium.org/8990001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115220 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/http/http_auth_handler.cc b/net/http/http_auth_handler.cc
index c196b85..0aad829 100644
--- a/net/http/http_auth_handler.cc
+++ b/net/http/http_auth_handler.cc
@@ -4,6 +4,8 @@
#include "net/http/http_auth_handler.h"
+#include "base/bind.h"
+#include "base/bind_helpers.h"
#include "base/logging.h"
#include "net/base/net_errors.h"
@@ -13,11 +15,7 @@
: auth_scheme_(HttpAuth::AUTH_SCHEME_MAX),
score_(-1),
target_(HttpAuth::AUTH_NONE),
- properties_(-1),
- original_callback_(NULL),
- ALLOW_THIS_IN_INITIALIZER_LIST(
- wrapper_callback_(
- this, &HttpAuthHandler::OnGenerateAuthTokenComplete)) {
+ properties_(-1) {
}
HttpAuthHandler::~HttpAuthHandler() {
@@ -62,19 +60,21 @@
} // namespace
-int HttpAuthHandler::GenerateAuthToken(const AuthCredentials* credentials,
- const HttpRequestInfo* request,
- OldCompletionCallback* callback,
- std::string* auth_token) {
+int HttpAuthHandler::GenerateAuthToken(
+ const AuthCredentials* credentials, const HttpRequestInfo* request,
+ const CompletionCallback& callback, std::string* auth_token) {
// TODO(cbentzel): Enforce non-NULL callback after cleaning up SocketStream.
DCHECK(request);
DCHECK(credentials != NULL || AllowsDefaultCredentials());
DCHECK(auth_token != NULL);
- DCHECK(original_callback_ == NULL);
- original_callback_ = callback;
+ DCHECK(callback_.is_null());
+ callback_ = callback;
net_log_.BeginEvent(EventTypeFromAuthTarget(target_), NULL);
- int rv = GenerateAuthTokenImpl(credentials, request,
- &wrapper_callback_, auth_token);
+ int rv = GenerateAuthTokenImpl(
+ credentials, request,
+ base::Bind(&HttpAuthHandler::OnGenerateAuthTokenComplete,
+ base::Unretained(this)),
+ auth_token);
if (rv != ERR_IO_PENDING)
FinishGenerateAuthToken();
return rv;
@@ -93,16 +93,16 @@
}
void HttpAuthHandler::OnGenerateAuthTokenComplete(int rv) {
- OldCompletionCallback* callback = original_callback_;
+ CompletionCallback callback = callback_;
FinishGenerateAuthToken();
- if (callback)
- callback->Run(rv);
+ if (!callback.is_null())
+ callback.Run(rv);
}
void HttpAuthHandler::FinishGenerateAuthToken() {
// TOOD(cbentzel): Should this be done in OK case only?
net_log_.EndEvent(EventTypeFromAuthTarget(target_), NULL);
- original_callback_ = NULL;
+ callback_.Reset();
}
} // namespace net