Index: sync/api/model_type_store.h |
diff --git a/sync/api/model_type_store.h b/sync/api/model_type_store.h |
deleted file mode 100644 |
index 487751bee42a30523f2e1c6d42b1efab5b7b2d7c..0000000000000000000000000000000000000000 |
--- a/sync/api/model_type_store.h |
+++ /dev/null |
@@ -1,162 +0,0 @@ |
-// 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 SYNC_API_MODEL_TYPE_STORE_H_ |
-#define SYNC_API_MODEL_TYPE_STORE_H_ |
- |
-#include <memory> |
-#include <string> |
-#include <vector> |
- |
-#include "base/callback.h" |
-#include "base/macros.h" |
-#include "sync/base/sync_export.h" |
-#include "sync/internal_api/public/base/model_type.h" |
- |
-namespace base { |
-class SequencedTaskRunner; |
-} // namespace base |
- |
-namespace syncer_v2 { |
- |
-// ModelTypeStore is leveldb backed store for model type's data, metadata and |
-// global metadata. |
-// |
-// Store keeps records for entries identified by ids. For each entry store keeps |
-// data and metadata. Also store keeps one record for global metadata. |
-// |
-// To create store call one of Create*Store static factory functions. Model type |
-// controls store's lifetime with returned unique_ptr. Call to Create*Store |
-// function triggers asynchronous store backend initialization, callback will be |
-// called with results when initialization is done. |
-// |
-// Read operations are asynchronous, initiated with one of Read* functions, |
-// provided callback will be called with result code and output of read |
-// operation. |
-// |
-// Write operations are done in context of write batch. To get one call |
-// CreateWriteBatch(). After that pass write batch object to Write/Delete |
-// functions. WriteBatch only accumulates pending changes, doesn't actually do |
-// data modification. Calling CommitWriteBatch writes all accumulated changes to |
-// disk atomically. Callback passed to CommitWriteBatch will be called with |
-// result of write operation. If write batch object is destroyed without |
-// comitting accumulated write operations will not be persisted. |
-// |
-// Destroying store object doesn't necessarily cancel asynchronous operations |
-// issued previously. You should be prepared to handle callbacks from those |
-// operations. |
-class SYNC_EXPORT ModelTypeStore { |
- public: |
- // Result of store operations. |
- enum class Result { |
- SUCCESS, |
- UNSPECIFIED_ERROR, |
- }; |
- |
- // Output of read operations is passed back as list of Record structures. |
- struct Record { |
- Record(const std::string& id, const std::string& value) |
- : id(id), value(value) {} |
- |
- std::string id; |
- std::string value; |
- }; |
- |
- // WriteBatch object is used in all modification operations. |
- class SYNC_EXPORT WriteBatch { |
- public: |
- virtual ~WriteBatch(); |
- |
- protected: |
- friend class MockModelTypeStore; |
- WriteBatch(); |
- }; |
- |
- typedef std::vector<Record> RecordList; |
- typedef std::vector<std::string> IdList; |
- |
- typedef base::Callback<void(Result result, |
- std::unique_ptr<ModelTypeStore> store)> |
- InitCallback; |
- typedef base::Callback<void(Result result)> CallbackWithResult; |
- typedef base::Callback<void(Result result, |
- std::unique_ptr<RecordList> data_records, |
- std::unique_ptr<IdList> missing_id_list)> |
- ReadDataCallback; |
- typedef base::Callback<void(Result result, |
- std::unique_ptr<RecordList> data_records)> |
- ReadAllDataCallback; |
- typedef base::Callback<void(Result result, |
- std::unique_ptr<RecordList> metadata_records, |
- const std::string& global_metadata)> |
- ReadMetadataCallback; |
- |
- // CreateStore takes |path| and |blocking_task_runner|. Here is how to get |
- // task runner in production code: |
- // |
- // base::SequencedWorkerPool* worker_pool = |
- // content::BrowserThread::GetBlockingPool(); |
- // scoped_refptr<base::SequencedTaskRunner> blocking_task_runner( |
- // worker_pool->GetSequencedTaskRunnerWithShutdownBehavior( |
- // worker_pool->GetSequenceToken(), |
- // base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)); |
- // |
- // In test get task runner from MessageLoop::task_runner(). |
- static void CreateStore( |
- const syncer::ModelType type, |
- const std::string& path, |
- scoped_refptr<base::SequencedTaskRunner> blocking_task_runner, |
- const InitCallback& callback); |
- // Creates store object backed by in-memory leveldb database. It is used in |
- // tests. |
- static void CreateInMemoryStoreForTest(const InitCallback& callback); |
- |
- virtual ~ModelTypeStore(); |
- |
- // Read operations return records either for all entries or only for ones |
- // identified in |id_list|. Result is SUCCESS if all records were read |
- // successfully. If reading any of records fails result is UNSPECIFIED_ERROR |
- // and RecordList contains some records that were read successfully. There is |
- // no guarantee that RecordList will contain all successfully read records in |
- // this case. |
- // Callback for ReadData (ReadDataCallback) in addition receives list of ids |
- // that were not found in store (missing_id_list). |
- virtual void ReadData(const IdList& id_list, |
- const ReadDataCallback& callback) = 0; |
- virtual void ReadAllData(const ReadAllDataCallback& callback) = 0; |
- // ReadMetadataCallback will be invoked with three parameters: result of |
- // operation, list of metadata records and global metadata. |
- virtual void ReadAllMetadata(const ReadMetadataCallback& callback) = 0; |
- |
- // Creates write batch for write operations. |
- virtual std::unique_ptr<WriteBatch> CreateWriteBatch() = 0; |
- |
- // Commits write operations accumulated in write batch. If write operation |
- // fails result is UNSPECIFIED_ERROR and write operations will not be |
- // reflected in the store. |
- virtual void CommitWriteBatch(std::unique_ptr<WriteBatch> write_batch, |
- const CallbackWithResult& callback) = 0; |
- |
- // Write operations. |
- virtual void WriteData(WriteBatch* write_batch, |
- const std::string& id, |
- const std::string& value) = 0; |
- virtual void WriteMetadata(WriteBatch* write_batch, |
- const std::string& id, |
- const std::string& value) = 0; |
- virtual void WriteGlobalMetadata(WriteBatch* write_batch, |
- const std::string& value) = 0; |
- virtual void DeleteData(WriteBatch* write_batch, const std::string& id) = 0; |
- virtual void DeleteMetadata(WriteBatch* write_batch, |
- const std::string& id) = 0; |
- virtual void DeleteGlobalMetadata(WriteBatch* write_batch) = 0; |
- // TODO(pavely): Consider implementing DeleteAllMetadata with following |
- // signature: |
- // virtual void DeleteAllMetadata(const CallbackWithResult& callback) = 0. |
- // It will delete all metadata records and global metadata record. |
-}; |
- |
-} // namespace syncer_v2 |
- |
-#endif // SYNC_API_MODEL_TYPE_STORE_H_ |