xref: /aosp_15_r20/hardware/interfaces/tests/bar/1.0/default/Bar.cpp (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
1*4d7e907cSAndroid Build Coastguard Worker 
2*4d7e907cSAndroid Build Coastguard Worker #define LOG_TAG "hidl_test"
3*4d7e907cSAndroid Build Coastguard Worker 
4*4d7e907cSAndroid Build Coastguard Worker #include "Bar.h"
5*4d7e907cSAndroid Build Coastguard Worker 
6*4d7e907cSAndroid Build Coastguard Worker #include <inttypes.h>
7*4d7e907cSAndroid Build Coastguard Worker 
8*4d7e907cSAndroid Build Coastguard Worker #include <log/log.h>
9*4d7e907cSAndroid Build Coastguard Worker 
10*4d7e907cSAndroid Build Coastguard Worker namespace android {
11*4d7e907cSAndroid Build Coastguard Worker namespace hardware {
12*4d7e907cSAndroid Build Coastguard Worker namespace tests {
13*4d7e907cSAndroid Build Coastguard Worker namespace bar {
14*4d7e907cSAndroid Build Coastguard Worker namespace V1_0 {
15*4d7e907cSAndroid Build Coastguard Worker namespace implementation {
16*4d7e907cSAndroid Build Coastguard Worker 
Bar()17*4d7e907cSAndroid Build Coastguard Worker Bar::Bar() {
18*4d7e907cSAndroid Build Coastguard Worker     mFoo = IFoo::getService("", true);
19*4d7e907cSAndroid Build Coastguard Worker }
20*4d7e907cSAndroid Build Coastguard Worker 
21*4d7e907cSAndroid Build Coastguard Worker // Methods from ::android::hardware::tests::foo::V1_0::IFoo follow.
convertToBoolIfSmall(Discriminator d,const hidl_vec<Union> & u,convertToBoolIfSmall_cb _hidl_cb)22*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::convertToBoolIfSmall(Discriminator d, const hidl_vec<Union>& u,
23*4d7e907cSAndroid Build Coastguard Worker                                        convertToBoolIfSmall_cb _hidl_cb) {
24*4d7e907cSAndroid Build Coastguard Worker     return mFoo->convertToBoolIfSmall(d, u, _hidl_cb);
25*4d7e907cSAndroid Build Coastguard Worker }
26*4d7e907cSAndroid Build Coastguard Worker 
doThis(float param)27*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::doThis(float param) {
28*4d7e907cSAndroid Build Coastguard Worker     return mFoo->doThis(param);
29*4d7e907cSAndroid Build Coastguard Worker }
30*4d7e907cSAndroid Build Coastguard Worker 
doThatAndReturnSomething(int64_t param)31*4d7e907cSAndroid Build Coastguard Worker Return<int32_t> Bar::doThatAndReturnSomething(
32*4d7e907cSAndroid Build Coastguard Worker         int64_t param) {
33*4d7e907cSAndroid Build Coastguard Worker     return mFoo->doThatAndReturnSomething(param);
34*4d7e907cSAndroid Build Coastguard Worker }
35*4d7e907cSAndroid Build Coastguard Worker 
doQuiteABit(int32_t a,int64_t b,float c,double d)36*4d7e907cSAndroid Build Coastguard Worker Return<double> Bar::doQuiteABit(
37*4d7e907cSAndroid Build Coastguard Worker         int32_t a,
38*4d7e907cSAndroid Build Coastguard Worker         int64_t b,
39*4d7e907cSAndroid Build Coastguard Worker         float c,
40*4d7e907cSAndroid Build Coastguard Worker         double d) {
41*4d7e907cSAndroid Build Coastguard Worker     return mFoo->doQuiteABit(a, b, c, d);
42*4d7e907cSAndroid Build Coastguard Worker }
43*4d7e907cSAndroid Build Coastguard Worker 
doSomethingElse(const hidl_array<int32_t,15> & param,doSomethingElse_cb _cb)44*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::doSomethingElse(
45*4d7e907cSAndroid Build Coastguard Worker         const hidl_array<int32_t, 15> &param, doSomethingElse_cb _cb) {
46*4d7e907cSAndroid Build Coastguard Worker     return mFoo->doSomethingElse(param, _cb);
47*4d7e907cSAndroid Build Coastguard Worker }
48*4d7e907cSAndroid Build Coastguard Worker 
doStuffAndReturnAString(doStuffAndReturnAString_cb _cb)49*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::doStuffAndReturnAString(
50*4d7e907cSAndroid Build Coastguard Worker         doStuffAndReturnAString_cb _cb) {
51*4d7e907cSAndroid Build Coastguard Worker     return mFoo->doStuffAndReturnAString(_cb);
52*4d7e907cSAndroid Build Coastguard Worker }
53*4d7e907cSAndroid Build Coastguard Worker 
mapThisVector(const hidl_vec<int32_t> & param,mapThisVector_cb _cb)54*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::mapThisVector(
55*4d7e907cSAndroid Build Coastguard Worker         const hidl_vec<int32_t> &param, mapThisVector_cb _cb) {
56*4d7e907cSAndroid Build Coastguard Worker     return mFoo->mapThisVector(param, _cb);
57*4d7e907cSAndroid Build Coastguard Worker }
58*4d7e907cSAndroid Build Coastguard Worker 
callMe(const sp<IFooCallback> & cb)59*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::callMe(
60*4d7e907cSAndroid Build Coastguard Worker         const sp<IFooCallback> &cb) {
61*4d7e907cSAndroid Build Coastguard Worker     return mFoo->callMe(cb);
62*4d7e907cSAndroid Build Coastguard Worker }
63*4d7e907cSAndroid Build Coastguard Worker 
useAnEnum(SomeEnum param)64*4d7e907cSAndroid Build Coastguard Worker Return<Bar::SomeEnum> Bar::useAnEnum(SomeEnum param) {
65*4d7e907cSAndroid Build Coastguard Worker     return mFoo->useAnEnum(param);
66*4d7e907cSAndroid Build Coastguard Worker }
67*4d7e907cSAndroid Build Coastguard Worker 
haveAGooberVec(const hidl_vec<Goober> & param)68*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::haveAGooberVec(const hidl_vec<Goober>& param) {
69*4d7e907cSAndroid Build Coastguard Worker     return mFoo->haveAGooberVec(param);
70*4d7e907cSAndroid Build Coastguard Worker }
71*4d7e907cSAndroid Build Coastguard Worker 
haveAGoober(const Goober & g)72*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::haveAGoober(const Goober &g) {
73*4d7e907cSAndroid Build Coastguard Worker     return mFoo->haveAGoober(g);
74*4d7e907cSAndroid Build Coastguard Worker }
75*4d7e907cSAndroid Build Coastguard Worker 
haveAGooberArray(const hidl_array<Goober,20> & lots)76*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::haveAGooberArray(const hidl_array<Goober, 20> &lots) {
77*4d7e907cSAndroid Build Coastguard Worker     return mFoo->haveAGooberArray(lots);
78*4d7e907cSAndroid Build Coastguard Worker }
79*4d7e907cSAndroid Build Coastguard Worker 
haveATypeFromAnotherFile(const Abc & def)80*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::haveATypeFromAnotherFile(const Abc &def) {
81*4d7e907cSAndroid Build Coastguard Worker     return mFoo->haveATypeFromAnotherFile(def);
82*4d7e907cSAndroid Build Coastguard Worker }
83*4d7e907cSAndroid Build Coastguard Worker 
haveSomeStrings(const hidl_array<hidl_string,3> & array,haveSomeStrings_cb _cb)84*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::haveSomeStrings(
85*4d7e907cSAndroid Build Coastguard Worker         const hidl_array<hidl_string, 3> &array,
86*4d7e907cSAndroid Build Coastguard Worker         haveSomeStrings_cb _cb) {
87*4d7e907cSAndroid Build Coastguard Worker     return mFoo->haveSomeStrings(array, _cb);
88*4d7e907cSAndroid Build Coastguard Worker }
89*4d7e907cSAndroid Build Coastguard Worker 
haveAStringVec(const hidl_vec<hidl_string> & vector,haveAStringVec_cb _cb)90*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::haveAStringVec(
91*4d7e907cSAndroid Build Coastguard Worker         const hidl_vec<hidl_string> &vector,
92*4d7e907cSAndroid Build Coastguard Worker         haveAStringVec_cb _cb) {
93*4d7e907cSAndroid Build Coastguard Worker     return mFoo->haveAStringVec(vector, _cb);
94*4d7e907cSAndroid Build Coastguard Worker }
95*4d7e907cSAndroid Build Coastguard Worker 
transposeMe(const hidl_array<float,3,5> & in,transposeMe_cb _cb)96*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::transposeMe(
97*4d7e907cSAndroid Build Coastguard Worker         const hidl_array<float, 3, 5> &in, transposeMe_cb _cb) {
98*4d7e907cSAndroid Build Coastguard Worker     return mFoo->transposeMe(in, _cb);
99*4d7e907cSAndroid Build Coastguard Worker }
100*4d7e907cSAndroid Build Coastguard Worker 
callingDrWho(const MultiDimensional & in,callingDrWho_cb _hidl_cb)101*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::callingDrWho(
102*4d7e907cSAndroid Build Coastguard Worker         const MultiDimensional &in, callingDrWho_cb _hidl_cb) {
103*4d7e907cSAndroid Build Coastguard Worker     return mFoo->callingDrWho(in, _hidl_cb);
104*4d7e907cSAndroid Build Coastguard Worker }
105*4d7e907cSAndroid Build Coastguard Worker 
transpose(const StringMatrix5x3 & in,transpose_cb _hidl_cb)106*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::transpose(const StringMatrix5x3 &in, transpose_cb _hidl_cb) {
107*4d7e907cSAndroid Build Coastguard Worker     return mFoo->transpose(in, _hidl_cb);
108*4d7e907cSAndroid Build Coastguard Worker }
109*4d7e907cSAndroid Build Coastguard Worker 
transpose2(const hidl_array<hidl_string,5,3> & in,transpose2_cb _hidl_cb)110*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::transpose2(
111*4d7e907cSAndroid Build Coastguard Worker         const hidl_array<hidl_string, 5, 3> &in, transpose2_cb _hidl_cb) {
112*4d7e907cSAndroid Build Coastguard Worker     return mFoo->transpose2(in, _hidl_cb);
113*4d7e907cSAndroid Build Coastguard Worker }
114*4d7e907cSAndroid Build Coastguard Worker 
sendVec(const hidl_vec<uint8_t> & data,sendVec_cb _hidl_cb)115*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::sendVec(
116*4d7e907cSAndroid Build Coastguard Worker         const hidl_vec<uint8_t> &data, sendVec_cb _hidl_cb) {
117*4d7e907cSAndroid Build Coastguard Worker     return mFoo->sendVec(data, _hidl_cb);
118*4d7e907cSAndroid Build Coastguard Worker }
119*4d7e907cSAndroid Build Coastguard Worker 
sendVecVec(sendVecVec_cb _hidl_cb)120*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::sendVecVec(sendVecVec_cb _hidl_cb) {
121*4d7e907cSAndroid Build Coastguard Worker     return mFoo->sendVecVec(_hidl_cb);
122*4d7e907cSAndroid Build Coastguard Worker }
123*4d7e907cSAndroid Build Coastguard Worker 
haveAVectorOfInterfaces(const hidl_vec<sp<ISimple>> & in,haveAVectorOfInterfaces_cb _hidl_cb)124*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::haveAVectorOfInterfaces(
125*4d7e907cSAndroid Build Coastguard Worker         const hidl_vec<sp<ISimple> > &in,
126*4d7e907cSAndroid Build Coastguard Worker         haveAVectorOfInterfaces_cb _hidl_cb) {
127*4d7e907cSAndroid Build Coastguard Worker     _hidl_cb(in);
128*4d7e907cSAndroid Build Coastguard Worker 
129*4d7e907cSAndroid Build Coastguard Worker     return Void();
130*4d7e907cSAndroid Build Coastguard Worker }
131*4d7e907cSAndroid Build Coastguard Worker 
haveAVectorOfGenericInterfaces(const hidl_vec<sp<android::hidl::base::V1_0::IBase>> & in,haveAVectorOfGenericInterfaces_cb _hidl_cb)132*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::haveAVectorOfGenericInterfaces(
133*4d7e907cSAndroid Build Coastguard Worker         const hidl_vec<sp<android::hidl::base::V1_0::IBase> > &in,
134*4d7e907cSAndroid Build Coastguard Worker         haveAVectorOfGenericInterfaces_cb _hidl_cb) {
135*4d7e907cSAndroid Build Coastguard Worker     _hidl_cb(in);
136*4d7e907cSAndroid Build Coastguard Worker 
137*4d7e907cSAndroid Build Coastguard Worker     return Void();
138*4d7e907cSAndroid Build Coastguard Worker }
139*4d7e907cSAndroid Build Coastguard Worker 
createMyHandle(createMyHandle_cb _hidl_cb)140*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::createMyHandle(createMyHandle_cb _hidl_cb) {
141*4d7e907cSAndroid Build Coastguard Worker     return mFoo->createMyHandle(_hidl_cb);
142*4d7e907cSAndroid Build Coastguard Worker }
143*4d7e907cSAndroid Build Coastguard Worker 
createHandles(uint32_t size,createHandles_cb _hidl_cb)144*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::createHandles(uint32_t size, createHandles_cb _hidl_cb) {
145*4d7e907cSAndroid Build Coastguard Worker     return mFoo->createHandles(size, _hidl_cb);
146*4d7e907cSAndroid Build Coastguard Worker }
147*4d7e907cSAndroid Build Coastguard Worker 
closeHandles()148*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::closeHandles() {
149*4d7e907cSAndroid Build Coastguard Worker     return mFoo->closeHandles();
150*4d7e907cSAndroid Build Coastguard Worker }
151*4d7e907cSAndroid Build Coastguard Worker 
repeatWithFmq(const IFoo::WithFmq & withFmq,repeatWithFmq_cb _hidl_cb)152*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::repeatWithFmq(const IFoo::WithFmq& withFmq, repeatWithFmq_cb _hidl_cb) {
153*4d7e907cSAndroid Build Coastguard Worker     return mFoo->repeatWithFmq(withFmq, _hidl_cb);
154*4d7e907cSAndroid Build Coastguard Worker }
155*4d7e907cSAndroid Build Coastguard Worker 
echoNullInterface(const sp<IFooCallback> & cb,echoNullInterface_cb _hidl_cb)156*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::echoNullInterface(const sp<IFooCallback> &cb, echoNullInterface_cb _hidl_cb) {
157*4d7e907cSAndroid Build Coastguard Worker     return mFoo->echoNullInterface(cb, _hidl_cb);
158*4d7e907cSAndroid Build Coastguard Worker }
159*4d7e907cSAndroid Build Coastguard Worker 
160*4d7e907cSAndroid Build Coastguard Worker // Methods from ::android::hardware::tests::bar::V1_0::IBar follow.
thisIsNew()161*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::thisIsNew()  {
162*4d7e907cSAndroid Build Coastguard Worker     ALOGI("SERVER(Bar) thisIsNew");
163*4d7e907cSAndroid Build Coastguard Worker 
164*4d7e907cSAndroid Build Coastguard Worker     return Void();
165*4d7e907cSAndroid Build Coastguard Worker }
166*4d7e907cSAndroid Build Coastguard Worker 
expectNullHandle(const hidl_handle & h,const Abc & xyz,expectNullHandle_cb _hidl_cb)167*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::expectNullHandle(const hidl_handle& h, const Abc& xyz, expectNullHandle_cb _hidl_cb) {
168*4d7e907cSAndroid Build Coastguard Worker     ALOGI("SERVER(Bar) h = %p, xyz.z = %p", h.getNativeHandle(), xyz.z.getNativeHandle());
169*4d7e907cSAndroid Build Coastguard Worker     _hidl_cb(h == nullptr, xyz.z == nullptr);
170*4d7e907cSAndroid Build Coastguard Worker     return Void();
171*4d7e907cSAndroid Build Coastguard Worker }
172*4d7e907cSAndroid Build Coastguard Worker 
takeAMask(BitField bf,uint8_t first,const MyMask & second,uint8_t third,takeAMask_cb _hidl_cb)173*4d7e907cSAndroid Build Coastguard Worker Return<void> Bar::takeAMask(BitField bf, uint8_t first, const MyMask& second, uint8_t third,
174*4d7e907cSAndroid Build Coastguard Worker             takeAMask_cb _hidl_cb) {
175*4d7e907cSAndroid Build Coastguard Worker     _hidl_cb(bf, bf | first, second.value & bf, (bf | bf) & third);
176*4d7e907cSAndroid Build Coastguard Worker     return Void();
177*4d7e907cSAndroid Build Coastguard Worker }
178*4d7e907cSAndroid Build Coastguard Worker 
haveAInterface(const sp<ISimple> & in)179*4d7e907cSAndroid Build Coastguard Worker Return<sp<ISimple>> Bar::haveAInterface(const sp<ISimple> &in) {
180*4d7e907cSAndroid Build Coastguard Worker     return in;
181*4d7e907cSAndroid Build Coastguard Worker }
182*4d7e907cSAndroid Build Coastguard Worker 
183*4d7e907cSAndroid Build Coastguard Worker 
HIDL_FETCH_IBar(const char *)184*4d7e907cSAndroid Build Coastguard Worker IBar* HIDL_FETCH_IBar(const char* /* name */) {
185*4d7e907cSAndroid Build Coastguard Worker     return new Bar();
186*4d7e907cSAndroid Build Coastguard Worker }
187*4d7e907cSAndroid Build Coastguard Worker 
188*4d7e907cSAndroid Build Coastguard Worker } // namespace implementation
189*4d7e907cSAndroid Build Coastguard Worker }  // namespace V1_0
190*4d7e907cSAndroid Build Coastguard Worker }  // namespace bar
191*4d7e907cSAndroid Build Coastguard Worker }  // namespace tests
192*4d7e907cSAndroid Build Coastguard Worker }  // namespace hardware
193*4d7e907cSAndroid Build Coastguard Worker }  // namespace android
194