1 /* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.hardware.tests.baz@1.0; 18 19 import IBase; 20 import IBazCallback; 21 22 interface IBaz extends IBase { 23 24 enum BitField : uint8_t { 25 V0 = 1 << 0, 26 V1 = 1 << 1, 27 V2 = 1 << 2, 28 V3 = 1 << 3, 29 VALL = V0 | V1 | V2 | V3, 30 }; 31 32 enum SomeOtherEnum : uint8_t { 33 bar = 66 34 }; 35 36 typedef SomeOtherEnum thisIsAnAlias; 37 typedef IBaz anIBazByAnyOtherName; 38 39 enum SomeEnum : SomeOtherEnum { 40 quux = 33, 41 goober = 192, 42 blah = goober 43 }; 44 45 typedef int32_t[3] ThreeInts; 46 struct T { 47 ThreeInts[5] matrix5x3; 48 int32_t[3][5] matrix3x5; 49 }; 50 51 struct NestedStruct { 52 int32_t a; 53 vec<T> matrices; 54 }; 55 56 struct Quux { 57 string first; 58 string last; 59 }; 60 struct Everything { 61 int8_t number; 62 int32_t anotherNumber; 63 string s; 64 vec<string> vs; 65 string[2][2] multidimArray; 66 string[3] sArray; 67 Quux anotherStruct; 68 bitfield<BitField> bf; 69 }; 70 71 @Fragile @NoReally(very="yes", array={"a","b","c"}) 72 oneway doThis(float param); 73 74 doThatAndReturnSomething(int64_t param) generates (int32_t result); 75 doQuiteABit(int32_t a, int64_t b, float c, double d) generates (double something); 76 doSomethingElse(int32_t[15] param) generates (int32_t[32] something); 77 doStuffAndReturnAString() generates (string something); 78 mapThisVector(vec<int32_t> param) generates (vec<int32_t> something); 79 callMe(IBazCallback cb); 80 81 callMeLater(IBazCallback cb); 82 iAmFreeNow(); 83 dieNow(); 84 85 useAnEnum(SomeEnum zzz) generates (SomeEnum kkk); 86 87 haveSomeStrings(string[3] array) generates (string[2] result); 88 haveAStringVec(vec<string> vector) generates (vec<string> result); 89 90 returnABunchOfStrings() generates (string a, string b, string c); 91 92 returnABitField() generates (bitfield<BitField> good); 93 94 size(uint32_t size) generates (uint32_t size); 95 96 getNestedStructs() generates(vec<NestedStruct> data); 97 }; 98