Mercurial > hg > orthanc
comparison OrthancServer/Search/DatabaseConstraint.cpp @ 3078:147497152ce3 db-changes
fix
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 03 Jan 2019 12:47:17 +0100 |
parents | aae1d6d31fef |
children | df1b17be20f6 |
comparison
equal
deleted
inserted
replaced
3077:aae1d6d31fef | 3078:147497152ce3 |
---|---|
174 constraintType_(Plugins::Convert(constraint.type)), | 174 constraintType_(Plugins::Convert(constraint.type)), |
175 caseSensitive_(constraint.isCaseSensitive), | 175 caseSensitive_(constraint.isCaseSensitive), |
176 mandatory_(constraint.isMandatory) | 176 mandatory_(constraint.isMandatory) |
177 { | 177 { |
178 if (constraintType_ != ConstraintType_List && | 178 if (constraintType_ != ConstraintType_List && |
179 values_.size() != 1) | 179 constraint.valuesCount != 1) |
180 { | 180 { |
181 throw OrthancException(ErrorCode_ParameterOutOfRange); | 181 throw OrthancException(ErrorCode_ParameterOutOfRange); |
182 } | 182 } |
183 | 183 |
184 values_.resize(constraint.valuesCount); | 184 values_.resize(constraint.valuesCount); |
185 | 185 |
186 for (uint32_t i = 0; i < constraint.valuesCount; i++) | 186 for (uint32_t i = 0; i < constraint.valuesCount; i++) |
187 { | 187 { |
188 assert(constraint.values[i] != NULL); | |
188 values_[i].assign(constraint.values[i]); | 189 values_[i].assign(constraint.values[i]); |
189 } | 190 } |
190 } | 191 } |
191 #endif | 192 #endif |
192 | 193 |
221 void DatabaseConstraint::EncodeForPlugins(OrthancPluginDatabaseConstraint& constraint, | 222 void DatabaseConstraint::EncodeForPlugins(OrthancPluginDatabaseConstraint& constraint, |
222 std::vector<const char*>& tmpValues) const | 223 std::vector<const char*>& tmpValues) const |
223 { | 224 { |
224 memset(&constraint, 0, sizeof(constraint)); | 225 memset(&constraint, 0, sizeof(constraint)); |
225 | 226 |
227 tmpValues.resize(values_.size()); | |
228 | |
229 for (size_t i = 0; i < values_.size(); i++) | |
230 { | |
231 tmpValues[i] = values_[i].c_str(); | |
232 } | |
233 | |
226 constraint.level = Plugins::Convert(level_); | 234 constraint.level = Plugins::Convert(level_); |
227 constraint.tagGroup = tag_.GetGroup(); | 235 constraint.tagGroup = tag_.GetGroup(); |
228 constraint.tagElement = tag_.GetElement(); | 236 constraint.tagElement = tag_.GetElement(); |
229 constraint.isIdentifierTag = isIdentifier_; | 237 constraint.isIdentifierTag = isIdentifier_; |
230 constraint.isCaseSensitive = caseSensitive_; | 238 constraint.isCaseSensitive = caseSensitive_; |
231 constraint.isMandatory = mandatory_; | 239 constraint.isMandatory = mandatory_; |
232 constraint.type = Plugins::Convert(constraintType_); | 240 constraint.type = Plugins::Convert(constraintType_); |
233 constraint.valuesCount = values_.size(); | 241 constraint.valuesCount = values_.size(); |
234 | 242 constraint.values = (tmpValues.empty() ? NULL : &tmpValues[0]); |
235 tmpValues.resize(values_.size()); | |
236 | |
237 for (size_t i = 0; i < values_.size(); i++) | |
238 { | |
239 tmpValues[i] = values_[i].c_str(); | |
240 } | |
241 } | 243 } |
242 #endif | 244 #endif |
243 } | 245 } |