diff options
Diffstat (limited to 'mojo/public/cpp/application/application_connection.h')
-rw-r--r-- | mojo/public/cpp/application/application_connection.h | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/mojo/public/cpp/application/application_connection.h b/mojo/public/cpp/application/application_connection.h deleted file mode 100644 index d5d6dde..0000000 --- a/mojo/public/cpp/application/application_connection.h +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef MOJO_PUBLIC_APPLICATION_APPLICATION_CONNECTION_H_ -#define MOJO_PUBLIC_APPLICATION_APPLICATION_CONNECTION_H_ - -#include <string> - -#include "mojo/public/cpp/application/lib/service_connector.h" -#include "mojo/public/interfaces/application/service_provider.mojom.h" - -namespace mojo { - -// An instance of this class is passed to -// ApplicationDelegate's ConfigureIncomingConnection() method each time a -// connection is made to this app, and to ApplicationDelegate's -// ConfigureOutgoingConnection() method when the app connects to -// another. -// -// To use define a class that implements your specific service api, e.g. FooImpl -// to implement a service named Foo. -// That class must subclass an InterfaceImpl specialization. -// -// Then implement an InterfaceFactory<Foo> that binds instances of FooImpl to -// InterfaceRequest<Foo>s and register that on the connection. -// -// connection->AddService(&factory); -// -// Or if you have multiple factories implemented by the same type, explicitly -// specify the interface to register the factory for: -// -// connection->AddService<Foo>(&my_foo_and_bar_factory_); -// connection->AddService<Bar>(&my_foo_and_bar_factory_); -// -// The InterfaceFactory must outlive the ApplicationConnection. -class ApplicationConnection { - public: - virtual ~ApplicationConnection(); - - template <typename Interface> - void AddService(InterfaceFactory<Interface>* factory) { - AddServiceConnector( - new internal::InterfaceFactoryConnector<Interface>(factory)); - } - - // Connect to the service implementing |Interface|. - template <typename Interface> - void ConnectToService(InterfacePtr<Interface>* ptr) { - MessagePipe pipe; - ptr->Bind(pipe.handle0.Pass()); - GetServiceProvider()->ConnectToService(Interface::Name_, - pipe.handle1.Pass()); - } - - // The url identifying the application on the other end of this connection. - virtual const std::string& GetRemoteApplicationURL() = 0; - - // Establishes a new connection to an application. - // TODO(davemoore): Would it be better to expose the ApplicationImpl? - virtual ApplicationConnection* ConnectToApplication( - const std::string& url) = 0; - - // Connect to application identified by |application_url| and connect to - // the service implementation of the interface identified by |Interface|. - template <typename Interface> - void ConnectToService(const std::string& application_url, - InterfacePtr<Interface>* ptr) { - ConnectToApplication(application_url)->ConnectToService(ptr); - } - - // Raw ServiceProvider interface to remote application. - virtual ServiceProvider* GetServiceProvider() = 0; - - private: - virtual void AddServiceConnector( - internal::ServiceConnectorBase* service_connector) = 0; -}; - -} // namespace mojo - -#endif // MOJO_PUBLIC_APPLICATION_APPLICATION_CONNECTION_H_ |