Skip to content
This repository was archived by the owner on Aug 5, 2022. It is now read-only.

Commit af6088d

Browse files
committed
Parse boolean parameters with convertTo
Instead of hard coding specific values a boolean can take, use covertTo. This means a lot of values are now taken as boolean (like "true" and "false") and not only {,0x}{0,1}. Signed-off-by: Kevin Rocard <[email protected]>
1 parent a26f0ad commit af6088d

File tree

1 file changed

+6
-18
lines changed

1 file changed

+6
-18
lines changed

parameter/BooleanParameterType.cpp

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include "BooleanParameterType.h"
3131
#include "ParameterAccessContext.h"
3232
#include "Utility.h"
33+
#include "convert.hpp"
3334

3435
#define base CParameterType
3536

@@ -47,27 +48,14 @@ std::string CBooleanParameterType::getKind() const
4748
bool CBooleanParameterType::toBlackboard(const std::string &strValue, uint32_t &uiValue,
4849
CParameterAccessContext &parameterAccessContext) const
4950
{
50-
if (strValue == "1" || strValue == "0x1") {
51-
52-
uiValue = true;
53-
} else if (strValue == "0" || strValue == "0x0") {
54-
55-
uiValue = false;
56-
} else {
57-
parameterAccessContext.setError(strValue + " value not part of numerical space {");
58-
59-
if (utility::isHexadecimal(strValue)) {
60-
61-
parameterAccessContext.appendToError("0x0, 0x1");
62-
} else {
63-
64-
parameterAccessContext.appendToError("0, 1");
65-
}
66-
parameterAccessContext.appendToError("} for " + getKind());
51+
bool value;
52+
if (not convertTo(strValue, value)) {
53+
parameterAccessContext.setError(strValue + " value is invalid for " + getKind() +
54+
", valid values are {0, 1, 0x0, 0x1, true, false}");
6755

6856
return false;
6957
}
70-
58+
uiValue = value;
7159
return true;
7260
}
7361

0 commit comments

Comments
 (0)