1*4d7e907cSAndroid Build Coastguard Worker /*
2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2018 The Android Open Source Project
3*4d7e907cSAndroid Build Coastguard Worker *
4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*4d7e907cSAndroid Build Coastguard Worker *
8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0
9*4d7e907cSAndroid Build Coastguard Worker *
10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License.
15*4d7e907cSAndroid Build Coastguard Worker */
16*4d7e907cSAndroid Build Coastguard Worker
17*4d7e907cSAndroid Build Coastguard Worker #include "SafeUnion.h"
18*4d7e907cSAndroid Build Coastguard Worker #include <android-base/logging.h>
19*4d7e907cSAndroid Build Coastguard Worker
20*4d7e907cSAndroid Build Coastguard Worker namespace android {
21*4d7e907cSAndroid Build Coastguard Worker namespace hardware {
22*4d7e907cSAndroid Build Coastguard Worker namespace tests {
23*4d7e907cSAndroid Build Coastguard Worker namespace safeunion {
24*4d7e907cSAndroid Build Coastguard Worker namespace V1_0 {
25*4d7e907cSAndroid Build Coastguard Worker namespace implementation {
26*4d7e907cSAndroid Build Coastguard Worker
27*4d7e907cSAndroid Build Coastguard Worker // Methods from ::android::hardware::tests::safeunion::V1_0::ISafeUnion follow.
newLargeSafeUnion(newLargeSafeUnion_cb _hidl_cb)28*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::newLargeSafeUnion(newLargeSafeUnion_cb _hidl_cb) {
29*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) newLargeSafeUnion()";
30*4d7e907cSAndroid Build Coastguard Worker
31*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion ret;
32*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(ret);
33*4d7e907cSAndroid Build Coastguard Worker return Void();
34*4d7e907cSAndroid Build Coastguard Worker }
35*4d7e907cSAndroid Build Coastguard Worker
setA(const LargeSafeUnion & myUnion,int8_t a,setA_cb _hidl_cb)36*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setA(const LargeSafeUnion& myUnion, int8_t a, setA_cb _hidl_cb) {
37*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setA(myUnion, " << a << ")";
38*4d7e907cSAndroid Build Coastguard Worker
39*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
40*4d7e907cSAndroid Build Coastguard Worker myNewUnion.a(a);
41*4d7e907cSAndroid Build Coastguard Worker
42*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
43*4d7e907cSAndroid Build Coastguard Worker return Void();
44*4d7e907cSAndroid Build Coastguard Worker }
45*4d7e907cSAndroid Build Coastguard Worker
setB(const LargeSafeUnion & myUnion,uint16_t b,setB_cb _hidl_cb)46*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setB(const LargeSafeUnion& myUnion, uint16_t b, setB_cb _hidl_cb) {
47*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setB(myUnion, " << b << ")";
48*4d7e907cSAndroid Build Coastguard Worker
49*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
50*4d7e907cSAndroid Build Coastguard Worker myNewUnion.b(b);
51*4d7e907cSAndroid Build Coastguard Worker
52*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
53*4d7e907cSAndroid Build Coastguard Worker return Void();
54*4d7e907cSAndroid Build Coastguard Worker }
55*4d7e907cSAndroid Build Coastguard Worker
setC(const LargeSafeUnion & myUnion,int32_t c,setC_cb _hidl_cb)56*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setC(const LargeSafeUnion& myUnion, int32_t c, setC_cb _hidl_cb) {
57*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setC(myUnion, " << c << ")";
58*4d7e907cSAndroid Build Coastguard Worker
59*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
60*4d7e907cSAndroid Build Coastguard Worker myNewUnion.c(c);
61*4d7e907cSAndroid Build Coastguard Worker
62*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
63*4d7e907cSAndroid Build Coastguard Worker return Void();
64*4d7e907cSAndroid Build Coastguard Worker }
65*4d7e907cSAndroid Build Coastguard Worker
setD(const LargeSafeUnion & myUnion,uint64_t d,setD_cb _hidl_cb)66*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setD(const LargeSafeUnion& myUnion, uint64_t d, setD_cb _hidl_cb) {
67*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setD(myUnion, " << d << ")";
68*4d7e907cSAndroid Build Coastguard Worker
69*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
70*4d7e907cSAndroid Build Coastguard Worker myNewUnion.d(d);
71*4d7e907cSAndroid Build Coastguard Worker
72*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
73*4d7e907cSAndroid Build Coastguard Worker return Void();
74*4d7e907cSAndroid Build Coastguard Worker }
75*4d7e907cSAndroid Build Coastguard Worker
setE(const LargeSafeUnion & myUnion,const hidl_array<int8_t,13> & e,setE_cb _hidl_cb)76*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setE(const LargeSafeUnion& myUnion, const hidl_array<int8_t, 13>& e, setE_cb _hidl_cb) {
77*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setE(myUnion, " << toString(e) << ")";
78*4d7e907cSAndroid Build Coastguard Worker
79*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
80*4d7e907cSAndroid Build Coastguard Worker myNewUnion.e(e);
81*4d7e907cSAndroid Build Coastguard Worker
82*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
83*4d7e907cSAndroid Build Coastguard Worker return Void();
84*4d7e907cSAndroid Build Coastguard Worker }
85*4d7e907cSAndroid Build Coastguard Worker
setF(const LargeSafeUnion & myUnion,const hidl_array<int64_t,5> & f,setF_cb _hidl_cb)86*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setF(const LargeSafeUnion& myUnion, const hidl_array<int64_t, 5>& f, setF_cb _hidl_cb) {
87*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setF(myUnion, " << toString(f) << ")";
88*4d7e907cSAndroid Build Coastguard Worker
89*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
90*4d7e907cSAndroid Build Coastguard Worker myNewUnion.f(f);
91*4d7e907cSAndroid Build Coastguard Worker
92*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
93*4d7e907cSAndroid Build Coastguard Worker return Void();
94*4d7e907cSAndroid Build Coastguard Worker }
95*4d7e907cSAndroid Build Coastguard Worker
setG(const LargeSafeUnion & myUnion,const hidl_string & g,setG_cb _hidl_cb)96*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setG(const LargeSafeUnion& myUnion, const hidl_string& g, setG_cb _hidl_cb) {
97*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setG(myUnion, " << toString(g) << ")";
98*4d7e907cSAndroid Build Coastguard Worker
99*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
100*4d7e907cSAndroid Build Coastguard Worker myNewUnion.g(g);
101*4d7e907cSAndroid Build Coastguard Worker
102*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
103*4d7e907cSAndroid Build Coastguard Worker return Void();
104*4d7e907cSAndroid Build Coastguard Worker }
105*4d7e907cSAndroid Build Coastguard Worker
setH(const LargeSafeUnion & myUnion,const hidl_vec<bool> & h,setH_cb _hidl_cb)106*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setH(const LargeSafeUnion& myUnion, const hidl_vec<bool>& h, setH_cb _hidl_cb) {
107*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setH(myUnion, " << toString(h) << ")";
108*4d7e907cSAndroid Build Coastguard Worker
109*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
110*4d7e907cSAndroid Build Coastguard Worker myNewUnion.h(h);
111*4d7e907cSAndroid Build Coastguard Worker
112*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
113*4d7e907cSAndroid Build Coastguard Worker return Void();
114*4d7e907cSAndroid Build Coastguard Worker }
115*4d7e907cSAndroid Build Coastguard Worker
setI(const LargeSafeUnion & myUnion,const hidl_vec<uint64_t> & i,setI_cb _hidl_cb)116*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setI(const LargeSafeUnion& myUnion, const hidl_vec<uint64_t>& i, setI_cb _hidl_cb) {
117*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setI(myUnion, " << toString(i) << ")";
118*4d7e907cSAndroid Build Coastguard Worker
119*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
120*4d7e907cSAndroid Build Coastguard Worker myNewUnion.i(i);
121*4d7e907cSAndroid Build Coastguard Worker
122*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
123*4d7e907cSAndroid Build Coastguard Worker return Void();
124*4d7e907cSAndroid Build Coastguard Worker }
125*4d7e907cSAndroid Build Coastguard Worker
setJ(const LargeSafeUnion & myUnion,const J & j,setJ_cb _hidl_cb)126*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setJ(const LargeSafeUnion& myUnion, const J& j, setJ_cb _hidl_cb) {
127*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setJ(myUnion, " << toString(j) << ")";
128*4d7e907cSAndroid Build Coastguard Worker
129*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
130*4d7e907cSAndroid Build Coastguard Worker myNewUnion.j(j);
131*4d7e907cSAndroid Build Coastguard Worker
132*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
133*4d7e907cSAndroid Build Coastguard Worker return Void();
134*4d7e907cSAndroid Build Coastguard Worker }
135*4d7e907cSAndroid Build Coastguard Worker
setK(const LargeSafeUnion & myUnion,const LargeSafeUnion::K & k,setK_cb _hidl_cb)136*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setK(const LargeSafeUnion& myUnion, const LargeSafeUnion::K& k, setK_cb _hidl_cb) {
137*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setK(myUnion, " << toString(k) << ")";
138*4d7e907cSAndroid Build Coastguard Worker
139*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
140*4d7e907cSAndroid Build Coastguard Worker myNewUnion.k(k);
141*4d7e907cSAndroid Build Coastguard Worker
142*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
143*4d7e907cSAndroid Build Coastguard Worker return Void();
144*4d7e907cSAndroid Build Coastguard Worker }
145*4d7e907cSAndroid Build Coastguard Worker
setL(const LargeSafeUnion & myUnion,const SmallSafeUnion & l,setL_cb _hidl_cb)146*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setL(const LargeSafeUnion& myUnion, const SmallSafeUnion& l, setL_cb _hidl_cb) {
147*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setL(myUnion, " << toString(l) << ")";
148*4d7e907cSAndroid Build Coastguard Worker
149*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
150*4d7e907cSAndroid Build Coastguard Worker myNewUnion.l(l);
151*4d7e907cSAndroid Build Coastguard Worker
152*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
153*4d7e907cSAndroid Build Coastguard Worker return Void();
154*4d7e907cSAndroid Build Coastguard Worker }
155*4d7e907cSAndroid Build Coastguard Worker
setM(const LargeSafeUnion & myUnion,BitField m,setL_cb _hidl_cb)156*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setM(const LargeSafeUnion& myUnion, BitField m, setL_cb _hidl_cb) {
157*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setM(myUnion, " << toString(m) << ")";
158*4d7e907cSAndroid Build Coastguard Worker
159*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
160*4d7e907cSAndroid Build Coastguard Worker myNewUnion.m(m);
161*4d7e907cSAndroid Build Coastguard Worker
162*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
163*4d7e907cSAndroid Build Coastguard Worker return Void();
164*4d7e907cSAndroid Build Coastguard Worker }
165*4d7e907cSAndroid Build Coastguard Worker
setN(const LargeSafeUnion & myUnion,hidl_bitfield<BitField> n,setL_cb _hidl_cb)166*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setN(const LargeSafeUnion& myUnion, hidl_bitfield<BitField> n,
167*4d7e907cSAndroid Build Coastguard Worker setL_cb _hidl_cb) {
168*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setN(myUnion, " << n << ")";
169*4d7e907cSAndroid Build Coastguard Worker
170*4d7e907cSAndroid Build Coastguard Worker LargeSafeUnion myNewUnion = myUnion;
171*4d7e907cSAndroid Build Coastguard Worker myNewUnion.n(n);
172*4d7e907cSAndroid Build Coastguard Worker
173*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
174*4d7e907cSAndroid Build Coastguard Worker return Void();
175*4d7e907cSAndroid Build Coastguard Worker }
176*4d7e907cSAndroid Build Coastguard Worker
newInterfaceTypeSafeUnion(newInterfaceTypeSafeUnion_cb _hidl_cb)177*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::newInterfaceTypeSafeUnion(newInterfaceTypeSafeUnion_cb _hidl_cb) {
178*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) newInterfaceTypeSafeUnion()";
179*4d7e907cSAndroid Build Coastguard Worker
180*4d7e907cSAndroid Build Coastguard Worker InterfaceTypeSafeUnion ret;
181*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(ret);
182*4d7e907cSAndroid Build Coastguard Worker return Void();
183*4d7e907cSAndroid Build Coastguard Worker }
184*4d7e907cSAndroid Build Coastguard Worker
setInterfaceA(const InterfaceTypeSafeUnion & myUnion,uint32_t a,setInterfaceA_cb _hidl_cb)185*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setInterfaceA(const InterfaceTypeSafeUnion& myUnion, uint32_t a, setInterfaceA_cb _hidl_cb) {
186*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setInterfaceA(myUnion, " << a << ")";
187*4d7e907cSAndroid Build Coastguard Worker
188*4d7e907cSAndroid Build Coastguard Worker InterfaceTypeSafeUnion myNewUnion = myUnion;
189*4d7e907cSAndroid Build Coastguard Worker myNewUnion.a(a);
190*4d7e907cSAndroid Build Coastguard Worker
191*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
192*4d7e907cSAndroid Build Coastguard Worker return Void();
193*4d7e907cSAndroid Build Coastguard Worker }
194*4d7e907cSAndroid Build Coastguard Worker
setInterfaceB(const InterfaceTypeSafeUnion & myUnion,const hidl_array<int8_t,7> & b,setInterfaceB_cb _hidl_cb)195*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setInterfaceB(const InterfaceTypeSafeUnion& myUnion, const hidl_array<int8_t, 7>& b, setInterfaceB_cb _hidl_cb) {
196*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setInterfaceB(myUnion, " << toString(b) << ")";
197*4d7e907cSAndroid Build Coastguard Worker
198*4d7e907cSAndroid Build Coastguard Worker InterfaceTypeSafeUnion myNewUnion = myUnion;
199*4d7e907cSAndroid Build Coastguard Worker myNewUnion.b(b);
200*4d7e907cSAndroid Build Coastguard Worker
201*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
202*4d7e907cSAndroid Build Coastguard Worker return Void();
203*4d7e907cSAndroid Build Coastguard Worker }
204*4d7e907cSAndroid Build Coastguard Worker
setInterfaceC(const InterfaceTypeSafeUnion & myUnion,const sp<::android::hidl::base::V1_0::IBase> & c,setInterfaceC_cb _hidl_cb)205*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setInterfaceC(const InterfaceTypeSafeUnion& myUnion,
206*4d7e907cSAndroid Build Coastguard Worker const sp<::android::hidl::base::V1_0::IBase>& c,
207*4d7e907cSAndroid Build Coastguard Worker setInterfaceC_cb _hidl_cb) {
208*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setInterfaceC(myUnion, " << toString(c) << ")";
209*4d7e907cSAndroid Build Coastguard Worker
210*4d7e907cSAndroid Build Coastguard Worker InterfaceTypeSafeUnion myNewUnion = myUnion;
211*4d7e907cSAndroid Build Coastguard Worker myNewUnion.c(c);
212*4d7e907cSAndroid Build Coastguard Worker
213*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
214*4d7e907cSAndroid Build Coastguard Worker return Void();
215*4d7e907cSAndroid Build Coastguard Worker }
216*4d7e907cSAndroid Build Coastguard Worker
setInterfaceD(const InterfaceTypeSafeUnion & myUnion,const hidl_string & d,setInterfaceD_cb _hidl_cb)217*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setInterfaceD(const InterfaceTypeSafeUnion& myUnion, const hidl_string& d,
218*4d7e907cSAndroid Build Coastguard Worker setInterfaceD_cb _hidl_cb) {
219*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setInterfaceD(myUnion, " << toString(d) << ")";
220*4d7e907cSAndroid Build Coastguard Worker
221*4d7e907cSAndroid Build Coastguard Worker InterfaceTypeSafeUnion myNewUnion = myUnion;
222*4d7e907cSAndroid Build Coastguard Worker myNewUnion.d(d);
223*4d7e907cSAndroid Build Coastguard Worker
224*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
225*4d7e907cSAndroid Build Coastguard Worker return Void();
226*4d7e907cSAndroid Build Coastguard Worker }
227*4d7e907cSAndroid Build Coastguard Worker
setInterfaceE(const InterfaceTypeSafeUnion & myUnion,const hidl_vec<hidl_string> & e,setInterfaceE_cb _hidl_cb)228*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setInterfaceE(const InterfaceTypeSafeUnion& myUnion,
229*4d7e907cSAndroid Build Coastguard Worker const hidl_vec<hidl_string>& e, setInterfaceE_cb _hidl_cb) {
230*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setInterfaceE(myUnion, " << toString(e) << ")";
231*4d7e907cSAndroid Build Coastguard Worker
232*4d7e907cSAndroid Build Coastguard Worker InterfaceTypeSafeUnion myNewUnion = myUnion;
233*4d7e907cSAndroid Build Coastguard Worker myNewUnion.e(e);
234*4d7e907cSAndroid Build Coastguard Worker
235*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
236*4d7e907cSAndroid Build Coastguard Worker return Void();
237*4d7e907cSAndroid Build Coastguard Worker }
238*4d7e907cSAndroid Build Coastguard Worker
setInterfaceF(const InterfaceTypeSafeUnion & myUnion,const hidl_handle & f,setInterfaceF_cb _hidl_cb)239*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setInterfaceF(const InterfaceTypeSafeUnion& myUnion, const hidl_handle& f,
240*4d7e907cSAndroid Build Coastguard Worker setInterfaceF_cb _hidl_cb) {
241*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setInterfaceF(myUnion, " << toString(f) << ")";
242*4d7e907cSAndroid Build Coastguard Worker
243*4d7e907cSAndroid Build Coastguard Worker InterfaceTypeSafeUnion myNewUnion = myUnion;
244*4d7e907cSAndroid Build Coastguard Worker myNewUnion.f(f);
245*4d7e907cSAndroid Build Coastguard Worker
246*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
247*4d7e907cSAndroid Build Coastguard Worker return Void();
248*4d7e907cSAndroid Build Coastguard Worker }
249*4d7e907cSAndroid Build Coastguard Worker
setInterfaceG(const InterfaceTypeSafeUnion & myUnion,const hidl_vec<hidl_handle> & g,setInterfaceG_cb _hidl_cb)250*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setInterfaceG(const InterfaceTypeSafeUnion& myUnion,
251*4d7e907cSAndroid Build Coastguard Worker const hidl_vec<hidl_handle>& g, setInterfaceG_cb _hidl_cb) {
252*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setInterfaceG(myUnion, " << toString(g) << ")";
253*4d7e907cSAndroid Build Coastguard Worker
254*4d7e907cSAndroid Build Coastguard Worker InterfaceTypeSafeUnion myNewUnion = myUnion;
255*4d7e907cSAndroid Build Coastguard Worker myNewUnion.g(g);
256*4d7e907cSAndroid Build Coastguard Worker
257*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
258*4d7e907cSAndroid Build Coastguard Worker return Void();
259*4d7e907cSAndroid Build Coastguard Worker }
260*4d7e907cSAndroid Build Coastguard Worker
newHandleTypeSafeUnion(newHandleTypeSafeUnion_cb _hidl_cb)261*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::newHandleTypeSafeUnion(newHandleTypeSafeUnion_cb _hidl_cb) {
262*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) newHandleTypeSafeUnion()";
263*4d7e907cSAndroid Build Coastguard Worker
264*4d7e907cSAndroid Build Coastguard Worker HandleTypeSafeUnion ret;
265*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(ret);
266*4d7e907cSAndroid Build Coastguard Worker return Void();
267*4d7e907cSAndroid Build Coastguard Worker }
268*4d7e907cSAndroid Build Coastguard Worker
setHandleA(const::android::hardware::tests::safeunion::V1_0::ISafeUnion::HandleTypeSafeUnion & myUnion,const hidl_handle & a,setHandleA_cb _hidl_cb)269*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setHandleA(
270*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::tests::safeunion::V1_0::ISafeUnion::HandleTypeSafeUnion& myUnion,
271*4d7e907cSAndroid Build Coastguard Worker const hidl_handle& a, setHandleA_cb _hidl_cb) {
272*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setHandleA(myUnion, " << toString(a) << ")";
273*4d7e907cSAndroid Build Coastguard Worker
274*4d7e907cSAndroid Build Coastguard Worker HandleTypeSafeUnion myNewUnion = myUnion;
275*4d7e907cSAndroid Build Coastguard Worker myNewUnion.a(a);
276*4d7e907cSAndroid Build Coastguard Worker
277*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
278*4d7e907cSAndroid Build Coastguard Worker return Void();
279*4d7e907cSAndroid Build Coastguard Worker }
280*4d7e907cSAndroid Build Coastguard Worker
setHandleB(const HandleTypeSafeUnion & myUnion,const hidl_array<hidl_handle,5> & b,setHandleB_cb _hidl_cb)281*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setHandleB(const HandleTypeSafeUnion& myUnion,
282*4d7e907cSAndroid Build Coastguard Worker const hidl_array<hidl_handle, 5>& b, setHandleB_cb _hidl_cb) {
283*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setHandleB(myUnion, " << toString(b) << ")";
284*4d7e907cSAndroid Build Coastguard Worker
285*4d7e907cSAndroid Build Coastguard Worker HandleTypeSafeUnion myNewUnion = myUnion;
286*4d7e907cSAndroid Build Coastguard Worker myNewUnion.b(b);
287*4d7e907cSAndroid Build Coastguard Worker
288*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
289*4d7e907cSAndroid Build Coastguard Worker return Void();
290*4d7e907cSAndroid Build Coastguard Worker }
291*4d7e907cSAndroid Build Coastguard Worker
setHandleC(const HandleTypeSafeUnion & myUnion,const hidl_vec<hidl_handle> & c,setHandleC_cb _hidl_cb)292*4d7e907cSAndroid Build Coastguard Worker Return<void> SafeUnion::setHandleC(const HandleTypeSafeUnion& myUnion,
293*4d7e907cSAndroid Build Coastguard Worker const hidl_vec<hidl_handle>& c, setHandleC_cb _hidl_cb) {
294*4d7e907cSAndroid Build Coastguard Worker LOG(INFO) << "SERVER(SafeUnion) setHandleC(myUnion, " << toString(c) << ")";
295*4d7e907cSAndroid Build Coastguard Worker
296*4d7e907cSAndroid Build Coastguard Worker HandleTypeSafeUnion myNewUnion = myUnion;
297*4d7e907cSAndroid Build Coastguard Worker myNewUnion.c(c);
298*4d7e907cSAndroid Build Coastguard Worker
299*4d7e907cSAndroid Build Coastguard Worker _hidl_cb(myNewUnion);
300*4d7e907cSAndroid Build Coastguard Worker return Void();
301*4d7e907cSAndroid Build Coastguard Worker }
302*4d7e907cSAndroid Build Coastguard Worker
HIDL_FETCH_ISafeUnion(const char *)303*4d7e907cSAndroid Build Coastguard Worker ISafeUnion* HIDL_FETCH_ISafeUnion(const char* /* name */) {
304*4d7e907cSAndroid Build Coastguard Worker return new SafeUnion();
305*4d7e907cSAndroid Build Coastguard Worker }
306*4d7e907cSAndroid Build Coastguard Worker
307*4d7e907cSAndroid Build Coastguard Worker } // namespace implementation
308*4d7e907cSAndroid Build Coastguard Worker } // namespace V1_0
309*4d7e907cSAndroid Build Coastguard Worker } // namespace safeunion
310*4d7e907cSAndroid Build Coastguard Worker } // namespace tests
311*4d7e907cSAndroid Build Coastguard Worker } // namespace hardware
312*4d7e907cSAndroid Build Coastguard Worker } // namespace android
313