]> git.stg.codes - stg.git/commitdiff
Use simple parser fro CHG_ADMIN.
authorMaxim Mamontov <faust.madf@gmail.com>
Tue, 8 Oct 2013 12:58:48 +0000 (15:58 +0300)
committerMaxim Mamontov <faust.madf@gmail.com>
Tue, 8 Oct 2013 12:58:48 +0000 (15:58 +0300)
stglibs/srvconf.lib/parsers/chg_admin.cpp
stglibs/srvconf.lib/parsers/chg_admin.h
stglibs/srvconf.lib/servconf.cpp

index de9185148e23c205a7ef93baa0e64e37a0a2be22..445ea28058d01243e41b4bdb260350448a7c9a6b 100644 (file)
 
 using namespace STG;
 
-CHG_ADMIN::PARSER::PARSER(SIMPLE::CALLBACK f, void * d)
-    : callback(f),
-      data(d),
-      depth(0)
-{
-}
-//-----------------------------------------------------------------------------
-int CHG_ADMIN::PARSER::ParseStart(const char *el, const char **attr)
-{
-depth++;
-if (depth == 1)
-    if (strcasecmp(el, "SetAdmin") == 0)
-        ParseAnswer(el, attr);
-return 0;
-}
-//-----------------------------------------------------------------------------
-void CHG_ADMIN::PARSER::ParseEnd(const char *)
-{
-depth--;
-}
-//-----------------------------------------------------------------------------
-void CHG_ADMIN::PARSER::ParseAnswer(const char * /*el*/, const char ** attr)
-{
-if (!callback)
-    return;
-if (attr && attr[0] && attr[1])
-    callback(strcasecmp(attr[1], "ok") == 0, attr[1], data);
-else
-    callback(false, "Invalid response.", data);
-}
-
 std::string CHG_ADMIN::Serialize(const ADMIN_CONF_RES & conf)
 {
 std::string params;
index 9fd38104aa51312195650fb9c9072e3aaa780693..c10332cd71beb4fa7c491c64085f9c30fa5ad941 100644 (file)
@@ -34,21 +34,6 @@ namespace STG
 namespace CHG_ADMIN
 {
 
-class PARSER: public STG::PARSER
-{
-public:
-    PARSER(SIMPLE::CALLBACK f, void * data);
-    int  ParseStart(const char * el, const char ** attr);
-    void ParseEnd(const char * el);
-
-private:
-    SIMPLE::CALLBACK callback;
-    void * data;
-    int depth;
-
-    void ParseAnswer(const char * el, const char ** attr);
-};
-
 std::string Serialize(const ADMIN_CONF_RES & conf);
 
 } // namespace CHG_ADMIN
index e8e07e1071703974b18b389bee9752ea6eb8cead..d885fae6275f4e730ba04b9f15a1507ac526ee53 100644 (file)
@@ -126,7 +126,7 @@ return pImpl->Exec<GET_ADMIN::PARSER>("<GetAdmin login=\"" + login + "\"/>", f,
 
 int SERVCONF::ChgAdmin(const ADMIN_CONF_RES & conf, SIMPLE::CALLBACK f, void * data)
 {
-return pImpl->Exec<CHG_ADMIN::PARSER>("<ChgAdmin" + CHG_ADMIN::Serialize(conf) + "/>", f, data);
+return pImpl->Exec<SIMPLE::PARSER>("ChgAdmin", "<ChgAdmin" + CHG_ADMIN::Serialize(conf) + "/>", f, data);
 }
 
 int SERVCONF::AddAdmin(const std::string & login, const ADMIN_CONF & conf, SIMPLE::CALLBACK f, void * data)
@@ -134,7 +134,7 @@ int SERVCONF::AddAdmin(const std::string & login, const ADMIN_CONF & conf, SIMPL
 int res = pImpl->Exec<SIMPLE::PARSER>("AddAdmin", "<AddAdmin login=\"" + login + "\"/>", f, data);
 if (res != st_ok)
     return res;
-return pImpl->Exec<CHG_ADMIN::PARSER>("<ChgAdmin" + CHG_ADMIN::Serialize(conf) + "/>", f, data);
+return pImpl->Exec<SIMPLE::PARSER>("ChgAdmin", "<ChgAdmin" + CHG_ADMIN::Serialize(conf) + "/>", f, data);
 }
 
 int SERVCONF::DelAdmin(const std::string & login, SIMPLE::CALLBACK f, void * data)