summaryrefslogtreecommitdiffstats
path: root/sync/api/metadata_change_list.h
diff options
context:
space:
mode:
authorstanisc <stanisc@chromium.org>2016-01-12 14:20:16 -0800
committerCommit bot <commit-bot@chromium.org>2016-01-12 22:21:41 +0000
commit227d3214f2b02d201d695faa2f8ea2223b6b62bf (patch)
tree4fd36b43416197d59220bb3648bf159836008b17 /sync/api/metadata_change_list.h
parenta9c0cb389711e755c41bd20c9335b5dee7b1d097 (diff)
downloadchromium_src-227d3214f2b02d201d695faa2f8ea2223b6b62bf.zip
chromium_src-227d3214f2b02d201d695faa2f8ea2223b6b62bf.tar.gz
chromium_src-227d3214f2b02d201d695faa2f8ea2223b6b62bf.tar.bz2
Use MetadataChangeList and EntityChangeList in SharedModelTypeProcessor
BUG=569678,569636 Review URL: https://codereview.chromium.org/1565503003 Cr-Commit-Position: refs/heads/master@{#369009}
Diffstat (limited to 'sync/api/metadata_change_list.h')
-rw-r--r--sync/api/metadata_change_list.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/sync/api/metadata_change_list.h b/sync/api/metadata_change_list.h
index e4435a8..a8c0d95 100644
--- a/sync/api/metadata_change_list.h
+++ b/sync/api/metadata_change_list.h
@@ -5,15 +5,45 @@
#ifndef SYNC_API_METADATA_CHANGE_LIST_H_
#define SYNC_API_METADATA_CHANGE_LIST_H_
+#include <string>
+
#include "sync/base/sync_export.h"
+namespace sync_pb {
+class EntityMetadata;
+} // namespace sync_pb
+
namespace syncer_v2 {
+struct DataTypeState;
// Interface used by the processor and service to communicate about metadata.
+// The purpose of the interface is to record changes to data type global and
+// per entity metadata for the purpose of propagating changes to the datatype
+// specific storage implementation.
+// The implementation of the interface is supposed to keep the record of all
+// updated / deleted metadata records and provide a mechanism to enumerate
+// them. If there are multiple UpdateMetadata / ClearMetadata calls made for the
+// same metadata record the last one is supposed to win.
class SYNC_EXPORT MetadataChangeList {
public:
MetadataChangeList() {}
virtual ~MetadataChangeList() {}
+
+ // Requests DataTypeState to be updated in the storage.
+ virtual void UpdateDataTypeState(const DataTypeState& data_type_state) = 0;
+
+ // Requests DataTypeState to be cleared from the storage.
+ virtual void ClearDataTypeState() = 0;
+
+ // Requests metadata entry to be updated in the storage.
+ // Please note that the update might contain a deleted entry if
+ // metadata.is_deleted() is true (as opposed to clearing the entry from the
+ // storage completely by calling the Clear method).
+ virtual void UpdateMetadata(const std::string& client_tag,
+ const sync_pb::EntityMetadata& metadata) = 0;
+
+ // Requests metadata entry to be cleared from the storage.
+ virtual void ClearMetadata(const std::string& client_tag) = 0;
};
} // namespace syncer_v2