summaryrefslogtreecommitdiffstats
path: root/include/astra
diff options
context:
space:
mode:
Diffstat (limited to 'include/astra')
-rw-r--r--include/astra/Utilities.h51
-rw-r--r--include/astra/XMLNode.h8
2 files changed, 59 insertions, 0 deletions
diff --git a/include/astra/Utilities.h b/include/astra/Utilities.h
index a3655a8..3ae0e6c 100644
--- a/include/astra/Utilities.h
+++ b/include/astra/Utilities.h
@@ -39,6 +39,57 @@ namespace astra {
+namespace StringUtil {
+
+// Exception thrown by functions below
+class bad_cast : public std::exception {
+public:
+ bad_cast() { }
+};
+
+
+//< Parse string as int.
+//< Throw exception on failure.
+int stringToInt(const std::string& s);
+
+//< Parse string as float.
+//< Throw exception on failure.
+float stringToFloat(const std::string& s);
+
+//< Parse string as double.
+//< Throw exception on failure.
+double stringToDouble(const std::string& s);
+
+template<typename T>
+T stringTo(const std::string& s);
+
+//< Parse comma/semicolon-separated string as float vector.
+//< Throw exception on failure.
+std::vector<float> stringToFloatVector(const std::string& s);
+
+//< Parse comma/semicolon-separated string as double vector.
+//< Throw exception on failure.
+std::vector<double> stringToDoubleVector(const std::string& s);
+
+template<typename T>
+std::vector<T> stringToVector(const std::string& s);
+
+
+
+//< Generate string from float.
+std::string floatToString(float f);
+
+//< Generate string from double.
+std::string doubleToString(double f);
+
+template<typename T>
+std::string toString(T f);
+
+}
+
+
+
+
template<typename T, typename S>
std::map<T,S> mergeMap(std::map<T,S> _mMap1, std::map<T,S> _mMap2)
{
diff --git a/include/astra/XMLNode.h b/include/astra/XMLNode.h
index 4d29d5c..7d1edf5 100644
--- a/include/astra/XMLNode.h
+++ b/include/astra/XMLNode.h
@@ -101,6 +101,12 @@ public:
*/
string getContent() const;
+ /** Get the content of the XML node as an integer
+ *
+ * @return node content
+ */
+ int getContentInt() const;
+
/** Get the content of the XML node as a numerical.
*
* @return node content
@@ -152,6 +158,7 @@ public:
*/
float32 getAttributeNumerical(string _sName, float32 _fDefaultValue = 0) const;
double getAttributeNumericalDouble(string _sName, double _fDefaultValue = 0) const;
+ int getAttributeInt(string _sName, int _fDefaultValue = 0) const;
/** Get the value of a boolean attribute.
*
@@ -186,6 +193,7 @@ public:
* @return option value, _fDefaultValue if the option doesn't exist
*/
float32 getOptionNumerical(string _sKey, float32 _fDefaultValue = 0) const;
+ int getOptionInt(string _sKey, int _fDefaultValue = 0) const;
/** Get the value of an option within this XML Node
*