| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_SYNC_MODEL_METADATA_CHANGE_LIST_H_ |
| #define COMPONENTS_SYNC_MODEL_METADATA_CHANGE_LIST_H_ |
| |
| #include <string> |
| |
| namespace sync_pb { |
| class EntityMetadata; |
| class ModelTypeState; |
| } // namespace sync_pb |
| |
| namespace syncer { |
| |
| // 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 MetadataChangeList { |
| public: |
| MetadataChangeList() {} |
| virtual ~MetadataChangeList() {} |
| |
| // Requests ModelTypeState to be updated in the storage. |
| virtual void UpdateModelTypeState( |
| const sync_pb::ModelTypeState& model_type_state) = 0; |
| |
| // Requests ModelTypeState to be cleared from the storage. |
| virtual void ClearModelTypeState() = 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& storage_key, |
| const sync_pb::EntityMetadata& metadata) = 0; |
| |
| // Requests metadata entry to be cleared from the storage. |
| virtual void ClearMetadata(const std::string& storage_key) = 0; |
| }; |
| |
| } // namespace syncer |
| |
| #endif // COMPONENTS_SYNC_MODEL_METADATA_CHANGE_LIST_H_ |