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

Side by Side Diff: chrome/browser/url_fetcher_protect.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, 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) 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 // This file implements backoff in the suggest system so that we don't 5 // This file implements backoff in the suggest system so that we don't
6 // DOS the Suggest servers when using URLFetcher. 6 // DOS the Suggest servers when using URLFetcher.
7 7
8 #ifndef CHROME_BROWSER_URL_FETCHER_PROTECT_H__ 8 #ifndef CHROME_BROWSER_URL_FETCHER_PROTECT_H__
9 #define CHROME_BROWSER_URL_FETCHER_PROTECT_H__ 9 #define CHROME_BROWSER_URL_FETCHER_PROTECT_H__
10 10
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 int UpdateBackoff(EventType event_type); 57 int UpdateBackoff(EventType event_type);
58 58
59 // Returns the max retries allowed. 59 // Returns the max retries allowed.
60 int max_retries() const { 60 int max_retries() const {
61 return max_retries_; 61 return max_retries_;
62 } 62 }
63 63
64 private: 64 private:
65 // When a request comes, calculate the release time for it. 65 // When a request comes, calculate the release time for it.
66 // Returns the backoff time before sending. 66 // Returns the backoff time before sending.
67 TimeDelta AntiOverload(); 67 base::TimeDelta AntiOverload();
68 // Resets backoff when service is ok. 68 // Resets backoff when service is ok.
69 // Returns the backoff time before sending. 69 // Returns the backoff time before sending.
70 TimeDelta ResetBackoff(); 70 base::TimeDelta ResetBackoff();
71 // Calculates new backoff when encountering a failure. 71 // Calculates new backoff when encountering a failure.
72 // Returns the backoff time before sending. 72 // Returns the backoff time before sending.
73 TimeDelta IncreaseBackoff(); 73 base::TimeDelta IncreaseBackoff();
74 74
75 // Default parameters. Time is in milliseconds. 75 // Default parameters. Time is in milliseconds.
76 static const int kDefaultSlidingWindowPeriod; 76 static const int kDefaultSlidingWindowPeriod;
77 static const int kDefaultMaxSendThreshold; 77 static const int kDefaultMaxSendThreshold;
78 static const int kDefaultMaxRetries; 78 static const int kDefaultMaxRetries;
79 static const int kDefaultInitialTimeout; 79 static const int kDefaultInitialTimeout;
80 static const double kDefaultMultiplier; 80 static const double kDefaultMultiplier;
81 static const int kDefaultConstantFactor; 81 static const int kDefaultConstantFactor;
82 static const int kDefaultMaximumTimeout; 82 static const int kDefaultMaximumTimeout;
83 83
(...skipping 10 matching lines...) Expand all
94 // factor by which to multiply on exponential backoff (e.g., 2.0) 94 // factor by which to multiply on exponential backoff (e.g., 2.0)
95 double multiplier_; 95 double multiplier_;
96 // constant time term to add to each attempt 96 // constant time term to add to each attempt
97 int constant_factor_; 97 int constant_factor_;
98 // maximum amount of time between requests 98 // maximum amount of time between requests
99 int maximum_timeout_; 99 int maximum_timeout_;
100 100
101 // current exponential backoff period 101 // current exponential backoff period
102 int timeout_period_; 102 int timeout_period_;
103 // time that protection is scheduled to end 103 // time that protection is scheduled to end
104 TimeTicks release_time_; 104 base::TimeTicks release_time_;
105 105
106 // Sets up a lock to ensure thread safe. 106 // Sets up a lock to ensure thread safe.
107 Lock lock_; 107 Lock lock_;
108 108
109 // A list of the recent send events. We ues them to decide whether 109 // A list of the recent send events. We ues them to decide whether
110 // there are too many requests sent in sliding window. 110 // there are too many requests sent in sliding window.
111 std::queue<TimeTicks> send_log_; 111 std::queue<base::TimeTicks> send_log_;
112 112
113 DISALLOW_COPY_AND_ASSIGN(URLFetcherProtectEntry); 113 DISALLOW_COPY_AND_ASSIGN(URLFetcherProtectEntry);
114 }; 114 };
115 115
116 116
117 // This singleton class is used to manage all protect entries. 117 // This singleton class is used to manage all protect entries.
118 // Now we use the host name as service id. 118 // Now we use the host name as service id.
119 class URLFetcherProtectManager { 119 class URLFetcherProtectManager {
120 public: 120 public:
121 ~URLFetcherProtectManager(); 121 ~URLFetcherProtectManager();
(...skipping 14 matching lines...) Expand all
136 typedef std::map<const std::string, URLFetcherProtectEntry*> ProtectService; 136 typedef std::map<const std::string, URLFetcherProtectEntry*> ProtectService;
137 137
138 static Lock lock_; 138 static Lock lock_;
139 static scoped_ptr<URLFetcherProtectManager> protect_manager_; 139 static scoped_ptr<URLFetcherProtectManager> protect_manager_;
140 ProtectService services_; 140 ProtectService services_;
141 141
142 DISALLOW_COPY_AND_ASSIGN(URLFetcherProtectManager); 142 DISALLOW_COPY_AND_ASSIGN(URLFetcherProtectManager);
143 }; 143 };
144 144
145 #endif // CHROME_BROWSER_URL_FETCHER_PROTECT_H__ 145 #endif // CHROME_BROWSER_URL_FETCHER_PROTECT_H__
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698