Index: chrome/browser/chromeos/drive/drive_resource_metadata.h |
=================================================================== |
--- chrome/browser/chromeos/drive/drive_resource_metadata.h (revision 168559) |
+++ chrome/browser/chromeos/drive/drive_resource_metadata.h (working copy) |
@@ -6,6 +6,7 @@ |
#define CHROME_BROWSER_CHROMEOS_DRIVE_DRIVE_RESOURCE_METADATA_H_ |
#include <map> |
+#include <set> |
#include <string> |
#include <vector> |
@@ -93,6 +94,10 @@ |
scoped_ptr<DriveEntryProto> entry_proto)> |
GetEntryInfoWithFilePathCallback; |
+// Used to get a set of changed directories for feed processing. |
+typedef base::Callback<void(const std::set<FilePath>&)> |
+ GetChildDirectoriesCallback; |
+ |
// This is a part of EntryInfoPairResult. |
struct EntryInfoResult { |
EntryInfoResult(); |
@@ -228,11 +233,16 @@ |
const FilePath& second_path, |
const GetEntryInfoPairCallback& callback); |
- // Replaces a file entry with the same resource id as |doc_entry| by deleting |
- // the existing entry, creating a new DriveFile from |doc_entry|, and adding |
- // it to the parent of the old entry. For directories, this just returns the |
- // existing directory proto. |callback| is run with the error, file path and |
- // proto of the entry. |callback| must not be null. |
+ // Refreshes a drive entry with the same resource id as |entry_proto|. |
+ // |callback| is run with the error, file path and proto of the entry. |
+ // |callback| must not be null. |
+ void RefreshEntryProto(const DriveEntryProto& entry_proto, |
+ const GetEntryInfoWithFilePathCallback& callback); |
+ |
+ // Refresh a drive entry with resource_id that matches that of |doc_entry|, |
+ // with |doc_entry|. |
+ // |callback| must not be null. |
+ // TODO(achuith): Deprecate this in favor of RefreshEntryProto above. |
void RefreshFile(scoped_ptr<google_apis::DocumentEntry> doc_entry, |
const GetEntryInfoWithFilePathCallback& callback); |
@@ -243,9 +253,20 @@ |
const DriveEntryProtoMap& entry_proto_map, |
const FileMoveCallback& callback); |
+ // Add |entry_proto| to the metadata tree. |
+ // |callback| must not be null. |
+ void AddEntryToParent(const DriveEntryProto& entry_proto, |
+ const FileMoveCallback& callback); |
+ |
+ // Recursively get child directories of entry pointed to by |resource_id|. |
+ void GetChildDirectories( |
+ const std::string& resource_id, |
+ const GetChildDirectoriesCallback& changed_dirs_callback); |
+ |
// Moves all child entries from the directory represented by |
// |source_resource_id| to the directory respresented by |
// |destination_resource_id|. |callback| must not be null. |
+ // TODO(achuith): Delete this. |
void TakeOverEntries(const std::string& source_resource_id, |
const std::string& destination_resource_id, |
const FileMoveCallback& callback); |
@@ -299,9 +320,20 @@ |
scoped_ptr<DriveEntryProto> entry_proto); |
// Searches for |file_path| synchronously. |
- // TODO(satorux): Replace this with an async version crbug.com/137160 |
DriveEntry* FindEntryByPathSync(const FilePath& file_path); |
+ // Helper function to add |entry_proto| as a child to |directory|. |
+ // |callback| must not be null. |
+ void AddEntryToDirectoryInternal(DriveDirectory* directory, |
+ const DriveEntryProto& entry_proto, |
+ const FileMoveCallback& callback); |
+ |
+ // Helper function to get a parent directory given |parent_resource_id|. |
+ // Returns root if |parent_resource_id| is empty. Returns NULL if |
+ // |parent_resource_id| is not empty and the corresponding entry is not a |
+ // directory. |
+ DriveDirectory* GetParent(const std::string& parent_resource_id); |
+ |
// Private data members. |
scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; |
scoped_ptr<ResourceMetadataDB> resource_metadata_db_; |