Index: chrome/browser/chromeos/mtp/media_transfer_protocol_manager.h |
=================================================================== |
--- chrome/browser/chromeos/mtp/media_transfer_protocol_manager.h (revision 0) |
+++ chrome/browser/chromeos/mtp/media_transfer_protocol_manager.h (revision 0) |
@@ -0,0 +1,132 @@ |
+// Copyright (c) 2012 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_CHROMEOS_MTP_MEDIA_TRANSFER_PROTOCOL_MANAGER_H_ |
+#define CHROME_BROWSER_CHROMEOS_MTP_MEDIA_TRANSFER_PROTOCOL_MANAGER_H_ |
+ |
+#include <string> |
+#include <vector> |
+ |
+#include "chromeos/dbus/media_transfer_protocol_daemon_client.h" |
+ |
+namespace chromeos { |
+namespace mtp { |
+ |
+// This class handles the interaction with mtpd. |
+// Other classes can add themselves as observers. |
+class MediaTransferProtocolManager { |
+ public: |
+ // A callback to handle the result of OpenStorage. |
+ // The first argument is the returned handle. |
+ // The second argument is true if there was an error. |
+ typedef base::Callback<void(const std::string& handle, |
+ bool error)> OpenStorageCallback; |
+ |
+ // A callback to handle the result of CloseStorage. |
+ // The argument is true if there was an error. |
+ typedef base::Callback<void(bool error)> CloseStorageCallback; |
+ |
+ // A callback to handle the result of ReadDirectoryByPath/Id. |
+ // The first argument is a vector of file entries. |
+ // The second argument is true if there was an error. |
+ typedef base::Callback<void(const std::vector<FileEntry>& file_entries, |
+ bool error)> ReadDirectoryCallback; |
+ |
+ // A callback to handle the result of ReadFileByPath/Id. |
+ // The first argument is a string containing the file data. |
+ // The second argument is true if there was an error. |
+ // TODO(thestig) Consider using a file descriptor instead of the data. |
+ typedef base::Callback<void(const std::string& data, |
+ bool error)> ReadFileCallback; |
+ |
+ // A callback to handle the result of GetFileInfoByPath/Id. |
+ // The first argument is a file entry. |
+ // The second argument is true if there was an error. |
+ typedef base::Callback<void(const FileEntry& file_entry, |
+ bool error)> GetFileInfoCallback; |
+ |
+ // Implement this interface to be notified about MTP storage |
+ // attachment / detachment events. |
+ class Observer { |
+ public: |
+ virtual ~Observer() {} |
+ |
+ // A function called after a MTP storage has been attached / detached. |
+ virtual void StorageChanged(bool is_attached, |
+ const std::string& storage_name) = 0; |
+ }; |
+ |
+ virtual ~MediaTransferProtocolManager() {} |
+ |
+ // Adds an observer. |
+ virtual void AddObserver(Observer* observer) = 0; |
+ |
+ // Removes an observer. |
+ virtual void RemoveObserver(Observer* observer) = 0; |
+ |
+ // Returns a vector of available MTP storages. |
+ virtual const std::vector<std::string> GetStorages() const = 0; |
+ |
+ // On success, returns the the metadata for |storage_name|. |
+ // Otherwise returns NULL. |
+ virtual const StorageInfo* GetStorageInfo( |
+ const std::string& storage_name) const = 0; |
+ |
+ // Opens |storage_name| in |mode| and runs |callback|. |
+ virtual void OpenStorage(const std::string& storage_name, |
+ OpenStorageMode mode, |
+ const OpenStorageCallback& callback) = 0; |
+ |
+ // Close |storage_handle| and runs |callback|. |
+ virtual void CloseStorage(const std::string& storage_handle, |
+ const CloseStorageCallback& callback) = 0; |
+ |
+ // Reads directory entries from |path| on |storage_handle| and runs |
+ // |callback|. |
+ virtual void ReadDirectoryByPath(const std::string& storage_handle, |
+ const std::string& path, |
+ const ReadDirectoryCallback& callback) = 0; |
+ |
+ // Reads directory entries from |file_id| on |storage_handle| and runs |
+ // |callback|. |
+ virtual void ReadDirectoryById(const std::string& storage_handle, |
+ uint32 file_id, |
+ const ReadDirectoryCallback& callback) = 0; |
+ |
+ // Reads file data from |path| on |storage_handle| and runs |callback|. |
+ virtual void ReadFileByPath(const std::string& storage_handle, |
+ const std::string& path, |
+ const ReadFileCallback& callback) = 0; |
+ |
+ // Reads file data from |file_id| on |storage_handle| and runs |callback|. |
+ virtual void ReadFileById(const std::string& storage_handle, |
+ uint32 file_id, |
+ const ReadFileCallback& callback) = 0; |
+ |
+ // Gets the file metadata for |path| on |storage_handle| and runs |callback|. |
+ virtual void GetFileInfoByPath(const std::string& storage_handle, |
+ const std::string& path, |
+ const GetFileInfoCallback& callback) = 0; |
+ |
+ // Gets the file metadata for |file_id| on |storage_handle| and runs |
+ // |callback|. |
+ virtual void GetFileInfoById(const std::string& storage_handle, |
+ uint32 file_id, |
+ const GetFileInfoCallback& callback) = 0; |
+ |
+ // Creates the global MediaTransferProtocolManager instance. |
+ static void Initialize(); |
+ |
+ // Destroys the global MediaTransferProtocolManager instance if it exists. |
+ static void Shutdown(); |
+ |
+ // Returns a pointer to the global MediaTransferProtocolManager instance. |
+ // Initialize() should already have been called. |
+ static MediaTransferProtocolManager* GetInstance(); |
+}; |
+ |
+} // namespace mtp |
+} // namespace chromeos |
+ |
+#endif // CHROME_BROWSER_CHROMEOS_MTP_MEDIA_TRANSFER_PROTOCOL_MANAGER_H_ |
Property changes on: chrome/browser/chromeos/mtp/media_transfer_protocol_manager.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |