| Index: sync/syncable/directory_backing_store.h
|
| diff --git a/sync/syncable/directory_backing_store.h b/sync/syncable/directory_backing_store.h
|
| index b7a97d3c2eb1d5824447b913c58f8b2b78de77cd..3ee884487d1d8c6b4b5cf226af3487bbfb4645ba 100644
|
| --- a/sync/syncable/directory_backing_store.h
|
| +++ b/sync/syncable/directory_backing_store.h
|
| @@ -59,6 +59,7 @@ class SYNC_EXPORT_PRIVATE DirectoryBackingStore : public base::NonThreadSafe {
|
| // NOTE: On success (return value of OPENED), the buckets are populated with
|
| // newly allocated items, meaning ownership is bestowed upon the caller.
|
| virtual DirOpenResult Load(MetahandlesIndex* entry_bucket,
|
| + JournalIndex* delete_journals,
|
| Directory::KernelLoadInfo* kernel_load_info) = 0;
|
|
|
| // Updates the on-disk store with the input |snapshot| as a database
|
| @@ -97,10 +98,12 @@ class SYNC_EXPORT_PRIVATE DirectoryBackingStore : public base::NonThreadSafe {
|
|
|
| // Load helpers for entries and attributes.
|
| bool LoadEntries(MetahandlesIndex* entry_bucket);
|
| + bool LoadDeleteJournals(JournalIndex* delete_journals);
|
| bool LoadInfo(Directory::KernelLoadInfo* info);
|
|
|
| // Save/update helpers for entries. Return false if sqlite commit fails.
|
| - bool SaveEntryToDB(const EntryKernel& entry);
|
| + static bool SaveEntryToDB(sql::Statement* save_statement,
|
| + const EntryKernel& entry);
|
| bool SaveNewEntryToDB(const EntryKernel& entry);
|
| bool UpdateEntryToDB(const EntryKernel& entry);
|
|
|
| @@ -110,9 +113,13 @@ class SYNC_EXPORT_PRIVATE DirectoryBackingStore : public base::NonThreadSafe {
|
| // Close save_dbhandle_. Broken out for testing.
|
| void EndSave();
|
|
|
| - // Removes each entry whose metahandle is in |handles| from the database.
|
| - // Does synchronous I/O. Returns false on error.
|
| - bool DeleteEntries(const MetahandleSet& handles);
|
| + enum EntryTable {
|
| + METAS_TABLE,
|
| + DELETE_JOURNAL_TABLE,
|
| + };
|
| + // Removes each entry whose metahandle is in |handles| from the table
|
| + // specified by |from| table. Does synchronous I/O. Returns false on error.
|
| + bool DeleteEntries(EntryTable from, const MetahandleSet& handles);
|
|
|
| // Drop all tables in preparation for reinitialization.
|
| void DropAllTables();
|
| @@ -167,13 +174,23 @@ class SYNC_EXPORT_PRIVATE DirectoryBackingStore : public base::NonThreadSafe {
|
| bool MigrateVersion84To85();
|
|
|
| scoped_ptr<sql::Connection> db_;
|
| - sql::Statement save_entry_statement_;
|
| + sql::Statement save_meta_statment_;
|
| + sql::Statement save_delete_journal_statment_;
|
| std::string dir_name_;
|
|
|
| // Set to true if migration left some old columns around that need to be
|
| // discarded.
|
| bool needs_column_refresh_;
|
|
|
| + private:
|
| + // Helper function for loading entries from specified table.
|
| + template<class T>
|
| + bool LoadEntriesInternal(const std::string& table, T* bucket);
|
| +
|
| + // Prepares |save_statement| for saving entries in |table|.
|
| + void PrepareSaveEntryStatement(EntryTable table,
|
| + sql::Statement* save_statement);
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(DirectoryBackingStore);
|
| };
|
|
|
|
|