• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
16 #include "scan_option_descriptor.h"
17 #include "scan_log.h"
18 
19 namespace OHOS::Scan {
ScanOptionDescriptor()20 ScanOptionDescriptor::ScanOptionDescriptor() : optionName_(""), optionIndex_(0),
21     optionTitle_(""), optionDesc_(""),
22     optionType_(0), optionUnit_(0), optionConstraintType_(0) {
23     optionConstraintString_.clear();
24     optionConstraintNumber_.clear();
25 }
26 
ScanOptionDescriptor(const ScanOptionDescriptor & right)27 ScanOptionDescriptor::ScanOptionDescriptor(const ScanOptionDescriptor &right)
28 {
29     optionName_ = right.optionName_;
30     optionIndex_ = right.optionIndex_;
31     optionTitle_ = right.optionTitle_;
32     optionDesc_ = right.optionDesc_;
33     optionType_ = right.optionType_;
34     optionUnit_ = right.optionUnit_;
35     optionConstraintType_ = right.optionConstraintType_;
36     optionConstraintString_.assign(right.optionConstraintString_.begin(), right.optionConstraintString_.end());
37     optionConstraintNumber_.assign(right.optionConstraintNumber_.begin(), right.optionConstraintNumber_.end());
38     optionConstraintRange_ = right.optionConstraintRange_;
39 }
40 
operator =(const ScanOptionDescriptor & right)41 ScanOptionDescriptor &ScanOptionDescriptor::operator=(const ScanOptionDescriptor &right)
42 {
43     if (this != &right) {
44         optionName_ = right.optionName_;
45         optionIndex_ = right.optionIndex_;
46         optionTitle_ = right.optionTitle_;
47         optionDesc_ = right.optionDesc_;
48         optionType_ = right.optionType_;
49         optionUnit_ = right.optionUnit_;
50         optionConstraintType_ = right.optionConstraintType_;
51         optionConstraintString_.assign(right.optionConstraintString_.begin(), right.optionConstraintString_.end());
52         optionConstraintNumber_.assign(right.optionConstraintNumber_.begin(), right.optionConstraintNumber_.end());
53         optionConstraintRange_ = right.optionConstraintRange_;
54     }
55     return *this;
56 }
57 
SetOptionName(const std::string & optionName)58 void ScanOptionDescriptor::SetOptionName(const std::string &optionName)
59 {
60     optionName_ = optionName;
61 }
62 
SetOptionIndex(const uint32_t & optionIndex)63 void ScanOptionDescriptor::SetOptionIndex(const uint32_t& optionIndex)
64 {
65     optionIndex_ = optionIndex;
66 }
67 
SetOptionTitle(const std::string & optionTitle)68 void ScanOptionDescriptor::SetOptionTitle(const std::string &optionTitle)
69 {
70     optionTitle_ = optionTitle;
71 }
72 
SetOptionDesc(const std::string & optionDesc)73 void ScanOptionDescriptor::SetOptionDesc(const std::string &optionDesc)
74 {
75     optionDesc_ = optionDesc;
76 }
77 
SetOptionType(const uint32_t & optionType)78 void ScanOptionDescriptor::SetOptionType(const uint32_t &optionType)
79 {
80     optionType_ = optionType;
81 }
82 
SetOptionUnit(const uint32_t & optionUnit)83 void ScanOptionDescriptor::SetOptionUnit(const uint32_t &optionUnit)
84 {
85     optionUnit_ = optionUnit;
86 }
87 
SetOptionConstraintType(const uint32_t & optionConstraintType)88 void ScanOptionDescriptor::SetOptionConstraintType(const uint32_t &optionConstraintType)
89 {
90     optionConstraintType_ = optionConstraintType;
91 }
92 
SetOptionConstraintString(const std::vector<std::string> & optionConstraintString)93 void ScanOptionDescriptor::SetOptionConstraintString(const std::vector<std::string> &optionConstraintString)
94 {
95     optionConstraintString_.assign(optionConstraintString.begin(), optionConstraintString.end());
96 }
97 
SetOptionConstraintNumber(const std::vector<int32_t> & optionConstraintNumber)98 void ScanOptionDescriptor::SetOptionConstraintNumber(const std::vector<int32_t> &optionConstraintNumber)
99 {
100     optionConstraintNumber_.assign(optionConstraintNumber.begin(), optionConstraintNumber.end());
101 }
102 
SetOptionConstraintRange(const ScanRange & optionConstraintRange)103 void ScanOptionDescriptor::SetOptionConstraintRange(const ScanRange &optionConstraintRange)
104 {
105     optionConstraintRange_ = optionConstraintRange;
106 }
107 
GetOptionName() const108 std::string ScanOptionDescriptor::GetOptionName() const
109 {
110     return optionName_;
111 }
112 
GetOptionIndex() const113 uint32_t ScanOptionDescriptor::GetOptionIndex() const
114 {
115     return optionIndex_;
116 }
117 
GetOptionTitle() const118 std::string ScanOptionDescriptor::GetOptionTitle() const
119 {
120     return optionTitle_;
121 }
122 
GetOptionDesc() const123 std::string ScanOptionDescriptor::GetOptionDesc() const
124 {
125     return optionDesc_;
126 }
127 
GetOptionType() const128 uint32_t ScanOptionDescriptor::GetOptionType() const
129 {
130     return optionType_;
131 }
132 
GetOptionUnit() const133 uint32_t ScanOptionDescriptor::GetOptionUnit() const
134 {
135     return optionUnit_;
136 }
137 
GetOptionConstraintType() const138 uint32_t ScanOptionDescriptor::GetOptionConstraintType() const
139 {
140     return optionConstraintType_;
141 }
142 
GetOptionConstraintString(std::vector<std::string> & optionConstraintString) const143 void ScanOptionDescriptor::GetOptionConstraintString(std::vector<std::string> &optionConstraintString) const
144 {
145     optionConstraintString.assign(optionConstraintString_.begin(), optionConstraintString_.end());
146 }
147 
GetOptionConstraintNumber(std::vector<int32_t> & optionConstraintNumber) const148 void ScanOptionDescriptor::GetOptionConstraintNumber(std::vector<int32_t> &optionConstraintNumber) const
149 {
150     optionConstraintNumber.assign(optionConstraintNumber_.begin(), optionConstraintNumber_.end());
151 }
152 
GetOptionConstraintRange(ScanRange & optionConstraintRange) const153 void ScanOptionDescriptor::GetOptionConstraintRange(ScanRange &optionConstraintRange) const
154 {
155     optionConstraintRange = optionConstraintRange_;
156 }
157 
ReadFromParcel(Parcel & parcel)158 void ScanOptionDescriptor::ReadFromParcel(Parcel &parcel)
159 {
160     SetOptionName(parcel.ReadString());
161     SetOptionTitle(parcel.ReadString());
162     SetOptionDesc(parcel.ReadString());
163     SetOptionType(parcel.ReadUint32());
164     SetOptionUnit(parcel.ReadUint32());
165 
166     SetOptionConstraintType(parcel.ReadUint32());
167 
168     std::vector<std::string> optionConstraintString;
169     parcel.ReadStringVector(&optionConstraintString);
170     if (optionConstraintString.size() > 0) {
171         SetOptionConstraintString(optionConstraintString);
172     }
173 
174     std::vector<std::int32_t> optionConstraintNumber;
175     parcel.ReadInt32Vector(&optionConstraintNumber);
176     if (optionConstraintNumber.size() > 0) {
177         SetOptionConstraintNumber(optionConstraintNumber);
178     }
179 
180     auto scanRange = ScanRange::Unmarshalling(parcel);
181     if (scanRange != nullptr) {
182         ScanRange optionConstraintRange = *scanRange;
183         SetOptionConstraintRange(optionConstraintRange);
184     }
185 }
186 
Marshalling(Parcel & parcel) const187 bool ScanOptionDescriptor::Marshalling(Parcel &parcel) const
188 {
189     parcel.WriteString(optionName_);
190     parcel.WriteString(optionTitle_);
191     parcel.WriteString(optionDesc_);
192     parcel.WriteUint32(optionType_);
193     parcel.WriteUint32(optionUnit_);
194 
195     parcel.WriteUint32(optionConstraintType_);
196 
197     parcel.WriteStringVector(optionConstraintString_);
198 
199     parcel.WriteInt32Vector(optionConstraintNumber_);
200 
201     optionConstraintRange_.Marshalling(parcel);
202     return true;
203 }
204 
Unmarshalling(Parcel & parcel)205 std::shared_ptr<ScanOptionDescriptor> ScanOptionDescriptor::Unmarshalling(Parcel &parcel)
206 {
207     auto nativeObj = std::make_shared<ScanOptionDescriptor>();
208     nativeObj->ReadFromParcel(parcel);
209     return nativeObj;
210 }
211 
Dump()212 void ScanOptionDescriptor::Dump()
213 {
214     SCAN_HILOGD("optionName = %{public}s", optionName_.c_str());
215     SCAN_HILOGD("optionTitle = %{public}s", optionTitle_.c_str());
216     SCAN_HILOGD("optionDesc = %{public}s", optionDesc_.c_str());
217     SCAN_HILOGD("optionType = %{public}d", optionType_);
218     SCAN_HILOGD("optionUnit = %{public}d", optionUnit_);
219 
220     SCAN_HILOGD("optionConstraintType = %{public}d", optionConstraintType_);
221     for (const auto& str : optionConstraintString_) {
222         SCAN_HILOGD("str = %{public}s", str.c_str());
223     }
224     for (const auto& number : optionConstraintNumber_) {
225         SCAN_HILOGD("number = %{public}d", number);
226     }
227     optionConstraintRange_.Dump();
228 }
229 }  // namespace OHOS::Scan
230