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

Side by Side Diff: net/base/mock_host_resolver.cc

Issue 8549004: base::Bind: Convert HostResolver::Resolve. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/base/mock_host_resolver.h" 5 #include "net/base/mock_host_resolver.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 *addrlist = AddressList::CreateByCopyingFirstAddress(result.head()); 53 *addrlist = AddressList::CreateByCopyingFirstAddress(result.head());
54 else 54 else
55 addrlist->Append(result.head()); 55 addrlist->Append(result.head());
56 } 56 }
57 return OK; 57 return OK;
58 } 58 }
59 59
60 struct MockHostResolverBase::Request { 60 struct MockHostResolverBase::Request {
61 Request(const RequestInfo& req_info, 61 Request(const RequestInfo& req_info,
62 AddressList* addr, 62 AddressList* addr,
63 OldCompletionCallback* cb) 63 const CompletionCallback& cb)
64 : info(req_info), addresses(addr), callback(cb) {} 64 : info(req_info), addresses(addr), callback(cb) {}
65 RequestInfo info; 65 RequestInfo info;
66 AddressList* addresses; 66 AddressList* addresses;
67 OldCompletionCallback* callback; 67 CompletionCallback callback;
68 }; 68 };
69 69
70 MockHostResolverBase::~MockHostResolverBase() { 70 MockHostResolverBase::~MockHostResolverBase() {
71 STLDeleteValues(&requests_); 71 STLDeleteValues(&requests_);
72 } 72 }
73 73
74 int MockHostResolverBase::Resolve(const RequestInfo& info, 74 int MockHostResolverBase::Resolve(const RequestInfo& info,
75 AddressList* addresses, 75 AddressList* addresses,
76 OldCompletionCallback* callback, 76 const CompletionCallback& callback,
77 RequestHandle* handle, 77 RequestHandle* handle,
78 const BoundNetLog& net_log) { 78 const BoundNetLog& net_log) {
79 DCHECK(CalledOnValidThread()); 79 DCHECK(CalledOnValidThread());
80 size_t id = next_request_id_++; 80 size_t id = next_request_id_++;
81 FOR_EACH_OBSERVER(Observer, observers_, OnStartResolution(id, info)); 81 FOR_EACH_OBSERVER(Observer, observers_, OnStartResolution(id, info));
82 int rv = ResolveFromIPLiteralOrCache(info, addresses); 82 int rv = ResolveFromIPLiteralOrCache(info, addresses);
83 if (rv != ERR_DNS_CACHE_MISS) { 83 if (rv != ERR_DNS_CACHE_MISS) {
84 FOR_EACH_OBSERVER(Observer, observers_, 84 FOR_EACH_OBSERVER(Observer, observers_,
85 OnFinishResolutionWithStatus(id, rv == OK, info)); 85 OnFinishResolutionWithStatus(id, rv == OK, info));
86 return rv; 86 return rv;
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 } 198 }
199 199
200 void MockHostResolverBase::ResolveNow(size_t id) { 200 void MockHostResolverBase::ResolveNow(size_t id) {
201 RequestMap::iterator it = requests_.find(id); 201 RequestMap::iterator it = requests_.find(id);
202 if (it == requests_.end()) 202 if (it == requests_.end())
203 return; // was canceled 203 return; // was canceled
204 204
205 scoped_ptr<Request> req(it->second); 205 scoped_ptr<Request> req(it->second);
206 requests_.erase(it); 206 requests_.erase(it);
207 int rv = ResolveProc(id, req->info, req->addresses); 207 int rv = ResolveProc(id, req->info, req->addresses);
208 if (req->callback) 208 if (!req->callback.is_null())
209 req->callback->Run(rv); 209 req->callback.Run(rv);
210 } 210 }
211 211
212 //----------------------------------------------------------------------------- 212 //-----------------------------------------------------------------------------
213 213
214 struct RuleBasedHostResolverProc::Rule { 214 struct RuleBasedHostResolverProc::Rule {
215 enum ResolverType { 215 enum ResolverType {
216 kResolverTypeFail, 216 kResolverTypeFail,
217 kResolverTypeSystem, 217 kResolverTypeSystem,
218 kResolverTypeIPLiteral, 218 kResolverTypeIPLiteral,
219 }; 219 };
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 #endif 374 #endif
375 375
376 // Next add a rules-based layer the use controls. 376 // Next add a rules-based layer the use controls.
377 return new RuleBasedHostResolverProc(catchall); 377 return new RuleBasedHostResolverProc(catchall);
378 } 378 }
379 379
380 //----------------------------------------------------------------------------- 380 //-----------------------------------------------------------------------------
381 381
382 int HangingHostResolver::Resolve(const RequestInfo& info, 382 int HangingHostResolver::Resolve(const RequestInfo& info,
383 AddressList* addresses, 383 AddressList* addresses,
384 OldCompletionCallback* callback, 384 const CompletionCallback& callback,
385 RequestHandle* out_req, 385 RequestHandle* out_req,
386 const BoundNetLog& net_log) { 386 const BoundNetLog& net_log) {
387 return ERR_IO_PENDING; 387 return ERR_IO_PENDING;
388 } 388 }
389 389
390 int HangingHostResolver::ResolveFromCache(const RequestInfo& info, 390 int HangingHostResolver::ResolveFromCache(const RequestInfo& info,
391 AddressList* addresses, 391 AddressList* addresses,
392 const BoundNetLog& net_log) { 392 const BoundNetLog& net_log) {
393 return ERR_DNS_CACHE_MISS; 393 return ERR_DNS_CACHE_MISS;
394 } 394 }
(...skipping 13 matching lines...) Expand all
408 CHECK_EQ(old_proc, current_proc_); 408 CHECK_EQ(old_proc, current_proc_);
409 } 409 }
410 410
411 void ScopedDefaultHostResolverProc::Init(HostResolverProc* proc) { 411 void ScopedDefaultHostResolverProc::Init(HostResolverProc* proc) {
412 current_proc_ = proc; 412 current_proc_ = proc;
413 previous_proc_ = HostResolverProc::SetDefault(current_proc_); 413 previous_proc_ = HostResolverProc::SetDefault(current_proc_);
414 current_proc_->SetLastProc(previous_proc_); 414 current_proc_->SetLastProc(previous_proc_);
415 } 415 }
416 416
417 } // namespace net 417 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698