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

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

Issue 2277853003: Use unions for interface control messages. (Closed)
Patch Set: Created 4 years, 4 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: mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceControlMessagesHelper.java
diff --git a/mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceControlMessagesHelper.java b/mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceControlMessagesHelper.java
index 939fb93988a2df36618aa4a4de62e7ac8b6f6319..51f543d567eda8288fb140541b865ea9473771fa 100644
--- a/mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceControlMessagesHelper.java
+++ b/mojo/public/java/bindings/src/org/chromium/mojo/bindings/InterfaceControlMessagesHelper.java
@@ -7,6 +7,14 @@ package org.chromium.mojo.bindings;
import org.chromium.mojo.bindings.Callbacks.Callback1;
import org.chromium.mojo.bindings.Interface.Manager;
import org.chromium.mojo.bindings.Interface.Proxy;
+import org.chromium.mojo.bindings.interfacecontrol.InterfaceControlMessagesConstants;
+import org.chromium.mojo.bindings.interfacecontrol.QueryVersionResult;
+import org.chromium.mojo.bindings.interfacecontrol.RunInput;
+import org.chromium.mojo.bindings.interfacecontrol.RunMessageParams;
+import org.chromium.mojo.bindings.interfacecontrol.RunOrClosePipeInput;
+import org.chromium.mojo.bindings.interfacecontrol.RunOrClosePipeMessageParams;
+import org.chromium.mojo.bindings.interfacecontrol.RunOutput;
+import org.chromium.mojo.bindings.interfacecontrol.RunResponseMessageParams;
import org.chromium.mojo.system.Core;
/**
@@ -64,11 +72,16 @@ public class InterfaceControlMessagesHelper {
*/
public static <I extends Interface, P extends Proxy> boolean handleRun(
Core core, Manager<I, P> manager, ServiceMessage message, MessageReceiver responder) {
+ Message payload = message.getPayload();
+ RunMessageParams query = RunMessageParams.deserialize(payload);
RunResponseMessageParams response = new RunResponseMessageParams();
- response.reserved0 = 16;
- response.reserved1 = 0;
- response.queryVersionResult = new QueryVersionResult();
- response.queryVersionResult.version = manager.getVersion();
+ response.output = new RunOutput();
+ if (query.input.which() == RunInput.Tag.QueryVersion) {
+ response.output.setQueryVersionResult(new QueryVersionResult());
+ response.output.getQueryVersionResult().version = manager.getVersion();
+ } else {
+ response.output = null;
+ }
return responder.accept(response.serializeWithHeader(
core, new MessageHeader(InterfaceControlMessagesConstants.RUN_MESSAGE_ID,
@@ -84,6 +97,9 @@ public class InterfaceControlMessagesHelper {
Manager<I, P> manager, ServiceMessage message) {
Message payload = message.getPayload();
RunOrClosePipeMessageParams query = RunOrClosePipeMessageParams.deserialize(payload);
- return query.requireVersion.version <= manager.getVersion();
+ if (query.input.which() == RunOrClosePipeInput.Tag.RequireVersion) {
+ return query.input.getRequireVersion().version <= manager.getVersion();
+ }
+ return false;
}
}

Powered by Google App Engine
This is Rietveld 408576698