1fc0b0055Sopenharmony_ci/* 2fc0b0055Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 3fc0b0055Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fc0b0055Sopenharmony_ci * you may not use this file except in compliance with the License. 5fc0b0055Sopenharmony_ci * You may obtain a copy of the License at 6fc0b0055Sopenharmony_ci * 7fc0b0055Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fc0b0055Sopenharmony_ci * 9fc0b0055Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fc0b0055Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fc0b0055Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fc0b0055Sopenharmony_ci * See the License for the specific language governing permissions and 13fc0b0055Sopenharmony_ci * limitations under the License. 14fc0b0055Sopenharmony_ci */ 15fc0b0055Sopenharmony_ci 16fc0b0055Sopenharmony_ci#ifndef ACCESS_TOKEN_LIBRARY_LOADER_H 17fc0b0055Sopenharmony_ci#define ACCESS_TOKEN_LIBRARY_LOADER_H 18fc0b0055Sopenharmony_ci 19fc0b0055Sopenharmony_ci#include <string> 20fc0b0055Sopenharmony_ci 21fc0b0055Sopenharmony_cinamespace OHOS { 22fc0b0055Sopenharmony_cinamespace Security { 23fc0b0055Sopenharmony_cinamespace AccessToken { 24fc0b0055Sopenharmony_ci 25fc0b0055Sopenharmony_ciclass LibraryLoader { 26fc0b0055Sopenharmony_cipublic: 27fc0b0055Sopenharmony_ci LibraryLoader(const std::string& path); 28fc0b0055Sopenharmony_ci ~LibraryLoader(); 29fc0b0055Sopenharmony_ci template<typename T> T* GetObject() 30fc0b0055Sopenharmony_ci { 31fc0b0055Sopenharmony_ci return reinterpret_cast<T*>(instance_); 32fc0b0055Sopenharmony_ci }; 33fc0b0055Sopenharmony_ci 34fc0b0055Sopenharmony_ciprivate: 35fc0b0055Sopenharmony_ci void* handle_ = nullptr; 36fc0b0055Sopenharmony_ci void* instance_ = nullptr; 37fc0b0055Sopenharmony_ci void Create(); 38fc0b0055Sopenharmony_ci void Destroy(); 39fc0b0055Sopenharmony_ci bool PrintErrorLog(const std::string& targetName); 40fc0b0055Sopenharmony_ci}; 41fc0b0055Sopenharmony_ci} // AccessToken 42fc0b0055Sopenharmony_ci} // Security 43fc0b0055Sopenharmony_ci} // OHOS 44fc0b0055Sopenharmony_ci#endif // ACCESS_TOKEN_LIBRARY_LOADER_H