Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Side by Side Diff: sync/syncable/directory_backing_store.h

Issue 1082423002: [Sync] Make DirectoryBackingStore's db_ private. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move friend declarations to private section. Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sync/syncable/directory.h ('k') | sync/syncable/directory_backing_store.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef SYNC_SYNCABLE_DIRECTORY_BACKING_STORE_H_ 5 #ifndef SYNC_SYNCABLE_DIRECTORY_BACKING_STORE_H_
6 #define SYNC_SYNCABLE_DIRECTORY_BACKING_STORE_H_ 6 #define SYNC_SYNCABLE_DIRECTORY_BACKING_STORE_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 26 matching lines...) Expand all
37 // The DirectoryBackingStore will own an sqlite lock on its database for most of 37 // The DirectoryBackingStore will own an sqlite lock on its database for most of
38 // its lifetime. You must not have two DirectoryBackingStore objects accessing 38 // its lifetime. You must not have two DirectoryBackingStore objects accessing
39 // the database simultaneously. Because the lock exists at the database level, 39 // the database simultaneously. Because the lock exists at the database level,
40 // not even two separate browser instances would be able to acquire it 40 // not even two separate browser instances would be able to acquire it
41 // simultaneously. 41 // simultaneously.
42 // 42 //
43 // This class is abstract so that we can extend it in interesting ways for use 43 // This class is abstract so that we can extend it in interesting ways for use
44 // in tests. The concrete class used in non-test scenarios is 44 // in tests. The concrete class used in non-test scenarios is
45 // OnDiskDirectoryBackingStore. 45 // OnDiskDirectoryBackingStore.
46 class SYNC_EXPORT_PRIVATE DirectoryBackingStore : public base::NonThreadSafe { 46 class SYNC_EXPORT_PRIVATE DirectoryBackingStore : public base::NonThreadSafe {
47 friend class TestDirectoryBackingStore;
47 friend class DirectoryBackingStoreTest; 48 friend class DirectoryBackingStoreTest;
48 FRIEND_TEST_ALL_PREFIXES(DirectoryBackingStoreTest, 49 FRIEND_TEST_ALL_PREFIXES(DirectoryBackingStoreTest,
49 IncreaseDatabasePageSizeFrom4KTo32K); 50 IncreaseDatabasePageSizeFrom4KTo32K);
50 FRIEND_TEST_ALL_PREFIXES(DirectoryBackingStoreTest, 51 FRIEND_TEST_ALL_PREFIXES(DirectoryBackingStoreTest,
51 CatastrophicErrorHandler_KeptAcrossReset); 52 CatastrophicErrorHandler_KeptAcrossReset);
52 FRIEND_TEST_ALL_PREFIXES(DirectoryBackingStoreTest, 53 FRIEND_TEST_ALL_PREFIXES(DirectoryBackingStoreTest,
53 CatastrophicErrorHandler_Invocation); 54 CatastrophicErrorHandler_Invocation);
54 55
55 public: 56 public:
56 explicit DirectoryBackingStore(const std::string& dir_name); 57 explicit DirectoryBackingStore(const std::string& dir_name);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 // already a handler, the existing handler is overwritten with 100 // already a handler, the existing handler is overwritten with
100 // |catastrophic_error_handler|. 101 // |catastrophic_error_handler|.
101 virtual void SetCatastrophicErrorHandler( 102 virtual void SetCatastrophicErrorHandler(
102 const base::Closure& catastrophic_error_handler); 103 const base::Closure& catastrophic_error_handler);
103 104
104 protected: 105 protected:
105 // For test classes. 106 // For test classes.
106 DirectoryBackingStore(const std::string& dir_name, 107 DirectoryBackingStore(const std::string& dir_name,
107 sql::Connection* connection); 108 sql::Connection* connection);
108 109
110 // An accessor for the underlying sql::Connection. Avoid using outside of
111 // tests.
112 sql::Connection* db();
113
114 // Return true if the DB is open.
115 bool IsOpen() const;
116
117 // Open the DB at |path|.
118 // Return true on success, false on failure.
119 bool Open(const base::FilePath& path);
120
121 // Open an in memory DB.
122 // Return true on success, false on failure.
123 bool OpenInMemory();
124
109 // General Directory initialization and load helpers. 125 // General Directory initialization and load helpers.
110 bool InitializeTables(); 126 bool InitializeTables();
111 bool CreateTables(); 127 bool CreateTables();
112 128
113 // Create 'share_info' or 'temp_share_info' depending on value of 129 // Create 'share_info' or 'temp_share_info' depending on value of
114 // is_temporary. Returns an sqlite 130 // is_temporary. Returns an sqlite
115 bool CreateShareInfoTable(bool is_temporary); 131 bool CreateShareInfoTable(bool is_temporary);
116 132
117 bool CreateShareInfoTableVersion71(bool is_temporary); 133 bool CreateShareInfoTableVersion71(bool is_temporary);
118 // Create 'metas' or 'temp_metas' depending on value of is_temporary. Also 134 // Create 'metas' or 'temp_metas' depending on value of is_temporary. Also
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 bool MigrateVersion86To87(); 222 bool MigrateVersion86To87();
207 bool MigrateVersion87To88(); 223 bool MigrateVersion87To88();
208 bool MigrateVersion88To89(); 224 bool MigrateVersion88To89();
209 225
210 // Accessor for needs_column_refresh_. Used in tests. 226 // Accessor for needs_column_refresh_. Used in tests.
211 bool needs_column_refresh() const; 227 bool needs_column_refresh() const;
212 228
213 // Destroys the existing Connection and creates a new one. 229 // Destroys the existing Connection and creates a new one.
214 void ResetAndCreateConnection(); 230 void ResetAndCreateConnection();
215 231
216 scoped_ptr<sql::Connection> db_;
217
218 private: 232 private:
219 bool Vacuum(); 233 bool Vacuum();
220 bool IncreasePageSizeTo32K(); 234 bool IncreasePageSizeTo32K();
221 bool GetDatabasePageSize(int* page_size); 235 bool GetDatabasePageSize(int* page_size);
222 236
223 // Prepares |save_statement| for saving entries in |table|. 237 // Prepares |save_statement| for saving entries in |table|.
224 void PrepareSaveEntryStatement(EntryTable table, 238 void PrepareSaveEntryStatement(EntryTable table,
225 sql::Statement* save_statement); 239 sql::Statement* save_statement);
226 240
227 const std::string dir_name_; 241 const std::string dir_name_;
228 const int database_page_size_; 242 const int database_page_size_;
243
244 scoped_ptr<sql::Connection> db_;
229 sql::Statement save_meta_statement_; 245 sql::Statement save_meta_statement_;
230 sql::Statement save_delete_journal_statement_; 246 sql::Statement save_delete_journal_statement_;
231 247
232 // Set to true if migration left some old columns around that need to be 248 // Set to true if migration left some old columns around that need to be
233 // discarded. 249 // discarded.
234 bool needs_column_refresh_; 250 bool needs_column_refresh_;
235 251
236 // We keep a copy of the Closure so we reinstall it when the underlying 252 // We keep a copy of the Closure so we reinstall it when the underlying
237 // sql::Connection is destroyed/recreated. 253 // sql::Connection is destroyed/recreated.
238 base::Closure catastrophic_error_handler_; 254 base::Closure catastrophic_error_handler_;
239 255
240 DISALLOW_COPY_AND_ASSIGN(DirectoryBackingStore); 256 DISALLOW_COPY_AND_ASSIGN(DirectoryBackingStore);
241 }; 257 };
242 258
243 } // namespace syncable 259 } // namespace syncable
244 } // namespace syncer 260 } // namespace syncer
245 261
246 #endif // SYNC_SYNCABLE_DIRECTORY_BACKING_STORE_H_ 262 #endif // SYNC_SYNCABLE_DIRECTORY_BACKING_STORE_H_
OLDNEW
« no previous file with comments | « sync/syncable/directory.h ('k') | sync/syncable/directory_backing_store.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698