OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 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 "services/data_decoder/data_decoder_service.h" | 5 #include "services/data_decoder/data_decoder_service.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "base/threading/thread_task_runner_handle.h" | 9 #include "base/threading/thread_task_runner_handle.h" |
10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
(...skipping 26 matching lines...) Expand all Loading... |
37 } | 37 } |
38 | 38 |
39 void DataDecoderService::OnStart() { | 39 void DataDecoderService::OnStart() { |
40 ref_factory_.reset(new service_manager::ServiceContextRefFactory(base::Bind( | 40 ref_factory_.reset(new service_manager::ServiceContextRefFactory(base::Bind( |
41 &DataDecoderService::MaybeRequestQuitDelayed, base::Unretained(this)))); | 41 &DataDecoderService::MaybeRequestQuitDelayed, base::Unretained(this)))); |
42 registry_.AddInterface( | 42 registry_.AddInterface( |
43 base::Bind(&OnImageDecoderRequest, ref_factory_.get())); | 43 base::Bind(&OnImageDecoderRequest, ref_factory_.get())); |
44 } | 44 } |
45 | 45 |
46 void DataDecoderService::OnBindInterface( | 46 void DataDecoderService::OnBindInterface( |
47 const service_manager::ServiceInfo& source_info, | 47 const service_manager::BindSourceInfo& source_info, |
48 const std::string& interface_name, | 48 const std::string& interface_name, |
49 mojo::ScopedMessagePipeHandle interface_pipe) { | 49 mojo::ScopedMessagePipeHandle interface_pipe) { |
50 registry_.BindInterface(source_info.identity, interface_name, | 50 registry_.BindInterface(source_info.identity, interface_name, |
51 std::move(interface_pipe)); | 51 std::move(interface_pipe)); |
52 } | 52 } |
53 | 53 |
54 void DataDecoderService::MaybeRequestQuitDelayed() { | 54 void DataDecoderService::MaybeRequestQuitDelayed() { |
55 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 55 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
56 FROM_HERE, | 56 FROM_HERE, |
57 base::Bind(&DataDecoderService::MaybeRequestQuit, | 57 base::Bind(&DataDecoderService::MaybeRequestQuit, |
58 weak_factory_.GetWeakPtr()), | 58 weak_factory_.GetWeakPtr()), |
59 base::TimeDelta::FromSeconds(5)); | 59 base::TimeDelta::FromSeconds(5)); |
60 } | 60 } |
61 | 61 |
62 void DataDecoderService::MaybeRequestQuit() { | 62 void DataDecoderService::MaybeRequestQuit() { |
63 DCHECK(ref_factory_); | 63 DCHECK(ref_factory_); |
64 if (ref_factory_->HasNoRefs()) | 64 if (ref_factory_->HasNoRefs()) |
65 context()->RequestQuit(); | 65 context()->RequestQuit(); |
66 } | 66 } |
67 | 67 |
68 } // namespace data_decoder | 68 } // namespace data_decoder |
OLD | NEW |