diff --git a/tests/safeunion/1.0/ISafeUnion.hal b/tests/safeunion/1.0/ISafeUnion.hal index c38777a9bc..f48248b51b 100644 --- a/tests/safeunion/1.0/ISafeUnion.hal +++ b/tests/safeunion/1.0/ISafeUnion.hal @@ -60,6 +60,9 @@ interface ISafeUnion { } k; SmallSafeUnion l; + + BitField m; + bitfield n; }; safe_union InterfaceTypeSafeUnion { @@ -91,6 +94,8 @@ interface ISafeUnion { setJ(LargeSafeUnion myUnion, J j) generates (LargeSafeUnion myUnion); setK(LargeSafeUnion myUnion, LargeSafeUnion.K k) generates (LargeSafeUnion myUnion); setL(LargeSafeUnion myUnion, SmallSafeUnion l) generates (LargeSafeUnion myUnion); + setM(LargeSafeUnion myUnion, BitField m) generates (LargeSafeUnion myUnion); + setN(LargeSafeUnion myUnion, bitfield m) generates (LargeSafeUnion myUnion); newInterfaceTypeSafeUnion() generates (InterfaceTypeSafeUnion myUnion); setInterfaceA(InterfaceTypeSafeUnion myUnion, uint32_t a) generates (InterfaceTypeSafeUnion myUnion); diff --git a/tests/safeunion/1.0/default/SafeUnion.cpp b/tests/safeunion/1.0/default/SafeUnion.cpp index c39566412e..4fb0974012 100644 --- a/tests/safeunion/1.0/default/SafeUnion.cpp +++ b/tests/safeunion/1.0/default/SafeUnion.cpp @@ -153,6 +153,27 @@ Return SafeUnion::setL(const LargeSafeUnion& myUnion, const SmallSafeUnion return Void(); } +Return SafeUnion::setM(const LargeSafeUnion& myUnion, BitField m, setL_cb _hidl_cb) { + LOG(INFO) << "SERVER(SafeUnion) setM(myUnion, " << toString(m) << ")"; + + LargeSafeUnion myNewUnion = myUnion; + myNewUnion.m(m); + + _hidl_cb(myNewUnion); + return Void(); +} + +Return SafeUnion::setN(const LargeSafeUnion& myUnion, hidl_bitfield n, + setL_cb _hidl_cb) { + LOG(INFO) << "SERVER(SafeUnion) setN(myUnion, " << n << ")"; + + LargeSafeUnion myNewUnion = myUnion; + myNewUnion.n(n); + + _hidl_cb(myNewUnion); + return Void(); +} + Return SafeUnion::newInterfaceTypeSafeUnion(newInterfaceTypeSafeUnion_cb _hidl_cb) { LOG(INFO) << "SERVER(SafeUnion) newInterfaceTypeSafeUnion()"; diff --git a/tests/safeunion/1.0/default/SafeUnion.h b/tests/safeunion/1.0/default/SafeUnion.h index e774e09856..ee3a95400e 100644 --- a/tests/safeunion/1.0/default/SafeUnion.h +++ b/tests/safeunion/1.0/default/SafeUnion.h @@ -47,6 +47,9 @@ struct SafeUnion : public ISafeUnion { Return setJ(const LargeSafeUnion& myUnion, const J& j, setJ_cb _hidl_cb) override; Return setK(const LargeSafeUnion& myUnion, const LargeSafeUnion::K& k, setK_cb _hidl_cb) override; Return setL(const LargeSafeUnion& myUnion, const SmallSafeUnion& l, setL_cb _hidl_cb) override; + Return setM(const LargeSafeUnion& myUnion, BitField m, setL_cb _hidl_cb) override; + Return setN(const LargeSafeUnion& myUnion, hidl_bitfield n, + setL_cb _hidl_cb) override; Return newInterfaceTypeSafeUnion(newInterfaceTypeSafeUnion_cb _hidl_cb) override; Return setInterfaceA(const InterfaceTypeSafeUnion& myUnion, uint32_t a, setInterfaceA_cb _hidl_cb) override;