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

Unified Diff: chrome/browser/media_galleries/fileapi/mtp_device_map_service.h

Issue 947943002: Implement CopyFileFromLocal of MTPDeviceAsyncDelegate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 5 years, 10 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
Index: chrome/browser/media_galleries/fileapi/mtp_device_map_service.h
diff --git a/chrome/browser/media_galleries/fileapi/mtp_device_map_service.h b/chrome/browser/media_galleries/fileapi/mtp_device_map_service.h
index d64742ebd03690b735bcbd66843021b55d85011e..0f24b14ef56e731c20b048301bc755ed1e19bb8d 100644
--- a/chrome/browser/media_galleries/fileapi/mtp_device_map_service.h
+++ b/chrome/browser/media_galleries/fileapi/mtp_device_map_service.h
@@ -29,14 +29,14 @@ class MTPDeviceMapService {
const std::string& filesystem_id);
// Register that an MTP filesystem is in use for the given |device_location|.
- void RegisterMTPFileSystem(
- const base::FilePath::StringType& device_location,
- const std::string& fsid);
+ void RegisterMTPFileSystem(const base::FilePath::StringType& device_location,
+ const std::string& filesystem_id,
+ const bool read_only);
// Removes the MTP entry associated with the given
// |device_location|. Signals the MTPDeviceMapService to destroy the
// delegate if there are no more uses of it.
- void RevokeMTPFileSystem(const std::string& fsid);
+ void RevokeMTPFileSystem(const std::string& filesystem_id);
private:
friend struct base::DefaultLazyInstanceTraits<MTPDeviceMapService>;
@@ -45,27 +45,34 @@ class MTPDeviceMapService {
// specifies the mount location of the MTP device.
// Called on the IO thread.
void AddAsyncDelegate(const base::FilePath::StringType& device_location,
+ const bool read_only,
MTPDeviceAsyncDelegate* delegate);
// Removes the MTP device delegate from the map service. |device_location|
// specifies the mount location of the MTP device.
// Called on the IO thread.
- void RemoveAsyncDelegate(const base::FilePath::StringType& device_location);
+ void RemoveAsyncDelegate(const base::FilePath::StringType& device_location,
+ const bool read_only);
+
+ // A key to be used in AsyncDelegateMap and MTPDeviceUsageMap.
+ typedef base::FilePath::StringType AsyncDelegateKey;
+
+ // Gets a key from |device_location| and |read_only|.
+ static AsyncDelegateKey GetAsyncDelegateKey(
+ const base::FilePath::StringType& device_location,
+ const bool read_only);
// Mapping of device_location and MTPDeviceAsyncDelegate* object. It is safe
// to store and access the raw pointer. This class operates on the IO thread.
- typedef std::map<base::FilePath::StringType, MTPDeviceAsyncDelegate*>
- AsyncDelegateMap;
+ typedef std::map<AsyncDelegateKey, MTPDeviceAsyncDelegate*> AsyncDelegateMap;
// Map a filesystem id (fsid) to an MTP device location.
- typedef std::map<std::string, base::FilePath::StringType>
- MTPDeviceFileSystemMap;
+ typedef std::pair<base::FilePath::StringType, bool> MTPDeviceInfo;
+ typedef std::map<std::string, MTPDeviceInfo> MTPDeviceFileSystemMap;
// Map a MTP or PTP device location to a count of current uses of that
// location.
- typedef std::map<const base::FilePath::StringType, int>
- MTPDeviceUsageMap;
-
+ typedef std::map<AsyncDelegateKey, int> MTPDeviceUsageMap;
// Get access to this class using GetInstance() method.
MTPDeviceMapService();

Powered by Google App Engine
This is Rietveld 408576698