1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- // 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_
|