OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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_BASE_HOST_RESOLVER_IMPL_H_ | 5 #ifndef NET_BASE_HOST_RESOLVER_IMPL_H_ |
6 #define NET_BASE_HOST_RESOLVER_IMPL_H_ | 6 #define NET_BASE_HOST_RESOLVER_IMPL_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 // Thread safety: This class is not threadsafe, and must only be called | 44 // Thread safety: This class is not threadsafe, and must only be called |
45 // from one thread! | 45 // from one thread! |
46 // | 46 // |
47 // The HostResolverImpl enforces |max_jobs_| as the maximum number of concurrent | 47 // The HostResolverImpl enforces |max_jobs_| as the maximum number of concurrent |
48 // threads. | 48 // threads. |
49 // | 49 // |
50 // Requests are ordered in the queue based on their priority. | 50 // Requests are ordered in the queue based on their priority. |
51 | 51 |
52 class HostResolverImpl : public HostResolver, | 52 class HostResolverImpl : public HostResolver, |
53 public base::NonThreadSafe, | 53 public base::NonThreadSafe, |
54 public NetworkChangeNotifier::Observer { | 54 public NetworkChangeNotifier::IPAddressObserver { |
55 public: | 55 public: |
56 // The index into |job_pools_| for the various job pools. Pools with a higher | 56 // The index into |job_pools_| for the various job pools. Pools with a higher |
57 // index have lower priority. | 57 // index have lower priority. |
58 // | 58 // |
59 // Note: This is currently unused, since there is a single pool | 59 // Note: This is currently unused, since there is a single pool |
60 // for all requests. | 60 // for all requests. |
61 enum JobPoolIndex { | 61 enum JobPoolIndex { |
62 POOL_NORMAL = 0, | 62 POOL_NORMAL = 0, |
63 POOL_COUNT, | 63 POOL_COUNT, |
64 }; | 64 }; |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 | 216 |
217 // Adds a pending request |req| to |pool|. | 217 // Adds a pending request |req| to |pool|. |
218 int EnqueueRequest(JobPool* pool, Request* req); | 218 int EnqueueRequest(JobPool* pool, Request* req); |
219 | 219 |
220 // Cancels all jobs. | 220 // Cancels all jobs. |
221 void CancelAllJobs(); | 221 void CancelAllJobs(); |
222 | 222 |
223 // Aborts all in progress jobs (but might start new ones). | 223 // Aborts all in progress jobs (but might start new ones). |
224 void AbortAllInProgressJobs(); | 224 void AbortAllInProgressJobs(); |
225 | 225 |
226 // NetworkChangeNotifier::Observer methods: | 226 // NetworkChangeNotifier::IPAddressObserver methods: |
227 virtual void OnIPAddressChanged(); | 227 virtual void OnIPAddressChanged(); |
228 | 228 |
229 // Cache of host resolution results. | 229 // Cache of host resolution results. |
230 scoped_ptr<HostCache> cache_; | 230 scoped_ptr<HostCache> cache_; |
231 | 231 |
232 // Map from hostname to outstanding job. | 232 // Map from hostname to outstanding job. |
233 JobMap jobs_; | 233 JobMap jobs_; |
234 | 234 |
235 // Maximum number of concurrent jobs allowed, across all pools. | 235 // Maximum number of concurrent jobs allowed, across all pools. |
236 size_t max_jobs_; | 236 size_t max_jobs_; |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 HostResolverFlags additional_resolver_flags_; | 276 HostResolverFlags additional_resolver_flags_; |
277 | 277 |
278 NetLog* net_log_; | 278 NetLog* net_log_; |
279 | 279 |
280 DISALLOW_COPY_AND_ASSIGN(HostResolverImpl); | 280 DISALLOW_COPY_AND_ASSIGN(HostResolverImpl); |
281 }; | 281 }; |
282 | 282 |
283 } // namespace net | 283 } // namespace net |
284 | 284 |
285 #endif // NET_BASE_HOST_RESOLVER_IMPL_H_ | 285 #endif // NET_BASE_HOST_RESOLVER_IMPL_H_ |
OLD | NEW |