Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(768)

Side by Side Diff: components/arc/arc_service_manager.cc

Issue 1596663002: arc-bridge: Introduce the ArcService class (Closed) Base URL: https://chromium.googlesource.com/a/chromium/src.git@master
Patch Set: Rebased + protected ArcService direct instantiation Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/arc/arc_service_manager.h ('k') | components/arc/auth/arc_auth_service.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/arc/arc_service_manager.h" 5 #include "components/arc/arc_service_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/sequenced_task_runner.h" 9 #include "base/sequenced_task_runner.h"
10 #include "base/thread_task_runner_handle.h" 10 #include "base/thread_task_runner_handle.h"
11 #include "components/arc/arc_bridge_bootstrap.h" 11 #include "components/arc/arc_bridge_bootstrap.h"
12 #include "components/arc/arc_bridge_service_impl.h" 12 #include "components/arc/arc_bridge_service_impl.h"
13 #include "components/arc/auth/arc_auth_service.h"
14 #include "components/arc/clipboard/arc_clipboard_bridge.h" 13 #include "components/arc/clipboard/arc_clipboard_bridge.h"
15 #include "components/arc/ime/arc_ime_bridge.h" 14 #include "components/arc/ime/arc_ime_bridge.h"
16 #include "components/arc/input/arc_input_bridge.h" 15 #include "components/arc/input/arc_input_bridge.h"
17 #include "components/arc/intent_helper/arc_intent_helper_bridge.h"
18 #include "components/arc/power/arc_power_bridge.h" 16 #include "components/arc/power/arc_power_bridge.h"
19 #include "components/arc/settings/arc_settings_bridge.h"
20 #include "components/arc/video/arc_video_bridge.h"
21 #include "ui/arc/notification/arc_notification_manager.h" 17 #include "ui/arc/notification/arc_notification_manager.h"
22 18
23 namespace arc { 19 namespace arc {
24 20
25 namespace { 21 namespace {
26 22
27 // Weak pointer. This class is owned by ChromeBrowserMainPartsChromeos. 23 // Weak pointer. This class is owned by ChromeBrowserMainPartsChromeos.
28 ArcServiceManager* g_arc_service_manager = nullptr; 24 ArcServiceManager* g_arc_service_manager = nullptr;
29 25
30 } // namespace 26 } // namespace
31 27
32 ArcServiceManager::ArcServiceManager( 28 ArcServiceManager::ArcServiceManager()
33 scoped_ptr<ArcAuthService> auth_service,
34 scoped_ptr<ArcIntentHelperBridge> intent_helper_bridge,
35 scoped_ptr<ArcSettingsBridge> settings_bridge,
36 scoped_ptr<ArcVideoBridge> video_bridge)
37 : arc_bridge_service_( 29 : arc_bridge_service_(
38 new ArcBridgeServiceImpl(ArcBridgeBootstrap::Create())), 30 new ArcBridgeServiceImpl(ArcBridgeBootstrap::Create())) {
39 arc_auth_service_(std::move(auth_service)),
40 arc_clipboard_bridge_(new ArcClipboardBridge(arc_bridge_service_.get())),
41 arc_ime_bridge_(new ArcImeBridge(arc_bridge_service_.get())),
42 arc_input_bridge_(ArcInputBridge::Create(arc_bridge_service_.get())),
43 arc_intent_helper_bridge_(std::move(intent_helper_bridge)),
44 arc_settings_bridge_(std::move(settings_bridge)),
45 arc_power_bridge_(new ArcPowerBridge(arc_bridge_service_.get())),
46 arc_video_bridge_(std::move(video_bridge)) {
47 DCHECK(!g_arc_service_manager); 31 DCHECK(!g_arc_service_manager);
48 g_arc_service_manager = this; 32 g_arc_service_manager = this;
49 33
50 arc_settings_bridge_->StartObservingBridgeServiceChanges(); 34 AddService(make_scoped_ptr(new ArcClipboardBridge(arc_bridge_service())));
51 arc_auth_service_->StartObservingBridgeServiceChanges(); 35 AddService(make_scoped_ptr(new ArcImeBridge(arc_bridge_service())));
52 arc_intent_helper_bridge_->StartObservingBridgeServiceChanges(); 36 AddService(make_scoped_ptr(new ArcInputBridge(arc_bridge_service())));
53 arc_video_bridge_->StartObservingBridgeServiceChanges(); 37 AddService(make_scoped_ptr(new ArcPowerBridge(arc_bridge_service())));
54 } 38 }
55 39
56 ArcServiceManager::~ArcServiceManager() { 40 ArcServiceManager::~ArcServiceManager() {
57 DCHECK(thread_checker_.CalledOnValidThread()); 41 DCHECK(thread_checker_.CalledOnValidThread());
58 DCHECK(g_arc_service_manager == this); 42 DCHECK(g_arc_service_manager == this);
59 g_arc_service_manager = nullptr; 43 g_arc_service_manager = nullptr;
60 } 44 }
61 45
62 // static 46 // static
63 ArcServiceManager* ArcServiceManager::Get() { 47 ArcServiceManager* ArcServiceManager::Get() {
64 DCHECK(g_arc_service_manager); 48 DCHECK(g_arc_service_manager);
65 DCHECK(g_arc_service_manager->thread_checker_.CalledOnValidThread()); 49 DCHECK(g_arc_service_manager->thread_checker_.CalledOnValidThread());
66 return g_arc_service_manager; 50 return g_arc_service_manager;
67 } 51 }
68 52
69 ArcBridgeService* ArcServiceManager::arc_bridge_service() { 53 ArcBridgeService* ArcServiceManager::arc_bridge_service() {
70 DCHECK(thread_checker_.CalledOnValidThread()); 54 DCHECK(thread_checker_.CalledOnValidThread());
71 return arc_bridge_service_.get(); 55 return arc_bridge_service_.get();
72 } 56 }
73 57
58 void ArcServiceManager::AddService(scoped_ptr<ArcService> service) {
59 DCHECK(thread_checker_.CalledOnValidThread());
60
61 services_.emplace_back(std::move(service));
62 }
63
74 void ArcServiceManager::OnPrimaryUserProfilePrepared( 64 void ArcServiceManager::OnPrimaryUserProfilePrepared(
75 const AccountId& account_id) { 65 const AccountId& account_id) {
76 DCHECK(thread_checker_.CalledOnValidThread()); 66 DCHECK(thread_checker_.CalledOnValidThread());
77 67
78 arc_notification_manager_.reset( 68 AddService(make_scoped_ptr(
79 new ArcNotificationManager(arc_bridge_service(), account_id)); 69 new ArcNotificationManager(arc_bridge_service(), account_id)));
80 } 70 }
81 71
82 } // namespace arc 72 } // namespace arc
OLDNEW
« no previous file with comments | « components/arc/arc_service_manager.h ('k') | components/arc/auth/arc_auth_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698