| // Copyright 2015 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. |
| |
| [JavaPackage="org.chromium.mojo.bindings.interfacecontrol"] |
| module mojo.interface_control2; |
| |
| // For each user-defined interface, some control functions are provided by the |
| // interface endpoints at both sides. |
| |
| //////////////////////////////////////////////////////////////////////////////// |
| // Run@0xFFFFFFFF(RunInput input) => (RunOutput? output); |
| // |
| // This control function runs the input command. If the command is not |
| // supported, |output| is set to null; otherwise |output| stores the result, |
| // whose type depends on the input. |
| |
| const uint32 kRunMessageId = 0xFFFFFFFF; |
| |
| struct RunMessageParams { |
| RunInput input; |
| }; |
| union RunInput { |
| QueryVersion query_version; |
| FlushForTesting flush_for_testing; |
| }; |
| |
| struct RunResponseMessageParams { |
| RunOutput? output; |
| }; |
| union RunOutput { |
| QueryVersionResult query_version_result; |
| }; |
| |
| // Queries the max supported version of the user-defined interface. |
| // Sent by the interface client side. |
| struct QueryVersion { |
| }; |
| struct QueryVersionResult { |
| uint32 version; |
| }; |
| |
| // Sent by either side of the interface. |
| struct FlushForTesting { |
| }; |
| |
| //////////////////////////////////////////////////////////////////////////////// |
| // RunOrClosePipe@0xFFFFFFFE(RunOrClosePipeInput input); |
| // |
| // This control function runs the input command. If the operation fails or the |
| // command is not supported, the message pipe is closed. |
| |
| const uint32 kRunOrClosePipeMessageId = 0xFFFFFFFE; |
| |
| struct RunOrClosePipeMessageParams { |
| RunOrClosePipeInput input; |
| }; |
| union RunOrClosePipeInput { |
| RequireVersion require_version; |
| }; |
| |
| // If the specified version of the user-defined interface is not supported, the |
| // function fails and the pipe is closed. |
| // Sent by the interface client side. |
| struct RequireVersion { |
| uint32 version; |
| }; |