| // Copyright 2020 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This is the boilerplate implementation of the IAllocator HAL interface, |
| // generated by the hidl-gen tool and then modified for use on Chrome OS. |
| // Modifications include: |
| // - Removal of non boiler plate client and server related code. |
| // - Reformatting to meet the Chrome OS coding standards. |
| // |
| // Originally generated with the command: |
| // $ hidl-gen -o output -L c++-adapter -r android.hardware:hardware/interfaces \ |
| // android.hardware.neuralnetworks@1.2 |
| |
| #include <android/hardware/neuralnetworks/1.2/APreparedModel.h> |
| #include <android/hardware/neuralnetworks/1.0/AExecutionCallback.h> |
| #include <android/hardware/neuralnetworks/1.0/APreparedModel.h> |
| #include <android/hardware/neuralnetworks/1.2/ABurstCallback.h> |
| #include <android/hardware/neuralnetworks/1.2/ABurstContext.h> |
| #include <android/hardware/neuralnetworks/1.2/AExecutionCallback.h> |
| #include <android/hardware/neuralnetworks/1.2/IPreparedModel.h> |
| #include <hidladapter/HidlBinderAdapter.h> |
| |
| /* |
| #include <android/hardware/neuralnetworks/1.2/AExecutionCallback.h> |
| #include <android/hidl/base/1.0/ABase.h> |
| */ |
| |
| namespace android { |
| namespace hardware { |
| namespace neuralnetworks { |
| namespace V1_2 { |
| |
| APreparedModel::APreparedModel( |
| const ::android::sp< |
| ::android::hardware::neuralnetworks::V1_2::IPreparedModel>& impl) |
| : mImpl(impl) { |
| } // Methods from ::android::hardware::neuralnetworks::V1_0::IPreparedModel |
| // follow. |
| ::android::hardware::Return< |
| ::android::hardware::neuralnetworks::V1_0::ErrorStatus> |
| APreparedModel::execute( |
| const ::android::hardware::neuralnetworks::V1_0::Request& request, |
| const ::android::sp< |
| ::android::hardware::neuralnetworks::V1_0::IExecutionCallback>& |
| callback) { |
| auto _hidl_out = mImpl->execute( |
| request, |
| static_cast<::android::sp< |
| ::android::hardware::neuralnetworks::V1_0::IExecutionCallback>>( |
| ::android::hardware::neuralnetworks::V1_0::IExecutionCallback:: |
| castFrom(::android::hardware::details::adaptWithDefault( |
| static_cast< |
| ::android::sp<::android::hardware::neuralnetworks::V1_0:: |
| IExecutionCallback>>(callback), |
| [&] { |
| return new ::android::hardware::neuralnetworks::V1_0:: |
| AExecutionCallback(callback); |
| })))); |
| if (!_hidl_out.isOkUnchecked()) { |
| return _hidl_out; |
| } |
| return _hidl_out; |
| } |
| |
| // Methods from ::android::hardware::neuralnetworks::V1_2::IPreparedModel |
| // follow. |
| ::android::hardware::Return< |
| ::android::hardware::neuralnetworks::V1_0::ErrorStatus> |
| APreparedModel::execute_1_2( |
| const ::android::hardware::neuralnetworks::V1_0::Request& request, |
| ::android::hardware::neuralnetworks::V1_2::MeasureTiming measure, |
| const ::android::sp< |
| ::android::hardware::neuralnetworks::V1_2::IExecutionCallback>& |
| callback) { |
| auto _hidl_out = mImpl->execute_1_2( |
| request, measure, |
| static_cast<::android::sp< |
| ::android::hardware::neuralnetworks::V1_2::IExecutionCallback>>( |
| ::android::hardware::neuralnetworks::V1_2::IExecutionCallback:: |
| castFrom(::android::hardware::details::adaptWithDefault( |
| static_cast< |
| ::android::sp<::android::hardware::neuralnetworks::V1_2:: |
| IExecutionCallback>>(callback), |
| [&] { |
| return new ::android::hardware::neuralnetworks::V1_2:: |
| AExecutionCallback(callback); |
| })))); |
| if (!_hidl_out.isOkUnchecked()) { |
| return _hidl_out; |
| } |
| return _hidl_out; |
| } |
| ::android::hardware::Return<void> APreparedModel::executeSynchronously( |
| const ::android::hardware::neuralnetworks::V1_0::Request& request, |
| ::android::hardware::neuralnetworks::V1_2::MeasureTiming measure, |
| executeSynchronously_cb _hidl_cb) { |
| executeSynchronously_cb _hidl_cb_wrapped = |
| [&](::android::hardware::neuralnetworks::V1_0::ErrorStatus status, |
| const ::android::hardware::hidl_vec< |
| ::android::hardware::neuralnetworks::V1_2::OutputShape>& |
| outputShapes, |
| const ::android::hardware::neuralnetworks::V1_2::Timing& timing) { |
| return _hidl_cb(status, outputShapes, timing); |
| }; |
| auto _hidl_out = |
| mImpl->executeSynchronously(request, measure, _hidl_cb_wrapped); |
| return _hidl_out; |
| } |
| ::android::hardware::Return<void> APreparedModel::configureExecutionBurst( |
| const ::android::sp< |
| ::android::hardware::neuralnetworks::V1_2::IBurstCallback>& callback, |
| const ::android::hardware::MQDescriptorSync< |
| ::android::hardware::neuralnetworks::V1_2::FmqRequestDatum>& |
| requestChannel, |
| const ::android::hardware::MQDescriptorSync< |
| ::android::hardware::neuralnetworks::V1_2::FmqResultDatum>& |
| resultChannel, |
| configureExecutionBurst_cb _hidl_cb) { |
| configureExecutionBurst_cb _hidl_cb_wrapped = |
| [&](::android::hardware::neuralnetworks::V1_0::ErrorStatus status, |
| const ::android::sp< |
| ::android::hardware::neuralnetworks::V1_2::IBurstContext>& |
| context) { |
| return _hidl_cb( |
| status, |
| static_cast<::android::sp< |
| ::android::hardware::neuralnetworks::V1_2::IBurstContext>>( |
| ::android::hardware::neuralnetworks::V1_2::IBurstContext:: |
| castFrom(::android::hardware::details::adaptWithDefault( |
| static_cast< |
| ::android::sp<::android::hardware::neuralnetworks:: |
| V1_2::IBurstContext>>(context), |
| [&] { |
| return new ::android::hardware::neuralnetworks::V1_2:: |
| ABurstContext(context); |
| })))); |
| }; |
| auto _hidl_out = mImpl->configureExecutionBurst( |
| static_cast<::android::sp< |
| ::android::hardware::neuralnetworks::V1_2::IBurstCallback>>( |
| ::android::hardware::neuralnetworks::V1_2::IBurstCallback::castFrom( |
| ::android::hardware::details::adaptWithDefault( |
| static_cast< |
| ::android::sp<::android::hardware::neuralnetworks::V1_2:: |
| IBurstCallback>>(callback), |
| [&] { |
| return new ::android::hardware::neuralnetworks::V1_2:: |
| ABurstCallback(callback); |
| }))), |
| requestChannel, resultChannel, _hidl_cb_wrapped); |
| return _hidl_out; |
| } |
| |
| // Methods from ::android::hidl::base::V1_0::IBase follow. |
| |
| } // namespace V1_2 |
| } // namespace neuralnetworks |
| } // namespace hardware |
| } // namespace android |