| Index: components/arc/arc_service_manager.cc
|
| diff --git a/components/arc/arc_service_manager.cc b/components/arc/arc_service_manager.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..57c8da2f29e49b12a82e097856ce7e6120384cf7
|
| --- /dev/null
|
| +++ b/components/arc/arc_service_manager.cc
|
| @@ -0,0 +1,49 @@
|
| +// Copyright 2015 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/arc/arc_service_manager.h"
|
| +
|
| +#include "base/sequenced_task_runner.h"
|
| +#include "base/thread_task_runner_handle.h"
|
| +#include "components/arc/arc_bridge_service_impl.h"
|
| +
|
| +namespace arc {
|
| +
|
| +namespace {
|
| +
|
| +// Weak pointer. This class is owned by ChromeBrowserMainPartsChromeos.
|
| +ArcServiceManager* g_arc_service_manager = nullptr;
|
| +
|
| +} // namespace
|
| +
|
| +ArcServiceManager::ArcServiceManager(
|
| + const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
|
| + const scoped_refptr<base::SequencedTaskRunner>& file_task_runner)
|
| + : origin_task_runner_(base::ThreadTaskRunnerHandle::Get()),
|
| + arc_bridge_service_(
|
| + new ArcBridgeServiceImpl(io_task_runner, file_task_runner)) {
|
| + DCHECK(!g_arc_service_manager);
|
| + g_arc_service_manager = this;
|
| +}
|
| +
|
| +ArcServiceManager::~ArcServiceManager() {
|
| + DCHECK(origin_task_runner_->RunsTasksOnCurrentThread());
|
| + DCHECK(g_arc_service_manager == this);
|
| + g_arc_service_manager = nullptr;
|
| +}
|
| +
|
| +// static
|
| +ArcServiceManager* ArcServiceManager::Get() {
|
| + DCHECK(
|
| + g_arc_service_manager->origin_task_runner_->RunsTasksOnCurrentThread());
|
| + DCHECK(g_arc_service_manager);
|
| + return g_arc_service_manager;
|
| +}
|
| +
|
| +ArcBridgeService* ArcServiceManager::arc_bridge_service() {
|
| + DCHECK(origin_task_runner_->RunsTasksOnCurrentThread());
|
| + return arc_bridge_service_.get();
|
| +}
|
| +
|
| +} // namespace arc
|
|
|