1/* 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16#include "generic_values.h" 17 18namespace OHOS { 19namespace Security { 20namespace AccessToken { 21void GenericValues::Put(const std::string& key, int32_t value) 22{ 23 map_.insert(std::make_pair(key, VariantValue(value))); 24} 25 26void GenericValues::Put(const std::string& key, int64_t value) 27{ 28 map_.insert(std::make_pair(key, VariantValue(value))); 29} 30 31void GenericValues::Put(const std::string& key, const std::string& value) 32{ 33 map_.insert(std::make_pair(key, VariantValue(value))); 34} 35 36void GenericValues::Put(const std::string& key, const VariantValue& value) 37{ 38 map_.insert(std::make_pair(key, value)); 39} 40 41VariantValue GenericValues::Get(const std::string& key) const 42{ 43 auto iter = map_.find(key); 44 if (iter == map_.end()) { 45 return VariantValue(); 46 } 47 return iter->second; 48} 49 50int32_t GenericValues::GetInt(const std::string& key) const 51{ 52 auto it = map_.find(key); 53 if (it == map_.end()) { 54 return VariantValue::DEFAULT_VALUE; 55 } 56 return it->second.GetInt(); 57} 58 59int64_t GenericValues::GetInt64(const std::string& key) const 60{ 61 auto it = map_.find(key); 62 if (it == map_.end()) { 63 return VariantValue::DEFAULT_VALUE; 64 } 65 return it->second.GetInt64(); 66} 67 68std::string GenericValues::GetString(const std::string& key) const 69{ 70 auto it = map_.find(key); 71 if (it == map_.end()) { 72 return std::string(); 73 } 74 return it->second.GetString(); 75} 76 77std::vector<std::string> GenericValues::GetAllKeys() const 78{ 79 std::vector<std::string> keys; 80 for (auto it = map_.begin(); it != map_.end(); ++it) { 81 keys.emplace_back(it->first); 82 } 83 return keys; 84} 85 86void GenericValues::Remove(const std::string& key) 87{ 88 if (map_.count(key) > 0) { 89 map_.erase(key); 90 } 91} 92} // namespace AccessToken 93} // namespace Security 94} // namespace OHOS 95