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

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: Fixed Chrome OS builds 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
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/power/arc_power_bridge.h" 16 #include "components/arc/power/arc_power_bridge.h"
18 #include "components/arc/settings/arc_settings_bridge.h"
19 #include "components/arc/video/arc_video_bridge.h"
20 #include "ui/arc/notification/arc_notification_manager.h" 17 #include "ui/arc/notification/arc_notification_manager.h"
21 18
22 namespace arc { 19 namespace arc {
23 20
24 namespace { 21 namespace {
25 22
26 // Weak pointer. This class is owned by ChromeBrowserMainPartsChromeos. 23 // Weak pointer. This class is owned by ChromeBrowserMainPartsChromeos.
27 ArcServiceManager* g_arc_service_manager = nullptr; 24 ArcServiceManager* g_arc_service_manager = nullptr;
28 25
29 } // namespace 26 } // namespace
30 27
31 ArcServiceManager::ArcServiceManager( 28 ArcServiceManager::ArcServiceManager()
32 scoped_ptr<ArcAuthService> auth_service,
33 scoped_ptr<ArcSettingsBridge> settings_bridge,
34 scoped_ptr<ArcVideoBridge> video_bridge)
35 : arc_bridge_service_( 29 : arc_bridge_service_(
36 new ArcBridgeServiceImpl(ArcBridgeBootstrap::Create())), 30 new ArcBridgeServiceImpl(ArcBridgeBootstrap::Create())) {
37 arc_auth_service_(std::move(auth_service)),
38 arc_clipboard_bridge_(new ArcClipboardBridge(arc_bridge_service_.get())),
39 arc_ime_bridge_(new ArcImeBridge(arc_bridge_service_.get())),
40 arc_input_bridge_(ArcInputBridge::Create(arc_bridge_service_.get())),
41 arc_settings_bridge_(std::move(settings_bridge)),
42 arc_power_bridge_(new ArcPowerBridge(arc_bridge_service_.get())),
43 arc_video_bridge_(std::move(video_bridge)) {
44 DCHECK(!g_arc_service_manager); 31 DCHECK(!g_arc_service_manager);
45 g_arc_service_manager = this; 32 g_arc_service_manager = this;
46 33
47 arc_settings_bridge_->StartObservingBridgeServiceChanges(); 34 AddService(make_scoped_ptr(new ArcClipboardBridge(arc_bridge_service())));
elijahtaylor1 2016/01/20 00:41:19 what is the distinction between services created f
Luis Héctor Chávez 2016/01/20 17:39:59 Dependencies. All the ones created in chrome_brows
48 arc_auth_service_->StartObservingBridgeServiceChanges(); 35 AddService(make_scoped_ptr(new ArcImeBridge(arc_bridge_service())));
49 arc_video_bridge_->StartObservingBridgeServiceChanges(); 36 AddService(make_scoped_ptr(new ArcInputBridge(arc_bridge_service())));
37 AddService(make_scoped_ptr(new ArcPowerBridge(arc_bridge_service())));
50 } 38 }
51 39
52 ArcServiceManager::~ArcServiceManager() { 40 ArcServiceManager::~ArcServiceManager() {
53 DCHECK(thread_checker_.CalledOnValidThread()); 41 DCHECK(thread_checker_.CalledOnValidThread());
54 DCHECK(g_arc_service_manager == this); 42 DCHECK(g_arc_service_manager == this);
55 g_arc_service_manager = nullptr; 43 g_arc_service_manager = nullptr;
56 } 44 }
57 45
58 // static 46 // static
59 ArcServiceManager* ArcServiceManager::Get() { 47 ArcServiceManager* ArcServiceManager::Get() {
60 DCHECK(g_arc_service_manager); 48 DCHECK(g_arc_service_manager);
61 DCHECK(g_arc_service_manager->thread_checker_.CalledOnValidThread()); 49 DCHECK(g_arc_service_manager->thread_checker_.CalledOnValidThread());
62 return g_arc_service_manager; 50 return g_arc_service_manager;
63 } 51 }
64 52
65 ArcBridgeService* ArcServiceManager::arc_bridge_service() { 53 ArcBridgeService* ArcServiceManager::arc_bridge_service() {
66 DCHECK(thread_checker_.CalledOnValidThread()); 54 DCHECK(thread_checker_.CalledOnValidThread());
67 return arc_bridge_service_.get(); 55 return arc_bridge_service_.get();
68 } 56 }
69 57
58 void ArcServiceManager::AddService(scoped_ptr<ArcService> service) {
59 DCHECK(thread_checker_.CalledOnValidThread());
60
61 services_.emplace_back(std::move(service));
62 }
63
70 void ArcServiceManager::OnPrimaryUserProfilePrepared( 64 void ArcServiceManager::OnPrimaryUserProfilePrepared(
71 const AccountId& account_id) { 65 const AccountId& account_id) {
72 DCHECK(thread_checker_.CalledOnValidThread()); 66 DCHECK(thread_checker_.CalledOnValidThread());
73 67
74 arc_notification_manager_.reset( 68 AddService(make_scoped_ptr(
75 new ArcNotificationManager(arc_bridge_service(), account_id)); 69 new ArcNotificationManager(arc_bridge_service(), account_id)));
76 } 70 }
77 71
78 } // namespace arc 72 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698