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