Index: chrome/browser/sync/retry_verifier.h |
diff --git a/chrome/browser/sync/retry_verifier.h b/chrome/browser/sync/retry_verifier.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..318c2f8913cc18749b2e7ed177dfd0a7178ec2ab |
--- /dev/null |
+++ b/chrome/browser/sync/retry_verifier.h |
@@ -0,0 +1,47 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_SYNC_RETRY_VERIFIER_H_ |
+#define CHROME_BROWSER_SYNC_RETRY_VERIFIER_H_ |
+#pragma once |
+ |
+#include "base/time.h" |
+ |
+namespace browser_sync { |
+namespace sessions { |
+struct SyncSessionSnapshot; |
+} |
+} |
tim (not reviewing)
2011/08/08 23:11:35
} // namespace browser_sync
lipalani1
2011/08/09 01:39:02
Done.
|
+ |
+// The minimum and maximum wait times for a retry. The actual retry would take |
+// place somewhere in this range. The algorithm that calculates the retry wait |
+// time uses rand functions. |
+struct DelayInfo { |
+ int64 min_delay; |
+ int64 max_delay; |
+}; |
+ |
+// Class to verify retries take place using the exponential backoff algorithm. |
+class RetryVerifier { |
tim (not reviewing)
2011/08/08 23:11:35
something as common-sounding yet specific as this
lipalani1
2011/08/09 01:39:02
Kept the name but put a namespace called sync_test
|
+ public: |
+ static const int kMaxRetry = 5; |
+ RetryVerifier(); |
+ ~RetryVerifier(); |
+ int RetryCount() const { return retry_count_; } |
tim (not reviewing)
2011/08/08 23:11:35
style guide says: retry_count()
lipalani1
2011/08/09 01:39:02
Done.
|
+ void Initialize(const browser_sync::sessions::SyncSessionSnapshot& snap); |
tim (not reviewing)
2011/08/08 23:11:35
what is this param for? (comment)
lipalani1
2011/08/09 01:39:02
added a comment.
On 2011/08/08 23:11:35, timsteele
|
+ void VerifyRetryInterval( |
+ const browser_sync::sessions::SyncSessionSnapshot& snap); |
+ bool Done() const { return done_; } |
tim (not reviewing)
2011/08/08 23:11:35
style guide says: "done()"
lipalani1
2011/08/09 01:39:02
Done.
|
+ bool Success() const { return Done() && success_; } |
tim (not reviewing)
2011/08/08 23:11:35
DidSucceed or Succeeded
lipalani1
2011/08/09 01:39:02
Done.
|
+ |
+ private: |
+ int retry_count_; |
+ base::Time last_sync_time_; |
+ DelayInfo delay_table_[kMaxRetry]; |
+ bool success_; |
+ bool done_; |
+ DISALLOW_COPY_AND_ASSIGN(RetryVerifier); |
+}; |
+ |
+#endif // CHROME_BROWSER_SYNC_RETRY_VERIFIER_H_ |