| Index: components/sync/model/sync_metadata_store.h
|
| diff --git a/components/sync/model/sync_metadata_store.h b/components/sync/model/sync_metadata_store.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4a06f7d8f0b36b55f9659633c1f8fb02c5d0ef0c
|
| --- /dev/null
|
| +++ b/components/sync/model/sync_metadata_store.h
|
| @@ -0,0 +1,59 @@
|
| +// Copyright 2017 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_SYNC_METADATA_STORE_H_
|
| +#define COMPONENTS_SYNC_MODEL_SYNC_METADATA_STORE_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "components/sync/base/model_type.h"
|
| +
|
| +namespace sync_pb {
|
| +class EntityMetadata;
|
| +class ModelTypeState;
|
| +} // namespace sync_pb
|
| +
|
| +namespace syncer {
|
| +
|
| +// SyncMetadataStore defines interface implemented by model types for persisting
|
| +// sync metadata and datatype state. It allows model type to use common
|
| +// implementation of MetadataChangeList (SyncMetadataStoreChangeList) instead of
|
| +// implementing their own.
|
| +// Model type in implementation of ModelTypeSyncBridge::CreateMetadataChangeList
|
| +// should create instance of SyncMetadataStoreChangeList passing pointer to
|
| +// SyncMetadataStore to its constructor.
|
| +// Implementations of SyncMetadataStore methods should support add/update/delete
|
| +// metadata in model type specific sync metadata storage.
|
| +
|
| +class SyncMetadataStore {
|
| + public:
|
| + SyncMetadataStore() {}
|
| + virtual ~SyncMetadataStore() {}
|
| +
|
| + // Update the metadata row for |model_type|, keyed by |storage_key|, to
|
| + // contain the contents of |metadata|.
|
| + // Return true on success.
|
| + virtual bool UpdateSyncMetadata(syncer::ModelType model_type,
|
| + const std::string& storage_key,
|
| + const sync_pb::EntityMetadata& metadata) = 0;
|
| +
|
| + // Remove the metadata row of type |model_type| keyed by |storage_key|.
|
| + // Return true on success.
|
| + virtual bool ClearSyncMetadata(syncer::ModelType model_type,
|
| + const std::string& storage_key) = 0;
|
| +
|
| + // Update the stored sync state for the |model_type|.
|
| + // Return true on success.
|
| + virtual bool UpdateModelTypeState(
|
| + syncer::ModelType model_type,
|
| + const sync_pb::ModelTypeState& model_type_state) = 0;
|
| +
|
| + // Clear the stored sync state for |model_type|.
|
| + // Return true on success.
|
| + virtual bool ClearModelTypeState(syncer::ModelType model_type) = 0;
|
| +};
|
| +
|
| +} // namespace syncer
|
| +
|
| +#endif // COMPONENTS_SYNC_MODEL_SYNC_METADATA_STORE_H_
|
|
|