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 "memmgr_log.h"
16 #include "xml_helper.h"
17 #include "reclaim_strategy_constants.h"
18 #include "avail_buffer_config.h"
19
20 namespace OHOS {
21 namespace Memory {
22 namespace {
23 const std::string TAG = "AvailBufferConfig";
24 }
25
AvailBufferConfig()26 AvailBufferConfig::AvailBufferConfig()
27 {
28 }
29
AvailBufferConfig(unsigned int availBuffer,unsigned int minAvailBuffer,unsigned int highAvailBuffer,unsigned int swapReserve)30 AvailBufferConfig::AvailBufferConfig(unsigned int availBuffer, unsigned int minAvailBuffer,
31 unsigned int highAvailBuffer, unsigned int swapReserve)
32 : availBuffer_(availBuffer),
33 minAvailBuffer_(minAvailBuffer),
34 highAvailBuffer_(highAvailBuffer),
35 swapReserve_(highAvailBuffer)
36 {
37 }
38
SetDefaultConfig(unsigned int availBuffer,unsigned int minAvailBuffer,unsigned int highAvailBuffer,unsigned int swapReserve)39 void AvailBufferConfig::SetDefaultConfig(unsigned int availBuffer, unsigned int minAvailBuffer,
40 unsigned int highAvailBuffer, unsigned int swapReserve)
41 {
42 SetAvailBuffer(availBuffer);
43 SetMinAvailBuffer(minAvailBuffer);
44 SetHighAvailBuffer(highAvailBuffer);
45 SetSwapReserve(swapReserve);
46 }
47
ParseConfig(const xmlNodePtr & rootNodePtr)48 void AvailBufferConfig::ParseConfig(const xmlNodePtr &rootNodePtr)
49 {
50 if (!XmlHelper::CheckNode(rootNodePtr) || !XmlHelper::HasChild(rootNodePtr)) {
51 HILOGD("Node exsist:%{public}d,has child node:%{public}d",
52 XmlHelper::CheckNode(rootNodePtr), XmlHelper::HasChild(rootNodePtr));
53 return;
54 }
55
56 std::map<std::string, std::string> param;
57 if (!XmlHelper::GetModuleParam(rootNodePtr, param)) {
58 HILOGW("Get moudle param failed.");
59 return;
60 }
61 SetAvailBufferConfig(param);
62 }
63
SetAvailBufferConfig(std::map<std::string,std::string> & param)64 void AvailBufferConfig::SetAvailBufferConfig(std::map<std::string, std::string> ¶m)
65 {
66 XmlHelper::SetUnsignedIntParam(param, "availBuffer", availBuffer_, AVAIL_BUFFER);
67 XmlHelper::SetUnsignedIntParam(param, "minAvailBuffer", minAvailBuffer_, MIN_AVAIL_BUFFER);
68 XmlHelper::SetUnsignedIntParam(param, "highAvailBuffer", highAvailBuffer_, HIGH_AVAIL_BUFFER);
69 XmlHelper::SetUnsignedIntParam(param, "swapReserve", swapReserve_, SWAP_RESERVE);
70 }
71
GetAvailBuffer()72 unsigned int AvailBufferConfig::GetAvailBuffer()
73 {
74 return availBuffer_;
75 }
76
SetAvailBuffer(unsigned int availBuffer)77 void AvailBufferConfig::SetAvailBuffer(unsigned int availBuffer)
78 {
79 availBuffer_ = availBuffer;
80 }
81
GetMinAvailBuffer()82 unsigned int AvailBufferConfig::GetMinAvailBuffer()
83 {
84 return minAvailBuffer_;
85 }
86
SetMinAvailBuffer(unsigned int minAvailBuffer)87 void AvailBufferConfig::SetMinAvailBuffer(unsigned int minAvailBuffer)
88 {
89 minAvailBuffer_ = minAvailBuffer;
90 }
91
GetHighAvailBuffer()92 unsigned int AvailBufferConfig::GetHighAvailBuffer()
93 {
94 return highAvailBuffer_;
95 }
96
SetHighAvailBuffer(unsigned int highAvailBuffer)97 void AvailBufferConfig::SetHighAvailBuffer(unsigned int highAvailBuffer)
98 {
99 highAvailBuffer_ = highAvailBuffer;
100 }
101
GetSwapReserve()102 unsigned int AvailBufferConfig::GetSwapReserve()
103 {
104 return swapReserve_;
105 }
106
SetSwapReserve(unsigned int swapReserve)107 void AvailBufferConfig::SetSwapReserve(unsigned int swapReserve)
108 {
109 swapReserve_ = swapReserve;
110 }
111
Dump(int fd)112 void AvailBufferConfig::Dump(int fd)
113 {
114 dprintf(fd, "AvailBufferConfig: \n");
115 dprintf(fd, " availBuffer: %u\n", availBuffer_);
116 dprintf(fd, " minAvailBuffer: %u\n", minAvailBuffer_);
117 dprintf(fd, " highAvailBuffer: %u\n", highAvailBuffer_);
118 dprintf(fd, " swapReserve: %u\n", swapReserve_);
119 }
120 } // namespace Memory
121 } // namespace OHOS
122