X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/76fb825a64343da7a8aa9b16c5dbcab709504832..df56b2568e80784a3350fa9527430538fa792b79:/stglibs/srvconf.lib/parsers/get_user.h diff --git a/stglibs/srvconf.lib/parsers/get_user.h b/stglibs/srvconf.lib/parsers/get_user.h index c8c371d7..a0e3e3a4 100644 --- a/stglibs/srvconf.lib/parsers/get_user.h +++ b/stglibs/srvconf.lib/parsers/get_user.h @@ -22,8 +22,8 @@ #ifndef __STG_STGLIBS_SRVCONF_PARSER_GET_USER_H__ #define __STG_STGLIBS_SRVCONF_PARSER_GET_USER_H__ -#include "parser.h" -#include "property_parsers.h" +#include "base.h" +#include "property.h" #include "stg/servconf_types.h" @@ -37,16 +37,19 @@ namespace GET_USER class PARSER: public STG::PARSER { public: - PARSER(); + typedef GET_USER::INFO INFO; + + PARSER(CALLBACK f, void * data, const std::string & encoding); virtual ~PARSER(); 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, info, data); } private: PROPERTY_PARSERS propertyParsers; CALLBACK callback; void * data; + std::string encoding; INFO info; int depth; bool parsingAnswer; @@ -54,6 +57,8 @@ private: void ParseUser(const char * el, const char ** attr); void ParseUserParams(const char * el, const char ** attr); + void ParseAuthBy(const char * el, const char ** attr); + void ParseServices(const char * el, const char ** attr); }; } // namespace GET_USER