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

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

Issue 2567083002: Migrate ArcBridgeService::Observer and ArcSession::Observer. (Closed)
Patch Set: Rebase Created 4 years 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_bridge_service.h" 5 #include "components/arc/arc_bridge_service.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/feature_list.h" 10 #include "base/feature_list.h"
11 #include "base/sequenced_task_runner.h" 11 #include "base/sequenced_task_runner.h"
12 #include "base/threading/thread_task_runner_handle.h" 12 #include "base/threading/thread_task_runner_handle.h"
13 #include "chromeos/chromeos_switches.h" 13 #include "chromeos/chromeos_switches.h"
14 14
15 namespace arc { 15 namespace arc {
16 16
17 namespace { 17 namespace {
18 18
19 const base::Feature kArcEnabledFeature{"EnableARC", 19 const base::Feature kArcEnabledFeature{"EnableARC",
20 base::FEATURE_DISABLED_BY_DEFAULT}; 20 base::FEATURE_DISABLED_BY_DEFAULT};
21 21
22 } // namespace 22 } // namespace
23 23
24 ArcBridgeService::ArcBridgeService() 24 ArcBridgeService::ArcBridgeService()
25 : state_(State::STOPPED), 25 : state_(State::STOPPED),
26 stop_reason_(StopReason::SHUTDOWN), 26 stop_reason_(ArcSessionObserver::StopReason::SHUTDOWN),
27 weak_factory_(this) {} 27 weak_factory_(this) {}
28 28
29 ArcBridgeService::~ArcBridgeService() { 29 ArcBridgeService::~ArcBridgeService() {
30 DCHECK(CalledOnValidThread()); 30 DCHECK(CalledOnValidThread());
31 DCHECK(state() == State::STOPPING || state() == State::STOPPED); 31 DCHECK(state() == State::STOPPING || state() == State::STOPPED);
32 } 32 }
33 33
34 // static 34 // static
35 bool ArcBridgeService::GetEnabled(const base::CommandLine* command_line) { 35 bool ArcBridgeService::GetEnabled(const base::CommandLine* command_line) {
36 return command_line->HasSwitch(chromeos::switches::kEnableArc) || 36 return command_line->HasSwitch(chromeos::switches::kEnableArc) ||
37 (command_line->HasSwitch(chromeos::switches::kArcAvailable) && 37 (command_line->HasSwitch(chromeos::switches::kArcAvailable) &&
38 base::FeatureList::IsEnabled(kArcEnabledFeature)); 38 base::FeatureList::IsEnabled(kArcEnabledFeature));
39 } 39 }
40 40
41 // static 41 // static
42 bool ArcBridgeService::GetAvailable(const base::CommandLine* command_line) { 42 bool ArcBridgeService::GetAvailable(const base::CommandLine* command_line) {
43 return command_line->HasSwitch(chromeos::switches::kArcAvailable); 43 return command_line->HasSwitch(chromeos::switches::kArcAvailable);
44 } 44 }
45 45
46 void ArcBridgeService::AddObserver(Observer* observer) { 46 void ArcBridgeService::AddObserver(ArcSessionObserver* observer) {
47 DCHECK(CalledOnValidThread()); 47 DCHECK(CalledOnValidThread());
48 observer_list_.AddObserver(observer); 48 observer_list_.AddObserver(observer);
49 } 49 }
50 50
51 void ArcBridgeService::RemoveObserver(Observer* observer) { 51 void ArcBridgeService::RemoveObserver(ArcSessionObserver* observer) {
52 DCHECK(CalledOnValidThread()); 52 DCHECK(CalledOnValidThread());
53 observer_list_.RemoveObserver(observer); 53 observer_list_.RemoveObserver(observer);
54 } 54 }
55 55
56 void ArcBridgeService::SetState(State state) { 56 void ArcBridgeService::SetState(State state) {
57 DCHECK(CalledOnValidThread()); 57 DCHECK(CalledOnValidThread());
58 DCHECK_NE(state_, state); 58 DCHECK_NE(state_, state);
59 state_ = state; 59 state_ = state;
60 VLOG(2) << "State: " << static_cast<uint32_t>(state_); 60 VLOG(2) << "State: " << static_cast<uint32_t>(state_);
61 if (state_ == State::READY) { 61 if (state_ == State::READY) {
62 for (auto& observer : observer_list()) 62 for (auto& observer : observer_list())
63 observer.OnBridgeReady(); 63 observer.OnReady();
64 } else if (state == State::STOPPED) { 64 } else if (state == State::STOPPED) {
65 for (auto& observer : observer_list()) 65 for (auto& observer : observer_list())
66 observer.OnBridgeStopped(stop_reason_); 66 observer.OnStopped(stop_reason_);
67 } 67 }
68 } 68 }
69 69
70 void ArcBridgeService::SetStopReason(StopReason stop_reason) { 70 void ArcBridgeService::SetStopReason(
71 ArcSessionObserver::StopReason stop_reason) {
71 DCHECK(CalledOnValidThread()); 72 DCHECK(CalledOnValidThread());
72 stop_reason_ = stop_reason; 73 stop_reason_ = stop_reason;
73 } 74 }
74 75
75 bool ArcBridgeService::CalledOnValidThread() { 76 bool ArcBridgeService::CalledOnValidThread() {
76 return thread_checker_.CalledOnValidThread(); 77 return thread_checker_.CalledOnValidThread();
77 } 78 }
78 79
79 std::ostream& operator<<(
80 std::ostream& os, ArcBridgeService::StopReason reason) {
81 switch (reason) {
82 #define CASE_IMPL(val) \
83 case ArcBridgeService::StopReason::val: \
84 return os << #val
85
86 CASE_IMPL(SHUTDOWN);
87 CASE_IMPL(GENERIC_BOOT_FAILURE);
88 CASE_IMPL(LOW_DISK_SPACE);
89 CASE_IMPL(CRASH);
90 #undef CASE_IMPL
91 }
92
93 // In case of unexpected value, output the int value.
94 return os << "StopReason(" << static_cast<int>(reason) << ")";
95 }
96
97 } // namespace arc 80 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698