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.
5 #ifndef SYNC_SYNCABLE_IN_MEMORY_DIRECTORY_BACKING_STORE_H_
6 #define SYNC_SYNCABLE_IN_MEMORY_DIRECTORY_BACKING_STORE_H_
8 #include "sync/syncable/directory_backing_store.h"
9 #include "sync/base/sync_export.h"
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
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
{
26 explicit InMemoryDirectoryBackingStore(const std::string
& dir_name
);
27 DirOpenResult
Load(Directory::MetahandlesMap
* handles_map
,
28 JournalIndex
* delete_journals
,
29 MetahandleSet
* metahandles_to_purge
,
30 Directory::KernelLoadInfo
* kernel_load_info
) override
;
32 void request_consistent_cache_guid() {
33 consistent_cache_guid_requested_
= true;
37 bool consistent_cache_guid_requested_
;
39 DISALLOW_COPY_AND_ASSIGN(InMemoryDirectoryBackingStore
);
42 } // namespace syncable
45 #endif // SYNC_SYNCABLE_IN_MEMORY_DIRECTORY_BACKING_STORE_H_