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

Side by Side Diff: components/sync/api/sync_change.h

Issue 2401223002: [Sync] Renaming sync/api* to sync/model*. (Closed)
Patch Set: Missed a comment in a DEPS file, and rebasing. Created 4 years, 2 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
« no previous file with comments | « components/sync/api/stub_model_type_service.cc ('k') | components/sync/api/sync_change.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef COMPONENTS_SYNC_API_SYNC_CHANGE_H_
6 #define COMPONENTS_SYNC_API_SYNC_CHANGE_H_
7
8 #include <iosfwd>
9 #include <string>
10 #include <vector>
11
12 #include "base/location.h"
13 #include "components/sync/api/sync_data.h"
14
15 namespace syncer {
16
17 // A SyncChange object reflects a change to a piece of synced data. The change
18 // can be either a delete, add, or an update. All data relevant to the change
19 // is encapsulated within the SyncChange, which, once created, is immutable.
20 // Note: it is safe and cheap to pass these by value or make copies, as they do
21 // not create deep copies of their internal data.
22 class SyncChange {
23 public:
24 enum SyncChangeType {
25 ACTION_INVALID,
26 ACTION_ADD,
27 ACTION_UPDATE,
28 ACTION_DELETE,
29 };
30
31 // Default constructor creates an invalid change.
32 SyncChange();
33 // Create a new change with the specified sync data.
34 SyncChange(const tracked_objects::Location& from_here,
35 SyncChangeType change_type,
36 const SyncData& sync_data);
37 ~SyncChange();
38
39 // Copy constructor and assignment operator welcome.
40
41 // Whether this change is valid. This must be true before attempting to access
42 // the data.
43 // Deletes: Requires valid tag when going to the syncer. Requires valid
44 // specifics when coming from the syncer.
45 // Adds, Updates: Require valid tag and specifics when going to the syncer.
46 // Require only valid specifics when coming from the syncer.
47 bool IsValid() const;
48
49 // Getters.
50 SyncChangeType change_type() const;
51 SyncData sync_data() const;
52 tracked_objects::Location location() const;
53
54 // Returns a string representation of |change_type|.
55 static std::string ChangeTypeToString(SyncChangeType change_type);
56
57 // Returns a string representation of the entire object. Used for gmock
58 // printing method, PrintTo.
59 std::string ToString() const;
60
61 private:
62 tracked_objects::Location location_;
63
64 SyncChangeType change_type_;
65
66 // An immutable container for the data of this SyncChange. Whenever
67 // SyncChanges are copied, they copy references to this data.
68 SyncData sync_data_;
69 };
70
71 // gmock printer helper.
72 void PrintTo(const SyncChange& sync_change, std::ostream* os);
73
74 } // namespace syncer
75
76 #endif // COMPONENTS_SYNC_API_SYNC_CHANGE_H_
OLDNEW
« no previous file with comments | « components/sync/api/stub_model_type_service.cc ('k') | components/sync/api/sync_change.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698