git.stg.codes
/
stg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Ticket 12. The 'stopOnError(rval.stopOnError)' property added in the SETTINGS_IMPL()
[stg.git]
/
stglibs
/
srvconf.lib
/
parsers
/
get_service.cpp
diff --git
a/stglibs/srvconf.lib/parsers/get_service.cpp
b/stglibs/srvconf.lib/parsers/get_service.cpp
index 105b7395b4bac239f79bde6cf62f7cf731216210..e9949cbc4659ca9b8a8c4ce15699943dd19a34f4 100644
(file)
--- a/
stglibs/srvconf.lib/parsers/get_service.cpp
+++ b/
stglibs/srvconf.lib/parsers/get_service.cpp
@@
-28,14
+28,15
@@
using namespace STG;
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),
: callback(f),
data(d),
+ encoding(e),
depth(0),
parsingAnswer(false)
{
AddParser(propertyParsers, "name", info.name);
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);
}
AddParser(propertyParsers, "cost", info.cost);
AddParser(propertyParsers, "payDay", info.payDay);
}
@@
-53,8
+54,8
@@
depth++;
if (depth == 1)
ParseService(el, attr);
if (depth == 1)
ParseService(el, attr);
-if (depth == 2 && parsingAnswer)
- ParseServiceParams(el, attr);
+
/*
if (depth == 2 && parsingAnswer)
+ ParseServiceParams(el, attr);
*/
return 0;
}
return 0;
}
@@
-85,15
+86,23
@@
if (strcasecmp(el, "service") == 0)
error = "Service not found.";
}
else
error = "Service not found.";
}
else
+ {
parsingAnswer = true;
parsingAnswer = true;
+ for (const char ** pos = attr; *pos != NULL; pos = pos + 2)
+ if (!TryParse(propertyParsers, ToLower(*pos), pos, encoding, *pos))
+ {
+ error = std::string("Invalid parameter '") + *pos + "' or value '" + *(pos + 1) + "'.";
+ break;
+ }
+ }
}
else
parsingAnswer = true;
}
}
//-----------------------------------------------------------------------------
}
else
parsingAnswer = true;
}
}
//-----------------------------------------------------------------------------
-void GET_SERVICE::PARSER::ParseServiceParams(const char * el, const char ** attr)
+
/*
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.";
error = "Invalid parameter.";
-}
+}
*/