Index: chrome/browser/sync_file_system/drive_backend/metadata_database.h |
diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database.h b/chrome/browser/sync_file_system/drive_backend/metadata_database.h |
index edb8b96cdeda7e07fd1ad03f3a3871ad21f444af..b60d75b17d6e5e526738a8479f21e3764c6828db 100644 |
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database.h |
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.h |
@@ -49,6 +49,7 @@ namespace drive_backend { |
class FileDetails; |
class FileMetadata; |
class FileTracker; |
+class MetadataDatabaseIndex; |
class ServiceMetadata; |
struct DatabaseContents { |
@@ -120,12 +121,6 @@ struct DatabaseContents { |
// |
class MetadataDatabase { |
public: |
- typedef base::ScopedPtrHashMap<std::string, FileMetadata> MetadataByID; |
- typedef base::ScopedPtrHashMap<int64, FileTracker> TrackerByID; |
- typedef base::hash_map<std::string, TrackerIDSet> TrackerIDsByFileID; |
- typedef base::hash_map<std::string, TrackerIDSet> TrackerIDsByTitle; |
- typedef std::map<int64, TrackerIDsByTitle> TrackerIDsByParentAndTitle; |
- typedef base::hash_map<std::string, int64> TrackerIDByAppID; |
typedef std::vector<std::string> FileIDList; |
typedef base::Callback< |
@@ -360,13 +355,6 @@ class MetadataDatabase { |
private: |
friend class MetadataDatabaseTest; |
- struct DirtyTrackerComparator { |
- bool operator()(const FileTracker* left, |
- const FileTracker* right) const; |
- }; |
- |
- typedef std::set<FileTracker*, DirtyTrackerComparator> DirtyTrackers; |
- |
MetadataDatabase(base::SequencedTaskRunner* task_runner, |
const base::FilePath& database_path, |
leveldb::Env* env_override); |
@@ -382,15 +370,6 @@ class MetadataDatabase { |
void RegisterTrackerAsAppRoot(const std::string& app_id, |
int64 tracker_id, |
leveldb::WriteBatch* batch); |
- void MakeTrackerActive(int64 tracker_id, leveldb::WriteBatch* batch); |
- void MakeTrackerInactive(int64 tracker_id, leveldb::WriteBatch* batch); |
- void MakeAppRootDisabled(int64 tracker_id, leveldb::WriteBatch* batch); |
- void MakeAppRootEnabled(int64 tracker_id, leveldb::WriteBatch* batch); |
- |
- void UnregisterTrackerAsAppRoot(const std::string& app_id, |
- leveldb::WriteBatch* batch); |
- void RemoveAllDescendantTrackers(int64 root_tracker_id, |
- leveldb::WriteBatch* batch); |
void CreateTrackerForParentAndFileID(const FileTracker& parent_tracker, |
const std::string& file_id, |
@@ -405,37 +384,12 @@ class MetadataDatabase { |
UpdateOption option, |
leveldb::WriteBatch* batch); |
- void RemoveTracker(int64 tracker_id, leveldb::WriteBatch* batch); |
- void RemoveTrackerIgnoringSameTitle(int64 tracker_id, |
- leveldb::WriteBatch* batch); |
- void RemoveTrackerInternal(int64 tracker_id, |
- leveldb::WriteBatch* batch, |
- bool ignoring_same_title); |
void MaybeAddTrackersForNewFile(const FileMetadata& file, |
UpdateOption option, |
leveldb::WriteBatch* batch); |
- void MarkSingleTrackerAsDirty(FileTracker* tracker, |
- leveldb::WriteBatch* batch); |
- void ClearDirty(FileTracker* tracker, leveldb::WriteBatch* batch); |
- void MarkTrackerSetDirty(TrackerIDSet* trackers, |
- leveldb::WriteBatch* batch); |
- void MarkTrackersDirtyByFileID(const std::string& file_id, |
- leveldb::WriteBatch* batch); |
- void MarkTrackersDirtyByPath(int64 parent_tracker_id, |
- const std::string& title, |
- leveldb::WriteBatch* batch); |
- |
- void EraseTrackerFromFileIDIndex(FileTracker* tracker, |
- leveldb::WriteBatch* batch); |
- void EraseTrackerFromPathIndex(FileTracker* tracker); |
- void EraseFileFromDatabase(const std::string& file_id, |
- leveldb::WriteBatch* batch); |
- |
int64 IncrementTrackerID(leveldb::WriteBatch* batch); |
- void RecursiveMarkTrackerAsDirty(int64 root_tracker_id, |
- leveldb::WriteBatch* batch); |
bool CanActivateTracker(const FileTracker& tracker); |
bool ShouldKeepDirty(const FileTracker& tracker) const; |
@@ -459,14 +413,10 @@ class MetadataDatabase { |
scoped_ptr<base::ListValue> DumpTrackers(); |
scoped_ptr<base::ListValue> DumpMetadata(); |
- void StoreFileMetadata(scoped_ptr<FileMetadata> file_metadata); |
- void StoreFileTracker(scoped_ptr<FileTracker> file_tracker); |
- |
void AttachSyncRoot(const google_apis::FileResource& sync_root_folder, |
leveldb::WriteBatch* batch); |
void AttachInitialAppRoot(const google_apis::FileResource& app_root_folder, |
leveldb::WriteBatch* batch); |
- void InsertFileTrackerToIndex(FileTracker* tracker); |
void ForceActivateTrackerByPath(int64 parent_tracker_id, |
const std::string& title, |
@@ -481,30 +431,7 @@ class MetadataDatabase { |
scoped_ptr<ServiceMetadata> service_metadata_; |
int64 largest_known_change_id_; |
- MetadataByID metadata_by_id_; // Owned. |
- TrackerByID tracker_by_id_; // Owned. |
- |
- // Maps FileID to trackers. The active tracker must be unique per FileID. |
- // This must be updated when updating |active| field of a tracker. |
- TrackerIDsByFileID trackers_by_file_id_; // Not owned. |
- |
- // Maps AppID to the app-root tracker. |
- // This must be updated when a tracker is registered/unregistered as an |
- // app-root. |
- TrackerIDByAppID app_root_by_app_id_; // Not owned. |
- |
- // Maps |tracker_id| to its children grouped by their |title|. |
- // If the title is unknown for a tracker, treats its title as empty. Empty |
- // titled file must not be active. |
- // The active tracker must be unique per its parent_tracker and its title. |
- // This must be updated when updating |title|, |active| or |
- // |parent_tracker_id|. |
- TrackerIDsByParentAndTitle trackers_by_parent_and_title_; |
- |
- // Holds all trackers which marked as dirty. |
- // This must be updated when updating |dirty| field of a tracker. |
- DirtyTrackers dirty_trackers_; // Not owned. |
- DirtyTrackers low_priority_dirty_trackers_; // Not owned. |
+ scoped_ptr<MetadataDatabaseIndex> index_; |
base::WeakPtrFactory<MetadataDatabase> weak_ptr_factory_; |