From e8b01617138898377df134525912ab1df753fe2c Mon Sep 17 00:00:00 2001 From: Martijn Coenen Date: Mon, 2 Jan 2017 15:19:53 +0100 Subject: [PATCH] Callback elision for HIDL interfaces. Test: mma, hidl_test Bug: 31380743 Change-Id: Ic5390d49a9493d1180bdd8a15bc47e891637890e --- tests/bar/1.0/default/Bar.cpp | 6 ++---- tests/bar/1.0/default/Bar.h | 3 +-- tests/inheritance/1.0/default/Fetcher.cpp | 18 ++++++++---------- tests/inheritance/1.0/default/Fetcher.h | 6 +++--- 4 files changed, 14 insertions(+), 19 deletions(-) diff --git a/tests/bar/1.0/default/Bar.cpp b/tests/bar/1.0/default/Bar.cpp index 4152bb9206..16c0235f2f 100644 --- a/tests/bar/1.0/default/Bar.cpp +++ b/tests/bar/1.0/default/Bar.cpp @@ -165,10 +165,8 @@ Return Bar::takeAMask(BitField bf, uint8_t first, const MyMask& second, ui return Void(); } -Return Bar::haveAInterface(const sp &in, - haveAInterface_cb _hidl_cb) { - _hidl_cb(in); - return Void(); +Return> Bar::haveAInterface(const sp &in) { + return in; } diff --git a/tests/bar/1.0/default/Bar.h b/tests/bar/1.0/default/Bar.h index 70bffe7818..b276823b33 100644 --- a/tests/bar/1.0/default/Bar.h +++ b/tests/bar/1.0/default/Bar.h @@ -71,8 +71,7 @@ struct Bar : public IBar { Return takeAMask(BitField bf, uint8_t first, const MyMask& second, uint8_t third, takeAMask_cb _hidl_cb) override; - Return haveAInterface(const sp &in, - haveAInterface_cb _hidl_cb) override; + Return> haveAInterface(const sp &in); private: sp mFoo; diff --git a/tests/inheritance/1.0/default/Fetcher.cpp b/tests/inheritance/1.0/default/Fetcher.cpp index f3b576bedb..7094f07d15 100644 --- a/tests/inheritance/1.0/default/Fetcher.cpp +++ b/tests/inheritance/1.0/default/Fetcher.cpp @@ -17,8 +17,7 @@ Fetcher::Fetcher() { CHECK(!mPrecious->isRemote()); } -template -Return selectService(bool sendRemote, CB &_hidl_cb, sp &local) { +sp selectService(bool sendRemote, sp &local) { sp toSend; if (sendRemote) { toSend = IChild::getService("child"); @@ -29,21 +28,20 @@ Return selectService(bool sendRemote, CB &_hidl_cb, sp &local) { toSend = local; } LOG(INFO) << "SERVER(Fetcher) selectService returning " << toSend.get(); - _hidl_cb(toSend); - return Void(); + return toSend; } // Methods from ::android::hardware::tests::inheritance::V1_0::IFetcher follow. -Return Fetcher::getGrandparent(bool sendRemote, getGrandparent_cb _hidl_cb) { - return selectService(sendRemote, _hidl_cb, mPrecious); +Return> Fetcher::getGrandparent(bool sendRemote) { + return selectService(sendRemote, mPrecious); } -Return Fetcher::getParent(bool sendRemote, getParent_cb _hidl_cb) { - return selectService(sendRemote, _hidl_cb, mPrecious); +Return> Fetcher::getParent(bool sendRemote) { + return selectService(sendRemote, mPrecious); } -Return Fetcher::getChild(bool sendRemote, getChild_cb _hidl_cb) { - return selectService(sendRemote, _hidl_cb, mPrecious); +Return> Fetcher::getChild(bool sendRemote) { + return selectService(sendRemote, mPrecious); } IFetcher* HIDL_FETCH_IFetcher(const char* /* name */) { diff --git a/tests/inheritance/1.0/default/Fetcher.h b/tests/inheritance/1.0/default/Fetcher.h index da9b15357c..979b47feae 100644 --- a/tests/inheritance/1.0/default/Fetcher.h +++ b/tests/inheritance/1.0/default/Fetcher.h @@ -25,9 +25,9 @@ struct Fetcher : public IFetcher { Fetcher(); // Methods from ::android::hardware::tests::inheritance::V1_0::IFetcher follow. - Return getGrandparent(bool sendRemote, getGrandparent_cb _hidl_cb) override; - Return getParent(bool sendRemote, getParent_cb _hidl_cb) override; - Return getChild(bool sendRemote, getChild_cb _hidl_cb) override; + Return> getGrandparent(bool sendRemote) override; + Return> getParent(bool sendRemote) override; + Return> getChild(bool sendRemote) override; private: sp mPrecious;