Index: mojo/application/public/cpp/lib/service_registry.h |
diff --git a/mojo/application/public/cpp/lib/service_registry.h b/mojo/application/public/cpp/lib/service_registry.h |
index c34ecede1b8f2654efcf5049d419f9585a908b90..7e4d604d6861e0981780d476679e839309737264 100644 |
--- a/mojo/application/public/cpp/lib/service_registry.h |
+++ b/mojo/application/public/cpp/lib/service_registry.h |
@@ -13,10 +13,6 @@ |
#include "mojo/application/public/interfaces/service_provider.mojom.h" |
namespace mojo { |
- |
-class Application; |
-class ApplicationImpl; |
- |
namespace internal { |
// A ServiceRegistry represents each half of a connection between two |
@@ -28,12 +24,12 @@ class ServiceRegistry : public ServiceProvider, public ApplicationConnection { |
// |allowed_interfaces| are the set of interfaces that the shell has allowed |
// an application to expose to another application. If this set contains only |
// the string value "*" all interfaces may be exposed. |
- ServiceRegistry(ApplicationImpl* application_impl, |
- const std::string& connection_url, |
+ ServiceRegistry(const std::string& connection_url, |
const std::string& remote_url, |
ServiceProviderPtr remote_services, |
InterfaceRequest<ServiceProvider> local_services, |
const std::set<std::string>& allowed_interfaces); |
+ ~ServiceRegistry() override; |
// ApplicationConnection overrides. |
void SetServiceConnector(ServiceConnector* service_connector) override; |
@@ -45,20 +41,15 @@ class ServiceRegistry : public ServiceProvider, public ApplicationConnection { |
ServiceProvider* GetLocalServiceProvider() override; |
void SetRemoteServiceProviderConnectionErrorHandler( |
const Closure& handler) override; |
+ base::WeakPtr<ApplicationConnection> GetWeakPtr() override; |
void RemoveServiceConnectorForName(const std::string& interface_name); |
private: |
- ~ServiceRegistry() override; |
- |
- // ApplicationConnection overrides. |
- void OnCloseConnection() override; |
- |
// ServiceProvider method. |
void ConnectToService(const mojo::String& service_name, |
ScopedMessagePipeHandle client_handle) override; |
- ApplicationImpl* application_impl_; |
const std::string connection_url_; |
const std::string remote_url_; |
Binding<ServiceProvider> local_binding_; |
@@ -66,6 +57,7 @@ class ServiceRegistry : public ServiceProvider, public ApplicationConnection { |
ServiceConnectorRegistry service_connector_registry_; |
const std::set<std::string> allowed_interfaces_; |
const bool allow_all_interfaces_; |
+ base::WeakPtrFactory<ApplicationConnection> weak_factory_; |
MOJO_DISALLOW_COPY_AND_ASSIGN(ServiceRegistry); |
}; |