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

Side by Side Diff: remoting/test/it2me_standalone_host.cc

Issue 1923573006: Implement a dummy host to do capturing and analysis only. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix build break on Windows Created 4 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
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "remoting/test/it2me_standalone_host.h"
6
7 #include <iostream>
8 #include <vector>
9
10 #include "base/bind.h"
11 #include "base/location.h"
12 #include "base/memory/ptr_util.h"
13 #include "base/memory/ref_counted.h"
14 #include "base/time/time.h"
15 #include "remoting/base/auto_thread_task_runner.h"
16 #include "remoting/host/chromoting_host_context.h"
17 #include "remoting/host/host_extension.h"
18 #include "remoting/protocol/pairing_registry.h"
19 #include "remoting/protocol/protocol_mock_objects.h"
20 #include "remoting/protocol/session_config.h"
21
22 namespace remoting {
23 namespace test {
24
25 namespace {
26
27 void OutputStubs(const CounterStubs* stubs) {
28 std::cout << *stubs;
29 }
30
31 } // namespace
32
33 using ::remoting::protocol::MockSession;
34
35 It2MeStandaloneHost::It2MeStandaloneHost()
36 : context_(ChromotingHostContext::Create(
37 new AutoThreadTaskRunner(
38 message_loop_.task_runner(), run_loop_.QuitClosure()))),
39 factory_(context_->file_task_runner(),
40 context_->video_capture_task_runner(),
41 context_->input_task_runner(),
42 context_->ui_task_runner()),
43 connection_(base::WrapUnique(new testing::NiceMock<MockSession>())),
44 session_jid_("user@domain/rest-of-jid"),
45 #if defined(OS_LINUX)
46 // We cannot support audio capturing for linux, since a pipe name is
47 // needed to initialize AudioCapturerLinux.
48 config_(protocol::SessionConfig::ForTest()),
49 #else
50 config_(protocol::SessionConfig::ForTestWithAudio()),
51 #endif
52 stubs_(&connection_) {
53 factory_.set_enable_user_interface(false);
54 EXPECT_CALL(*static_cast<MockSession*>(connection_.session()), jid())
55 .WillRepeatedly(testing::ReturnRef(session_jid_));
56 EXPECT_CALL(*static_cast<MockSession*>(connection_.session()), config())
57 .WillRepeatedly(testing::ReturnRef(*config_));
58 connection_.set_audio_stub(&stubs_.audio_stub());
59 connection_.set_video_stub(&stubs_.video_stub());
60 connection_.set_client_stub(&stubs_.client_stub());
61 connection_.set_host_stub(&stubs_.host_stub());
62 connection_.set_video_encode_task_runner(
63 context_->video_encode_task_runner());
64 }
65
66 It2MeStandaloneHost::~It2MeStandaloneHost() {}
67
68 void It2MeStandaloneHost::Run() {
69 context_->file_task_runner()->PostTask(
70 FROM_HERE,
71 base::Bind(&It2MeStandaloneHost::Connect, base::Unretained(this)));
72 run_loop_.Run();
73 }
74
75 void It2MeStandaloneHost::StartToOutputToStdout() {
76 timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(1),
77 base::Bind(&OutputStubs, &stubs_));
78 }
79
80 void It2MeStandaloneHost::Connect() {
81 session_.reset(new ClientSession(
82 &handler_,
83 context_->audio_task_runner(),
84 std::unique_ptr<protocol::ConnectionToClient>(&connection_),
85 &factory_,
86 base::TimeDelta(),
87 scoped_refptr<protocol::PairingRegistry>(),
88 std::vector<HostExtension*>()));
89 session_->OnConnectionAuthenticated(&connection_);
90 session_->OnConnectionChannelsConnected(&connection_);
91 session_->CreateVideoStreams(&connection_);
92 }
93
94 } // namespace test
95 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698