From 6f85c869bae88fa96cc9de21e53f4cde23e87550 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Tue, 5 Jan 2016 13:11:33 -0500 Subject: [PATCH] configuration: use typeCast instead of epicsParse* Since typeCast wraps epicsParse*, including base 3.14 compatibility. --- src/utils/configuration.cpp | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/utils/configuration.cpp b/src/utils/configuration.cpp index a49e2db..d5fa1ac 100644 --- a/src/utils/configuration.cpp +++ b/src/utils/configuration.cpp @@ -14,6 +14,7 @@ #include #include +#include #include #include @@ -283,32 +284,29 @@ bool Configuration::getPropertyAsBoolean(const std::string &name, const bool def epics::pvData::int32 Configuration::getPropertyAsInteger(const std::string &name, const epics::pvData::int32 defaultValue) const { - epicsInt32 ret; - std::string val(getPropertyAsString(name, "")); - - if(epicsParseInt32(val.c_str(), &ret, 0, NULL)) + try{ + return castUnsafe(getPropertyAsString(name, "")); + }catch(std::runtime_error&){ return defaultValue; - return ret; + } } float Configuration::getPropertyAsFloat(const std::string &name, const float defaultValue) const { - float ret; - std::string val(getPropertyAsString(name, "")); - - if(epicsParseFloat(val.c_str(), &ret, NULL)) + try{ + return castUnsafe(getPropertyAsString(name, "")); + }catch(std::runtime_error&){ return defaultValue; - return ret; + } } double Configuration::getPropertyAsDouble(const std::string &name, const double defaultValue) const { - double ret; - std::string val(getPropertyAsString(name, "")); - - if(epicsParseDouble(val.c_str(), &ret, NULL)) + try { + return castUnsafe(getPropertyAsString(name, "")); + }catch(std::runtime_error&){ return defaultValue; - return ret; + } } std::string Configuration::getPropertyAsString(const std::string &name, const std::string &defaultValue) const