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

Unified Diff: mojo/public/java/bindings/src/org/chromium/mojo/bindings/Interface.java

Issue 1163843011: Java bindings: Expose unbinding a proxy. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 6 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/java/bindings/src/org/chromium/mojo/bindings/Encoder.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/java/bindings/src/org/chromium/mojo/bindings/Interface.java
diff --git a/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Interface.java b/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Interface.java
index 93fde9fa4cf5dc774f1e96742e2dbfe1eca6a970..c2bbc8ebddb4127bef1020b75395dd673b8ad691 100644
--- a/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Interface.java
+++ b/mojo/public/java/bindings/src/org/chromium/mojo/bindings/Interface.java
@@ -42,6 +42,12 @@ public interface Interface extends ConnectionErrorHandler, Closeable {
public void setErrorHandler(ConnectionErrorHandler errorHandler);
/**
+ * Unbinds the proxy and passes the handle. Can return null if the proxy is not bound or
+ * if the proxy is not over a message pipe.
+ */
+ public MessagePipeHandle passHandle();
+
+ /**
* Returns the version number of the interface that the remote side supports.
*/
public int getVersion();
@@ -156,6 +162,17 @@ public interface Interface extends ConnectionErrorHandler, Closeable {
}
/**
+ * @see Interface.Proxy.Handler#passHandle()
+ */
+ @Override
+ public MessagePipeHandle passHandle() {
+ @SuppressWarnings("unchecked")
+ HandleOwner<MessagePipeHandle> handleOwner =
+ (HandleOwner<MessagePipeHandle>) mMessageReceiver;
+ return handleOwner.passHandle();
+ }
+
+ /**
* @see Handler#getVersion()
*/
@Override
@@ -173,8 +190,8 @@ public interface Interface extends ConnectionErrorHandler, Closeable {
message.reserved1 = 0;
message.queryVersion = new QueryVersion();
- InterfaceControlMessagesHelper.sendRunMessage(getCore(), getMessageReceiver(),
- message, new Callback1<RunResponseMessageParams>() {
+ InterfaceControlMessagesHelper.sendRunMessage(getCore(), mMessageReceiver, message,
+ new Callback1<RunResponseMessageParams>() {
@Override
public void call(RunResponseMessageParams response) {
mVersion = response.queryVersionResult.version;
@@ -198,7 +215,7 @@ public interface Interface extends ConnectionErrorHandler, Closeable {
message.requireVersion = new RequireVersion();
message.requireVersion.version = version;
InterfaceControlMessagesHelper.sendRunOrClosePipeMessage(
- getCore(), getMessageReceiver(), message);
+ getCore(), mMessageReceiver, message);
}
}
@@ -354,6 +371,10 @@ public interface Interface extends ConnectionErrorHandler, Closeable {
return Pair.create(proxy, new InterfaceRequest<I>(handles.second));
}
+ public final InterfaceRequest<I> asInterfaceRequest(MessagePipeHandle handle) {
+ return new InterfaceRequest<I>(handle);
+ }
+
/**
* Binds the implementation to the given |router|.
*/
« no previous file with comments | « mojo/public/java/bindings/src/org/chromium/mojo/bindings/Encoder.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698