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

Side by Side Diff: net/base/host_resolver_impl.h

Issue 848006: Generalize the net module's LoadLog facility from a passive container, to an event stream (NetLog). (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Split up RequestTracker into ConnectJobTracker+RequestTracker+RequestTrackerBase, address comments Created 10 years, 9 months 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
« no previous file with comments | « net/base/host_resolver.cc ('k') | net/base/host_resolver_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/scoped_ptr.h" 11 #include "base/scoped_ptr.h"
12 #include "net/base/host_cache.h" 12 #include "net/base/host_cache.h"
13 #include "net/base/host_resolver.h" 13 #include "net/base/host_resolver.h"
14 #include "net/base/host_resolver_proc.h" 14 #include "net/base/host_resolver_proc.h"
15 #include "net/base/net_log.h"
15 #include "net/base/network_change_notifier.h" 16 #include "net/base/network_change_notifier.h"
16 17
17 namespace net { 18 namespace net {
18 19
19 // For each hostname that is requested, HostResolver creates a 20 // For each hostname that is requested, HostResolver creates a
20 // HostResolverImpl::Job. This job gets dispatched to a thread in the global 21 // HostResolverImpl::Job. This job gets dispatched to a thread in the global
21 // WorkerPool, where it runs SystemHostResolverProc(). If requests for that same 22 // WorkerPool, where it runs SystemHostResolverProc(). If requests for that same
22 // host are made while the job is already outstanding, then they are attached 23 // host are made while the job is already outstanding, then they are attached
23 // to the existing job rather than creating a new one. This avoids doing 24 // to the existing job rather than creating a new one. This avoids doing
24 // parallel resolves for the same host. 25 // parallel resolves for the same host.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 HostResolverImpl(HostResolverProc* resolver_proc, 77 HostResolverImpl(HostResolverProc* resolver_proc,
77 HostCache* cache, 78 HostCache* cache,
78 NetworkChangeNotifier* notifier, 79 NetworkChangeNotifier* notifier,
79 size_t max_jobs); 80 size_t max_jobs);
80 81
81 // HostResolver methods: 82 // HostResolver methods:
82 virtual int Resolve(const RequestInfo& info, 83 virtual int Resolve(const RequestInfo& info,
83 AddressList* addresses, 84 AddressList* addresses,
84 CompletionCallback* callback, 85 CompletionCallback* callback,
85 RequestHandle* out_req, 86 RequestHandle* out_req,
86 LoadLog* load_log); 87 const BoundNetLog& net_log);
87 virtual void CancelRequest(RequestHandle req); 88 virtual void CancelRequest(RequestHandle req);
88 virtual void AddObserver(HostResolver::Observer* observer); 89 virtual void AddObserver(HostResolver::Observer* observer);
89 virtual void RemoveObserver(HostResolver::Observer* observer); 90 virtual void RemoveObserver(HostResolver::Observer* observer);
90 91
91 virtual void SetDefaultAddressFamily(AddressFamily address_family) { 92 virtual void SetDefaultAddressFamily(AddressFamily address_family) {
92 default_address_family_ = address_family; 93 default_address_family_ = address_family;
93 } 94 }
94 95
95 virtual HostResolverImpl* GetAsHostResolverImpl() { return this; } 96 virtual HostResolverImpl* GetAsHostResolverImpl() { return this; }
96 97
97 // TODO(eroman): hack for http://crbug.com/15513 98 // TODO(eroman): hack for http://crbug.com/15513
98 void Shutdown(); 99 void Shutdown();
99 100
100 // Returns the cache this resolver uses, or NULL if caching is disabled. 101 // Returns the cache this resolver uses, or NULL if caching is disabled.
101 HostCache* cache() { return cache_.get(); } 102 HostCache* cache() { return cache_.get(); }
102 103
103 // Clears the request trace log. 104 // Clears the request trace log.
104 void ClearRequestsTrace(); 105 void ClearRequestsTrace();
105 106
106 // Starts/ends capturing requests to a trace log. 107 // Starts/ends capturing requests to a trace log.
107 void EnableRequestsTracing(bool enable); 108 void EnableRequestsTracing(bool enable);
108 109
109 bool IsRequestsTracingEnabled() const; 110 bool IsRequestsTracingEnabled() const;
110 111
111 // Returns a copy of the requests trace log, or NULL if there is none. 112 // Gets a copy of the requests trace log.
112 scoped_refptr<LoadLog> GetRequestsTrace(); 113 bool GetRequestsTrace(std::vector<NetLog::Entry>* entries);
113 114
114 // Applies a set of constraints for requests that belong to the specified 115 // Applies a set of constraints for requests that belong to the specified
115 // pool. NOTE: Don't call this after requests have been already been started. 116 // pool. NOTE: Don't call this after requests have been already been started.
116 // 117 //
117 // |pool_index| -- Specifies which pool these constraints should be applied 118 // |pool_index| -- Specifies which pool these constraints should be applied
118 // to. 119 // to.
119 // |max_outstanding_jobs| -- How many concurrent jobs are allowed for this 120 // |max_outstanding_jobs| -- How many concurrent jobs are allowed for this
120 // pool. 121 // pool.
121 // |max_pending_requests| -- How many requests can be enqueued for this pool 122 // |max_pending_requests| -- How many requests can be enqueued for this pool
122 // before we start dropping requests. Dropped 123 // before we start dropping requests. Dropped
(...skipping 30 matching lines...) Expand all
153 // Returns the outstanding job for |key|, or NULL if there is none. 154 // Returns the outstanding job for |key|, or NULL if there is none.
154 Job* FindOutstandingJob(const Key& key); 155 Job* FindOutstandingJob(const Key& key);
155 156
156 // Removes |job| from the outstanding jobs list. 157 // Removes |job| from the outstanding jobs list.
157 void RemoveOutstandingJob(Job* job); 158 void RemoveOutstandingJob(Job* job);
158 159
159 // Callback for when |job| has completed with |error| and |addrlist|. 160 // Callback for when |job| has completed with |error| and |addrlist|.
160 void OnJobComplete(Job* job, int error, const AddressList& addrlist); 161 void OnJobComplete(Job* job, int error, const AddressList& addrlist);
161 162
162 // Called when a request has just been started. 163 // Called when a request has just been started.
163 void OnStartRequest(LoadLog* load_log, 164 void OnStartRequest(const BoundNetLog& net_log,
164 int request_id, 165 int request_id,
165 const RequestInfo& info); 166 const RequestInfo& info);
166 167
167 // Called when a request has just completed (before its callback is run). 168 // Called when a request has just completed (before its callback is run).
168 void OnFinishRequest(LoadLog* load_log, 169 void OnFinishRequest(const BoundNetLog& net_log,
169 int request_id, 170 int request_id,
170 const RequestInfo& info, 171 const RequestInfo& info,
171 int error); 172 int error);
172 173
173 // Called when a request has been cancelled. 174 // Called when a request has been cancelled.
174 void OnCancelRequest(LoadLog* load_log, 175 void OnCancelRequest(const BoundNetLog& net_log,
175 int request_id, 176 int request_id,
176 const RequestInfo& info); 177 const RequestInfo& info);
177 178
178 // NetworkChangeNotifier::Observer methods: 179 // NetworkChangeNotifier::Observer methods:
179 virtual void OnIPAddressChanged(); 180 virtual void OnIPAddressChanged();
180 181
181 // Returns true if the constraints for |pool| are met, and a new job can be 182 // Returns true if the constraints for |pool| are met, and a new job can be
182 // created for this pool. 183 // created for this pool.
183 bool CanCreateJobForPool(const JobPool& pool) const; 184 bool CanCreateJobForPool(const JobPool& pool) const;
184 185
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 NetworkChangeNotifier* const network_change_notifier_; 246 NetworkChangeNotifier* const network_change_notifier_;
246 247
247 scoped_refptr<RequestsTrace> requests_trace_; 248 scoped_refptr<RequestsTrace> requests_trace_;
248 249
249 DISALLOW_COPY_AND_ASSIGN(HostResolverImpl); 250 DISALLOW_COPY_AND_ASSIGN(HostResolverImpl);
250 }; 251 };
251 252
252 } // namespace net 253 } // namespace net
253 254
254 #endif // NET_BASE_HOST_RESOLVER_IMPL_H_ 255 #endif // NET_BASE_HOST_RESOLVER_IMPL_H_
OLDNEW
« no previous file with comments | « net/base/host_resolver.cc ('k') | net/base/host_resolver_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698