]> git.stg.codes - stg.git/commitdiff
Moved base and utility classes from global scope.
authorMaxim Mamontov <faust.madf@gmail.com>
Fri, 20 Sep 2013 22:23:31 +0000 (01:23 +0300)
committerMaxim Mamontov <faust.madf@gmail.com>
Fri, 20 Sep 2013 22:23:31 +0000 (01:23 +0300)
13 files changed:
stglibs/srvconf.lib/include/stg/parser.h [deleted file]
stglibs/srvconf.lib/include/stg/property_parsers.h [deleted file]
stglibs/srvconf.lib/parser.h [new file with mode: 0644]
stglibs/srvconf.lib/parser_auth_by.h
stglibs/srvconf.lib/parser_check_user.h
stglibs/srvconf.lib/parser_chg_user.h
stglibs/srvconf.lib/parser_get_user.cpp
stglibs/srvconf.lib/parser_get_user.h
stglibs/srvconf.lib/parser_get_users.h
stglibs/srvconf.lib/parser_send_message.h
stglibs/srvconf.lib/parser_server_info.h
stglibs/srvconf.lib/property_parsers.cpp
stglibs/srvconf.lib/property_parsers.h [new file with mode: 0644]

diff --git a/stglibs/srvconf.lib/include/stg/parser.h b/stglibs/srvconf.lib/include/stg/parser.h
deleted file mode 100644 (file)
index 8d695a3..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *    This program is free software; you can redistribute it and/or modify
- *    it under the terms of the GNU General Public License as published by
- *    the Free Software Foundation; either version 2 of the License, or
- *    (at your option) any later version.
- *
- *    This program is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU General Public License for more details.
- *
- *    You should have received a copy of the GNU General Public License
- *    along with this program; if not, write to the Free Software
- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-/*
- *    Author : Boris Mikhailenko <stg34@stargazer.dp.ua>
- *    Author : Maxim Mamontov <faust@stargazer.dp.ua>
- */
-
-#ifndef __STG_STGLIBS_SRVCONF_PARSER_H__
-#define __STG_STGLIBS_SRVCONF_PARSER_H__
-
-namespace STG
-{
-
-class PARSER
-{
-public:
-    virtual ~PARSER() {}
-    virtual int ParseStart(const char *el, const char **attr) = 0;
-    virtual void ParseEnd(const char *el) = 0;
-};
-
-} // namespace STG
-
-#endif
diff --git a/stglibs/srvconf.lib/include/stg/property_parsers.h b/stglibs/srvconf.lib/include/stg/property_parsers.h
deleted file mode 100644 (file)
index d1e6a89..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- *    This program is free software; you can redistribute it and/or modify
- *    it under the terms of the GNU General Public License as published by
- *    the Free Software Foundation; either version 2 of the License, or
- *    (at your option) any later version.
- *
- *    This program is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU General Public License for more details.
- *
- *    You should have received a copy of the GNU General Public License
- *    along with this program; if not, write to the Free Software
- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-/*
- *    Author : Maxim Mamontov <faust@stargazer.dp.ua>
- */
-
-#ifndef __STG_STGLIBS_SRVCONF_PROPERTY_PARSERS_H__
-#define __STG_STGLIBS_SRVCONF_PROPERTY_PARSERS_H__
-
-#include <map>
-#include <string>
-
-#include "stg/common.h"
-
-class BASE_PROPERTY_PARSER
-{
-    public:
-        virtual ~BASE_PROPERTY_PARSER() {}
-        virtual bool Parse(const char ** attr) = 0;
-};
-
-template <typename T>
-class PROPERTY_PARSER : public BASE_PROPERTY_PARSER
-{
-    public:
-        typedef bool (* FUNC)(const char **, T &);
-        PROPERTY_PARSER(T & v, FUNC f) : value(v), func(f) {}
-        virtual bool Parse(const char ** attr) { return func(attr, value); }
-    private:
-        T & value;
-        FUNC func;
-};
-
-typedef std::map<std::string, BASE_PROPERTY_PARSER *> PROPERTY_PARSERS;
-
-bool CheckValue(const char ** attr);
-
-template <typename T>
-inline
-bool GetValue(const char ** attr, T & value)
-{
-if (CheckValue(attr))
-    if (str2x(attr[1], value) < 0)
-        return false;
-return true;
-}
-
-template <>
-inline
-bool GetValue<std::string>(const char ** attr, std::string & value)
-{
-if (!CheckValue(attr))
-    return false;
-value = attr[1];
-return true;
-}
-
-template <>
-inline
-bool GetValue<double>(const char ** attr, double & value)
-{
-if (CheckValue(attr))
-    if (strtodouble2(attr[1], value))
-        return false;
-return true;
-}
-
-bool GetEncodedValue(const char ** attr, std::string & value);
-
-bool GetIPValue(const char ** attr, uint32_t& value);
-
-template <typename T>
-void AddParser(PROPERTY_PARSERS & parsers, const std::string & name, T & value, const typename PROPERTY_PARSER<T>::FUNC & func = GetValue<T>);
-
-template <typename T>
-inline
-void AddParser(PROPERTY_PARSERS & parsers, const std::string & name, T & value, const typename PROPERTY_PARSER<T>::FUNC & func)
-{
-    parsers.insert(std::make_pair(ToLower(name), new PROPERTY_PARSER<T>(value, func)));
-}
-
-bool TryParse(PROPERTY_PARSERS & parsers, const std::string & name, const char ** attr);
-
-#endif
diff --git a/stglibs/srvconf.lib/parser.h b/stglibs/srvconf.lib/parser.h
new file mode 100644 (file)
index 0000000..8d695a3
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ *    This program is free software; you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation; either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    This program is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with this program; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*
+ *    Author : Boris Mikhailenko <stg34@stargazer.dp.ua>
+ *    Author : Maxim Mamontov <faust@stargazer.dp.ua>
+ */
+
+#ifndef __STG_STGLIBS_SRVCONF_PARSER_H__
+#define __STG_STGLIBS_SRVCONF_PARSER_H__
+
+namespace STG
+{
+
+class PARSER
+{
+public:
+    virtual ~PARSER() {}
+    virtual int ParseStart(const char *el, const char **attr) = 0;
+    virtual void ParseEnd(const char *el) = 0;
+};
+
+} // namespace STG
+
+#endif
index 4e94267ce689136ab8f2dba0ffa786896f2aa7bf..c4757cf9699ce97392f3887f50689a1bf2c7ceea 100644 (file)
 #ifndef __STG_STGLIBS_SRVCONF_PARSER_AUTH_BY_H__
 #define __STG_STGLIBS_SRVCONF_PARSER_AUTH_BY_H__
 
