| // Copyright 2013 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.sample"] |
| module sample; |
| |
| import "sample_import.mojom"; |
| import "sample_import2.mojom"; |
| |
| const uint8 kTwelve = 12; |
| |
| struct Bar { |
| enum Type { |
| VERTICAL = 1, |
| HORIZONTAL, |
| BOTH, |
| INVALID |
| }; |
| uint8 alpha@0 = 0xff; |
| uint8 beta@1; |
| uint8 gamma@2; |
| Type type@3 = sample.Bar.Type.VERTICAL; |
| }; |
| |
| struct Foo { |
| const string kFooby = "Fooby"; |
| string name@8 = kFooby; |
| int32 x@0; |
| int32 y@1; |
| bool a@2 = true; |
| bool b@3; |
| bool c@4; |
| Bar? bar@5; |
| array<Bar>? extra_bars@7; |
| array<uint8>? data@6; |
| handle<message_pipe>? source@9; |
| array<handle<data_pipe_consumer>>? input_streams@10; |
| array<handle<data_pipe_producer>>? output_streams@11; |
| array<array<bool>>? array_of_array_of_bools@12; |
| array<array<array<string>>>? multi_array_of_strings@13; |
| array<bool>? array_of_bools@14; |
| }; |
| |
| struct DefaultsTest { |
| int8 a0@0 = -12; |
| uint8 a1@1 = sample.kTwelve; |
| int16 a2@2 = 1234; |
| uint16 a3@3 = 34567; |
| int32 a4@4 = 123456; |
| uint32 a5@5 = 3456789012; |
| int64 a6@6 = -111111111111; |
| uint64 a7@7 = 9999999999999999999; |
| int32 a8@8 = 0x12345; |
| int32 a9@9 = -0x12345; |
| int32 a10@10 = +1234; |
| bool a11@11 = true; |
| bool a12@12 = false; |
| float a13@13 = 123.25; |
| double a14@14 = 1234567890.123; |
| double a15@15 = 1E10; |
| double a16@16 = -1.2E+20; |
| double a17@17 = +1.23E-20; |
| |
| // TODO(vtl): Add tests for default vs null when those are implemented (for |
| // structs, arrays, and strings). |
| array<uint8> a18@18; |
| string a19@19; |
| |
| Bar.Type a20@20 = BOTH; |
| imported.Point a21@21; |
| imported.Thing a22@22 = default; |
| |
| uint64 a23@23 = 0xFFFFFFFFFFFFFFFF; |
| int64 a24@24 = 0x123456789; |
| int64 a25@25 = -0x123456789; |
| |
| double a26@26 = double.INFINITY; |
| double a27@27 = double.NEGATIVE_INFINITY; |
| double a28@28 = double.NAN; |
| float a29@29 = float.INFINITY; |
| float a30@30 = float.NEGATIVE_INFINITY; |
| float a31@31 = float.NAN; |
| }; |
| |
| struct StructWithHoleV1 { |
| int32 v1 = 1; |
| int64 v2 = 2; |
| }; |
| |
| struct StructWithHoleV2 { |
| int32 v1 = 1; |
| int64 v2 = 2; |
| int32 v3 = 3; |
| }; |
| |
| interface Service { |
| enum BazOptions { |
| REGULAR = 0, |
| EXTRA |
| }; |
| const uint8 kFavoriteBaz = 1; |
| Frobinate@0(Foo? foo@0, BazOptions baz@1, Port? port@2) => (int32 result@0); |
| GetPort@1(Port& port @0); |
| }; |
| |
| // This interface is referenced above where it is defined. It also refers to |
| // itself from a method. |
| interface Port { |
| PostMessage@0(string message_text@0, Port port@1); |
| }; |