Index: third_party/mojo/src/mojo/public/cpp/application/lib/service_registry.h |
diff --git a/third_party/mojo/src/mojo/public/cpp/application/lib/service_registry.h b/third_party/mojo/src/mojo/public/cpp/application/lib/service_registry.h |
index 6126c104e9336001757963b42ead846365fe773e..b303911d8941e5609b46768a8ac7d77554cde578 100644 |
--- a/third_party/mojo/src/mojo/public/cpp/application/lib/service_registry.h |
+++ b/third_party/mojo/src/mojo/public/cpp/application/lib/service_registry.h |
@@ -5,7 +5,10 @@ |
#ifndef MOJO_PUBLIC_CPP_APPLICATION_LIB_SERVICE_REGISTRY_H_ |
#define MOJO_PUBLIC_CPP_APPLICATION_LIB_SERVICE_REGISTRY_H_ |
+#include <string> |
+ |
#include "mojo/public/cpp/application/application_connection.h" |
+#include "mojo/public/cpp/application/lib/service_connector_registry.h" |
#include "mojo/public/interfaces/application/service_provider.mojom.h" |
namespace mojo { |
@@ -15,8 +18,6 @@ class ApplicationImpl; |
namespace internal { |
-class ServiceConnectorBase; |
- |
// A ServiceRegistry represents each half of a connection between two |
// applications, allowing customization of which services are published to the |
// other. |
@@ -31,12 +32,14 @@ class ServiceRegistry : public ServiceProvider, public ApplicationConnection { |
~ServiceRegistry() override; |
// ApplicationConnection overrides. |
- void AddServiceConnector(ServiceConnectorBase* service_connector) override; |
+ void SetServiceConnector(ServiceConnector* service_connector) override; |
+ void SetServiceConnectorForName(ServiceConnector* service_connector, |
+ const std::string& interface_name) override; |
const std::string& GetConnectionURL() override; |
const std::string& GetRemoteApplicationURL() override; |
ServiceProvider* GetServiceProvider() override; |
- virtual void RemoveServiceConnector(ServiceConnectorBase* service_connector); |
+ void RemoveServiceConnectorForName(const std::string& interface_name); |
private: |
// ServiceProvider method. |
@@ -48,14 +51,12 @@ class ServiceRegistry : public ServiceProvider, public ApplicationConnection { |
const std::string remote_url_; |
private: |
- bool RemoveServiceConnectorInternal(ServiceConnectorBase* service_connector); |
+ void RemoveServiceConnectorForNameInternal(const std::string& interface_name); |
Application* application_; |
- typedef std::map<std::string, ServiceConnectorBase*> |
- NameToServiceConnectorMap; |
- NameToServiceConnectorMap name_to_service_connector_; |
Binding<ServiceProvider> local_binding_; |
ServiceProviderPtr remote_service_provider_; |
+ ServiceConnectorRegistry service_connector_registry_; |
MOJO_DISALLOW_COPY_AND_ASSIGN(ServiceRegistry); |
}; |