blob: ce923aa3fe79fed81b9bef093d302d7948df41af [file] [log] [blame]
// Copyright 2013 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.
#include "chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.h"
#include "base/logging.h"
#include "base/stl_util.h"
#include "chrome/browser/media_galleries/linux/mtp_device_task_helper.h"
#include "content/public/browser/browser_thread.h"
namespace {
base::LazyInstance<MTPDeviceTaskHelperMapService>
g_mtp_device_task_helper_map_service = LAZY_INSTANCE_INITIALIZER;
} // namespace
// static
MTPDeviceTaskHelperMapService* MTPDeviceTaskHelperMapService::GetInstance() {
return g_mtp_device_task_helper_map_service.Pointer();
}
MTPDeviceTaskHelper* MTPDeviceTaskHelperMapService::CreateDeviceTaskHelper(
const std::string& storage_name) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(!storage_name.empty());
DCHECK(!ContainsKey(task_helper_map_, storage_name));
MTPDeviceTaskHelper* task_helper = new MTPDeviceTaskHelper();
task_helper_map_[storage_name] = task_helper;
return task_helper;
}
void MTPDeviceTaskHelperMapService::DestroyDeviceTaskHelper(
const std::string& storage_name) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
TaskHelperMap::iterator it = task_helper_map_.find(storage_name);
if (it == task_helper_map_.end())
return;
delete it->second;
task_helper_map_.erase(it);
}
MTPDeviceTaskHelper* MTPDeviceTaskHelperMapService::GetDeviceTaskHelper(
const std::string& storage_name) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(!storage_name.empty());
TaskHelperMap::const_iterator it = task_helper_map_.find(storage_name);
return (it != task_helper_map_.end()) ? it->second : NULL;
}
MTPDeviceTaskHelperMapService::MTPDeviceTaskHelperMapService() {
}
MTPDeviceTaskHelperMapService::~MTPDeviceTaskHelperMapService() {
}