Mojo: Replace RemotePtr with InterfacePtr and InterfaceImpl
Interfaces no longer have explicit Peer attributes. An interface may now optionally have a Client interface, in which case a SetClient method will be auto-generated.
InterfacePtr is a proxy to a remote instance of an interface. InterfaceImpl is a base class used when implementing an interface. Both have facilities for binding to a pipe, etc. An InterfacePtr is movable but not copyable and looks a lot like RemotePtr save for how it gets initialized (via the Bind method now).
I've added some new top-level functions:
MakeProxy - makes it easy to initialize an InterfacePtr in say a member initializer list.
BindToPipe - this is how you bind an InterfaceImpl to a pipe. once bound, they cannot be unbound until the object is destroyed or the pipe is closed.
BindToProxy - builds on top of BindToPipe, however, it hides the details of the pipe. What you get back is an InterfacePtr.
Generated C++ code now passes InterfacePtr instead of InterfaceHandle. As a result, we have far less need for typed subclasses of MessagePipeHandle, so I eliminated them. The code that needs to deal with raw handles generally has to deal with {Scoped}MessagePipeHandle, and adding strong typing to these handles doesn't seem helpful anymore.
[email protected]
Review URL: https://codereview.chromium.org/265793015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269443 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/mojo/mojo.gyp b/mojo/mojo.gyp
index 8eea547..491d8abd 100644
--- a/mojo/mojo.gyp
+++ b/mojo/mojo.gyp
@@ -75,6 +75,12 @@
'mojo_test_apk',
],
}],
+ ['OS == "linux"', {
+ 'dependencies': [
+ 'mojo_dbus_echo',
+ 'mojo_dbus_echo_service',
+ ],
+ }],
]
},
{
@@ -521,6 +527,7 @@
'mojo_gles2',
'mojo_shell_client',
'mojo_view_manager',
+ 'mojo_view_manager_bindings',
],
}, { # use_aura==0
'sources!': [