OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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/shell/service_manager.h" | 5 #include "services/shell/service_manager.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 561 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
572 | 572 |
573 mojom::ResolverPtr resolver_ptr; | 573 mojom::ResolverPtr resolver_ptr; |
574 ConnectToInterface(this, identity, CreateCatalogIdentity(), &resolver_ptr); | 574 ConnectToInterface(this, identity, CreateCatalogIdentity(), &resolver_ptr); |
575 mojom::Resolver* resolver = resolver_ptr.get(); | 575 mojom::Resolver* resolver = resolver_ptr.get(); |
576 identity_to_resolver_[identity] = std::move(resolver_ptr); | 576 identity_to_resolver_[identity] = std::move(resolver_ptr); |
577 return resolver; | 577 return resolver; |
578 } | 578 } |
579 | 579 |
580 void ServiceManager::TerminateServiceManagerConnections() { | 580 void ServiceManager::TerminateServiceManagerConnections() { |
581 Instance* instance = GetExistingInstance(CreateServiceManagerIdentity()); | 581 Instance* instance = GetExistingInstance(CreateServiceManagerIdentity()); |
582 DCHECK(instance); | 582 if (instance) |
583 OnInstanceError(instance); | 583 OnInstanceError(instance); |
584 } | 584 } |
585 | 585 |
586 void ServiceManager::OnInstanceError(Instance* instance) { | 586 void ServiceManager::OnInstanceError(Instance* instance) { |
587 const Identity identity = instance->identity(); | 587 const Identity identity = instance->identity(); |
588 // Remove the Service Manager. | 588 // Remove the Service Manager. |
589 auto it = identity_to_instance_.find(identity); | 589 auto it = identity_to_instance_.find(identity); |
590 DCHECK(it != identity_to_instance_.end()); | 590 DCHECK(it != identity_to_instance_.end()); |
591 identity_to_instance_.erase(it); | 591 identity_to_instance_.erase(it); |
592 listeners_.ForAllPtrs( | 592 listeners_.ForAllPtrs( |
593 [this, identity](mojom::ServiceManagerListener* listener) { | 593 [this, identity](mojom::ServiceManagerListener* listener) { |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
803 // Now that the instance has a Service, we can connect to it. | 803 // Now that the instance has a Service, we can connect to it. |
804 bool connected = instance->ConnectToService(¶ms); | 804 bool connected = instance->ConnectToService(¶ms); |
805 DCHECK(connected); | 805 DCHECK(connected); |
806 } | 806 } |
807 | 807 |
808 base::WeakPtr<ServiceManager> ServiceManager::GetWeakPtr() { | 808 base::WeakPtr<ServiceManager> ServiceManager::GetWeakPtr() { |
809 return weak_ptr_factory_.GetWeakPtr(); | 809 return weak_ptr_factory_.GetWeakPtr(); |
810 } | 810 } |
811 | 811 |
812 } // namespace shell | 812 } // namespace shell |
OLD | NEW |