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..930f092ada2f2e876186a4d725f9e395321b5476 |
--- /dev/null |
+++ b/chrome/browser/sync/retry_verifier.h |
@@ -0,0 +1,44 @@ |
+// 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 |
+ |
+ |
Raghu Simha
2011/08/05 18:04:52
Delete extra blank line.
lipalani1
2011/08/05 21:33:57
Done.
|
+#include "base/time.h" |
+ |
+ |
Raghu Simha
2011/08/05 18:04:52
Delete extra blank line.
lipalani1
2011/08/05 21:33:57
Done.
|
+namespace browser_sync { |
+ namespace sessions { |
Raghu Simha
2011/08/05 18:04:52
indent -= 2.
lipalani1
2011/08/05 21:33:57
Done.
|
+ struct SyncSessionSnapshot; |
Raghu Simha
2011/08/05 18:04:52
indent -= 4.
lipalani1
2011/08/05 21:33:57
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 { |
+ public: |
+ static const int kMaxRetry = 10; |
+ RetryVerifier(); |
+ ~RetryVerifier(); |
+ int RetryCount() const { return retry_count_; } |
+ void Initialize(const browser_sync::sessions::SyncSessionSnapshot& snap); |
+ bool VerifyRetryInterval( |
+ const browser_sync::sessions::SyncSessionSnapshot& snap); |
+ |
+ private: |
+ int retry_count_; |
+ base::Time last_sync_time_; |
+ DelayInfo delay_table_[kMaxRetry]; |
Raghu Simha
2011/08/05 18:04:52
DISALLOW_COPY_AND_ASSIGN(RetryVerifier);
lipalani1
2011/08/05 21:33:57
Done.
|
+}; |
+ |
+#endif // CHROME_BROWSER_SYNC_RETRY_VERIFIER_H_ |