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 chrome {
     13 
     14 namespace {
     15 
     16 base::LazyInstance<MTPDeviceTaskHelperMapService>
     17     g_mtp_device_task_helper_map_service = LAZY_INSTANCE_INITIALIZER;
     18 
     19 }  // namespace
     20 
     21 // static
     22 MTPDeviceTaskHelperMapService* MTPDeviceTaskHelperMapService::GetInstance() {
     23   return g_mtp_device_task_helper_map_service.Pointer();
     24 }
     25 
     26 MTPDeviceTaskHelper* MTPDeviceTaskHelperMapService::CreateDeviceTaskHelper(
     27     const std::string& storage_name) {
     28   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
     29   DCHECK(!storage_name.empty());
     30   DCHECK(!ContainsKey(task_helper_map_, storage_name));
     31   MTPDeviceTaskHelper* task_helper = new MTPDeviceTaskHelper();
     32   task_helper_map_[storage_name] = task_helper;
     33   return task_helper;
     34 }
     35 
     36 void MTPDeviceTaskHelperMapService::DestroyDeviceTaskHelper(
     37     const std::string& storage_name) {
     38   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
     39   TaskHelperMap::iterator it = task_helper_map_.find(storage_name);
     40   if (it == task_helper_map_.end())
     41     return;
     42   delete it->second;
     43   task_helper_map_.erase(it);
     44 }
     45 
     46 MTPDeviceTaskHelper* MTPDeviceTaskHelperMapService::GetDeviceTaskHelper(
     47     const std::string& storage_name) {
     48   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
     49   DCHECK(!storage_name.empty());
     50   TaskHelperMap::const_iterator it = task_helper_map_.find(storage_name);
     51   return (it != task_helper_map_.end()) ? it->second : NULL;
     52 }
     53 
     54 MTPDeviceTaskHelperMapService::MTPDeviceTaskHelperMapService() {
     55 }
     56 
     57 MTPDeviceTaskHelperMapService::~MTPDeviceTaskHelperMapService() {
     58 }
     59 
     60 }  // namespace chrome
     61