diff options
author | stanisc <stanisc@chromium.org> | 2016-01-12 14:20:16 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-12 22:21:41 +0000 |
commit | 227d3214f2b02d201d695faa2f8ea2223b6b62bf (patch) | |
tree | 4fd36b43416197d59220bb3648bf159836008b17 /sync/api/metadata_change_list.h | |
parent | a9c0cb389711e755c41bd20c9335b5dee7b1d097 (diff) | |
download | chromium_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.h | 30 |
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 |