| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "remoting/host/chromoting_host.h" | 5 #include "remoting/host/chromoting_host.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 : desktop_environment_factory_(desktop_environment_factory), | 73 : desktop_environment_factory_(desktop_environment_factory), |
| 74 session_manager_(session_manager.Pass()), | 74 session_manager_(session_manager.Pass()), |
| 75 audio_task_runner_(audio_task_runner), | 75 audio_task_runner_(audio_task_runner), |
| 76 input_task_runner_(input_task_runner), | 76 input_task_runner_(input_task_runner), |
| 77 video_capture_task_runner_(video_capture_task_runner), | 77 video_capture_task_runner_(video_capture_task_runner), |
| 78 video_encode_task_runner_(video_encode_task_runner), | 78 video_encode_task_runner_(video_encode_task_runner), |
| 79 network_task_runner_(network_task_runner), | 79 network_task_runner_(network_task_runner), |
| 80 ui_task_runner_(ui_task_runner), | 80 ui_task_runner_(ui_task_runner), |
| 81 signal_strategy_(signal_strategy), | 81 signal_strategy_(signal_strategy), |
| 82 started_(false), | 82 started_(false), |
| 83 exit_code_(kSuccessExitCode), |
| 83 protocol_config_(protocol::CandidateSessionConfig::CreateDefault()), | 84 protocol_config_(protocol::CandidateSessionConfig::CreateDefault()), |
| 84 login_backoff_(&kDefaultBackoffPolicy), | 85 login_backoff_(&kDefaultBackoffPolicy), |
| 85 authenticating_client_(false), | 86 authenticating_client_(false), |
| 86 reject_authenticating_client_(false), | 87 reject_authenticating_client_(false), |
| 87 enable_curtaining_(false), | 88 enable_curtaining_(false), |
| 88 weak_factory_(this) { | 89 weak_factory_(this) { |
| 89 DCHECK(network_task_runner_->BelongsToCurrentThread()); | 90 DCHECK(network_task_runner_->BelongsToCurrentThread()); |
| 90 DCHECK(signal_strategy); | 91 DCHECK(signal_strategy); |
| 91 | 92 |
| 92 jingle_glue::JingleThreadWrapper::EnsureForCurrentMessageLoop(); | 93 jingle_glue::JingleThreadWrapper::EnsureForCurrentMessageLoop(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 103 while (!clients_.empty()) { | 104 while (!clients_.empty()) { |
| 104 clients_.front()->DisconnectSession(); | 105 clients_.front()->DisconnectSession(); |
| 105 } | 106 } |
| 106 | 107 |
| 107 // Destroy the session manager to make sure that |signal_strategy_| does not | 108 // Destroy the session manager to make sure that |signal_strategy_| does not |
| 108 // have any listeners registered. | 109 // have any listeners registered. |
| 109 session_manager_.reset(); | 110 session_manager_.reset(); |
| 110 | 111 |
| 111 // Notify observers. | 112 // Notify observers. |
| 112 if (started_) | 113 if (started_) |
| 113 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_, OnShutdown()); | 114 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_, |
| 115 OnShutdown(exit_code_)); |
| 114 } | 116 } |
| 115 | 117 |
| 116 void ChromotingHost::Start(const std::string& host_owner_email) { | 118 void ChromotingHost::Start(const std::string& host_owner_email) { |
| 117 DCHECK(CalledOnValidThread()); | 119 DCHECK(CalledOnValidThread()); |
| 118 DCHECK(!started_); | 120 DCHECK(!started_); |
| 119 | 121 |
| 120 HOST_LOG << "Starting host"; | 122 HOST_LOG << "Starting host"; |
| 121 started_ = true; | 123 started_ = true; |
| 122 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_, | 124 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_, |
| 123 OnStart(host_owner_email)); | 125 OnStart(host_owner_email)); |
| 124 | 126 |
| 125 // Start the SessionManager, supplying this ChromotingHost as the listener. | 127 // Start the SessionManager, supplying this ChromotingHost as the listener. |
| 126 session_manager_->Init(signal_strategy_, this); | 128 session_manager_->Init(signal_strategy_, this); |
| 127 } | 129 } |
| 128 | 130 |
| 131 void ChromotingHost::SetExitCode(HostExitCodes exit_code) { |
| 132 exit_code_ = exit_code; |
| 133 } |
| 134 |
| 129 void ChromotingHost::AddStatusObserver(HostStatusObserver* observer) { | 135 void ChromotingHost::AddStatusObserver(HostStatusObserver* observer) { |
| 130 DCHECK(CalledOnValidThread()); | 136 DCHECK(CalledOnValidThread()); |
| 131 status_observers_.AddObserver(observer); | 137 status_observers_.AddObserver(observer); |
| 132 } | 138 } |
| 133 | 139 |
| 134 void ChromotingHost::RemoveStatusObserver(HostStatusObserver* observer) { | 140 void ChromotingHost::RemoveStatusObserver(HostStatusObserver* observer) { |
| 135 DCHECK(CalledOnValidThread()); | 141 DCHECK(CalledOnValidThread()); |
| 136 status_observers_.RemoveObserver(observer); | 142 status_observers_.RemoveObserver(observer); |
| 137 } | 143 } |
| 138 | 144 |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 331 DCHECK(CalledOnValidThread()); | 337 DCHECK(CalledOnValidThread()); |
| 332 | 338 |
| 333 while (!clients_.empty()) { | 339 while (!clients_.empty()) { |
| 334 size_t size = clients_.size(); | 340 size_t size = clients_.size(); |
| 335 clients_.front()->DisconnectSession(); | 341 clients_.front()->DisconnectSession(); |
| 336 CHECK_EQ(clients_.size(), size - 1); | 342 CHECK_EQ(clients_.size(), size - 1); |
| 337 } | 343 } |
| 338 } | 344 } |
| 339 | 345 |
| 340 } // namespace remoting | 346 } // namespace remoting |
| OLD | NEW |