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

Side by Side Diff: chrome/browser/net/dns_master.h

Issue 7995: Move Time, TimeDelta and TimeTicks into namespace base. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 12 years, 2 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
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 // A DnsMaster object is instantiated once in the browser 5 // A DnsMaster object is instantiated once in the browser
6 // process, and delivers DNS prefetch assignments (hostnames) 6 // process, and delivers DNS prefetch assignments (hostnames)
7 // to any of several DnsSlave objects. 7 // to any of several DnsSlave objects.
8 // Most hostname lists are sent out by renderer processes, and 8 // Most hostname lists are sent out by renderer processes, and
9 // involve lists of hostnames that *might* be used in the near 9 // involve lists of hostnames that *might* be used in the near
10 // future by the browsing user. The goal of this class is to 10 // future by the browsing user. The goal of this class is to
(...skipping 21 matching lines...) Expand all
32 class DnsSlave; 32 class DnsSlave;
33 33
34 typedef chrome_common_net::NameList NameList; 34 typedef chrome_common_net::NameList NameList;
35 typedef std::map<std::string, DnsHostInfo> Results; 35 typedef std::map<std::string, DnsHostInfo> Results;
36 36
37 class DnsMaster { 37 class DnsMaster {
38 public: 38 public:
39 // The number of slave processes that will do DNS prefetching 39 // The number of slave processes that will do DNS prefetching
40 static const int kSlaveCountMax = 8; 40 static const int kSlaveCountMax = 8;
41 41
42 explicit DnsMaster(TimeDelta shutdown_wait_time); 42 explicit DnsMaster(base::TimeDelta shutdown_wait_time);
43 43
44 ~DnsMaster() { 44 ~DnsMaster() {
45 if (!shutdown_) 45 if (!shutdown_)
46 ShutdownSlaves(); // Ensure we did our cleanup. 46 ShutdownSlaves(); // Ensure we did our cleanup.
47 } 47 }
48 48
49 // ShutdownSlaves() gets all spawned threads to terminate, closes 49 // ShutdownSlaves() gets all spawned threads to terminate, closes
50 // their handles, and deletes their DnsSlave instances. 50 // their handles, and deletes their DnsSlave instances.
51 // Return value of true means all operations succeeded. 51 // Return value of true means all operations succeeded.
52 // Return value of false means that the threads wouldn't terminate, 52 // Return value of false means that the threads wouldn't terminate,
(...skipping 22 matching lines...) Expand all
75 // Currently testing only provides a crude measure of success. 75 // Currently testing only provides a crude measure of success.
76 bool WasFound(const std::string& hostname) { 76 bool WasFound(const std::string& hostname) {
77 AutoLock auto_lock(lock_); 77 AutoLock auto_lock(lock_);
78 return (results_.find(hostname) != results_.end()) && 78 return (results_.find(hostname) != results_.end()) &&
79 results_[hostname].was_found(); 79 results_[hostname].was_found();
80 } 80 }
81 81
82 // Accessor methods, used mostly for testing. 82 // Accessor methods, used mostly for testing.
83 // Both functions return DnsHostInfo::kNullDuration if name was not yet 83 // Both functions return DnsHostInfo::kNullDuration if name was not yet
84 // processed enough. 84 // processed enough.
85 TimeDelta GetResolutionDuration(const std::string hostname) { 85 base::TimeDelta GetResolutionDuration(const std::string hostname) {
86 AutoLock auto_lock(lock_); 86 AutoLock auto_lock(lock_);
87 if (results_.find(hostname) == results_.end()) 87 if (results_.find(hostname) == results_.end())
88 return DnsHostInfo::kNullDuration; 88 return DnsHostInfo::kNullDuration;
89 return results_[hostname].resolve_duration(); 89 return results_[hostname].resolve_duration();
90 } 90 }
91 91
92 TimeDelta GetQueueDuration(const std::string hostname) { 92 base::TimeDelta GetQueueDuration(const std::string hostname) {
93 AutoLock auto_lock(lock_); 93 AutoLock auto_lock(lock_);
94 if (results_.find(hostname) == results_.end()) 94 if (results_.find(hostname) == results_.end())
95 return DnsHostInfo::kNullDuration; 95 return DnsHostInfo::kNullDuration;
96 return results_[hostname].queue_duration(); 96 return results_[hostname].queue_duration();
97 } 97 }
98 98
99 int running_slave_count() { 99 int running_slave_count() {
100 AutoLock auto_lock(lock_); 100 AutoLock auto_lock(lock_);
101 return running_slave_count_; 101 return running_slave_count_;
102 } 102 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 // slave_count_ grows (up to the indicated max). 150 // slave_count_ grows (up to the indicated max).
151 DWORD thread_ids_[kSlaveCountMax]; 151 DWORD thread_ids_[kSlaveCountMax];
152 HANDLE thread_handles_[kSlaveCountMax]; 152 HANDLE thread_handles_[kSlaveCountMax];
153 DnsSlave* slaves_[kSlaveCountMax]; 153 DnsSlave* slaves_[kSlaveCountMax];
154 154
155 // shutdown_ is set to tell the slaves to terminate. 155 // shutdown_ is set to tell the slaves to terminate.
156 bool shutdown_; 156 bool shutdown_;
157 157
158 // The following is the maximum time the ShutdownSlaves method 158 // The following is the maximum time the ShutdownSlaves method
159 // will wait for all the slave processes to terminate. 159 // will wait for all the slave processes to terminate.
160 const TimeDelta kShutdownWaitTime_; 160 const base::TimeDelta kShutdownWaitTime_;
161 161
162 // A list of successful events resulting from pre-fetching. 162 // A list of successful events resulting from pre-fetching.
163 DnsHostInfo::DnsInfoTable cache_hits_; 163 DnsHostInfo::DnsInfoTable cache_hits_;
164 // A map of hosts that were evicted from our cache (after we prefetched them) 164 // A map of hosts that were evicted from our cache (after we prefetched them)
165 // and before the HTTP stack tried to look them up. 165 // and before the HTTP stack tried to look them up.
166 Results cache_eviction_map_; 166 Results cache_eviction_map_;
167 167
168 DISALLOW_EVIL_CONSTRUCTORS(DnsMaster); 168 DISALLOW_EVIL_CONSTRUCTORS(DnsMaster);
169 }; 169 };
170 170
171 } // namespace chrome_browser_net 171 } // namespace chrome_browser_net
172 172
173 #endif // CHROME_BROWSER_NET_DNS_MASTER_H__ 173 #endif // CHROME_BROWSER_NET_DNS_MASTER_H__
174 174
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698