]> git.stg.codes - stg.git/blobdiff - stglibs/srvconf.lib/parsers/get_service.cpp
Implemented parser registry.
[stg.git] / stglibs / srvconf.lib / parsers / get_service.cpp
index 105b7395b4bac239f79bde6cf62f7cf731216210..6f98fc23fe2f5a04cf3d244a2584cde23ab0e45a 100644 (file)
 
 using namespace STG;
 
-GET_SERVICE::PARSER::PARSER(CALLBACK f, void * d)
+GET_SERVICE::PARSER::PARSER(CALLBACK f, void * d, const std::string & e)
     : callback(f),
       data(d),
+      encoding(e),
       depth(0),
       parsingAnswer(false)
 {
     AddParser(propertyParsers, "name", info.name);
-    AddParser(propertyParsers, "comment", info.comment);
+    AddParser(propertyParsers, "comment", info.comment, GetEncodedValue);
     AddParser(propertyParsers, "cost", info.cost);
     AddParser(propertyParsers, "payDay", info.payDay);
 }
@@ -94,6 +95,6 @@ if (strcasecmp(el, "service") == 0)
 //-----------------------------------------------------------------------------
 void GET_SERVICE::PARSER::ParseServiceParams(const char * el, const char ** attr)
 {
-if (!TryParse(propertyParsers, ToLower(el), attr))
+if (!TryParse(propertyParsers, ToLower(el), attr, encoding))
     error = "Invalid parameter.";
 }