diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-04 15:02:18 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-04 15:02:18 +0000 |
commit | b19537cdc317d6baab5183e111668ccc88c661f6 (patch) | |
tree | ff0677915cf56d7ca78150f6a279960c0c243907 /net/base/dnsrr_resolver.cc | |
parent | d10f0a0460e6c508adf61e6825f390e6c346091f (diff) | |
download | chromium_src-b19537cdc317d6baab5183e111668ccc88c661f6.zip chromium_src-b19537cdc317d6baab5183e111668ccc88c661f6.tar.gz chromium_src-b19537cdc317d6baab5183e111668ccc88c661f6.tar.bz2 |
Introduce a new CompletionCallback and TestCompletionCallback.
Start using it in DnsRRResolver.
BUG=98719
TEST=none
Review URL: http://codereview.chromium.org/8095026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103885 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/dnsrr_resolver.cc')
-rw-r--r-- | net/base/dnsrr_resolver.cc | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/net/base/dnsrr_resolver.cc b/net/base/dnsrr_resolver.cc index d74a92b..b11ea2e 100644 --- a/net/base/dnsrr_resolver.cc +++ b/net/base/dnsrr_resolver.cc @@ -113,30 +113,30 @@ RRResponse::~RRResponse() {} class RRResolverHandle { public: - RRResolverHandle(OldCompletionCallback* callback, RRResponse* response) + RRResolverHandle(const CompletionCallback& callback, RRResponse* response) : callback_(callback), response_(response) { } // Cancel ensures that the result callback will never be made. void Cancel() { - callback_ = NULL; + callback_.Reset(); response_ = NULL; } // Post copies the contents of |response| to the caller's RRResponse and // calls the callback. void Post(int rv, const RRResponse* response) { - if (callback_) { + if (!callback_.is_null()) { if (response_ && response) *response_ = *response; - callback_->Run(rv); + callback_.Run(rv); } delete this; } private: - OldCompletionCallback* callback_; + CompletionCallback callback_; RRResponse* response_; }; @@ -541,14 +541,15 @@ DnsRRResolver::~DnsRRResolver() { } intptr_t DnsRRResolver::Resolve(const std::string& name, uint16 rrtype, - uint16 flags, OldCompletionCallback* callback, + uint16 flags, + const CompletionCallback& callback, RRResponse* response, int priority /* ignored */, const BoundNetLog& netlog /* ignored */) { DCHECK(CalledOnValidThread()); DCHECK(!in_destructor_); - if (!callback || !response || name.empty()) + if (callback.is_null() || !response || name.empty()) return kInvalidHandle; // Don't allow queries of type ANY |