#include <strings.h>
-bool STG::CheckValue(const char ** attr)
+bool STG::CheckValue(const char ** attr, const std::string & attrName)
{
-return attr && attr[0] && attr[1] && strcasecmp(attr[0], "value") == 0;
+return attr && attr[0] && attr[1] && strcasecmp(attr[0], attrName.c_str()) == 0;
}
-bool STG::GetEncodedValue(const char ** attr, std::string & value)
+bool STG::GetEncodedValue(const char ** attr, std::string & value, const std::string & attrName)
{
-if (!CheckValue(attr))
+if (!CheckValue(attr, attrName))
return false;
Decode21str(value, attr[1]);
return true;
}
-bool STG::GetIPValue(const char ** attr, uint32_t & value)
+bool STG::GetIPValue(const char ** attr, uint32_t & value, const std::string & attrName)
{
-if (!CheckValue(attr))
+if (!CheckValue(attr, attrName))
return false;
std::string ip(attr[1]);
value = inet_strington(attr[1]);
return true;
}
-bool STG::TryParse(PROPERTY_PARSERS & parsers, const std::string & name, const char ** attr)
+bool STG::TryParse(PROPERTY_PARSERS & parsers, const std::string & name, const char ** attr, const std::string & fromEncoding, const std::string & attrName)
{
PROPERTY_PARSERS::iterator it(parsers.find(name));
if (it != parsers.end())
- return it->second->Parse(attr);
+ return it->second->Parse(attr, attrName, fromEncoding);
return true; // Assume that non-existing params are ok.
}