OLD | NEW |
| (Empty) |
1 // Copyright (c) 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 #include "chrome/browser/sync/syncable/on_disk_directory_backing_store.h" | |
6 | |
7 #include "base/logging.h" | |
8 | |
9 namespace syncable { | |
10 | |
11 OnDiskDirectoryBackingStore::OnDiskDirectoryBackingStore( | |
12 const std::string& dir_name, const FilePath& backing_filepath) | |
13 : DirectoryBackingStore(dir_name), | |
14 backing_filepath_(backing_filepath) { | |
15 db_->set_exclusive_locking(); | |
16 db_->set_page_size(4096); | |
17 } | |
18 | |
19 DirOpenResult OnDiskDirectoryBackingStore::Load( | |
20 MetahandlesIndex* entry_bucket, | |
21 Directory::KernelLoadInfo* kernel_load_info) { | |
22 DCHECK(CalledOnValidThread()); | |
23 if (!db_->is_open()) { | |
24 if (!db_->Open(backing_filepath_)) | |
25 return FAILED_OPEN_DATABASE; | |
26 } | |
27 | |
28 if (!InitializeTables()) | |
29 return FAILED_OPEN_DATABASE; | |
30 | |
31 if (!DropDeletedEntries()) | |
32 return FAILED_DATABASE_CORRUPT; | |
33 if (!LoadEntries(entry_bucket)) | |
34 return FAILED_DATABASE_CORRUPT; | |
35 if (!LoadInfo(kernel_load_info)) | |
36 return FAILED_DATABASE_CORRUPT; | |
37 | |
38 return OPENED; | |
39 } | |
40 | |
41 } // namespace syncable | |
OLD | NEW |