xref: /aosp_15_r20/hardware/interfaces/tests/safeunion/1.0/default/SafeUnion.cpp (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
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