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

Unified Diff: third_party/mojo/src/mojo/public/cpp/application/application_connection.h

Issue 1127293003: Update mojo sdk to rev f84766d3b6420b7cf6a113d9d65d73cb5fe18d90 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: formatting Created 5 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
Index: third_party/mojo/src/mojo/public/cpp/application/application_connection.h
diff --git a/third_party/mojo/src/mojo/public/cpp/application/application_connection.h b/third_party/mojo/src/mojo/public/cpp/application/application_connection.h
index 8406235215b0341207f3da876392b0e6384178d4..6673b7a9b43734a6eea8658795fc5648d000895d 100644
--- a/third_party/mojo/src/mojo/public/cpp/application/application_connection.h
+++ b/third_party/mojo/src/mojo/public/cpp/application/application_connection.h
@@ -7,11 +7,13 @@
#include <string>
-#include "mojo/public/cpp/application/lib/service_connector.h"
+#include "mojo/public/cpp/application/lib/interface_factory_connector.h"
#include "mojo/public/interfaces/application/service_provider.mojom.h"
namespace mojo {
+class ServiceConnector;
+
// Represents a connection to another application. 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
@@ -31,16 +33,27 @@ namespace mojo {
// connection->AddService<Bar>(&my_foo_and_bar_factory_);
//
// The InterfaceFactory must outlive the ApplicationConnection.
+//
+// Additionally you specify a ServiceConnector. If a ServiceConnector has
+// been set and an InterfaceFactory has not been registered for the interface
+// request, than the interface request is sent to the ServiceConnector.
+//
+// Just as with InterfaceFactory, ServiceConnector must outlive
+// ApplicationConnection.
class ApplicationConnection {
public:
virtual ~ApplicationConnection();
+ // See class description for details.
+ virtual void SetServiceConnector(ServiceConnector* connector) = 0;
+
// Makes Interface available as a service to the remote application.
// |factory| will create implementations of Interface on demand.
template <typename Interface>
void AddService(InterfaceFactory<Interface>* factory) {
- AddServiceConnector(
- new internal::InterfaceFactoryConnector<Interface>(factory));
+ SetServiceConnectorForName(
+ new internal::InterfaceFactoryConnector<Interface>(factory),
+ Interface::Name_);
}
// Binds |ptr| to an implemention of Interface in the remote application.
@@ -50,7 +63,7 @@ class ApplicationConnection {
void ConnectToService(InterfacePtr<Interface>* ptr) {
if (ServiceProvider* sp = GetServiceProvider()) {
MessagePipe pipe;
- ptr->Bind(pipe.handle0.Pass());
+ ptr->Bind(InterfacePtrInfo<Interface>(pipe.handle0.Pass(), 0u));
sp->ConnectToService(Interface::Name_, pipe.handle1.Pass());
}
}
@@ -76,8 +89,8 @@ class ApplicationConnection {
virtual ServiceProvider* GetServiceProvider() = 0;
private:
- virtual void AddServiceConnector(
- internal::ServiceConnectorBase* service_connector) = 0;
+ virtual void SetServiceConnectorForName(ServiceConnector* service_connector,
+ const std::string& name) = 0;
};
} // namespace mojo

Powered by Google App Engine
This is Rietveld 408576698