OLD | NEW |
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 #ifndef NET_DNS_MOCK_HOST_RESOLVER_H_ | 5 #ifndef NET_DNS_MOCK_HOST_RESOLVER_H_ |
6 #define NET_DNS_MOCK_HOST_RESOLVER_H_ | 6 #define NET_DNS_MOCK_HOST_RESOLVER_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <list> | 10 #include <list> |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 void set_ondemand_mode(bool is_ondemand) { | 79 void set_ondemand_mode(bool is_ondemand) { |
80 ondemand_mode_ = is_ondemand; | 80 ondemand_mode_ = is_ondemand; |
81 } | 81 } |
82 | 82 |
83 // HostResolver methods: | 83 // HostResolver methods: |
84 int Resolve(const RequestInfo& info, | 84 int Resolve(const RequestInfo& info, |
85 RequestPriority priority, | 85 RequestPriority priority, |
86 AddressList* addresses, | 86 AddressList* addresses, |
87 const CompletionCallback& callback, | 87 const CompletionCallback& callback, |
88 std::unique_ptr<Request>* request, | 88 std::unique_ptr<Request>* request, |
89 const BoundNetLog& net_log) override; | 89 const NetLogWithSource& net_log) override; |
90 int ResolveFromCache(const RequestInfo& info, | 90 int ResolveFromCache(const RequestInfo& info, |
91 AddressList* addresses, | 91 AddressList* addresses, |
92 const BoundNetLog& net_log) override; | 92 const NetLogWithSource& net_log) override; |
93 HostCache* GetHostCache() override; | 93 HostCache* GetHostCache() override; |
94 | 94 |
95 // Detach cancelled request. | 95 // Detach cancelled request. |
96 void DetachRequest(size_t id); | 96 void DetachRequest(size_t id); |
97 | 97 |
98 // Resolves all pending requests. It is only valid to invoke this if | 98 // Resolves all pending requests. It is only valid to invoke this if |
99 // set_ondemand_mode was set before. The requests are resolved asynchronously, | 99 // set_ondemand_mode was set before. The requests are resolved asynchronously, |
100 // after this call returns. | 100 // after this call returns. |
101 void ResolveAllPending(); | 101 void ResolveAllPending(); |
102 | 102 |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 RuleBasedHostResolverProc* CreateCatchAllHostResolverProc(); | 237 RuleBasedHostResolverProc* CreateCatchAllHostResolverProc(); |
238 | 238 |
239 // HangingHostResolver never completes its |Resolve| request. | 239 // HangingHostResolver never completes its |Resolve| request. |
240 class HangingHostResolver : public HostResolver { | 240 class HangingHostResolver : public HostResolver { |
241 public: | 241 public: |
242 int Resolve(const RequestInfo& info, | 242 int Resolve(const RequestInfo& info, |
243 RequestPriority priority, | 243 RequestPriority priority, |
244 AddressList* addresses, | 244 AddressList* addresses, |
245 const CompletionCallback& callback, | 245 const CompletionCallback& callback, |
246 std::unique_ptr<Request>* out_req, | 246 std::unique_ptr<Request>* out_req, |
247 const BoundNetLog& net_log) override; | 247 const NetLogWithSource& net_log) override; |
248 int ResolveFromCache(const RequestInfo& info, | 248 int ResolveFromCache(const RequestInfo& info, |
249 AddressList* addresses, | 249 AddressList* addresses, |
250 const BoundNetLog& net_log) override; | 250 const NetLogWithSource& net_log) override; |
251 }; | 251 }; |
252 | 252 |
253 // This class sets the default HostResolverProc for a particular scope. The | 253 // This class sets the default HostResolverProc for a particular scope. The |
254 // chain of resolver procs starting at |proc| is placed in front of any existing | 254 // chain of resolver procs starting at |proc| is placed in front of any existing |
255 // default resolver proc(s). This means that if multiple | 255 // default resolver proc(s). This means that if multiple |
256 // ScopedDefaultHostResolverProcs are declared, then resolving will start with | 256 // ScopedDefaultHostResolverProcs are declared, then resolving will start with |
257 // the procs given to the last-allocated one, then fall back to the procs given | 257 // the procs given to the last-allocated one, then fall back to the procs given |
258 // to the previously-allocated one, and so forth. | 258 // to the previously-allocated one, and so forth. |
259 // | 259 // |
260 // NOTE: Only use this as a catch-all safety net. Individual tests should use | 260 // NOTE: Only use this as a catch-all safety net. Individual tests should use |
261 // MockHostResolver. | 261 // MockHostResolver. |
262 class ScopedDefaultHostResolverProc { | 262 class ScopedDefaultHostResolverProc { |
263 public: | 263 public: |
264 ScopedDefaultHostResolverProc(); | 264 ScopedDefaultHostResolverProc(); |
265 explicit ScopedDefaultHostResolverProc(HostResolverProc* proc); | 265 explicit ScopedDefaultHostResolverProc(HostResolverProc* proc); |
266 | 266 |
267 ~ScopedDefaultHostResolverProc(); | 267 ~ScopedDefaultHostResolverProc(); |
268 | 268 |
269 void Init(HostResolverProc* proc); | 269 void Init(HostResolverProc* proc); |
270 | 270 |
271 private: | 271 private: |
272 scoped_refptr<HostResolverProc> current_proc_; | 272 scoped_refptr<HostResolverProc> current_proc_; |
273 scoped_refptr<HostResolverProc> previous_proc_; | 273 scoped_refptr<HostResolverProc> previous_proc_; |
274 }; | 274 }; |
275 | 275 |
276 } // namespace net | 276 } // namespace net |
277 | 277 |
278 #endif // NET_DNS_MOCK_HOST_RESOLVER_H_ | 278 #endif // NET_DNS_MOCK_HOST_RESOLVER_H_ |
OLD | NEW |