| Index: chrome/browser/sync_file_system/drive_backend/metadata_database_index.h
|
| diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database_index.h b/chrome/browser/sync_file_system/drive_backend/metadata_database_index.h
|
| index c14cc3cab945e6e8ded8dce1c1ad86a937bc99d1..429661601bf6d3eb30c56c469701abb549e0ce38 100644
|
| --- a/chrome/browser/sync_file_system/drive_backend/metadata_database_index.h
|
| +++ b/chrome/browser/sync_file_system/drive_backend/metadata_database_index.h
|
| @@ -12,21 +12,15 @@
|
|
|
| #include "base/containers/hash_tables.h"
|
| #include "base/containers/scoped_ptr_hash_map.h"
|
| -#include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
|
| +#include "chrome/browser/sync_file_system/drive_backend/metadata_database_index_interface.h"
|
| +#include "chrome/browser/sync_file_system/drive_backend/tracker_id_set.h"
|
|
|
| namespace sync_file_system {
|
| namespace drive_backend {
|
|
|
| -struct ParentIDAndTitle {
|
| - int64 parent_id;
|
| - std::string title;
|
| -
|
| - ParentIDAndTitle();
|
| - ParentIDAndTitle(int64 parent_id, const std::string& title);
|
| -};
|
| -
|
| -bool operator==(const ParentIDAndTitle& left, const ParentIDAndTitle& right);
|
| -bool operator<(const ParentIDAndTitle& left, const ParentIDAndTitle& right);
|
| +class FileMetadata;
|
| +class FileTracker;
|
| +struct DatabaseContents;
|
|
|
| } // namespace drive_backend
|
| } // namespace sync_file_system
|
| @@ -52,78 +46,40 @@ inline size_t hash_value(
|
| namespace sync_file_system {
|
| namespace drive_backend {
|
|
|
| -class FileMetadata;
|
| -class FileTracker;
|
| -struct DatabaseContents;
|
| -
|
| -// Maintains indexes of MetadataDatabase. This class doesn't modify database
|
| -// entries on memory nor on disk.
|
| -class MetadataDatabaseIndex {
|
| +// Maintains indexes of MetadataDatabase on memory.
|
| +class MetadataDatabaseIndex : public MetadataDatabaseIndexInterface {
|
| public:
|
| explicit MetadataDatabaseIndex(DatabaseContents* content);
|
| - ~MetadataDatabaseIndex();
|
| -
|
| - // Returns FileMetadata identified by |file_id| if exists, otherwise returns
|
| - // NULL.
|
| - const FileMetadata* GetFileMetadata(const std::string& file_id) const;
|
| -
|
| - // Returns FileTracker identified by |tracker_id| if exists, otherwise returns
|
| - // NULL.
|
| - const FileTracker* GetFileTracker(int64 tracker_id) const;
|
| -
|
| - // Stores |metadata| and updates indexes.
|
| - // This overwrites existing FileMetadata for the same |file_id|.
|
| - void StoreFileMetadata(scoped_ptr<FileMetadata> metadata);
|
| -
|
| - // Stores |tracker| and updates indexes.
|
| - // This overwrites existing FileTracker for the same |tracker_id|.
|
| - void StoreFileTracker(scoped_ptr<FileTracker> tracker);
|
| -
|
| - // Removes FileMetadata identified by |file_id| from indexes.
|
| - void RemoveFileMetadata(const std::string& file_id);
|
| -
|
| - // Removes FileTracker identified by |tracker_id| from indexes.
|
| - void RemoveFileTracker(int64 tracker_id);
|
| -
|
| - // Returns a set of FileTracker that have |file_id| as its own.
|
| - TrackerIDSet GetFileTrackerIDsByFileID(const std::string& file_id) const;
|
| -
|
| - // Returns an app-root tracker identified by |app_id|. Returns 0 if not
|
| - // found.
|
| - int64 GetAppRootTracker(const std::string& app_id) const;
|
| -
|
| - // Returns a set of FileTracker that have |parent_tracker_id| and |title|.
|
| - TrackerIDSet GetFileTrackerIDsByParentAndTitle(
|
| + virtual ~MetadataDatabaseIndex();
|
| +
|
| + // MetadataDatabaseIndexInterface overrides.
|
| + virtual const FileMetadata* GetFileMetadata(
|
| + const std::string& file_id) const OVERRIDE;
|
| + virtual const FileTracker* GetFileTracker(int64 tracker_id) const OVERRIDE;
|
| + virtual void StoreFileMetadata(scoped_ptr<FileMetadata> metadata) OVERRIDE;
|
| + virtual void StoreFileTracker(scoped_ptr<FileTracker> tracker) OVERRIDE;
|
| + virtual void RemoveFileMetadata(const std::string& file_id) OVERRIDE;
|
| + virtual void RemoveFileTracker(int64 tracker_id) OVERRIDE;
|
| + virtual TrackerIDSet GetFileTrackerIDsByFileID(
|
| + const std::string& file_id) const OVERRIDE;
|
| + virtual int64 GetAppRootTracker(const std::string& app_id) const OVERRIDE;
|
| + virtual TrackerIDSet GetFileTrackerIDsByParentAndTitle(
|
| int64 parent_tracker_id,
|
| - const std::string& title) const;
|
| -
|
| - std::vector<int64> GetFileTrackerIDsByParent(int64 parent_tracker_id) const;
|
| -
|
| - // Returns the |file_id| of a file that has multiple trackers.
|
| - std::string PickMultiTrackerFileID() const;
|
| -
|
| - // Returns a pair of |parent_tracker_id| and |title| that has multiple file
|
| - // at the path.
|
| - ParentIDAndTitle PickMultiBackingFilePath() const;
|
| -
|
| - // Returns a FileTracker whose |dirty| is set and which isn't demoted.
|
| - // Returns 0 if not found.
|
| - int64 PickDirtyTracker() const;
|
| -
|
| - // Demotes a dirty tracker.
|
| - void DemoteDirtyTracker(int64 tracker_id);
|
| -
|
| - bool HasDemotedDirtyTracker() const;
|
| -
|
| - // Promotes all demoted dirty trackers to normal dirty trackers.
|
| - void PromoteDemotedDirtyTrackers();
|
| -
|
| - size_t CountDirtyTracker() const;
|
| - size_t CountFileMetadata() const;
|
| - size_t CountFileTracker() const;
|
| - std::vector<std::string> GetRegisteredAppIDs() const;
|
| - std::vector<int64> GetAllTrackerIDs() const;
|
| - std::vector<std::string> GetAllMetadataIDs() const;
|
| + const std::string& title) const OVERRIDE;
|
| + virtual std::vector<int64> GetFileTrackerIDsByParent(
|
| + int64 parent_tracker_id) const OVERRIDE;
|
| + virtual std::string PickMultiTrackerFileID() const OVERRIDE;
|
| + virtual ParentIDAndTitle PickMultiBackingFilePath() const OVERRIDE;
|
| + virtual int64 PickDirtyTracker() const OVERRIDE;
|
| + virtual void DemoteDirtyTracker(int64 tracker_id) OVERRIDE;
|
| + virtual bool HasDemotedDirtyTracker() const OVERRIDE;
|
| + virtual void PromoteDemotedDirtyTrackers() OVERRIDE;
|
| + virtual size_t CountDirtyTracker() const OVERRIDE;
|
| + virtual size_t CountFileMetadata() const OVERRIDE;
|
| + virtual size_t CountFileTracker() const OVERRIDE;
|
| + virtual std::vector<std::string> GetRegisteredAppIDs() const OVERRIDE;
|
| + virtual std::vector<int64> GetAllTrackerIDs() const OVERRIDE;
|
| + virtual std::vector<std::string> GetAllMetadataIDs() const OVERRIDE;
|
|
|
| private:
|
| typedef base::ScopedPtrHashMap<std::string, FileMetadata> MetadataByID;
|
|
|