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

Side by Side Diff: chrome/browser/sync/engine/syncer_thread2.h

Issue 6366019: Part 1 of repairing regressions to my old clang check plugins so Nico can (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove Nico's changes that I patched in for testing. Created 9 years, 11 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 class to run the syncer on a thread. 5 // A class to run the syncer on a thread.
6 #ifndef CHROME_BROWSER_SYNC_ENGINE_SYNCER_THREAD2_H_ 6 #ifndef CHROME_BROWSER_SYNC_ENGINE_SYNCER_THREAD2_H_
7 #define CHROME_BROWSER_SYNC_ENGINE_SYNCER_THREAD2_H_ 7 #define CHROME_BROWSER_SYNC_ENGINE_SYNCER_THREAD2_H_
8 #pragma once 8 #pragma once
9 9
10 #include "base/linked_ptr.h" 10 #include "base/linked_ptr.h"
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 virtual void OnReceivedShortPollIntervalUpdate( 77 virtual void OnReceivedShortPollIntervalUpdate(
78 const base::TimeDelta& new_interval); 78 const base::TimeDelta& new_interval);
79 virtual void OnReceivedLongPollIntervalUpdate( 79 virtual void OnReceivedLongPollIntervalUpdate(
80 const base::TimeDelta& new_interval); 80 const base::TimeDelta& new_interval);
81 virtual void OnShouldStopSyncingPermanently(); 81 virtual void OnShouldStopSyncingPermanently();
82 82
83 private: 83 private:
84 friend class SyncerThread2Test; 84 friend class SyncerThread2Test;
85 85
86 // State pertaining to exponential backoff or throttling periods. 86 // State pertaining to exponential backoff or throttling periods.
87 struct WaitInterval { 87 struct WaitInterval;
88 enum Mode {
89 // A wait interval whose duration has been affected by exponential
90 // backoff.
91 // EXPONENTIAL_BACKOFF intervals are nudge-rate limited to 1 per interval.
92 EXPONENTIAL_BACKOFF,
93 // A server-initiated throttled interval. We do not allow any syncing
94 // during such an interval.
95 THROTTLED,
96 };
97 Mode mode;
98
99 // This bool is set to true if we have observed a nudge during this
100 // interval and mode == EXPONENTIAL_BACKOFF.
101 bool had_nudge;
102 base::TimeDelta length;
103 base::OneShotTimer<SyncerThread> timer;
104 WaitInterval(Mode mode, base::TimeDelta length);
105 };
106 88
107 // Internal state for every sync task that is scheduled. 89 // Internal state for every sync task that is scheduled.
108 struct SyncSessionJob { 90 struct SyncSessionJob {
109 // An enum used to describe jobs for scheduling purposes. 91 // An enum used to describe jobs for scheduling purposes.
110 enum Purpose { 92 enum Purpose {
111 // Our poll timer schedules POLL jobs periodically based on a server 93 // Our poll timer schedules POLL jobs periodically based on a server
112 // assigned poll interval. 94 // assigned poll interval.
113 POLL, 95 POLL,
114 // A nudge task can come from a variety of components needing to force 96 // A nudge task can come from a variety of components needing to force
115 // a sync. The source is inferable from |session.source()|. 97 // a sync. The source is inferable from |session.source()|.
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 210
229 } // namespace s3 211 } // namespace s3
230 212
231 } // namespace browser_sync 213 } // namespace browser_sync
232 214
233 // The SyncerThread manages its own internal thread and thus outlives it. We 215 // The SyncerThread manages its own internal thread and thus outlives it. We
234 // don't need refcounting for posting tasks to this internal thread. 216 // don't need refcounting for posting tasks to this internal thread.
235 DISABLE_RUNNABLE_METHOD_REFCOUNT(browser_sync::s3::SyncerThread); 217 DISABLE_RUNNABLE_METHOD_REFCOUNT(browser_sync::s3::SyncerThread);
236 218
237 #endif // CHROME_BROWSER_SYNC_ENGINE_SYNCER_THREAD2_H_ 219 #endif // CHROME_BROWSER_SYNC_ENGINE_SYNCER_THREAD2_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698