OLD | NEW |
(Empty) | |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_INDEX_IN
TERFACE_H_ |
| 6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_INDEX_IN
TERFACE_H_ |
| 7 |
| 8 #include <string> |
| 9 #include <vector> |
| 10 |
| 11 #include "base/memory/scoped_ptr.h" |
| 12 |
| 13 namespace sync_file_system { |
| 14 namespace drive_backend { |
| 15 |
| 16 class FileMetadata; |
| 17 class FileTracker; |
| 18 class TrackerIDSet; |
| 19 |
| 20 struct ParentIDAndTitle { |
| 21 int64 parent_id; |
| 22 std::string title; |
| 23 |
| 24 ParentIDAndTitle(); |
| 25 ParentIDAndTitle(int64 parent_id, const std::string& title); |
| 26 }; |
| 27 |
| 28 bool operator==(const ParentIDAndTitle& left, const ParentIDAndTitle& right); |
| 29 bool operator<(const ParentIDAndTitle& left, const ParentIDAndTitle& right); |
| 30 |
| 31 // Interface class to maintain indexes of MetadataDatabase. |
| 32 class MetadataDatabaseIndexInterface { |
| 33 public: |
| 34 MetadataDatabaseIndexInterface() {} |
| 35 virtual ~MetadataDatabaseIndexInterface() {} |
| 36 |
| 37 // Returns FileMetadata identified by |file_id| if exists, otherwise returns |
| 38 // NULL. |
| 39 virtual const FileMetadata* GetFileMetadata( |
| 40 const std::string& file_id) const = 0; |
| 41 |
| 42 // Returns FileTracker identified by |tracker_id| if exists, otherwise returns |
| 43 // NULL. |
| 44 virtual const FileTracker* GetFileTracker(int64 tracker_id) const = 0; |
| 45 |
| 46 // Stores |metadata| and updates indexes. |
| 47 // This overwrites existing FileMetadata for the same |file_id|. |
| 48 virtual void StoreFileMetadata(scoped_ptr<FileMetadata> metadata) = 0; |
| 49 |
| 50 // Stores |tracker| and updates indexes. |
| 51 // This overwrites existing FileTracker for the same |tracker_id|. |
| 52 virtual void StoreFileTracker(scoped_ptr<FileTracker> tracker) = 0; |
| 53 |
| 54 // Removes FileMetadata identified by |file_id| from indexes. |
| 55 virtual void RemoveFileMetadata(const std::string& file_id) = 0; |
| 56 |
| 57 // Removes FileTracker identified by |tracker_id| from indexes. |
| 58 virtual void RemoveFileTracker(int64 tracker_id) = 0; |
| 59 |
| 60 // Returns a set of FileTracker that have |file_id| as its own. |
| 61 virtual TrackerIDSet GetFileTrackerIDsByFileID( |
| 62 const std::string& file_id) const = 0; |
| 63 |
| 64 // Returns an app-root tracker identified by |app_id|. Returns 0 if not |
| 65 // found. |
| 66 virtual int64 GetAppRootTracker(const std::string& app_id) const = 0; |
| 67 |
| 68 // Returns a set of FileTracker that have |parent_tracker_id| and |title|. |
| 69 virtual TrackerIDSet GetFileTrackerIDsByParentAndTitle( |
| 70 int64 parent_tracker_id, |
| 71 const std::string& title) const = 0; |
| 72 |
| 73 virtual std::vector<int64> GetFileTrackerIDsByParent( |
| 74 int64 parent_tracker_id) const = 0; |
| 75 |
| 76 // Returns the |file_id| of a file that has multiple trackers. |
| 77 virtual std::string PickMultiTrackerFileID() const = 0; |
| 78 |
| 79 // Returns a pair of |parent_tracker_id| and |title| that has multiple file |
| 80 // at the path. |
| 81 virtual ParentIDAndTitle PickMultiBackingFilePath() const = 0; |
| 82 |
| 83 // Returns a FileTracker whose |dirty| is set and which isn't demoted. |
| 84 // Returns 0 if not found. |
| 85 virtual int64 PickDirtyTracker() const = 0; |
| 86 |
| 87 // Demotes a dirty tracker. |
| 88 virtual void DemoteDirtyTracker(int64 tracker_id) = 0; |
| 89 |
| 90 virtual bool HasDemotedDirtyTracker() const = 0; |
| 91 |
| 92 // Promotes all demoted dirty trackers to normal dirty trackers. |
| 93 virtual void PromoteDemotedDirtyTrackers() = 0; |
| 94 |
| 95 virtual size_t CountDirtyTracker() const = 0; |
| 96 virtual size_t CountFileMetadata() const = 0; |
| 97 virtual size_t CountFileTracker() const = 0; |
| 98 |
| 99 virtual std::vector<std::string> GetRegisteredAppIDs() const = 0; |
| 100 virtual std::vector<int64> GetAllTrackerIDs() const = 0; |
| 101 virtual std::vector<std::string> GetAllMetadataIDs() const = 0; |
| 102 |
| 103 private: |
| 104 DISALLOW_COPY_AND_ASSIGN(MetadataDatabaseIndexInterface); |
| 105 }; |
| 106 |
| 107 } // namespace drive_backend |
| 108 } // namespace sync_file_system |
| 109 |
| 110 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_INDEX
_INTERFACE_H_ |
OLD | NEW |