OLD | NEW |
| (Empty) |
1 // Copyright 2015 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 SYNC_API_ENTITY_CHANGE_H_ | |
6 #define SYNC_API_ENTITY_CHANGE_H_ | |
7 | |
8 #include <string> | |
9 #include <vector> | |
10 | |
11 #include "sync/api/entity_data.h" | |
12 #include "sync/base/sync_export.h" | |
13 | |
14 namespace syncer_v2 { | |
15 | |
16 class SYNC_EXPORT EntityChange { | |
17 public: | |
18 enum ChangeType { | |
19 ACTION_ADD, | |
20 ACTION_UPDATE, | |
21 ACTION_DELETE | |
22 }; | |
23 | |
24 static EntityChange CreateAdd(std::string client_tag, EntityDataPtr data); | |
25 static EntityChange CreateUpdate(std::string client_tag, EntityDataPtr data); | |
26 static EntityChange CreateDelete(std::string client_tag); | |
27 | |
28 EntityChange(const EntityChange& other); | |
29 virtual ~EntityChange(); | |
30 | |
31 std::string client_tag() const { return client_tag_; } | |
32 ChangeType type() const { return type_; } | |
33 const EntityData& data() const { return data_.value(); } | |
34 | |
35 private: | |
36 EntityChange(std::string client_tag, ChangeType type, EntityDataPtr data); | |
37 | |
38 std::string client_tag_; | |
39 ChangeType type_; | |
40 EntityDataPtr data_; | |
41 }; | |
42 | |
43 typedef std::vector<EntityChange> EntityChangeList; | |
44 | |
45 } // namespace syncer_v2 | |
46 | |
47 #endif // SYNC_API_ENTITY_CHANGE_H_ | |
OLD | NEW |