trick/trick_source/sim_services/Environment/Environment.cpp

55 lines
1.1 KiB
C++
Raw Normal View History

2015-02-26 15:02:31 +00:00
#include <iostream>
#include <sstream>
#include <stdlib.h>
#include "trick/Environment.hh"
2015-02-26 15:02:31 +00:00
Trick::Environment * the_env ;
Trick::Environment::Environment() {
the_env = this ;
}
int Trick::Environment::add_var( std::string variable_name , std::string value ) {
local_env[variable_name] = value ;
return(0) ;
}
const char * Trick::Environment::get_var( std::string variable_name) {
char *ret_env;
std::map<std::string, std::string >::iterator it ;
/* var might be in environment */
if ((ret_env = getenv(variable_name.c_str())) != NULL) {
return (ret_env);
}
/* Check environment compiled into S_source.c */
it = local_env.find(variable_name) ;
if ( it != local_env.end() ) {
return( it->second.c_str() ) ;
}
/* It's not there! */
return (NULL);
}
int Trick::Environment::print_vars( FILE * fp ) {
std::map<std::string, std::string >::iterator it ;
for ( it = local_env.begin() ; it != local_env.end() ; it++ ) {
fprintf(fp, "%s = %s\n", it->first.c_str(), it->second.c_str());
}
return(0) ;
}