185d2f8c5Sopenharmony_ci/*
285d2f8c5Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
385d2f8c5Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
485d2f8c5Sopenharmony_ci * you may not use this file except in compliance with the License.
585d2f8c5Sopenharmony_ci * You may obtain a copy of the License at
685d2f8c5Sopenharmony_ci *
785d2f8c5Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
885d2f8c5Sopenharmony_ci *
985d2f8c5Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1085d2f8c5Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1185d2f8c5Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1285d2f8c5Sopenharmony_ci * See the License for the specific language governing permissions and
1385d2f8c5Sopenharmony_ci * limitations under the License.
1485d2f8c5Sopenharmony_ci */
1585d2f8c5Sopenharmony_ci
1685d2f8c5Sopenharmony_ci#ifndef IAM_PARA2STR_H
1785d2f8c5Sopenharmony_ci#define IAM_PARA2STR_H
1885d2f8c5Sopenharmony_ci
1985d2f8c5Sopenharmony_ci#include <iomanip>
2085d2f8c5Sopenharmony_ci#include <map>
2185d2f8c5Sopenharmony_ci#include <sstream>
2285d2f8c5Sopenharmony_ci#include <string>
2385d2f8c5Sopenharmony_ci
2485d2f8c5Sopenharmony_cinamespace OHOS {
2585d2f8c5Sopenharmony_cinamespace UserIam {
2685d2f8c5Sopenharmony_cinamespace Common {
2785d2f8c5Sopenharmony_ciusing namespace std;
2885d2f8c5Sopenharmony_ciconst int32_t MASK_WIDTH = 4;
2985d2f8c5Sopenharmony_cistatic inline std::string GetMaskedString(uint16_t val)
3085d2f8c5Sopenharmony_ci{
3185d2f8c5Sopenharmony_ci    std::ostringstream ss;
3285d2f8c5Sopenharmony_ci    ss << "0xXXXX" << std::setfill('0') << std::setw(MASK_WIDTH) << std::hex << val;
3385d2f8c5Sopenharmony_ci    return ss.str();
3485d2f8c5Sopenharmony_ci}
3585d2f8c5Sopenharmony_ci
3685d2f8c5Sopenharmony_ci#define GET_MASKED_STRING(val) OHOS::UserIam::Common::GetMaskedString(static_cast<uint16_t>(val))
3785d2f8c5Sopenharmony_ci
3885d2f8c5Sopenharmony_cistatic inline std::string GetPointerNullStateString(void *p)
3985d2f8c5Sopenharmony_ci{
4085d2f8c5Sopenharmony_ci    return p == nullptr ? "null" : "non-null";
4185d2f8c5Sopenharmony_ci}
4285d2f8c5Sopenharmony_ci
4385d2f8c5Sopenharmony_cistatic inline const char *AuthTypeToStr(uint32_t authType)
4485d2f8c5Sopenharmony_ci{
4585d2f8c5Sopenharmony_ci    static std::map<uint32_t, std::string> typeNames = {{0, "All"}, {1, "Pin"}, {2, "Face"}, {4, "Fingerprint"}};
4685d2f8c5Sopenharmony_ci    if (auto iter = typeNames.find(authType); iter != typeNames.end()) {
4785d2f8c5Sopenharmony_ci        return iter->second.c_str();
4885d2f8c5Sopenharmony_ci    }
4985d2f8c5Sopenharmony_ci    return "unknown";
5085d2f8c5Sopenharmony_ci}
5185d2f8c5Sopenharmony_ci
5285d2f8c5Sopenharmony_cistatic inline const char *GetBoolStr(bool val)
5385d2f8c5Sopenharmony_ci{
5485d2f8c5Sopenharmony_ci    return val ? "true" : "false";
5585d2f8c5Sopenharmony_ci}
5685d2f8c5Sopenharmony_ci} // namespace Common
5785d2f8c5Sopenharmony_ci} // namespace UserIam
5885d2f8c5Sopenharmony_ci} // namespace OHOS
5985d2f8c5Sopenharmony_ci
6085d2f8c5Sopenharmony_ci#endif // IAM_PARA2STR_H