21 typedef std::map<std::string, std::string> VarMap;
29 bool addVariable(
const std::string& key,
const std::string& value)
33 war <<
"TextParser: empty key on variable setting..";
39 variables[key] =
parseText(value.c_str());
46 std::string
ret, startKeyword, endKeyword;
54 startKeyword =
"$ENV{";
56 bool badSymbol =
ret.find(
"$") != std::string::npos;
57 s =
ret.find(startKeyword);
58 e =
ret.find(endKeyword, s);
60 if(s != std::string::npos && e != std::string::npos)
62 std::string envName, envValue;
64 envName =
ret.substr(s + startKeyword.size(), e - s -startKeyword.size());
66 ret =
ret.substr(0, s)+ envValue +
ret.substr(e + endKeyword.size(),
ret.size() - endKeyword.size());
73 s =
ret.find(startKeyword);
74 e =
ret.find(endKeyword, s);
76 if(s != std::string::npos && e != std::string::npos)
78 std::string envName, envValue;
80 envName =
ret.substr(s + startKeyword.size(), e - s -startKeyword.size());
81 envValue = variables[envName];
82 ret =
ret.substr(0, s)+ envValue +
ret.substr(e + endKeyword.size(),
ret.size() - endKeyword.size());
88 war <<
"use of symbol '$' detected but no keyword understood.. possible use: ${foo} for internal variable or $ENV{foo} for environment variable";
Singleton class ErrorLogger.
void addWarning(const char *szWarning)
static ErrorLogger * Instance()
Singleton class ErrorLogger.
bool addVariable(const std::string &key, const std::string &value)
std::string parseText(const char *element)
std::string get_string(const std::string &key, bool *found=nullptr)
Read a string from an environment variable.
std::stringstream OSTRINGSTREAM