X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/1b2ab8e6d556a8ed30d4feadc72263b3f4c86665..2ecac495e165f5247a5e33669588a4ca8c2e8266:/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 <string>
+#include <strings.h>
+
namespace STG
{
namespace GET_CONTAINER
@@ -36,9 +38,9 @@ class PARSER: public STG::PARSER
public:
typedef std::vector<typename ELEMENT_PARSER::INFO> 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<ELEMENT_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<ELEMENT_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;