• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef SYNC_SYNCABLE_IN_MEMORY_DIRECTORY_BACKING_STORE_H_
6 #define SYNC_SYNCABLE_IN_MEMORY_DIRECTORY_BACKING_STORE_H_
7 
8 #include "sync/syncable/directory_backing_store.h"
9 #include "sync/base/sync_export.h"
10 
11 namespace syncer {
12 namespace syncable {
13 
14 // This implementation of DirectoryBackingStore is used in tests that do not
15 // require us to write to a file.  An in-memory sqlite database is much faster
16 // than an on-disk database, so this can result in significant speedups in our
17 // unit tests.
18 //
19 // An InMemoryDirectoryBackingStore cannot load data from existing databases.
20 // When an InMemoryDirectoryBackingStore is destroyed, all data stored in this
21 // database is lost.  If these limitations are a problem for you, consider using
22 // TestDirectoryBackingStore.
23 class SYNC_EXPORT_PRIVATE InMemoryDirectoryBackingStore
24     : public DirectoryBackingStore {
25  public:
26   explicit InMemoryDirectoryBackingStore(const std::string& dir_name);
27   virtual DirOpenResult Load(
28       Directory::MetahandlesMap* handles_map,
29       JournalIndex* delete_journals,
30       Directory::KernelLoadInfo* kernel_load_info) OVERRIDE;
31 
request_consistent_cache_guid()32   void request_consistent_cache_guid() {
33     consistent_cache_guid_requested_ = true;
34   }
35 
36  private:
37   bool consistent_cache_guid_requested_;
38 
39   DISALLOW_COPY_AND_ASSIGN(InMemoryDirectoryBackingStore);
40 };
41 
42 }  // namespace syncable
43 }  // namespace syncer
44 
45 #endif  // SYNC_SYNCABLE_IN_MEMORY_DIRECTORY_BACKING_STORE_H_
46