// Copyright 2014 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.test.mojom.mojo"] module mojo.test; struct StructA { uint64 i; }; struct StructB { StructA struct_a; }; struct StructC { array data; }; struct StructD { array> message_pipes; }; struct StructE { StructD struct_d; handle data_pipe_consumer; }; struct StructF { array fixed_size_array; }; struct StructG { int32 i; [MinVersion=1] StructA? struct_a; [MinVersion=3] string? str; [MinVersion=3] bool b; }; interface InterfaceA { }; enum EnumA { ENUM_A_0, ENUM_A_1 }; [Extensible] enum EnumB { ENUM_B_0, ENUM_B_1, ENUM_B_2 }; // A non-extensible enum with no values is valid, but about as useless as // you would expect: it will fail validation for all values. enum EmptyEnum {}; [Extensible] enum ExtensibleEmptyEnum {}; union UnionA { StructA struct_a; bool b; }; // This interface is used for testing bounds-checking in the mojom // binding code. If you add a method please update the files // ./data/validation/boundscheck_*. If you add a response please update // ./data/validation/resp_boundscheck_*. interface BoundsCheckTestInterface { Method0(uint8 param0) => (uint8 param0); Method1(uint8 param0); }; interface ConformanceTestInterface { Method0(float param0); Method1(StructA param0); Method2(StructB param0, StructA param1); Method3(array param0); Method4(StructC param0, array param1); Method5(StructE param0, handle param1); Method6(array> param0); Method7(StructF param0, array?, 2> param1); Method8(array?> param0); Method9(array>? param0); Method10(map param0); Method11(StructG param0); Method12(float param0) => (float param0); Method13(InterfaceA? param0, uint32 param1, InterfaceA? param2); Method14(EnumA param0, EnumB param1); Method15(array? param0, array? param1); Method16(map? param0); Method17(array param0); Method18(UnionA? param0); Method19(Recursive recursive); Method20(map param0); Method21(ExtensibleEmptyEnum param0); Method22(EmptyEnum param0); }; struct BasicStruct { int32 a; }; interface IntegrationTestInterface { Method0(BasicStruct param0) => (array param0); }; // An enum generates a enum-value validation function, so we want to test it. // E.g., valid enum values for this enum should be: -3, 0, 1, 10 enum BasicEnum { A, B, C = A, D = -3, E = 0xA }; // The enum validation function should be generated within the scope of this // struct. struct StructWithEnum { enum EnumWithin { A, B, C, D }; }; // This is used to test that deeply recursive structures don't blow the stack. struct Recursive { Recursive? recursive; };