Home | History | Annotate | Download | only in linux
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.h"
      6 
      7 #include "base/logging.h"
      8 #include "base/stl_util.h"
      9 #include "chrome/browser/media_galleries/linux/mtp_device_task_helper.h"
     10 #include "content/public/browser/browser_thread.h"
     11 
     12 namespace {
     13 
     14 base::LazyInstance<MTPDeviceTaskHelperMapService>
     15     g_mtp_device_task_helper_map_service = LAZY_INSTANCE_INITIALIZER;
     16 
     17 }  // namespace
     18 
     19 // static
     20 MTPDeviceTaskHelperMapService* MTPDeviceTaskHelperMapService::GetInstance() {
     21   return g_mtp_device_task_helper_map_service.Pointer();
     22 }
     23 
     24 MTPDeviceTaskHelper* MTPDeviceTaskHelperMapService::CreateDeviceTaskHelper(
     25     const std::string& storage_name) {
     26   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
     27   DCHECK(!storage_name.empty());
     28   DCHECK(!ContainsKey(task_helper_map_, storage_name));
     29   MTPDeviceTaskHelper* task_helper = new MTPDeviceTaskHelper();
     30   task_helper_map_[storage_name] = task_helper;
     31   return task_helper;
     32 }
     33 
     34 void MTPDeviceTaskHelperMapService::DestroyDeviceTaskHelper(
     35     const std::string& storage_name) {
     36   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
     37   TaskHelperMap::iterator it = task_helper_map_.find(storage_name);
     38   if (it == task_helper_map_.end())
     39     return;
     40   delete it->second;
     41   task_helper_map_.erase(it);
     42 }
     43 
     44 MTPDeviceTaskHelper* MTPDeviceTaskHelperMapService::GetDeviceTaskHelper(
     45     const std::string& storage_name) {
     46   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
     47   DCHECK(!storage_name.empty());
     48   TaskHelperMap::const_iterator it = task_helper_map_.find(storage_name);
     49   return (it != task_helper_map_.end()) ? it->second : NULL;
     50 }
     51 
     52 MTPDeviceTaskHelperMapService::MTPDeviceTaskHelperMapService() {
     53 }
     54 
     55 MTPDeviceTaskHelperMapService::~MTPDeviceTaskHelperMapService() {
     56 }
     57