+#include <config.h>
+
const DataType *ConfigKey::data_type() const
{
const struct sr_key_info *info = sr_key_info_get(SR_KEY_CONFIG, id());
return DataType::get(info->datatype);
}
-string ConfigKey::identifier() const
+std::string ConfigKey::identifier() const
{
const struct sr_key_info *info = sr_key_info_get(SR_KEY_CONFIG, id());
if (!info)
return valid_string(info->id);
}
-string ConfigKey::description() const
+std::string ConfigKey::description() const
{
const struct sr_key_info *info = sr_key_info_get(SR_KEY_CONFIG, id());
if (!info)
return valid_string(info->name);
}
-const ConfigKey *ConfigKey::get_by_identifier(string identifier)
+const ConfigKey *ConfigKey::get_by_identifier(std::string identifier)
{
const struct sr_key_info *info = sr_key_info_name_get(SR_KEY_CONFIG, identifier.c_str());
if (!info)
return get(info->key);
}
-#include <config.h>
-
#ifndef HAVE_STOI_STOD
/* Fallback implementation of stoi and stod */
}
#endif
-Glib::VariantBase ConfigKey::parse_string(string value) const
+Glib::VariantBase ConfigKey::parse_string(std::string value, enum sr_datatype dt)
{
GVariant *variant;
uint64_t p, q;
- switch (data_type()->id())
+ switch (dt)
{
case SR_T_UINT64:
check(sr_parse_sizestring(value.c_str(), &p));
case SR_T_FLOAT:
try {
variant = g_variant_new_double(stod(value));
- } catch (invalid_argument) {
+ } catch (invalid_argument&) {
throw Error(SR_ERR_ARG);
}
break;
case SR_T_INT32:
try {
variant = g_variant_new_int32(stoi(value));
- } catch (invalid_argument) {
+ } catch (invalid_argument&) {
throw Error(SR_ERR_ARG);
}
break;
return Glib::VariantBase(variant, false);
}
+Glib::VariantBase ConfigKey::parse_string(std::string value) const
+{
+ enum sr_datatype dt = (enum sr_datatype)(data_type()->id());
+ return parse_string(value, dt);
+}