void Environment::initialize() throw() {
LOGMETHOD(TraceMethod tm("Environment", "initialize", ANNA_FILE_LOCATION));
-
// clear data
a_managedVars.clear();
-
// Register:
namespace po = boost::program_options;
po::options_description desc("Options");
-
FILE *fp;
char c_var[256];
std::string var;
-
/* Open the command for reading. */
fp = popen("env | cut -d'=' -f1", "r");
- if (fp == NULL) {
+
+ if(fp == NULL) {
Logger::error("Failed to get environment variables list", ANNA_FILE_LOCATION);
return;
}
/* Read the output a line at a time - output it. */
- while (fgets(c_var, sizeof(c_var)-1, fp) != NULL) {
+ while(fgets(c_var, sizeof(c_var) - 1, fp) != NULL) {
var = c_var;
boost::trim(var);
desc.add_options()(var.c_str(), var.c_str());
/* close */
pclose(fp);
-
// Parsing:
po::variables_map vm;
- try {
- po::store(po::parse_environment(desc, [](const std::string& variable) { return variable; }), vm); // can throw
+ try {
+ po::store(po::parse_environment(desc, [](const std::string & variable) { return variable; }), vm); // can throw
std::map<std::string, std::string>::const_iterator it;
std::string var, val;
- for (it = a_managedVars.begin(); it != a_managedVars.end(); it++) {
+
+ for(it = a_managedVars.begin(); it != a_managedVars.end(); it++) {
var = (*it).first;
- if (vm.count(var.c_str())) { // protection
+
+ if(vm.count(var.c_str())) { // protection
val = vm[var.c_str()].as<std::string>();
a_managedVars[var] = val;
}
}
po::notify(vm);
-
- } catch (po::error& e) {
+ } catch(po::error& e) {
Logger::error(e.what(), ANNA_FILE_LOCATION);
}
}
-std::string Environment::getValue (const char* variableName, bool exceptionIfMissing) const throw(RuntimeException) {
+std::string Environment::getValue(const char* variableName, bool exceptionIfMissing) const throw(RuntimeException) {
std::string result = "";
- if (!variableName)
+ if(!variableName)
throw RuntimeException("Invalid NULL variable name!", ANNA_FILE_LOCATION);
std::map<std::string, std::string>::const_iterator it = a_managedVars.find(variableName);
- if (it == a_managedVars.end()) {
+
+ if(it == a_managedVars.end()) {
std::string msg = "The variable '";
msg += variableName;
msg += "' is not defined in the environment.";
LOGDEBUG(Logger::debug(msg, ANNA_FILE_LOCATION));
- if (exceptionIfMissing)
- throw RuntimeException(msg, ANNA_FILE_LOCATION);
+
+ if(exceptionIfMissing) throw RuntimeException(msg, ANNA_FILE_LOCATION);
+
return "";
}