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

Unified Diff: sync/api/metadata_change_list.h

Issue 1565503003: Use MetadataChangeList and EntityChangeList in SharedModelTypeProcessor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added ClearDataTypeState Created 4 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sync/api/entity_change.h ('k') | sync/api/model_type_service.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/api/metadata_change_list.h
diff --git a/sync/api/metadata_change_list.h b/sync/api/metadata_change_list.h
index e4435a83f386f75dc8ad380d29b6ae9854899b18..a8c0d95e3aeb730e26f7e9f73e0fcba647697c06 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
« no previous file with comments | « sync/api/entity_change.h ('k') | sync/api/model_type_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698