1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file.
4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chromecast/service/cast_service.h"
6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/logging.h"
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/threading/thread_checker.h"
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace chromecast {
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
12116680a4aac90f2aa7413d9095a592090648e557Ben MurdochCastService::CastService(content::BrowserContext* browser_context)
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    : browser_context_(browser_context),
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      stopped_(true),
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      thread_checker_(new base::ThreadChecker()) {
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
18116680a4aac90f2aa7413d9095a592090648e557Ben MurdochCastService::~CastService() {
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DCHECK(thread_checker_->CalledOnValidThread());
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DCHECK(stopped_);
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid CastService::Start() {
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DCHECK(thread_checker_->CalledOnValidThread());
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  Initialize();
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  stopped_ = false;
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  StartInternal();
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid CastService::Stop() {
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DCHECK(thread_checker_->CalledOnValidThread());
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  StopInternal();
34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  stopped_ = true;
35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace chromecast
38