#define LOG_TAG "hidl_test" #include "Fetcher.h" #include <android-base/logging.h> #include <inttypes.h> namespace android { namespace hardware { namespace tests { namespace inheritance { namespace V1_0 { namespace implementation { Fetcher::Fetcher() { mPrecious = IChild::getService("local child", true); CHECK(!mPrecious->isRemote()); } sp<IChild> selectService(bool sendRemote, sp<IChild> &local) { sp<IChild> toSend; if (sendRemote) { toSend = IChild::getService("child"); if (!toSend->isRemote()) { toSend = nullptr; } } else { toSend = local; } LOG(INFO) << "SERVER(Fetcher) selectService returning " << toSend.get(); return toSend; } // Methods from ::android::hardware::tests::inheritance::V1_0::IFetcher follow. Return<sp<IGrandparent>> Fetcher::getGrandparent(bool sendRemote) { return selectService(sendRemote, mPrecious); } Return<sp<IParent>> Fetcher::getParent(bool sendRemote) { return selectService(sendRemote, mPrecious); } Return<sp<IChild>> Fetcher::getChild(bool sendRemote) { return selectService(sendRemote, mPrecious); } IFetcher* HIDL_FETCH_IFetcher(const char* /* name */) { return new Fetcher(); } } // namespace implementation } // namespace V1_0 } // namespace inheritance } // namespace tests } // namespace hardware } // namespace android