Chromium Code Reviews| Index: chrome/browser/media_gallery/mac/mtp_device_delegate_impl_mac.h |
| diff --git a/chrome/browser/media_gallery/mac/mtp_device_delegate_impl_mac.h b/chrome/browser/media_gallery/mac/mtp_device_delegate_impl_mac.h |
| index c782255f666668d8a0a795f1be807971fb5bafc6..60e22db64e915fa7e2e2e99d0f25b7025c451167 100644 |
| --- a/chrome/browser/media_gallery/mac/mtp_device_delegate_impl_mac.h |
| +++ b/chrome/browser/media_gallery/mac/mtp_device_delegate_impl_mac.h |
| @@ -15,7 +15,7 @@ |
| #include "base/synchronization/lock.h" |
|
kmadhusu
2013/02/26 17:59:15
Remove this include statement.
Greg Billock
2013/02/26 22:02:09
Done.
|
| #include "base/synchronization/waitable_event.h" |
|
kmadhusu
2013/02/26 17:59:15
Remove this include statement.
Greg Billock
2013/02/26 22:02:09
Done.
|
| #include "webkit/fileapi/file_system_file_util.h" |
|
kmadhusu
2013/02/26 17:59:15
Can you include this header file in .cc file?
Greg Billock
2013/02/26 22:02:09
Dropped.
|
| -#include "webkit/fileapi/media/mtp_device_delegate.h" |
| +#include "webkit/fileapi/media/mtp_device_async_delegate.h" |
| namespace base { |
| class SequencedTaskRunner; |
|
kmadhusu
2013/02/26 17:59:15
No longer used.
Greg Billock
2013/02/26 22:02:09
Done.
|
| @@ -28,22 +28,25 @@ namespace chrome { |
| // and names of all files notified through the ItemAdded call will be |
| // all appear as children of that directory. (ItemAdded calls with directories |
| // will be ignored.) |
| -class MTPDeviceDelegateImplMac : public fileapi::MTPDeviceDelegate { |
| +class MTPDeviceDelegateImplMac : public fileapi::MTPDeviceAsyncDelegate { |
| public: |
| MTPDeviceDelegateImplMac(const std::string& device_id, |
|
kmadhusu
2013/02/26 17:59:15
This can be in private section.
Greg Billock
2013/02/26 22:02:09
Create method needs to call it. It'd require more
|
| - const base::FilePath::StringType& synthetic_path, |
| - base::SequencedTaskRunner* media_task_runner); |
| + const base::FilePath::StringType& synthetic_path); |
| - // MTPDeviceDelegate: |
| - virtual base::PlatformFileError GetFileInfo( |
| + // MTPDeviceAsyncDelegate: |
|
kmadhusu
2013/02/26 17:59:15
You can declare these virtual functions in the pri
Greg Billock
2013/02/26 22:02:09
Technically, yes, but since the interface makes th
|
| + virtual void GetFileInfo( |
| const base::FilePath& file_path, |
| - base::PlatformFileInfo* file_info) OVERRIDE; |
| - virtual scoped_ptr<fileapi::FileSystemFileUtil::AbstractFileEnumerator> |
| - CreateFileEnumerator(const base::FilePath& root, bool recursive) OVERRIDE; |
| - virtual base::PlatformFileError CreateSnapshotFile( |
| + const GetFileInfoSuccessCallback& success_callback, |
| + const ErrorCallback& error_callback) OVERRIDE; |
| + virtual void ReadDirectory( |
| + const base::FilePath& root, |
| + const ReadDirectorySuccessCallback& success_callback, |
| + const ErrorCallback& error_callback) OVERRIDE; |
| + virtual void CreateSnapshotFile( |
| const base::FilePath& device_file_path, |
| const base::FilePath& local_path, |
| - base::PlatformFileInfo* file_info) OVERRIDE; |
| + const CreateSnapshotFileSuccessCallback& success_callback, |
| + const ErrorCallback& error_callback) OVERRIDE; |
| virtual void CancelPendingTasksAndDeleteDelegate() OVERRIDE; |
| // Forward delegates for ImageCaptureDeviceListener |
| @@ -53,33 +56,9 @@ class MTPDeviceDelegateImplMac : public fileapi::MTPDeviceDelegate { |
| virtual void DownloadedFile(const std::string& name, |
| base::PlatformFileError error); |
| - // Implementation returned by |CreateFileEnumerator()|. Must be deleted |
| - // before CancelPendingTasksAndDeleteDelegate is called. |
| - class Enumerator : |
| - public fileapi::FileSystemFileUtil::AbstractFileEnumerator { |
| - public: |
| - explicit Enumerator(MTPDeviceDelegateImplMac* delegate); |
| - virtual ~Enumerator(); |
| - |
| - virtual base::FilePath Next() OVERRIDE; |
| - virtual int64 Size() OVERRIDE; |
| - virtual base::Time LastModifiedTime() OVERRIDE; |
| - virtual bool IsDirectory() OVERRIDE; |
| - |
| - // Called by the delegate to signal any waiters that the received items |
| - // list has changed state. |
| - void ItemsChanged(); |
| - |
| - private: |
| - MTPDeviceDelegateImplMac* delegate_; |
| - size_t position_; |
| - base::WaitableEvent wait_for_items_; |
| - }; |
| - |
| - // GetFile and HasAllFiles called by enumerators. |
| - base::FilePath GetFile(size_t index); |
| - bool ReceivedAllFiles(); |
| - void RemoveEnumerator(Enumerator* enumerator); |
| + // Public for closures; should not be called except by |
| + // CancelTasksAndDeleteDelegate. |
| + void CancelAndDelete(); |
| private: |
| friend class base::DeleteHelper<MTPDeviceDelegateImplMac>; |
|
kmadhusu
2013/02/26 17:59:15
This is no longer required.
Greg Billock
2013/02/26 22:02:09
Done.
|
| @@ -88,41 +67,46 @@ class MTPDeviceDelegateImplMac : public fileapi::MTPDeviceDelegate { |
| virtual ~MTPDeviceDelegateImplMac(); |
| + void GetFileInfoImpl(const base::FilePath& file_path, |
| + base::PlatformFileInfo* file_info, |
| + base::PlatformFileError* error); |
| + |
| + void ReadDirectoryImpl( |
| + const base::FilePath& root, |
| + const ReadDirectorySuccessCallback& success_callback, |
| + const ErrorCallback& error_callback); |
| + |
| + void DownloadFile( |
|
kmadhusu
2013/02/26 17:59:15
Please document the new member functions.
Greg Billock
2013/02/26 22:02:09
Done.
|
| + const base::FilePath& device_file_path, |
| + const base::FilePath& local_path, |
| + const CreateSnapshotFileSuccessCallback& success_callback, |
| + const ErrorCallback& error_callback); |
| + |
| + void CancelDownloads(); |
| + |
| + void NotifyReadDir(); |
| + |
| std::string device_id_; |
| base::FilePath root_path_; |
| - // Stores a reference to worker pool thread. All requests and response of file |
| - // operations are posted on |media_task_runner_|. All callbacks from the |
| - // camera will come through this task runner as well. |
| - scoped_refptr<base::SequencedTaskRunner> media_task_runner_; |
| - |
| // Interface object for the camera underlying this MTP session. |
| scoped_ptr<DeviceListener> camera_interface_; |
| - // This lock protects all subsequent state. While calling into the delegate |
| - // from the FileSystem API happens in sequence, these calls may be |
| - // interleaved with calls on other threads in the sequenced task runner |
| - // forwarded from the device. |
| - base::Lock mutex_; |
| - |
| - // Weak pointer to the enumerator which may be listening for files to come in. |
| - Enumerator* enumerator_; |
| - |
| // Stores a map from filename to file metadata received from the camera. |
| base::hash_map<base::FilePath::StringType, base::PlatformFileInfo> file_info_; |
| - // Notification for pending download. |
| - base::WaitableEvent* file_download_event_; |
| - |
| - // Resulting error code for pending download. |
| - base::PlatformFileError file_download_error_; |
| - |
| // List of files received from the camera. |
| std::vector<base::FilePath> file_paths_; |
| // Set to true when all file metadata has been received from the camera. |
| bool received_all_files_; |
| + ReadDirectorySuccessCallback read_directory_success_callback_; |
| + ErrorCallback read_directory_error_callback_; |
| + |
| + CreateSnapshotFileSuccessCallback read_file_success_callback_; |
| + ErrorCallback read_file_error_callback_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(MTPDeviceDelegateImplMac); |
| }; |