Chromium Code Reviews| Index: components/arc/arc_service_manager.cc |
| diff --git a/components/arc/arc_service_manager.cc b/components/arc/arc_service_manager.cc |
| index 9204fef44844ccd7fc9ea29da2e6ba91aaba29fe..e4911e8a9157b8cc34c2c126af56dc171a0e8d49 100644 |
| --- a/components/arc/arc_service_manager.cc |
| +++ b/components/arc/arc_service_manager.cc |
| @@ -4,8 +4,6 @@ |
| #include "components/arc/arc_service_manager.h" |
| -#include <utility> |
| - |
| #include "base/logging.h" |
| #include "base/memory/ptr_util.h" |
| #include "base/task_runner.h" |
| @@ -75,11 +73,28 @@ ArcBridgeService* ArcServiceManager::arc_bridge_service() { |
| return arc_bridge_service_.get(); |
| } |
| -void ArcServiceManager::AddService(std::unique_ptr<ArcService> service) { |
| +void ArcServiceManager::AddServiceInternal( |
| + std::unique_ptr<ArcService> service) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| services_.emplace_back(std::move(service)); |
| } |
| +void ArcServiceManager::AddNamedServiceInternal( |
| + const std::string& name, |
| + std::unique_ptr<ArcService> service) { |
| + DCHECK(thread_checker_.CalledOnValidThread()); |
| + DCHECK(named_services_.find(name) == named_services_.end()); |
|
Yusuke Sato
2017/01/10 07:11:10
What about making this a CHECK? Otherwise, L87 wil
Luis Héctor Chávez
2017/01/10 18:41:55
CHECKs are frowned upon outside of base/. I will a
|
| + named_services_.insert(std::make_pair(name, std::move(service))); |
|
hidehiko
2017/01/10 08:03:12
emplace?
Luis Héctor Chávez
2017/01/10 18:41:55
emplace is not supported for maps: https://chromiu
hidehiko
2017/01/11 05:17:44
Oh, good to know. Thank you!
|
| +} |
| + |
| +ArcService* ArcServiceManager::GetNamedServiceInternal( |
| + const std::string& name) { |
| + DCHECK(thread_checker_.CalledOnValidThread()); |
| + auto service = named_services_.find(name); |
| + DCHECK(service != named_services_.end()); |
| + return service->second.get(); |
| +} |
| + |
| void ArcServiceManager::AddObserver(Observer* observer) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| observer_list_.AddObserver(observer); |
| @@ -100,6 +115,7 @@ void ArcServiceManager::Shutdown() { |
| icon_loader_ = nullptr; |
| activity_resolver_ = nullptr; |
| services_.clear(); |
| + named_services_.clear(); |
| } |
| } // namespace arc |