| /* |
| * Copyright (C) 2016 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package android.hardware.tests.baz@1.0; |
| |
| interface IBase { |
| enum SomeBaseEnum : int32_t { |
| grrr = 1, |
| }; |
| |
| struct Foo { |
| struct Bar { |
| float z; |
| string s; |
| }; |
| |
| enum FooEnum : int8_t { |
| first = 1, |
| second = 2, |
| }; |
| |
| int32_t x; |
| vec<Bar> aaa; |
| Bar y; |
| }; |
| |
| struct MoreThanOneArrayField { |
| /** |
| * Generated (Java) code used to redeclare the same variable name |
| * multiple times in the same scope, this test ensures that that's no |
| * longer the case. |
| */ |
| string[3] one; |
| string[5] two; |
| }; |
| |
| typedef string[3] ThreeStrings; |
| typedef string[5] FiveStrings; |
| |
| struct StringMatrix3x5 { |
| FiveStrings[3] s; |
| }; |
| |
| struct StringMatrix5x3 { |
| ThreeStrings[5] s; |
| }; |
| |
| typedef uint8_t[6] MacAddress; |
| |
| struct VectorOfArray { |
| vec<MacAddress> addresses; |
| }; |
| |
| enum BitField : uint8_t { |
| V0 = 1 << 0, |
| V1 = 1 << 1, |
| V2 = 1 << 2, |
| V3 = 1 << 3, |
| }; |
| |
| struct MyMask { |
| bitfield<BitField> value; |
| }; |
| |
| typedef bitfield<BitField> Mask; |
| |
| typedef uint8_t[128] ByteOneDim; |
| typedef uint8_t[8][128] ByteTwoDim; |
| typedef uint8_t[8][16][128] ByteThreeDim; |
| |
| typedef bool[128] BooleanOneDim; |
| typedef bool[8][128] BooleanTwoDim; |
| typedef bool[8][16][128] BooleanThreeDim; |
| |
| typedef double[128] DoubleOneDim; |
| typedef double[8][128] DoubleTwoDim; |
| typedef double[8][16][128] DoubleThreeDim; |
| |
| struct LotsOfPrimitiveArrays { |
| ByteOneDim byte1; |
| ByteTwoDim byte2; |
| ByteThreeDim byte3; |
| BooleanOneDim boolean1; |
| BooleanTwoDim boolean2; |
| BooleanThreeDim boolean3; |
| DoubleOneDim double1; |
| DoubleTwoDim double2; |
| DoubleThreeDim double3; |
| }; |
| |
| someBaseMethod(); |
| |
| someBoolMethod(bool x) generates (bool y); |
| someBoolArrayMethod(bool[3] x) generates (bool[4] y); |
| someBoolVectorMethod(vec<bool> x) generates (vec<bool> y); |
| |
| someOtherBaseMethod(Foo foo) generates (Foo result); |
| someMethodWithFooArrays(Foo[2] fooInput) generates (Foo[2] fooOutput); |
| someMethodWithFooVectors(vec<Foo> fooInput) generates (vec<Foo> fooOutput); |
| |
| someMethodWithVectorOfArray(VectorOfArray in) generates (VectorOfArray out); |
| |
| someMethodTakingAVectorOfArray(vec<MacAddress> in) |
| generates (vec<MacAddress> out); |
| |
| transpose(StringMatrix5x3 in) generates (StringMatrix3x5 out); |
| transpose2(ThreeStrings[5] in) generates (FiveStrings[3] out); |
| |
| takeAMask(BitField bf, bitfield<BitField> first, MyMask second, Mask third) |
| generates (BitField out, uint8_t f, uint8_t s, uint8_t t); |
| |
| testArrays(LotsOfPrimitiveArrays in) generates (LotsOfPrimitiveArrays out); |
| testByteVecs(vec<ByteOneDim> in) generates (vec<ByteOneDim> out); |
| testBooleanVecs(vec<BooleanOneDim> in) generates (vec<BooleanOneDim> out); |
| testDoubleVecs(vec<DoubleOneDim> in) generates (vec<DoubleOneDim> out); |
| }; |