blob: 42e291cd7e6420c275b060241d13d63c3f9b2d05 [file] [log] [blame]
// Copyright 2020 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 "components/background_task_scheduler/background_task_scheduler_factory.h"
#include <memory>
#include "base/memory/singleton.h"
#include "components/background_task_scheduler/internal/android/native_task_scheduler.h"
#include "components/keyed_service/core/simple_dependency_manager.h"
namespace background_task {
// static
BackgroundTaskSchedulerFactory* BackgroundTaskSchedulerFactory::GetInstance() {
return base::Singleton<BackgroundTaskSchedulerFactory>::get();
}
// static
BackgroundTaskScheduler* BackgroundTaskSchedulerFactory::GetForKey(
SimpleFactoryKey* key) {
return static_cast<BackgroundTaskScheduler*>(
GetInstance()->GetServiceForKey(key, true));
}
BackgroundTaskSchedulerFactory::BackgroundTaskSchedulerFactory()
: SimpleKeyedServiceFactory("BackgroundTaskScheduler",
SimpleDependencyManager::GetInstance()) {}
BackgroundTaskSchedulerFactory::~BackgroundTaskSchedulerFactory() = default;
std::unique_ptr<KeyedService>
BackgroundTaskSchedulerFactory::BuildServiceInstanceFor(
SimpleFactoryKey* key) const {
return std::make_unique<NativeTaskScheduler>();
}
SimpleFactoryKey* BackgroundTaskSchedulerFactory::GetKeyToUse(
SimpleFactoryKey* key) const {
return key;
}
} // namespace background_task