From 73fa0a8df8203288aca032c71caa5ff47d35a3e2 Mon Sep 17 00:00:00 2001
From: Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>
Date: Thu, 17 Dec 2015 10:47:02 +0100
Subject: Remove unused functions

---
 include/astra/Utilities.h | 77 -----------------------------------------------
 1 file changed, 77 deletions(-)

(limited to 'include')

diff --git a/include/astra/Utilities.h b/include/astra/Utilities.h
index 68471d0..a3655a8 100644
--- a/include/astra/Utilities.h
+++ b/include/astra/Utilities.h
@@ -31,89 +31,12 @@ $Id$
 
 #include <string>
 #include <vector>
-#include <algorithm>
-#include <sstream>
 #include <map>
 
 #include "Globals.h"
 
 namespace astra {
 
-/**
- * This class contains some usefull static utility functions for std strings.
- */
-class StringUtil {
-
-public:
-	/**
-	 * Removes whitespace characters such as spaces and tabs at the extremas.
-	 * Optionally you can specify which extrema to trim (default=both) 
-	 *
-	 * @param _sString The string to trim.
-	 * @param _bLeft Trim the left extrema?  Default = true.
-	 * @param _bRight Trim the right extrema?  Default = true.
-	 */
-	static void trim(std::string& _sString, bool _bLeft = true, bool _bRight = true);
-
-	/**
-	 * Returns a vector of strings that contains all the substrings delimited by 
-	 * the characters in _sDelims.
-	 *
-	 * @param _sString The string to split.
-	 * @param _sDelims The delimiter string.
-	 * @return Vector of strings.
-	 */
-	static std::vector<std::string> split(const std::string& _sString, const std::string& _sDelims);
-
-	/**
-	 * Cast a string to an integer.
-	 *
-	 * @param _sString The string to cast.
-	 * @param _iValue Output integer parameter.
-	 * @return success?
-	 */
-	static bool toInt(const std::string& _sString, int& _iValue);
-
-	/**
-	 * Cast a string to a float32.
-	 *
-	 * @param _sString The string to cast.
-	 * @param _fValue Output float32 parameter.
-	 * @return success?
-	 */
-	static bool toFloat32(const std::string& _sString, float32& _fValue);
-
-	/**
-	 * Convert a string to lower case.
-	 *
-	 * @param _sString The string to convert.
-	 */
-	static void toLowerCase(std::string& _sString);
-	
-	/**
-	 * Convert a string to upper case.
-	 *
-	 * @param _sString The string to convert.
-	 */
-	static void toUpperCase(std::string& _sString);
-};
-
-/**
- * This class contains some usefull static utility functions for std strings.
- */
-class FileSystemUtil {
-
-public:
-	/**
-	 * Get the extensions of a filename.  Always in lower case.
-	 *
-	 * @param _sFilename file to get extensions from.
-	 * @return Extension (lower case).  Empty string if filename is a directory or not a valid file format.
-	 */
-	static std::string getExtension(std::string& _sFilename);
-
-
-};
 
 
 template<typename T, typename S>
-- 
cgit v1.2.3


From fc86917da1a175c04e9bd2e5f0bedb0a48a81c26 Mon Sep 17 00:00:00 2001
From: Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>
Date: Thu, 17 Dec 2015 14:37:41 +0100
Subject: Replace boost::lexical_cast by stringstreams

This is to avoid the dependence of lexical_cast on the current locale.
The stringstreams used for the new string parsing/output functions
are explicitly imbued with the C/classic locale.
---
 include/astra/Utilities.h | 51 +++++++++++++++++++++++++++++++++++++++++++++++
 include/astra/XMLNode.h   |  8 ++++++++
 2 files changed, 59 insertions(+)

(limited to 'include')

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
 	 *
-- 
cgit v1.2.3