X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/76fb825a64343da7a8aa9b16c5dbcab709504832..41428276e313e4e796d52b90e4f8fa21292eb7d6:/stglibs/srvconf.lib/parsers/chg_user.h

diff --git a/stglibs/srvconf.lib/parsers/chg_user.h b/stglibs/srvconf.lib/parsers/chg_user.h
index 63c528d0..9ac559e0 100644
--- a/stglibs/srvconf.lib/parsers/chg_user.h
+++ b/stglibs/srvconf.lib/parsers/chg_user.h
@@ -22,10 +22,13 @@
 #ifndef __STG_STGLIBS_SRVCONF_PARSER_CHG_USER_H__
 #define __STG_STGLIBS_SRVCONF_PARSER_CHG_USER_H__
 
-#include "parser.h"
+#include "base.h"
 
 #include "stg/servconf_types.h"
 
+struct USER_CONF_RES;
+struct USER_STAT_RES;
+
 namespace STG
 {
 namespace CHG_USER
@@ -34,19 +37,22 @@ namespace CHG_USER
 class PARSER: public STG::PARSER
 {
 public:
-    PARSER();
+    PARSER(SIMPLE::CALLBACK f, void * data, const std::string & encoding);
     int  ParseStart(const char * el, const char ** attr);
     void ParseEnd(const char * el);
-    void SetCallback(CALLBACK f, void * data);
+    void Failure(const std::string & reason) { callback(false, reason, data); }
 
 private:
-    CALLBACK callback;
+    SIMPLE::CALLBACK callback;
     void * data;
+    std::string encoding;
     int depth;
 
     void ParseAnswer(const char * el, const char ** attr);
 };
 
+std::string Serialize(const USER_CONF_RES & conf, const USER_STAT_RES & stat, const std::string & encoding);
+
 } // namespace CHG_USER
 } // namespace STG