1 /****************************************************************************** 2 * 3 * Copyright 2023 NXP 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18 #pragma once 19 20 #include <aidl/android/hardware/weaver/BnWeaver.h> 21 #include <weaver-impl.h> 22 #include <weaver_interface.h> 23 24 namespace aidl { 25 namespace android { 26 namespace hardware { 27 namespace weaver { 28 29 using ::aidl::android::hardware::weaver::WeaverConfig; 30 using ::aidl::android::hardware::weaver::WeaverReadResponse; 31 using ::ndk::ScopedAStatus; 32 using std::vector; 33 34 struct Weaver : public BnWeaver { 35 public: 36 Weaver(); 37 // Methods from ::android::hardware::weaver::IWeaver follow. 38 ScopedAStatus getConfig(WeaverConfig *_aidl_return) override; 39 ScopedAStatus read(int32_t in_slotId, const vector<uint8_t> &in_key, 40 WeaverReadResponse *_aidl_return) override; 41 ScopedAStatus write(int32_t in_slotId, const vector<uint8_t> &in_key, 42 const vector<uint8_t> &in_value) override; 43 44 private: 45 WeaverInterface *pInterface = nullptr; 46 }; 47 48 } // namespace weaver 49 } // namespace hardware 50 } // namespace android 51 } // namespace aidl 52