-#include "stg/parser.h"
+#include "parser.h"
 
 #include "stg/servconf_types.h"
 
-#include <vector>
 #include <string>
 
 namespace STG
@@ -37,9 +36,10 @@ class PARSER: public STG::PARSER
 {
 public:
     PARSER();
-    int  ParseStart(const char *el, const char **attr);
-    void ParseEnd(const char *el);
+    int  ParseStart(const char * el, const char ** attr);
+    void ParseEnd(const char * el);
     void SetCallback(CALLBACK f, void * data);
+
 private:
     CALLBACK callback;
     void * data;
index 11d6ab966818dd54ffde5df5e329e0fb36fd5b7a..95658c3895f9682513b5a235fa9e416b4f845661 100644 (file)
 #ifndef __STG_STGLIBS_SRVCONF_PARSER_CHECK_USER_H__
 #define __STG_STGLIBS_SRVCONF_PARSER_CHECK_USER_H__
 
-#include "stg/parser.h"
-#include "stg/servconf_types.h"
+#include "parser.h"
 
-#include <string>
+#include "stg/servconf_types.h"
 
 namespace STG
 {
@@ -35,11 +34,11 @@ namespace CHECK_USER
 class PARSER: public STG::PARSER
 {
 public:
-
     PARSER();
     int  ParseStart(const char * el, const char ** attr);
     void ParseEnd(const char * el);
     void SetCallback(CALLBACK f, void * data);
+
 private:
     CALLBACK callback;
     void * data;
index d74dea76585db1db725d7ed5337cc08fee7aacf5..63c528d018142b8d61cb5ad11d9f89bf8ba7aadb 100644 (file)
@@ -22,7 +22,8 @@
 #ifndef __STG_STGLIBS_SRVCONF_PARSER_CHG_USER_H__
 #define __STG_STGLIBS_SRVCONF_PARSER_CHG_USER_H__
 
-#include "stg/parser.h"
+#include "parser.h"
+
 #include "stg/servconf_types.h"
 
 namespace STG
@@ -33,11 +34,11 @@ namespace CHG_USER
 class PARSER: public STG::PARSER
 {
 public:
-
     PARSER();
     int  ParseStart(const char * el, const char ** attr);
     void ParseEnd(const char * el);
     void SetCallback(CALLBACK f, void * data);
+
 private:
     CALLBACK callback;
     void * data;
index 45f5e6ea92da090e8feb4bbb9ef373c022ea657d..2c398914bac0c40f7ad9cc843767bb9147b8ae31 100644 (file)
@@ -31,6 +31,9 @@
 
 using namespace STG;
 
+namespace STG
+{
+
 template <>
 bool GetValue<GET_USER::STAT>(const char ** attr, GET_USER::STAT & value)
 {
@@ -56,6 +59,8 @@ while (attr[pos])
 return true;
 }
 
+}
+
 GET_USER::PARSER::PARSER()
     : callback(NULL),
       data(NULL),
index 871dd21170d8df0d94d3fa978225dfb176f3edbf..c8c371d767db8cf738bf3a6bb376493a61842863 100644 (file)
 #ifndef __STG_STGLIBS_SRVCONF_PARSER_GET_USER_H__
 #define __STG_STGLIBS_SRVCONF_PARSER_GET_USER_H__
 
-#include "stg/parser.h"
+#include "parser.h"
+#include "property_parsers.h"
 
-#include "stg/property_parsers.h"
 #include "stg/servconf_types.h"
 
 #include <string>
 
-#include <ctime>
-
 namespace STG
 {
 namespace GET_USER
@@ -39,12 +37,12 @@ namespace GET_USER
 class PARSER: public STG::PARSER
 {
 public:
-
     PARSER();
     virtual ~PARSER();
-    int  ParseStart(const char *el, const char **attr);
-    void ParseEnd(const char *el);
+    int  ParseStart(const char * el, const char ** attr);
+    void ParseEnd(const char * el);
     void SetCallback(CALLBACK f, void * data);
+
 private:
     PROPERTY_PARSERS propertyParsers;
     CALLBACK callback;
@@ -54,8 +52,8 @@ private:
     bool parsingAnswer;
     std::string error;
 
-    void ParseUser(const char *el, const char **attr);
-    void ParseUserParams(const char *el, const char **attr);
+    void ParseUser(const char * el, const char ** attr);
+    void ParseUserParams(const char * el, const char ** attr);
 };
 
 } // namespace GET_USER
index 55258186ee2388ded09d2552123686376efdda55..ea9966eee6bdf49f9828bd3bc2a216e6cbf4a90a 100644 (file)
 #ifndef __STG_STGLIBS_SRVCONF_PARSER_GET_USERS_H__
 #define __STG_STGLIBS_SRVCONF_PARSER_GET_USERS_H__
 
-#include "stg/parser.h"
-#include "stg/servconf_types.h"
-
+#include "parser.h"
 #include "parser_get_user.h"
 
-#include <vector>
+#include "stg/servconf_types.h"
+
+#include <string>
 
 namespace STG
 {
@@ -38,11 +38,11 @@ namespace GET_USERS
 class PARSER: public STG::PARSER
 {
 public:
-
     PARSER();
     int  ParseStart(const char * el, const char ** attr);
     void ParseEnd(const char * el);
     void SetCallback(CALLBACK f, void * data);
+
 private:
     CALLBACK callback;
     void * data;
index fc1f020dc91bfa6d7248bc3700bc8c4b69fab04a..27903bc0cb8b34b8507fdb44b8d1f55c6f4ff854 100644 (file)
 #ifndef __STG_STGLIBS_SRVCONF_PARSER_SEND_MESSAGE_H__
 #define __STG_STGLIBS_SRVCONF_PARSER_SEND_MESSAGE_H__
 
-#include "stg/parser.h"
-#include "stg/servconf_types.h"
+#include "parser.h"
 
-#include <string>
+#include "stg/servconf_types.h"
 
 namespace STG
 {
@@ -39,6 +38,7 @@ public:
     int  ParseStart(const char * el, const char ** attr);
     void ParseEnd(const char * el);
     void SetCallback(CALLBACK f, void * data);
+
 private:
     CALLBACK callback;
     void * data;
index 2e91106c8767147694d64f4ec748b52e17c66830..9ac23ee8437d189bd8c68538f696fd2d52f85691 100644 (file)
@@ -22,9 +22,9 @@
 #ifndef __STG_STGLIBS_SRVCONF_PARSER_SERVER_INFO_H__
 #define __STG_STGLIBS_SRVCONF_PARSER_SERVER_INFO_H__
 
-#include "stg/parser.h"
+#include "parser.h"
+#include "property_parsers.h"
 
-#include "stg/property_parsers.h"
 #include "stg/servconf_types.h"
 
 #include <string>
@@ -37,11 +37,11 @@ namespace SERVER_INFO
 class PARSER: public STG::PARSER
 {
 public:
-
     PARSER();
     int  ParseStart(const char * el, const char ** attr);
     void ParseEnd(const char * el);
     void SetCallback(CALLBACK f, void * data);
+
 private:
     PROPERTY_PARSERS propertyParsers;
     CALLBACK callback;
index fcb9020aa9bc6ddfd0708af3909ec82a0e5dc05b..5d4577dc43ffd0a5b2ca0ff9ee2ab7ee5c123557 100644 (file)
  *    Author : Maxim Mamontov <faust@stargazer.dp.ua>
  */
 
-#include "stg/property_parsers.h"
+#include "property_parsers.h"
 
 #include <strings.h>
 
-bool CheckValue(const char ** attr)
+bool STG::CheckValue(const char ** attr)
 {
 return attr && attr[0] && attr[1] && strcasecmp(attr[0], "value") == 0;
 }
 
-bool GetEncodedValue(const char ** attr, std::string & value)
+bool STG::GetEncodedValue(const char ** attr, std::string & value)
 {
 if (!CheckValue(attr))
     return false;
@@ -35,7 +35,7 @@ Decode21str(value, attr[1]);
 return true;
 }
 
-bool GetIPValue(const char ** attr, uint32_t & value)
+bool STG::GetIPValue(const char ** attr, uint32_t & value)
 {
 if (!CheckValue(attr))
     return false;
@@ -46,7 +46,7 @@ if (value == 0 && ip != "0.0.0.0")
 return true;
 }
 
-bool TryParse(PROPERTY_PARSERS & parsers, const std::string & name, const char ** attr)
+bool STG::TryParse(PROPERTY_PARSERS & parsers, const std::string & name, const char ** attr)
 {
     PROPERTY_PARSERS::iterator it(parsers.find(name));
     if (it != parsers.end())
diff --git a/stglibs/srvconf.lib/property_parsers.h b/stglibs/srvconf.lib/property_parsers.h
new file mode 100644 (file)
index 0000000..3469b98
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ *    This program is free software; you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation; either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    This program is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with this program; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*
+ *    Author : Maxim Mamontov <faust@stargazer.dp.ua>
+ */
+
+#ifndef __STG_STGLIBS_SRVCONF_PROPERTY_PARSERS_H__
+#define __STG_STGLIBS_SRVCONF_PROPERTY_PARSERS_H__
+
+#include "stg/common.h"
+
+#include <map>
+#include <string>
+
+namespace STG
+{
+
+class BASE_PROPERTY_PARSER
+{
+    public:
+        virtual ~BASE_PROPERTY_PARSER() {}
+        virtual bool Parse(const char ** attr) = 0;
+};
+
+template <typename T>
+class PROPERTY_PARSER : public BASE_PROPERTY_PARSER
+{
+    public:
+        typedef bool (* FUNC)(const char **, T &);
+        PROPERTY_PARSER(T & v, FUNC f) : value(v), func(f) {}
+        virtual bool Parse(const char ** attr) { return func(attr, value); }
+    private:
+        T & value;
+        FUNC func;
+};
+
+typedef std::map<std::string, BASE_PROPERTY_PARSER *> PROPERTY_PARSERS;
+
+bool CheckValue(const char ** attr);
+
+template <typename T>
+inline
+bool GetValue(const char ** attr, T & value)
+{
+if (CheckValue(attr))
+    if (str2x(attr[1], value) < 0)
+        return false;
+return true;
+}
+
+template <>
+inline
+bool GetValue<std::string>(const char ** attr, std::string & value)
+{
+if (!CheckValue(attr))
+    return false;
+value = attr[1];
+return true;
+}
+
+template <>
+inline
+bool GetValue<double>(const char ** attr, double & value)
+{
+if (CheckValue(attr))
+    if (strtodouble2(attr[1], value))
+        return false;
+return true;
+}
+
+bool GetEncodedValue(const char ** attr, std::string & value);
+
+bool GetIPValue(const char ** attr, uint32_t& value);
+
+template <typename T>
+void AddParser(PROPERTY_PARSERS & parsers, const std::string & name, T & value, const typename PROPERTY_PARSER<T>::FUNC & func = GetValue<T>);
+
+template <typename T>
+inline
+void AddParser(PROPERTY_PARSERS & parsers, const std::string & name, T & value, const typename PROPERTY_PARSER<T>::FUNC & func)
+{
+    parsers.insert(std::make_pair(ToLower(name), new PROPERTY_PARSER<T>(value, func)));
+}
+
+bool TryParse(PROPERTY_PARSERS & parsers, const std::string & name, const char ** attr);
+
+} // namespace STG
+
+#endif