// 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? extra_bars@7; array? data@6; handle? source@9; array>? input_streams@10; array>? output_streams@11; array>? array_of_array_of_bools@12; array>>? multi_array_of_strings@13; array? 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 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 { PostMessageToPort@0(string message_text@0, Port port@1); };