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

Side by Side Diff: chrome/browser/sync/sessions/session_state.h

Issue 1161006: Make it clear what last_sync_timestamp actually tracks. Update (Closed)
Patch Set: Undo accidental patch-juggling mistake. Created 10 years, 9 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
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 // The 'sessions' namespace comprises all the pieces of state that are 5 // The 'sessions' namespace comprises all the pieces of state that are
6 // combined to form a SyncSession instance. In that way, it can be thought of 6 // combined to form a SyncSession instance. In that way, it can be thought of
7 // as an extension of the SyncSession type itself. Session scoping gives 7 // as an extension of the SyncSession type itself. Session scoping gives
8 // context to things like "conflict progress", "update progress", etc, and the 8 // context to things like "conflict progress", "update progress", etc, and the
9 // separation this file provides allows clients to only include the parts they 9 // separation this file provides allows clients to only include the parts they
10 // need rather than the entire session stack. 10 // need rather than the entire session stack.
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 // Count the number of successful update applications that have happend this 167 // Count the number of successful update applications that have happend this
168 // cycle. Note that if an item is successfully applied twice, it will be 168 // cycle. Note that if an item is successfully applied twice, it will be
169 // double counted here. 169 // double counted here.
170 int SuccessfullyAppliedUpdateCount() const; 170 int SuccessfullyAppliedUpdateCount() const;
171 171
172 // Returns true if at least one update application failed due to a conflict 172 // Returns true if at least one update application failed due to a conflict
173 // during this sync cycle. 173 // during this sync cycle.
174 bool HasConflictingUpdates() const; 174 bool HasConflictingUpdates() const;
175 175
176 private: 176 private:
177 // Some container for updates that failed verification. 177 // Container for updates that passed verification.
178 std::vector<VerifiedUpdate> verified_updates_; 178 std::vector<VerifiedUpdate> verified_updates_;
179 179
180 // Stores the result of the various ApplyUpdate attempts we've made. 180 // Stores the result of the various ApplyUpdate attempts we've made.
181 // May contain duplicate entries. 181 // May contain duplicate entries.
182 std::vector<AppliedUpdate> applied_updates_; 182 std::vector<AppliedUpdate> applied_updates_;
183 }; 183 };
184 184
185 struct SyncCycleControlParameters { 185 struct SyncCycleControlParameters {
186 SyncCycleControlParameters() : conflict_sets_built(false), 186 SyncCycleControlParameters() : conflict_sets_built(false),
187 conflicts_resolved(false), 187 conflicts_resolved(false),
188 items_committed(false), 188 items_committed(false) {}
189 got_new_timestamp(false) {}
190 // Set to true by BuildAndProcessConflictSetsCommand if the RESOLVE_CONFLICTS 189 // Set to true by BuildAndProcessConflictSetsCommand if the RESOLVE_CONFLICTS
191 // step is needed. 190 // step is needed.
192 bool conflict_sets_built; 191 bool conflict_sets_built;
193 192
194 // Set to true by ResolveConflictsCommand if any forward progress was made. 193 // Set to true by ResolveConflictsCommand if any forward progress was made.
195 bool conflicts_resolved; 194 bool conflicts_resolved;
196 195
197 // Set to true by PostCommitMessageCommand if any commits were successful. 196 // Set to true by PostCommitMessageCommand if any commits were successful.
198 bool items_committed; 197 bool items_committed;
199
200 // The server sent us updates and a newer timestamp as part of the session.
201 bool got_new_timestamp;
202 }; 198 };
203 199
204 // DirtyOnWrite wraps a value such that any write operation will update a 200 // DirtyOnWrite wraps a value such that any write operation will update a
205 // specified dirty bit, which can be used to determine if a notification should 201 // specified dirty bit, which can be used to determine if a notification should
206 // be sent due to state change. 202 // be sent due to state change.
207 template <typename T> 203 template <typename T>
208 class DirtyOnWrite { 204 class DirtyOnWrite {
209 public: 205 public:
210 explicit DirtyOnWrite(bool* dirty) : dirty_(dirty) {} 206 explicit DirtyOnWrite(bool* dirty) : dirty_(dirty) {}
211 DirtyOnWrite(bool* dirty, const T& t) : t_(t), dirty_(dirty) {} 207 DirtyOnWrite(bool* dirty, const T& t) : t_(t), dirty_(dirty) {}
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 struct PerModelTypeState { 258 struct PerModelTypeState {
263 explicit PerModelTypeState(bool* dirty_flag) 259 explicit PerModelTypeState(bool* dirty_flag)
264 : current_sync_timestamp(dirty_flag, 0) {} 260 : current_sync_timestamp(dirty_flag, 0) {}
265 DirtyOnWrite<int64> current_sync_timestamp; 261 DirtyOnWrite<int64> current_sync_timestamp;
266 }; 262 };
267 263
268 } // namespace sessions 264 } // namespace sessions
269 } // namespace browser_sync 265 } // namespace browser_sync
270 266
271 #endif // CHROME_BROWSER_SYNC_SESSIONS_SESSION_STATE_H_ 267 #endif // CHROME_BROWSER_SYNC_SESSIONS_SESSION_STATE_H_
OLDNEW
« no previous file with comments | « chrome/browser/sync/notifier/base/linux/async_network_alive_linux.cc ('k') | chrome/browser/sync/sessions/status_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698