X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/1b2ab8e6d556a8ed30d4feadc72263b3f4c86665..f8ca79f0620b6738a4714f1ccadf6a1c9ac73947:/stglibs/srvconf.lib/parsers/get_container.h?ds=inline diff --git a/stglibs/srvconf.lib/parsers/get_container.h b/stglibs/srvconf.lib/parsers/get_container.h index 31bb4250..cbfd1ead 100644 --- a/stglibs/srvconf.lib/parsers/get_container.h +++ b/stglibs/srvconf.lib/parsers/get_container.h @@ -25,6 +25,8 @@ #include +#include + namespace STG { namespace GET_CONTAINER @@ -36,9 +38,9 @@ class PARSER: public STG::PARSER public: typedef std::vector INFO; typedef void (* CALLBACK)(bool result, const std::string & reason, const INFO & info, void * data); - PARSER(const std::string & t, CALLBACK f, void * d) - : tag(t), callback(f), data(d), - elementParser(&PARSER::ElementCallback, this), + PARSER(const std::string & t, CALLBACK f, void * d, const std::string & e) + : tag(t), callback(f), data(d), encoding(e), + elementParser(&PARSER::ElementCallback, this, e), depth(0), parsingAnswer(false) {} int ParseStart(const char * el, const char ** attr) @@ -67,11 +69,13 @@ public: parsingAnswer = false; } } + void Failure(const std::string & reason) { callback(false, reason, info, data); } private: std::string tag; CALLBACK callback; void * data; + std::string encoding; ELEMENT_PARSER elementParser; INFO info; int depth;