14f7ff21fSopenharmony_ci/* 24f7ff21fSopenharmony_ci * Copyright (c) 2022-2023 Huawei Device Co., Ltd. 34f7ff21fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 44f7ff21fSopenharmony_ci * you may not use this file except in compliance with the License. 54f7ff21fSopenharmony_ci * You may obtain a copy of the License at 64f7ff21fSopenharmony_ci * 74f7ff21fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 84f7ff21fSopenharmony_ci * 94f7ff21fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 104f7ff21fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 114f7ff21fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 124f7ff21fSopenharmony_ci * See the License for the specific language governing permissions and 134f7ff21fSopenharmony_ci * limitations under the License. 144f7ff21fSopenharmony_ci */ 154f7ff21fSopenharmony_ci 164f7ff21fSopenharmony_ci#ifndef FINGERPRINT_AUTH_DRIVER_HDI 174f7ff21fSopenharmony_ci#define FINGERPRINT_AUTH_DRIVER_HDI 184f7ff21fSopenharmony_ci 194f7ff21fSopenharmony_ci#include <vector> 204f7ff21fSopenharmony_ci 214f7ff21fSopenharmony_ci#include "iremote_broker.h" 224f7ff21fSopenharmony_ci#include "nocopyable.h" 234f7ff21fSopenharmony_ci 244f7ff21fSopenharmony_ci#include "iam_executor_iauth_driver_hdi.h" 254f7ff21fSopenharmony_ci#include "iam_executor_iauth_executor_hdi.h" 264f7ff21fSopenharmony_ci 274f7ff21fSopenharmony_ci#include "fingerprint_auth_all_in_one_executor_hdi.h" 284f7ff21fSopenharmony_ci#include "fingerprint_auth_interface_adapter.h" 294f7ff21fSopenharmony_ci 304f7ff21fSopenharmony_cinamespace OHOS { 314f7ff21fSopenharmony_cinamespace UserIam { 324f7ff21fSopenharmony_cinamespace FingerprintAuth { 334f7ff21fSopenharmony_cinamespace UserAuth = OHOS::UserIam::UserAuth; 344f7ff21fSopenharmony_ciclass FingerprintAuthDriverHdi : public UserAuth::IAuthDriverHdi, public NoCopyable { 354f7ff21fSopenharmony_cipublic: 364f7ff21fSopenharmony_ci explicit FingerprintAuthDriverHdi( 374f7ff21fSopenharmony_ci const std::shared_ptr<FingerprintAuthInterfaceAdapter> fingerprintAuthInterfaceAdapter); 384f7ff21fSopenharmony_ci ~FingerprintAuthDriverHdi() override = default; 394f7ff21fSopenharmony_ci 404f7ff21fSopenharmony_ci void GetExecutorList(std::vector<std::shared_ptr<UserAuth::IAuthExecutorHdi>> &executorList) override; 414f7ff21fSopenharmony_ci void OnHdiDisconnect() override; 424f7ff21fSopenharmony_ci 434f7ff21fSopenharmony_ciprivate: 444f7ff21fSopenharmony_ci static std::mutex mutex_; 454f7ff21fSopenharmony_ci const std::shared_ptr<FingerprintAuthInterfaceAdapter> fingerprintAuthInterfaceAdapter_; 464f7ff21fSopenharmony_ci std::vector<std::shared_ptr<FingerprintAllInOneExecutorHdi>> fingerprintAuthExecutorList_; 474f7ff21fSopenharmony_ci}; 484f7ff21fSopenharmony_ci} // namespace FingerprintAuth 494f7ff21fSopenharmony_ci} // namespace UserIam 504f7ff21fSopenharmony_ci} // namespace OHOS 514f7ff21fSopenharmony_ci 524f7ff21fSopenharmony_ci#endif // FINGERPRINT_AUTH_DRIVER_HDI