ISafeUnion: add case w/ enum

Bug: 115638948
Test: hidl_test
Test: hidl_test_java
Change-Id: I26b5cc25bd29c420160686b5572a005a7629784c
This commit is contained in:
Steven Moreland
2018-09-13 16:05:44 -07:00
parent e1ca153525
commit 429faabc73
3 changed files with 29 additions and 0 deletions

View File

@@ -60,6 +60,9 @@ interface ISafeUnion {
} k;
SmallSafeUnion l;
BitField m;
bitfield<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<BitField> m) generates (LargeSafeUnion myUnion);
newInterfaceTypeSafeUnion() generates (InterfaceTypeSafeUnion myUnion);
setInterfaceA(InterfaceTypeSafeUnion myUnion, uint32_t a) generates (InterfaceTypeSafeUnion myUnion);

View File

@@ -153,6 +153,27 @@ Return<void> SafeUnion::setL(const LargeSafeUnion& myUnion, const SmallSafeUnion
return Void();
}
Return<void> 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<void> SafeUnion::setN(const LargeSafeUnion& myUnion, hidl_bitfield<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<void> SafeUnion::newInterfaceTypeSafeUnion(newInterfaceTypeSafeUnion_cb _hidl_cb) {
LOG(INFO) << "SERVER(SafeUnion) newInterfaceTypeSafeUnion()";

View File

@@ -47,6 +47,9 @@ struct SafeUnion : public ISafeUnion {
Return<void> setJ(const LargeSafeUnion& myUnion, const J& j, setJ_cb _hidl_cb) override;
Return<void> setK(const LargeSafeUnion& myUnion, const LargeSafeUnion::K& k, setK_cb _hidl_cb) override;
Return<void> setL(const LargeSafeUnion& myUnion, const SmallSafeUnion& l, setL_cb _hidl_cb) override;
Return<void> setM(const LargeSafeUnion& myUnion, BitField m, setL_cb _hidl_cb) override;
Return<void> setN(const LargeSafeUnion& myUnion, hidl_bitfield<BitField> n,
setL_cb _hidl_cb) override;
Return<void> newInterfaceTypeSafeUnion(newInterfaceTypeSafeUnion_cb _hidl_cb) override;
Return<void> setInterfaceA(const InterfaceTypeSafeUnion& myUnion, uint32_t a, setInterfaceA_cb _hidl_cb) override;