Index: sync/internal_api/public/model_type_store_backend.h |
diff --git a/sync/internal_api/public/model_type_store_backend.h b/sync/internal_api/public/model_type_store_backend.h |
deleted file mode 100644 |
index b30379943e86a7581de3a88db4b1d8b53d8f6efd..0000000000000000000000000000000000000000 |
--- a/sync/internal_api/public/model_type_store_backend.h |
+++ /dev/null |
@@ -1,109 +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_INTERNAL_API_PUBLIC_MODEL_TYPE_STORE_BACKEND_H_ |
-#define SYNC_INTERNAL_API_PUBLIC_MODEL_TYPE_STORE_BACKEND_H_ |
- |
-#include <memory> |
-#include <string> |
-#include <unordered_map> |
- |
-#include "base/lazy_instance.h" |
-#include "base/macros.h" |
-#include "base/threading/thread_collision_warner.h" |
-#include "sync/api/model_type_store.h" |
-#include "sync/base/sync_export.h" |
- |
-namespace leveldb { |
-class DB; |
-class Env; |
-class WriteBatch; |
-} // namespace leveldb |
- |
-namespace syncer_v2 { |
- |
-// ModelTypeStoreBackend handles operations with leveldb. It is oblivious of the |
-// fact that it is called from separate thread (with the exception of ctor), |
-// meaning it shouldn't deal with callbacks and task_runners. |
-class SYNC_EXPORT ModelTypeStoreBackend |
- : public base::RefCountedThreadSafe<ModelTypeStoreBackend> { |
- public: |
- typedef std::unordered_map<std::string, ModelTypeStoreBackend*> BackendMap; |
- |
- // Helper function to create in memory environment for leveldb. |
- static std::unique_ptr<leveldb::Env> CreateInMemoryEnv(); |
- |
- // GetOrCreateBackend will check if |backend_map_| has a backend with same |
- // |path|. If |backend_map_| has one, wrap that backend to scoped_refptr and |
- // return. If |backend_map_| does not have, create a backend and store it into |
- // |backend_map_|. |
- static scoped_refptr<ModelTypeStoreBackend> GetOrCreateBackend( |
- const std::string& path, |
- std::unique_ptr<leveldb::Env> env, |
- ModelTypeStore::Result* result); |
- |
- // Reads records with keys formed by prepending ids from |id_list| with |
- // |prefix|. If the record is found its id (without prefix) and value is |
- // appended to record_list. If record is not found its id is appended to |
- // |missing_id_list|. It is not an error that records for ids are not found so |
- // function will still return success in this case. |
- ModelTypeStore::Result ReadRecordsWithPrefix( |
- const std::string& prefix, |
- const ModelTypeStore::IdList& id_list, |
- ModelTypeStore::RecordList* record_list, |
- ModelTypeStore::IdList* missing_id_list); |
- |
- // Reads all records with keys starting with |prefix|. Prefix is removed from |
- // key before it is added to |record_list|. |
- ModelTypeStore::Result ReadAllRecordsWithPrefix( |
- const std::string& prefix, |
- ModelTypeStore::RecordList* record_list); |
- |
- // Writes modifications accumulated in |write_batch| to database. |
- ModelTypeStore::Result WriteModifications( |
- std::unique_ptr<leveldb::WriteBatch> write_batch); |
- |
- private: |
- friend class base::RefCountedThreadSafe<ModelTypeStoreBackend>; |
- friend class ModelTypeStoreBackendTest; |
- |
- ModelTypeStoreBackend(const std::string& path); |
- ~ModelTypeStoreBackend(); |
- |
- // In some scenarios ModelTypeStoreBackend holds ownership of env. Typical |
- // example is when test creates in memory environment with CreateInMemoryEnv |
- // and wants it to be destroyed along with backend. This is achieved by |
- // passing ownership of env to TakeEnvOwnership function. |
- // |
- // env_ declaration should appear before declaration of db_ because |
- // environment object should still be valid when db_'s destructor is called. |
- std::unique_ptr<leveldb::Env> env_; |
- |
- std::unique_ptr<leveldb::DB> db_; |
- |
- std::string path_; |
- |
- // backend_map_ holds raw pointer of backend, and when stores ask for backend, |
- // GetOrCreateBackend will return scoped_refptr of backend. backend_map_ |
- // doesn't take reference to backend, therefore doesn't block backend |
- // destruction. |
- static base::LazyInstance<BackendMap> backend_map_; |
- |
- // Init opens database at |path|. If database doesn't exist it creates one. |
- // Normally |env| should be nullptr, this causes leveldb to use default disk |
- // based environment from leveldb::Env::Default(). |
- // Providing |env| allows to override environment used by leveldb for tests |
- // with in-memory or faulty environment. |
- ModelTypeStore::Result Init(const std::string& path, |
- std::unique_ptr<leveldb::Env> env); |
- |
- // Macro wrapped mutex to guard against concurrent calls in debug builds. |
- DFAKE_MUTEX(push_pop_); |
- |
- DISALLOW_COPY_AND_ASSIGN(ModelTypeStoreBackend); |
-}; |
- |
-} // namespace syncer_v2 |
- |
-#endif // SYNC_INTERNAL_API_PUBLIC_MODEL_TYPE_STORE_BACKEND_H_ |