| Index: third_party/mojo/src/mojo/public/cpp/application/service_provider_impl.h
|
| diff --git a/third_party/mojo/src/mojo/public/cpp/application/service_provider_impl.h b/third_party/mojo/src/mojo/public/cpp/application/service_provider_impl.h
|
| index 5ef58545e34388b85c7c19a05bd82f7546abdf18..ed4de3a9312f32b18f989b92f4bce69f8a5e70ed 100644
|
| --- a/third_party/mojo/src/mojo/public/cpp/application/service_provider_impl.h
|
| +++ b/third_party/mojo/src/mojo/public/cpp/application/service_provider_impl.h
|
| @@ -5,14 +5,14 @@
|
| #ifndef MOJO_PUBLIC_APPLICATION_SERVICE_PROVIDER_IMPL_H_
|
| #define MOJO_PUBLIC_APPLICATION_SERVICE_PROVIDER_IMPL_H_
|
|
|
| -#include "mojo/public/cpp/application/lib/service_connector.h"
|
| +#include <string>
|
| +
|
| +#include "mojo/public/cpp/application/lib/interface_factory_connector.h"
|
| +#include "mojo/public/cpp/application/lib/service_connector_registry.h"
|
| #include "mojo/public/cpp/bindings/binding.h"
|
| #include "mojo/public/interfaces/application/service_provider.mojom.h"
|
|
|
| namespace mojo {
|
| -namespace internal {
|
| -class ServiceConnectorBase;
|
| -}
|
|
|
| // Implements a registry that can be used to expose services to another app.
|
| class ServiceProviderImpl : public ServiceProvider {
|
| @@ -28,26 +28,23 @@ class ServiceProviderImpl : public ServiceProvider {
|
|
|
| template <typename Interface>
|
| void AddService(InterfaceFactory<Interface>* factory) {
|
| - AddServiceConnector(
|
| - new internal::InterfaceFactoryConnector<Interface>(factory));
|
| + SetServiceConnectorForName(
|
| + new internal::InterfaceFactoryConnector<Interface>(factory),
|
| + Interface::Name_);
|
| }
|
|
|
| private:
|
| - typedef std::map<std::string, internal::ServiceConnectorBase*>
|
| - NameToServiceConnectorMap;
|
| -
|
| // Overridden from ServiceProvider:
|
| void ConnectToService(const String& service_name,
|
| ScopedMessagePipeHandle client_handle) override;
|
|
|
| - void AddServiceConnector(internal::ServiceConnectorBase* service_connector);
|
| - void RemoveServiceConnector(
|
| - internal::ServiceConnectorBase* service_connector);
|
| -
|
| - NameToServiceConnectorMap service_connectors_;
|
| + void SetServiceConnectorForName(ServiceConnector* service_connector,
|
| + const std::string& interface_name);
|
|
|
| Binding<ServiceProvider> binding_;
|
|
|
| + internal::ServiceConnectorRegistry service_connector_registry_;
|
| +
|
| MOJO_DISALLOW_COPY_AND_ASSIGN(ServiceProviderImpl);
|
| };
|
|
|
|
|