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

Side by Side Diff: sync/sessions/nudge_tracker.h

Issue 322333004: sync: Inject sync/'s dependency on invalidations (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 5 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
« no previous file with comments | « sync/sessions/data_type_tracker.cc ('k') | sync/sessions/nudge_tracker.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 track the outstanding work required to bring the client back into 5 // A class to track the outstanding work required to bring the client back into
6 // sync with the server. 6 // sync with the server.
7 #ifndef SYNC_SESSIONS_NUDGE_TRACKER_H_ 7 #ifndef SYNC_SESSIONS_NUDGE_TRACKER_H_
8 #define SYNC_SESSIONS_NUDGE_TRACKER_H_ 8 #define SYNC_SESSIONS_NUDGE_TRACKER_H_
9 9
10 #include <list> 10 #include <list>
11 #include <map> 11 #include <map>
12 12
13 #include "base/compiler_specific.h" 13 #include "base/compiler_specific.h"
14 #include "base/memory/scoped_ptr.h"
14 #include "sync/base/sync_export.h" 15 #include "sync/base/sync_export.h"
15 #include "sync/internal_api/public/base/model_type.h" 16 #include "sync/internal_api/public/base/model_type.h"
16 #include "sync/protocol/sync.pb.h" 17 #include "sync/protocol/sync.pb.h"
17 #include "sync/sessions/data_type_tracker.h" 18 #include "sync/sessions/data_type_tracker.h"
18 19
19 namespace syncer { 20 namespace syncer {
20 21
21 class ObjectIdInvalidationMap; 22 class ObjectIdInvalidationMap;
22 23
23 namespace sessions { 24 namespace sessions {
(...skipping 26 matching lines...) Expand all
50 // completed successfully. 51 // completed successfully.
51 void RecordSuccessfulSyncCycle(); 52 void RecordSuccessfulSyncCycle();
52 53
53 // Takes note of a local change. 54 // Takes note of a local change.
54 void RecordLocalChange(ModelTypeSet types); 55 void RecordLocalChange(ModelTypeSet types);
55 56
56 // Takes note of a locally issued request to refresh a data type. 57 // Takes note of a locally issued request to refresh a data type.
57 void RecordLocalRefreshRequest(ModelTypeSet types); 58 void RecordLocalRefreshRequest(ModelTypeSet types);
58 59
59 // Takes note of the receipt of an invalidation notice from the server. 60 // Takes note of the receipt of an invalidation notice from the server.
60 void RecordRemoteInvalidation( 61 void RecordRemoteInvalidation(syncer::ModelType type,
61 const ObjectIdInvalidationMap& invalidation_map); 62 scoped_ptr<InvalidationInterface> invalidation);
62 63
63 // These functions should be called to keep this class informed of the status 64 // These functions should be called to keep this class informed of the status
64 // of the connection to the invalidations server. 65 // of the connection to the invalidations server.
65 void OnInvalidationsEnabled(); 66 void OnInvalidationsEnabled();
66 void OnInvalidationsDisabled(); 67 void OnInvalidationsDisabled();
67 68
68 // Marks |types| as being throttled from |now| until |now| + |length|. 69 // Marks |types| as being throttled from |now| until |now| + |length|.
69 void SetTypesThrottledUntil(ModelTypeSet types, 70 void SetTypesThrottledUntil(ModelTypeSet types,
70 base::TimeDelta length, 71 base::TimeDelta length,
71 base::TimeTicks now); 72 base::TimeTicks now);
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 // This is a request sent to us as part of a server response requesting 131 // This is a request sent to us as part of a server response requesting
131 // that the client perform a GetUpdate request at |next_retry_time| to 132 // that the client perform a GetUpdate request at |next_retry_time| to
132 // fetch any updates it may have missed in the first attempt. 133 // fetch any updates it may have missed in the first attempt.
133 // 134 //
134 // To avoid strange results from IsRetryRequired() during a sync cycle, the 135 // To avoid strange results from IsRetryRequired() during a sync cycle, the
135 // effects of this change are not guaranteed to take effect until 136 // effects of this change are not guaranteed to take effect until
136 // SetSyncCycleStartTime() is called at the start of the *next* sync cycle. 137 // SetSyncCycleStartTime() is called at the start of the *next* sync cycle.
137 void SetNextRetryTime(base::TimeTicks next_retry_time); 138 void SetNextRetryTime(base::TimeTicks next_retry_time);
138 139
139 private: 140 private:
140 typedef std::map<ModelType, DataTypeTracker> TypeTrackerMap; 141 typedef std::map<ModelType, DataTypeTracker*> TypeTrackerMap;
141 142
142 TypeTrackerMap type_trackers_; 143 TypeTrackerMap type_trackers_;
144 STLValueDeleter<TypeTrackerMap> type_tracker_deleter_;
143 145
144 // Merged updates source. This should be obsolete, but the server still 146 // Merged updates source. This should be obsolete, but the server still
145 // relies on it for some heuristics. 147 // relies on it for some heuristics.
146 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource updates_source_; 148 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource updates_source_;
147 149
148 // Tracks whether or not invalidations are currently enabled. 150 // Tracks whether or not invalidations are currently enabled.
149 bool invalidations_enabled_; 151 bool invalidations_enabled_;
150 152
151 // This flag is set if suspect that some technical malfunction or known bug 153 // This flag is set if suspect that some technical malfunction or known bug
152 // may have left us with some unserviced invalidations. 154 // may have left us with some unserviced invalidations.
(...skipping 27 matching lines...) Expand all
180 // currently in a sync cycle. 182 // currently in a sync cycle.
181 base::TimeTicks sync_cycle_start_time_; 183 base::TimeTicks sync_cycle_start_time_;
182 184
183 DISALLOW_COPY_AND_ASSIGN(NudgeTracker); 185 DISALLOW_COPY_AND_ASSIGN(NudgeTracker);
184 }; 186 };
185 187
186 } // namespace sessions 188 } // namespace sessions
187 } // namespace syncer 189 } // namespace syncer
188 190
189 #endif // SYNC_SESSIONS_NUDGE_TRACKER_H_ 191 #endif // SYNC_SESSIONS_NUDGE_TRACKER_H_
OLDNEW
« no previous file with comments | « sync/sessions/data_type_tracker.cc ('k') | sync/sessions/nudge_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698