X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/b3139bf3f37b3b0244efea8b4b5e5a7d0bc90095..3f023a72d0eedd982ba16401fbdff63dc5dddd4d:/stglibs/srvconf.lib/parsers/get_container.h?ds=sidebyside diff --git a/stglibs/srvconf.lib/parsers/get_container.h b/stglibs/srvconf.lib/parsers/get_container.h index c07e9e14..cbfd1ead 100644 --- a/stglibs/srvconf.lib/parsers/get_container.h +++ b/stglibs/srvconf.lib/parsers/get_container.h @@ -38,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) @@ -69,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;