| Index: chrome/browser/sync_file_system/drive_backend/metadata_database_index_interface.h
|
| diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database_index_interface.h b/chrome/browser/sync_file_system/drive_backend/metadata_database_index_interface.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2d49c33fc852e37b3d2d5ac311cff75b966b55ea
|
| --- /dev/null
|
| +++ b/chrome/browser/sync_file_system/drive_backend/metadata_database_index_interface.h
|
| @@ -0,0 +1,110 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_INDEX_INTERFACE_H_
|
| +#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_INDEX_INTERFACE_H_
|
| +
|
| +#include <string>
|
| +#include <vector>
|
| +
|
| +#include "base/memory/scoped_ptr.h"
|
| +
|
| +namespace sync_file_system {
|
| +namespace drive_backend {
|
| +
|
| +class FileMetadata;
|
| +class FileTracker;
|
| +class TrackerIDSet;
|
| +
|
| +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);
|
| +
|
| +// Interface class to maintain indexes of MetadataDatabase.
|
| +class MetadataDatabaseIndexInterface {
|
| + public:
|
| + MetadataDatabaseIndexInterface() {}
|
| + virtual ~MetadataDatabaseIndexInterface() {}
|
| +
|
| + // Returns FileMetadata identified by |file_id| if exists, otherwise returns
|
| + // NULL.
|
| + virtual const FileMetadata* GetFileMetadata(
|
| + const std::string& file_id) const = 0;
|
| +
|
| + // Returns FileTracker identified by |tracker_id| if exists, otherwise returns
|
| + // NULL.
|
| + virtual const FileTracker* GetFileTracker(int64 tracker_id) const = 0;
|
| +
|
| + // Stores |metadata| and updates indexes.
|
| + // This overwrites existing FileMetadata for the same |file_id|.
|
| + virtual void StoreFileMetadata(scoped_ptr<FileMetadata> metadata) = 0;
|
| +
|
| + // Stores |tracker| and updates indexes.
|
| + // This overwrites existing FileTracker for the same |tracker_id|.
|
| + virtual void StoreFileTracker(scoped_ptr<FileTracker> tracker) = 0;
|
| +
|
| + // Removes FileMetadata identified by |file_id| from indexes.
|
| + virtual void RemoveFileMetadata(const std::string& file_id) = 0;
|
| +
|
| + // Removes FileTracker identified by |tracker_id| from indexes.
|
| + virtual void RemoveFileTracker(int64 tracker_id) = 0;
|
| +
|
| + // Returns a set of FileTracker that have |file_id| as its own.
|
| + virtual TrackerIDSet GetFileTrackerIDsByFileID(
|
| + const std::string& file_id) const = 0;
|
| +
|
| + // Returns an app-root tracker identified by |app_id|. Returns 0 if not
|
| + // found.
|
| + virtual int64 GetAppRootTracker(const std::string& app_id) const = 0;
|
| +
|
| + // Returns a set of FileTracker that have |parent_tracker_id| and |title|.
|
| + virtual TrackerIDSet GetFileTrackerIDsByParentAndTitle(
|
| + int64 parent_tracker_id,
|
| + const std::string& title) const = 0;
|
| +
|
| + virtual std::vector<int64> GetFileTrackerIDsByParent(
|
| + int64 parent_tracker_id) const = 0;
|
| +
|
| + // Returns the |file_id| of a file that has multiple trackers.
|
| + virtual std::string PickMultiTrackerFileID() const = 0;
|
| +
|
| + // Returns a pair of |parent_tracker_id| and |title| that has multiple file
|
| + // at the path.
|
| + virtual ParentIDAndTitle PickMultiBackingFilePath() const = 0;
|
| +
|
| + // Returns a FileTracker whose |dirty| is set and which isn't demoted.
|
| + // Returns 0 if not found.
|
| + virtual int64 PickDirtyTracker() const = 0;
|
| +
|
| + // Demotes a dirty tracker.
|
| + virtual void DemoteDirtyTracker(int64 tracker_id) = 0;
|
| +
|
| + virtual bool HasDemotedDirtyTracker() const = 0;
|
| +
|
| + // Promotes all demoted dirty trackers to normal dirty trackers.
|
| + virtual void PromoteDemotedDirtyTrackers() = 0;
|
| +
|
| + virtual size_t CountDirtyTracker() const = 0;
|
| + virtual size_t CountFileMetadata() const = 0;
|
| + virtual size_t CountFileTracker() const = 0;
|
| +
|
| + virtual std::vector<std::string> GetRegisteredAppIDs() const = 0;
|
| + virtual std::vector<int64> GetAllTrackerIDs() const = 0;
|
| + virtual std::vector<std::string> GetAllMetadataIDs() const = 0;
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(MetadataDatabaseIndexInterface);
|
| +};
|
| +
|
| +} // namespace drive_backend
|
| +} // namespace sync_file_system
|
| +
|
| +#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_INDEX_INTERFACE_H_
|
|
|