1#ifndef ANDROID_HARDWARE_TESTS_FOO_V1_0_FOOCALLBACK_H
2#define ANDROID_HARDWARE_TESTS_FOO_V1_0_FOOCALLBACK_H
3
4#include <android/hardware/tests/foo/1.0/IFooCallback.h>
5#include <hidl/Status.h>
6#include <hidl/MQDescriptor.h>
7
8#include <utils/Condition.h>
9namespace android {
10namespace hardware {
11namespace tests {
12namespace foo {
13namespace V1_0 {
14namespace implementation {
15
16using ::android::hardware::tests::foo::V1_0::IFooCallback;
17using ::android::hardware::Return;
18using ::android::hardware::Void;
19using ::android::hardware::hidl_vec;
20using ::android::hardware::hidl_string;
21using ::android::sp;
22
23struct FooCallback : public IFooCallback {
24    FooCallback();
25    // Methods from ::android::hardware::tests::foo::V1_0::IFooCallback follow.
26    Return<void> heyItsYou(const sp<IFooCallback>& cb)  override;
27    Return<bool> heyItsYouIsntIt(const sp<IFooCallback>& cb)  override;
28    Return<void> heyItsTheMeaningOfLife(uint8_t tmol)  override;
29    Return<void> reportResults(int64_t ns, reportResults_cb _hidl_cb)  override;
30    Return<void> youBlockedMeFor(const hidl_array<int64_t, 3 /* 3 */>& callerBlockedInfo)  override;
31
32    hidl_array<InvokeInfo, 3> invokeInfo;
33    Mutex mLock;
34    Condition mCond;
35};
36
37extern "C" IFooCallback* HIDL_FETCH_IFooCallback(const char* name);
38
39}  // namespace implementation
40}  // namespace V1_0
41}  // namespace foo
42}  // namespace tests
43}  // namespace hardware
44}  // namespace android
45
46#endif  // ANDROID_HARDWARE_TESTS_FOO_V1_0_FOOCALLBACK_H
47