Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / media / cast / test / utility / standalone_cast_environment.cc
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
3 // found in the LICENSE file.
4
5 #include "media/cast/test/utility/standalone_cast_environment.h"
6
7 #include "base/time/default_tick_clock.h"
8
9 namespace media {
10 namespace cast {
11
12 StandaloneCastEnvironment::StandaloneCastEnvironment()
13     : CastEnvironment(
14           make_scoped_ptr<base::TickClock>(new base::DefaultTickClock()),
15           NULL,
16           NULL,
17           NULL),
18       main_thread_("StandaloneCastEnvironment Main"),
19       audio_thread_("StandaloneCastEnvironment Audio"),
20       video_thread_("StandaloneCastEnvironment Video") {
21 #define CREATE_TASK_RUNNER(name, options)   \
22   name##_thread_.StartWithOptions(options); \
23   CastEnvironment::name##_thread_proxy_ = name##_thread_.message_loop_proxy()
24
25   CREATE_TASK_RUNNER(main,
26                      base::Thread::Options(base::MessageLoop::TYPE_IO, 0));
27   CREATE_TASK_RUNNER(audio, base::Thread::Options());
28   CREATE_TASK_RUNNER(video, base::Thread::Options());
29 #undef CREATE_TASK_RUNNER
30 }
31
32 StandaloneCastEnvironment::~StandaloneCastEnvironment() {
33   CHECK(CalledOnValidThread());
34   CHECK(!main_thread_.IsRunning());
35   CHECK(!audio_thread_.IsRunning());
36   CHECK(!video_thread_.IsRunning());
37 }
38
39 void StandaloneCastEnvironment::Shutdown() {
40   CHECK(CalledOnValidThread());
41   main_thread_.Stop();
42   audio_thread_.Stop();
43   video_thread_.Stop();
44 }
45
46 }  // namespace cast
47 }  // namespace media