summaryrefslogtreecommitdiffstats
path: root/chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.cc')
-rw-r--r--chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.cc32
1 files changed, 25 insertions, 7 deletions
diff --git a/chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.cc b/chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.cc
index ce923aa..dfa85e3 100644
--- a/chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.cc
+++ b/chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.cc
@@ -22,19 +22,25 @@ MTPDeviceTaskHelperMapService* MTPDeviceTaskHelperMapService::GetInstance() {
}
MTPDeviceTaskHelper* MTPDeviceTaskHelperMapService::CreateDeviceTaskHelper(
- const std::string& storage_name) {
+ const std::string& storage_name,
+ const bool read_only) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(!storage_name.empty());
- DCHECK(!ContainsKey(task_helper_map_, storage_name));
+ const MTPDeviceTaskHelperKey key =
+ GetMTPDeviceTaskHelperKey(storage_name, read_only);
+ DCHECK(!ContainsKey(task_helper_map_, key));
MTPDeviceTaskHelper* task_helper = new MTPDeviceTaskHelper();
- task_helper_map_[storage_name] = task_helper;
+ task_helper_map_[key] = task_helper;
return task_helper;
}
void MTPDeviceTaskHelperMapService::DestroyDeviceTaskHelper(
- const std::string& storage_name) {
+ const std::string& storage_name,
+ const bool read_only) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- TaskHelperMap::iterator it = task_helper_map_.find(storage_name);
+ const MTPDeviceTaskHelperKey key =
+ GetMTPDeviceTaskHelperKey(storage_name, read_only);
+ TaskHelperMap::iterator it = task_helper_map_.find(key);
if (it == task_helper_map_.end())
return;
delete it->second;
@@ -42,13 +48,25 @@ void MTPDeviceTaskHelperMapService::DestroyDeviceTaskHelper(
}
MTPDeviceTaskHelper* MTPDeviceTaskHelperMapService::GetDeviceTaskHelper(
- const std::string& storage_name) {
+ const std::string& storage_name,
+ const bool read_only) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(!storage_name.empty());
- TaskHelperMap::const_iterator it = task_helper_map_.find(storage_name);
+ const MTPDeviceTaskHelperKey key =
+ GetMTPDeviceTaskHelperKey(storage_name, read_only);
+ TaskHelperMap::const_iterator it = task_helper_map_.find(key);
return (it != task_helper_map_.end()) ? it->second : NULL;
}
+// static
+MTPDeviceTaskHelperMapService::MTPDeviceTaskHelperKey
+MTPDeviceTaskHelperMapService::GetMTPDeviceTaskHelperKey(
+ const std::string& storage_name,
+ const bool read_only) {
+ return (read_only ? "ReadOnly" : "ReadWrite") + std::string("|") +
+ storage_name;
+}
+
MTPDeviceTaskHelperMapService::MTPDeviceTaskHelperMapService() {
}