Index: sync/syncable/directory_backing_store.h |
diff --git a/sync/syncable/directory_backing_store.h b/sync/syncable/directory_backing_store.h |
index 254fff4d8e7477d9286eebc956e68b4a985f6cfc..36a2f0afd2308b6ae99708f19267df6852cfdc30 100644 |
--- a/sync/syncable/directory_backing_store.h |
+++ b/sync/syncable/directory_backing_store.h |
@@ -49,16 +49,18 @@ class SYNC_EXPORT_PRIVATE DirectoryBackingStore : public base::NonThreadSafe { |
virtual ~DirectoryBackingStore(); |
// Loads and drops all currently persisted meta entries into |handles_map| |
- // and loads appropriate persisted kernel info into |info_bucket|. |
+ // and loads appropriate persisted kernel info into |kernel_load_info|. |
+ // The function determines which entries can be safely dropped and inserts |
+ // their keys into |metahandles_to_purge|. It is up to the caller to |
+ // perform the actual cleanup. |
// |
- // This function can perform some cleanup tasks behind the scenes. It will |
- // clean up unused entries from the database and migrate to the latest |
- // database version. The caller can safely ignore these details. |
+ // This function will migrate to the latest database version. |
// |
// 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(Directory::MetahandlesMap* handles_map, |
JournalIndex* delete_journals, |
+ MetahandleSet* metahandles_to_purge, |
Directory::KernelLoadInfo* kernel_load_info) = 0; |
// Updates the on-disk store with the input |snapshot| as a database |
@@ -90,16 +92,15 @@ class SYNC_EXPORT_PRIVATE DirectoryBackingStore : public base::NonThreadSafe { |
bool CreateV75ModelsTable(); |
bool CreateV81ModelsTable(); |
- // We don't need to load any synced and applied deleted entries, we can |
- // in fact just purge them forever on startup. |
- bool DropDeletedEntries(); |
// Drops a table if it exists, harmless if the table did not already exist. |
bool SafeDropTable(const char* table_name); |
// Load helpers for entries and attributes. |
- bool LoadEntries(Directory::MetahandlesMap* handles_map); |
+ bool LoadEntries(Directory::MetahandlesMap* handles_map, |
+ MetahandleSet* metahandles_to_purge); |
bool LoadDeleteJournals(JournalIndex* delete_journals); |
bool LoadInfo(Directory::KernelLoadInfo* info); |
+ bool SafeToPurgeOnLoading(const EntryKernel& entry) const; |
// Save/update helpers for entries. Return false if sqlite commit fails. |
static bool SaveEntryToDB(sql::Statement* save_statement, |