1/* 2 * Copyright (c) 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#include "nand_life_config.h" 16#include "memmgr_log.h" 17#include "xml_helper.h" 18 19namespace OHOS { 20namespace Memory { 21namespace { 22 const std::string TAG = "NandLifeConfig"; 23} 24 25void NandLifeConfig::SetDailySwapOutQuotaMb(unsigned long long dailySwapOutQuotaMb) 26{ 27 dailySwapOutQuotaMb_ = dailySwapOutQuotaMb; 28} 29 30unsigned long long NandLifeConfig::GetDailySwapOutQuotaMb(void) 31{ 32 return dailySwapOutQuotaMb_; 33} 34 35void NandLifeConfig::SetTotalSwapOutQuotaMb(unsigned long long totalSwapOutQuotaMb) 36{ 37 totalSwapOutQuotaMb_ = totalSwapOutQuotaMb; 38} 39 40unsigned long long NandLifeConfig::GetTotalSwapOutQuotaMb(void) 41{ 42 return totalSwapOutQuotaMb_; 43} 44 45void NandLifeConfig::ParseConfig(const xmlNodePtr &rootNodePtr) 46{ 47 if (!XmlHelper::CheckNode(rootNodePtr) || !XmlHelper::HasChild(rootNodePtr)) { 48 HILOGD("Node exsist:%{public}d,has child node:%{public}d", 49 XmlHelper::CheckNode(rootNodePtr), XmlHelper::HasChild(rootNodePtr)); 50 return; 51 } 52 53 for (xmlNodePtr currNode = rootNodePtr->xmlChildrenNode; currNode != nullptr; currNode = currNode->next) { 54 std::string key = std::string(reinterpret_cast<const char *>(currNode->name)); 55 if (key == "dailySwapOutQuotaMB") { 56 if (!XmlHelper::ParseUnsignedLongLongContent(currNode, dailySwapOutQuotaMb_)) { 57 HILOGE("parse key :<%{public}s> error", key.c_str()); 58 return; 59 } 60 HILOGI("daily_swap_out_quota_mb=%{public}llu", dailySwapOutQuotaMb_); 61 } else if (key == "totalSwapOutQuotaMB") { 62 if (!XmlHelper::ParseUnsignedLongLongContent(currNode, totalSwapOutQuotaMb_)) { 63 HILOGE("parse key :<%{public}s> error", key.c_str()); 64 return; 65 } 66 HILOGI("total_swap_out_quota_mb=%{public}llu", totalSwapOutQuotaMb_); 67 } else { 68 HILOGW("unknown key :<%{public}s>", key.c_str()); 69 } 70 } 71} 72 73void NandLifeConfig::Dump(int fd) 74{ 75 dprintf(fd, "NandLifeConfig: \n"); 76 dprintf(fd, " dailySwapOutQuotaMb: %llu\n", dailySwapOutQuotaMb_); 77 dprintf(fd, " totalSwapOutQuotaMb: %llu\n", totalSwapOutQuotaMb_); 78} 79} // namespace Memory 80} // namespace OHOS 81