Commits

Jeremy Sandell committed aa64a4b

more refactoring

Comments (0)

Files changed (1)

  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <hl7/common.hpp>
+#include <string>
+#include <vector>
+#include <pcre++.h>
 
-namespace hl7 {
-    namespace util {
-        std::vector<std::string> split(const std::string str,
-                                       const std::string delim)
-        {
-            using namespace pcrepp;
-            Pcre re(delim, "g");
-            std::vector<std::string> splitted = re.split(str);
-            return splitted;
-        }
+namespace hl7 { namespace util {
 
-        std::vector<std::string> & split(const std::string &in,
-                                         const char &delim,
-                                         std::vector<std::string> &sv)
-        {
-            int i = 0;
-            int j = in.find(delim);
+// FIXME: switch to re2 or boost. seriously.
+ 
+std::vector<std::string> split(const std::string &str,
+                               const std::string &delim)
+{
+    using namespace pcrepp;
+    Pcre re(delim, "g");
+    std::vector<std::string> splitted = re.split(str);
+    return splitted;
+}
 
-            while (j >= 0)
-            {
-                sv.push_back(in.substr(i, j-i));
-                i = ++j;
-                j = in.find(delim, j);
+std::vector<std::string> & split(const std::string &in,
+                                 const char &delim,
+                                 std::vector<std::string> &sv)
+{
+    int i = 0;
+    int j = in.find(delim);
 
-                if (j < 0) 
-                    sv.push_back(in.substr(i, in.length( )));
-            }
-            return sv;
-        }
+    while (j >= 0)
+    {
+        sv.push_back(in.substr(i, j-i));
+        i = ++j;
+        j = in.find(delim, j);
 
-        std::vector<std::string> & split(const std::string &in,
-                                         const std::string &delim,
-                                         std::vector<std::string>& sv)
-        {
-            return split(in, delim.c_str()[0], sv);
-        }
+        if (j < 0) 
+            sv.push_back(in.substr(i, in.length( )));
+    }
+    return sv;
+}
 
-        inline std::string tolower(const std::string& input_string)
-        {
-            std::string str = input_string;
+std::vector<std::string> & split(const std::string &in,
+                                 const std::string &delim,
+                                 std::vector<std::string> &sv)
+{
+    return split(in, delim.c_str()[0], sv);
+}
 
-            /* iterate through all the characters.  If uppercase,
-             * convert to lowercase. 
-             */
-            for (std::string::size_type i = 0;
-                 i < str.length();
-                 ++i)
-                if (isupper(str[i]))
-                    str[i] |= 32;
+std::string tolower(const std::string &input_string)
+{
+    std::string str = input_string;
 
-            return str;
-        }
+    /* iterate through all the characters.  If uppercase,
+     * convert to lowercase. 
+     */
+    for (std::string::size_type i = 0;
+         i < str.length();
+         ++i)
+        if (isupper(str[i]))
+            str[i] |= 32;
+
+    return str;
+}
 
 #ifdef UNSTABLE
-        /* \fn join
-         * \brief Joins a vector of T, using delimiter of string d.
-         * \param vector<T>
-         * \param string d
-         * \returns std::string of joined T, delimited with d.
-         */
-        template<typename T> std::string join(typename std::vector<T> &v, std::string &d)
-        {
-            std::string s;
-            for(typename std::vector<T>::iterator iter = v.begin();
-                iter != v.end();
-                iter++)
-            {
-                s.append((*iter));
-                if(iter != v.end() - 1)
-                    s.append(d);
-            }
-            return s;
-        };
+
+/* \fn join
+ * \brief Joins a vector of T, using delimiter of string d.
+ * \param vector<T>
+ * \param string d
+ * \returns std::string of joined T, delimited with d.
+ */
+template<typename T> std::string join(typename std::vector<T> &v, std::string &d)
+{
+    std::string s;
+    for(typename std::vector<T>::iterator iter = v.begin();
+        iter != v.end();
+        iter++)
+    {
+        s.append((*iter));
+        if(iter != v.end() - 1)
+            s.append(d);
+    }
+    return s;
+};
 #else
-        /* \fn join
-         * \brief Joins a string vector, using delimiter of string d.
-         * \param vector<string> v - vector to join.
-         * \param string d - delimiter to use.
-         *
-         * \returns string, delimited with d.
-         */
-        std::string join(std::vector<std::string> &v, std::string &d)
-        {
-            std::string s;
-            for(std::vector<std::string>::iterator iter = v.begin();
-                iter != v.end();
-                iter++)
-            {
-                s.append((*iter));
-                if(iter != v.end() - 1)
-                    s.append(d);
-            }
-            return s;
-        };
+/* \fn join
+ * \brief Joins a string vector, using delimiter of string d.
+ * \param vector<string> v - vector to join.
+ * \param string d - delimiter to use.
+ *
+ * \returns string, delimited with d.
+ */
+std::string join(std::vector<std::string> &v,
+                 std::string &d)
+{
+    std::string s;
+
+    for(std::vector<std::string>::iterator iter = v.begin();
+        iter != v.end();
+        ++iter)
+    {
+        s.append((*iter));
+
+        if(iter != v.end() - 1)
+            s.append(d);
+    }
+    return s;
+};
 
 #endif
-        std::string & rtrim(std::string &s, char c) 
-        {
-            if (!s.empty())
-            {
-                std::string::iterator p;
-                for (p = s.end(); p != s.begin() && *--p == c;);
 
-                if (*p != c)
-                    p++;
+std::string & rtrim(std::string &s, char c) 
+{
+    if (!s.empty())
+    {
+        std::string::iterator p;
+        for (p = s.end(); p != s.begin() && *--p == c;);
 
-                s.erase(p, s.end( ));
-            }
+        if (*p != c)
+            p++;
 
-            return s;
-        }
-    };
-};
+        s.erase(p, s.end( ));
+    }
+
+    return s;
+}
+
+}; // end namespace util
+
+}; // end namespace hl7