26 std::string
toStr(std::string value)
98 std::string convertFromString<std::string>(
StringView str)
100 return std::string( str.data(), str.size() );
107 return std::stoi(str.data());
113 return std::stol(str.data());
119 return unsigned(std::stoul(str.data()));
125 return std::stoul(str.data());
134 std::string old_locale = setlocale(LC_NUMERIC,
nullptr);
135 setlocale(LC_NUMERIC,
"C");
136 double val = std::stod(str.data());
137 setlocale(LC_NUMERIC, old_locale.c_str());
144 std::string old_locale = setlocale(LC_NUMERIC,
nullptr);
145 setlocale(LC_NUMERIC,
"C");
146 float val = std::stof(str.data());
147 setlocale(LC_NUMERIC, old_locale.c_str());
152 std::vector<int> convertFromString<std::vector<int>>(
StringView str)
155 std::vector<int> output;
156 output.reserve( parts.size() );
160 output.push_back( std::strtol( part.data(), &end, 10 ) );
166 std::vector<double> convertFromString<std::vector<double>>(
StringView str)
169 std::vector<double> output;
170 output.reserve( parts.size() );
174 output.push_back( std::strtod( part.data(), &end ) );
193 else if (str.size() == 4)
195 if (str ==
"true" || str ==
"TRUE" || str ==
"True")
200 else if (str.size() == 5)
202 if (str ==
"false" || str ==
"FALSE" || str ==
"False")
207 throw RuntimeError(
"convertFromString(): invalid bool conversion");
217 throw RuntimeError(std::string(
"Cannot convert this to NodeStatus: ") + static_cast<std::string>(str) );
260 std::vector<StringView> splitted_strings;
261 splitted_strings.reserve(4);
264 while( pos < strToSplit.size())
266 size_t new_pos = strToSplit.find_first_of(delimeter, pos);
267 if( new_pos == std::string::npos)
269 new_pos = strToSplit.size();
271 StringView sv = { &strToSplit.data()[pos], new_pos - pos };
272 splitted_strings.push_back( sv );
275 return splitted_strings;
313 default_value_ =
static_cast<std::string
>(default_value_as_string);
NodeStatus convertFromString< NodeStatus >(StringView str)
PortDirection convertFromString< PortDirection >(StringView str)
StringConverter _converter
float convertFromString< float >(StringView str)
const std::type_info * _info
PortDirection direction() const
std::string toStr(T value)
std::string default_value_
const std::string & description() const
std::string toStr< NodeType >(NodeType type)
std::string toStr< NodeStatus >(NodeStatus status)
long convertFromString< long >(StringView str)
std::ostream & operator<<(std::ostream &os, const BT::NodeStatus &status)
const std::type_info * type() const
Any parseString(const char *str) const
std::vector< StringView > splitString(const StringView &strToSplit, char delimeter)
const std::string & defaultValue() const
nonstd::string_view StringView
void setDefaultValue(StringView default_value_as_string)
unsigned convertFromString< unsigned >(StringView str)
NodeType convertFromString< NodeType >(StringView str)
bool convertFromString< bool >(StringView str)
int convertFromString< int >(StringView str)
void setDescription(StringView description)
std::string toStr< PortDirection >(PortDirection direction)
NodeType
Enumerates the possible types of nodes.
double convertFromString< double >(StringView str)
unsigned long convertFromString< unsigned long >(StringView str)