Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Unified Diff: mojo/public/cpp/application/service_provider_impl.h

Issue 1984463002: More cleanup: Get rid of ServiceConnectorRegistry. (Closed) Base URL: https://github.com/domokit/mojo.git@work791_app_conn_devo_4
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/public/cpp/application/service_connector.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/cpp/application/service_provider_impl.h
diff --git a/mojo/public/cpp/application/service_provider_impl.h b/mojo/public/cpp/application/service_provider_impl.h
index 77a76445f408808823ee6abd7c7e9f6f17930c1f..a44d0366cc6a652194cc98e89a06f9d0a8332677 100644
--- a/mojo/public/cpp/application/service_provider_impl.h
+++ b/mojo/public/cpp/application/service_provider_impl.h
@@ -6,11 +6,11 @@
#define MOJO_PUBLIC_APPLICATION_SERVICE_PROVIDER_IMPL_H_
#include <functional>
+#include <map>
#include <string>
#include <utility>
#include "mojo/public/cpp/application/connection_context.h"
-#include "mojo/public/cpp/application/lib/service_connector_registry.h"
#include "mojo/public/cpp/application/service_connector.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/interfaces/application/service_provider.mojom.h"
@@ -53,15 +53,12 @@ class ServiceProviderImpl : public ServiceProvider {
// unbound state). This may be called even if this object is already unbound.
void Close();
- // Adds a supported service with the given |name|, using the given
+ // Adds a supported service with the given |service_name|, using the given
// |service_connector|.
void AddServiceForName(std::unique_ptr<ServiceConnector> service_connector,
- const std::string& interface_name) {
- service_connector_registry_.SetServiceConnectorForName(
- std::move(service_connector), interface_name);
- }
+ const std::string& service_name);
- // Adds a supported service with the given |name|, using the given
+ // Adds a supported service with the given |service_name|, using the given
// |interface_request_handler| (see above for information about
// |InterfaceRequestHandler<Interface>|). |interface_request_handler| should
// remain valid for the lifetime of this object.
@@ -76,24 +73,23 @@ class ServiceProviderImpl : public ServiceProvider {
// });
template <typename Interface>
void AddService(InterfaceRequestHandler<Interface> interface_request_handler,
- const std::string& name = Interface::Name_) {
+ const std::string& service_name = Interface::Name_) {
AddServiceForName(
std::unique_ptr<ServiceConnector>(new ServiceConnectorImpl<Interface>(
std::move(interface_request_handler))),
- name);
+ service_name);
}
- // Removes support for the service with the given |name|.
- void RemoveServiceForName(const std::string& name) {
- service_connector_registry_.RemoveServiceConnectorForName(name);
- }
+ // Removes support for the service with the given |service_name|.
+ void RemoveServiceForName(const std::string& service_name);
// Like |RemoveServiceForName()| (above), but designed so that it can be used
- // like |RemoveService<Interface>()| or even |RemoveService<Interface>(name)|
- // (to parallel |AddService<Interface>()|).
+ // like |RemoveService<Interface>()| or even
+ // |RemoveService<Interface>(service_name)| (to parallel
+ // |AddService<Interface>()|).
template <typename Interface>
- void RemoveService(const std::string& name = Interface::Name_) {
- RemoveServiceForName(name);
+ void RemoveService(const std::string& service_name = Interface::Name_) {
+ RemoveServiceForName(service_name);
}
// This uses the provided |fallback_service_provider| for connection requests
@@ -124,7 +120,6 @@ class ServiceProviderImpl : public ServiceProvider {
~ServiceConnectorImpl() override {}
void ConnectToService(const mojo::ConnectionContext& connection_context,
- const std::string& interface_name,
ScopedMessagePipeHandle client_handle) override {
interface_request_handler_(
connection_context,
@@ -144,7 +139,9 @@ class ServiceProviderImpl : public ServiceProvider {
ConnectionContext connection_context_;
Binding<ServiceProvider> binding_;
- internal::ServiceConnectorRegistry service_connector_registry_;
+ std::map<std::string, std::unique_ptr<ServiceConnector>>
+ name_to_service_connector_;
+
ServiceProvider* fallback_service_provider_;
MOJO_DISALLOW_COPY_AND_ASSIGN(ServiceProviderImpl);
« no previous file with comments | « mojo/public/cpp/application/service_connector.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698