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

Side by Side Diff: remoting/host/host_signaling_manager.cc

Issue 1123163002: Updated remoting host to create instances of GCD-related classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@host-xmpp-connect2c
Patch Set: Created 5 years, 7 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/host_signaling_manager.h" 5 #include "remoting/host/host_signaling_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/time/time.h" 8 #include "base/time/time.h"
9 #include "net/socket/client_socket_factory.h" 9 #include "net/socket/client_socket_factory.h"
10 #include "remoting/base/auto_thread_task_runner.h" 10 #include "remoting/base/auto_thread_task_runner.h"
11 #include "remoting/base/logging.h" 11 #include "remoting/base/logging.h"
12 #include "remoting/base/url_request_context_getter.h" 12 #include "remoting/base/url_request_context_getter.h"
13 #include "remoting/host/chromoting_host_context.h" 13 #include "remoting/host/chromoting_host_context.h"
14 #include "remoting/host/dns_blackhole_checker.h" 14 #include "remoting/host/dns_blackhole_checker.h"
15 #include "remoting/host/gcd_notification_subscriber.h"
16 #include "remoting/host/gcd_state_updater.h"
15 #include "remoting/host/heartbeat_sender.h" 17 #include "remoting/host/heartbeat_sender.h"
16 #include "remoting/host/signaling_connector.h" 18 #include "remoting/host/signaling_connector.h"
17 #include "remoting/signaling/xmpp_signal_strategy.h" 19 #include "remoting/signaling/xmpp_signal_strategy.h"
18 20
19 namespace remoting { 21 namespace remoting {
20 22
21 HostSignalingManager::HostSignalingManager( 23 HostSignalingManager::HostSignalingManager(
22 scoped_ptr<SignalStrategy> signal_strategy, 24 scoped_ptr<SignalStrategy> signal_strategy,
23 scoped_ptr<SignalingConnector> signaling_connector, 25 scoped_ptr<SignalingConnector> signaling_connector,
24 scoped_ptr<HeartbeatSender> heartbeat_sender) 26 scoped_ptr<HeartbeatSender> heartbeat_sender,
27 scoped_ptr<GcdStateUpdater> gcd_state_updater,
28 scoped_ptr<GcdNotificationSubscriber> gcd_subscriber)
25 : signal_strategy_(signal_strategy.Pass()), 29 : signal_strategy_(signal_strategy.Pass()),
26 signaling_connector_(signaling_connector.Pass()), 30 signaling_connector_(signaling_connector.Pass()),
27 heartbeat_sender_(heartbeat_sender.Pass()) { 31 heartbeat_sender_(heartbeat_sender.Pass()),
32 gcd_state_updater_(gcd_state_updater.Pass()),
33 gcd_subscriber_(gcd_subscriber.Pass()) {
28 } 34 }
29 35
30 scoped_ptr<HostSignalingManager> HostSignalingManager::Create( 36 scoped_ptr<HostSignalingManager> HostSignalingManager::Create(
31 Listener* listener, 37 Listener* listener,
32 const scoped_refptr<net::URLRequestContextGetter>& 38 const scoped_refptr<net::URLRequestContextGetter>&
33 url_request_context_getter, 39 url_request_context_getter,
34 const XmppSignalStrategy::XmppServerConfig& xmpp_server_config, 40 const XmppSignalStrategy::XmppServerConfig& xmpp_server_config,
35 const std::string& talkgadget_prefix_policy, 41 const std::string& talkgadget_prefix_policy,
36 const std::string& host_id, 42 const std::string& host_id,
37 const scoped_refptr<const RsaKeyPair>& host_key_pair, 43 const scoped_refptr<const RsaKeyPair>& host_key_pair,
38 const std::string& directory_bot_jid, 44 const std::string& directory_bot_jid,
39 scoped_ptr<OAuthTokenGetter::OAuthCredentials> oauth_credentials, 45 OAuthTokenGetter* oauth_token_getter,
40 bool verify_email) { 46 GcdRestClient* gcd_rest_client) {
41 scoped_ptr<XmppSignalStrategy> signal_strategy( 47 scoped_ptr<XmppSignalStrategy> signal_strategy(
42 new XmppSignalStrategy(net::ClientSocketFactory::GetDefaultFactory(), 48 new XmppSignalStrategy(net::ClientSocketFactory::GetDefaultFactory(),
43 url_request_context_getter, xmpp_server_config)); 49 url_request_context_getter, xmpp_server_config));
44 50
45 scoped_ptr<DnsBlackholeChecker> dns_blackhole_checker(new DnsBlackholeChecker( 51 scoped_ptr<DnsBlackholeChecker> dns_blackhole_checker(new DnsBlackholeChecker(
46 url_request_context_getter, talkgadget_prefix_policy)); 52 url_request_context_getter, talkgadget_prefix_policy));
47 scoped_ptr<OAuthTokenGetter> oauth_token_getter(
48 new OAuthTokenGetter(oauth_credentials.Pass(), url_request_context_getter,
49 false, verify_email));
50 53
51 scoped_ptr<SignalingConnector> signaling_connector(new SignalingConnector( 54 scoped_ptr<SignalingConnector> signaling_connector(new SignalingConnector(
52 signal_strategy.get(), dns_blackhole_checker.Pass(), 55 signal_strategy.get(), dns_blackhole_checker.Pass(), oauth_token_getter,
53 oauth_token_getter.Pass(),
54 base::Bind(&Listener::OnAuthFailed, base::Unretained(listener)))); 56 base::Bind(&Listener::OnAuthFailed, base::Unretained(listener))));
55 57
56 scoped_ptr<HeartbeatSender> heartbeat_sender(new HeartbeatSender( 58 scoped_ptr<GcdStateUpdater> gcd_state_updater;
57 base::Bind(&Listener::OnHeartbeatSuccessful, base::Unretained(listener)), 59 scoped_ptr<GcdNotificationSubscriber> gcd_subscriber;
58 base::Bind(&Listener::OnUnknownHostIdError, base::Unretained(listener)), 60 scoped_ptr<HeartbeatSender> heartbeat_sender;
59 host_id, signal_strategy.get(), host_key_pair, directory_bot_jid)); 61
62 if (gcd_rest_client) {
63 gcd_state_updater.reset(
64 new GcdStateUpdater(base::Bind(&Listener::OnHeartbeatSuccessful,
65 base::Unretained(listener)),
66 signal_strategy.get(), gcd_rest_client));
67 gcd_subscriber.reset(new GcdNotificationSubscriber(signal_strategy.get()));
68 } else {
69 heartbeat_sender.reset(new HeartbeatSender(
70 base::Bind(&Listener::OnHeartbeatSuccessful,
71 base::Unretained(listener)),
72 base::Bind(&Listener::OnUnknownHostIdError, base::Unretained(listener)),
73 host_id, signal_strategy.get(), host_key_pair, directory_bot_jid));
74 }
60 75
61 return scoped_ptr<HostSignalingManager>(new HostSignalingManager( 76 return scoped_ptr<HostSignalingManager>(new HostSignalingManager(
62 signal_strategy.Pass(), signaling_connector.Pass(), 77 signal_strategy.Pass(), signaling_connector.Pass(),
63 heartbeat_sender.Pass())); 78 heartbeat_sender.Pass(), gcd_state_updater.Pass(),
79 gcd_subscriber.Pass()));
64 } 80 }
65 81
66 HostSignalingManager::~HostSignalingManager() { 82 HostSignalingManager::~HostSignalingManager() {
67 DCHECK(thread_checker_.CalledOnValidThread()); 83 DCHECK(thread_checker_.CalledOnValidThread());
68 } 84 }
69 85
70 void HostSignalingManager::SendHostOfflineReason( 86 void HostSignalingManager::SendHostOfflineReason(
71 const std::string& host_offline_reason, 87 const std::string& host_offline_reason,
72 const base::TimeDelta& timeout, 88 const base::TimeDelta& timeout,
73 const base::Callback<void(bool success)>& ack_callback) { 89 const base::Callback<void(bool success)>& ack_callback) {
74 DCHECK(thread_checker_.CalledOnValidThread()); 90 DCHECK(thread_checker_.CalledOnValidThread());
75 HOST_LOG << "SendHostOfflineReason: sending " << host_offline_reason << "."; 91 HOST_LOG << "SendHostOfflineReason: sending " << host_offline_reason << ".";
76 heartbeat_sender_->SetHostOfflineReason(host_offline_reason, timeout, 92 if (heartbeat_sender_) {
77 ack_callback); 93 heartbeat_sender_->SetHostOfflineReason(host_offline_reason, timeout,
94 ack_callback);
95 }
96 if (gcd_state_updater_) {
97 gcd_state_updater_->SetHostOfflineReason(host_offline_reason, timeout,
98 ack_callback);
99 }
78 } 100 }
79 101
80 } // namespace remoting 102 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698