Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3205)

Unified Diff: device/media_transfer_protocol/media_transfer_protocol_manager.cc

Issue 1007173003: Implement MoveFileLocal (with rename operation). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « device/media_transfer_protocol/media_transfer_protocol_manager.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/media_transfer_protocol/media_transfer_protocol_manager.cc
diff --git a/device/media_transfer_protocol/media_transfer_protocol_manager.cc b/device/media_transfer_protocol/media_transfer_protocol_manager.cc
index 2a7f478c2f1bf5fac7af4cb8c41c87b2acf4f146..1c21be445852142b9de4e88f222853eaa14f38d7 100644
--- a/device/media_transfer_protocol/media_transfer_protocol_manager.cc
+++ b/device/media_transfer_protocol/media_transfer_protocol_manager.cc
@@ -223,6 +223,24 @@ class MediaTransferProtocolManagerImpl : public MediaTransferProtocolManager {
weak_ptr_factory_.GetWeakPtr()));
}
+ void RenameObject(const std::string& storage_handle,
+ const uint32 object_id,
+ const std::string& new_name,
+ const RenameObjectCallback& callback) override {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ if (!ContainsKey(handles_, storage_handle) || !mtp_client_) {
+ callback.Run(true /* error */);
+ return;
+ }
+ rename_object_callbacks_.push(callback);
+ mtp_client_->RenameObject(
+ storage_handle, object_id, new_name,
+ base::Bind(&MediaTransferProtocolManagerImpl::OnRenameObject,
+ weak_ptr_factory_.GetWeakPtr()),
+ base::Bind(&MediaTransferProtocolManagerImpl::OnRenameObjectError,
+ weak_ptr_factory_.GetWeakPtr()));
+ }
+
void CopyFileFromLocal(const std::string& storage_handle,
const int source_file_descriptor,
const uint32 parent_id,
@@ -271,6 +289,7 @@ class MediaTransferProtocolManagerImpl : public MediaTransferProtocolManager {
typedef std::queue<ReadDirectoryCallback> ReadDirectoryCallbackQueue;
typedef std::queue<ReadFileCallback> ReadFileCallbackQueue;
typedef std::queue<GetFileInfoCallback> GetFileInfoCallbackQueue;
+ typedef std::queue<RenameObjectCallback> RenameObjectCallbackQueue;
typedef std::queue<CopyFileFromLocalCallback> CopyFileFromLocalCallbackQueue;
typedef std::queue<DeleteObjectCallback> DeleteObjectCallbackQueue;
@@ -487,6 +506,18 @@ class MediaTransferProtocolManagerImpl : public MediaTransferProtocolManager {
get_file_info_callbacks_.pop();
}
+ void OnRenameObject() {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ rename_object_callbacks_.front().Run(false /* no error */);
+ rename_object_callbacks_.pop();
+ }
+
+ void OnRenameObjectError() {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ rename_object_callbacks_.front().Run(true /* error */);
+ rename_object_callbacks_.pop();
+ }
+
void OnCopyFileFromLocal() {
DCHECK(thread_checker_.CalledOnValidThread());
copy_file_from_local_callbacks_.front().Run(false /* no error */);
@@ -592,6 +623,7 @@ class MediaTransferProtocolManagerImpl : public MediaTransferProtocolManager {
ReadDirectoryCallbackQueue read_directory_callbacks_;
ReadFileCallbackQueue read_file_callbacks_;
GetFileInfoCallbackQueue get_file_info_callbacks_;
+ RenameObjectCallbackQueue rename_object_callbacks_;
CopyFileFromLocalCallbackQueue copy_file_from_local_callbacks_;
DeleteObjectCallbackQueue delete_object_callbacks_;
« no previous file with comments | « device/media_transfer_protocol/media_transfer_protocol_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698