blocxx
|
The EnvVars class is an abstraction for a set of environment variables. More...
#include <EnvVars.hpp>
Public Types | |
enum | EEnvVarFlag { E_CURRENT_ENVIRONMENT, E_EMPTY_ENVIRONMENT } |
typedef Map< String, String > | EnvMap |
typedef EnvMap::const_iterator | const_iterator |
Public Member Functions | |
EnvVars (EEnvVarFlag flag=E_EMPTY_ENVIRONMENT) | |
Create an EnvVars object that is either empty or contains all of the environment variable from the current environment. | |
template<class InputIterator > | |
EnvVars (EEnvVarFlag flag, InputIterator first, InputIterator last) | |
Create an EnvVars object that is either empty or contains all of the environment variable from the current environment and override it with additional environment variables from a map range specified with InputIterators. | |
EnvVars (const char *const envp[]) | |
Create an EnvVars object that contains the evironment variables specifed in a string array. | |
EnvVars (const EnvVars &arg) | |
Copy constructor. | |
~EnvVars () | |
Destructor. | |
EnvVars & | operator= (const EnvVars &arg) |
Assignment operator. | |
const char *const | getenvp () const |
size_t | size () const |
String | getValue (const String &key, const String ¬FoundRetVal=String()) const |
Get the value associated with a given key. | |
bool | removeVar (const String &key) |
Remove an environment variable from this EnvVars object. | |
bool | setVar (const String &keyValue) |
Set the value for a given environemt variable. | |
bool | setVar (const String &key, const String &value) |
Set the value for a given environemt variable. | |
bool | addVar (const String &name, const String &value) |
Adds the variable name if its not already part of the set. | |
bool | updateVar (const String &name, const String &value) |
Updates an existing variable. | |
const_iterator | begin () const |
const_iterator | end () const |
Private Member Functions | |
void | deleteEnvp () const |
Static Private Member Functions | |
static void | fillEnvMap (EnvMap &envMap) |
static void | fillEnvMap (const char *const envp[], EnvMap &envMap) |
Private Attributes | |
EnvMap | m_envMap |
char ** | m_envp |
The EnvVars class is an abstraction for a set of environment variables.
Definition at line 49 of file EnvVars.hpp.
Definition at line 53 of file EnvVars.hpp.
typedef Map<String, String> BLOCXX_NAMESPACE::EnvVars::EnvMap |
Definition at line 52 of file EnvVars.hpp.
Definition at line 55 of file EnvVars.hpp.
BLOCXX_NAMESPACE::EnvVars::EnvVars | ( | EEnvVarFlag | flag = E_EMPTY_ENVIRONMENT | ) |
Create an EnvVars object that is either empty or contains all of the environment variable from the current environment.
Definition at line 79 of file EnvVars.cpp.
References environ.
BLOCXX_NAMESPACE::EnvVars::EnvVars | ( | EEnvVarFlag | flag, |
InputIterator | first, | ||
InputIterator | last | ||
) | [inline] |
Create an EnvVars object that is either empty or contains all of the environment variable from the current environment and override it with additional environment variables from a map range specified with InputIterators.
The map with the additional variables can contain either blocxx::String or std::string elements (has to provide the c_str() method returning pointer to the string). Variables with empty name or a name containing the '=' character (like for setenv in SUSv3) are discarded.
flag | Whether to construct using empty or current environment. |
first | InputIterator pointing to the first variable. |
last | InputIterator pointing to one past the last variable. |
Definition at line 83 of file EnvVars.hpp.
BLOCXX_NAMESPACE::EnvVars::EnvVars | ( | const char *const | envp[] | ) |
Create an EnvVars object that contains the evironment variables specifed in a string array.
envp | A NULL terminated char* array that contains the environment variables for the EnvVars object. Each element of the array must be in the form of "ENV_VAR_NAME=VALUE". |
Definition at line 90 of file EnvVars.cpp.
BLOCXX_NAMESPACE::EnvVars::EnvVars | ( | const EnvVars & | arg | ) |
Copy constructor.
arg | The EnvVars object this object will be a copy of. |
BLOCXX_NAMESPACE::EnvVars::~EnvVars | ( | ) |
Destructor.
Definition at line 98 of file EnvVars.cpp.
Adds the variable name if its not already part of the set.
Definition at line 210 of file EnvVars.cpp.
References deleteEnvp(), m_envMap, and name.
const_iterator BLOCXX_NAMESPACE::EnvVars::begin | ( | ) | const [inline] |
Definition at line 190 of file EnvVars.hpp.
void BLOCXX_NAMESPACE::EnvVars::deleteEnvp | ( | ) | const [private] |
Definition at line 130 of file EnvVars.cpp.
Referenced by addVar(), getenvp(), removeVar(), setVar(), and updateVar().
const_iterator BLOCXX_NAMESPACE::EnvVars::end | ( | ) | const [inline] |
Definition at line 199 of file EnvVars.hpp.
void BLOCXX_NAMESPACE::EnvVars::fillEnvMap | ( | EnvMap & | envMap | ) | [static, private] |
Definition at line 106 of file EnvVars.cpp.
void BLOCXX_NAMESPACE::EnvVars::fillEnvMap | ( | const char *const | envp[], |
EnvMap & | envMap | ||
) | [static, private] |
Definition at line 114 of file EnvVars.cpp.
References BLOCXX_NAMESPACE::cpp::getKeyValue(), i, and BLOCXX_NAMESPACE::cpp::isValidKey().
const char *const BLOCXX_NAMESPACE::EnvVars::getenvp | ( | ) | const |
Definition at line 161 of file EnvVars.cpp.
References BLOCXX_NAMESPACE::Map< Key, T, Compare >::begin(), deleteEnvp(), BLOCXX_NAMESPACE::Map< Key, T, Compare >::end(), i, m_envMap, m_envp, and BLOCXX_NAMESPACE::Map< Key, T, Compare >::size().
Referenced by BLOCXX_NAMESPACE::Cstr::CstrArr< EnvVars >::CstrArr().
String BLOCXX_NAMESPACE::EnvVars::getValue | ( | const String & | key, |
const String & | notFoundRetVal = String() |
||
) | const |
Get the value associated with a given key.
key | The name for the value to retrieve. |
notFoundRetVal | If the environment variable by the name of 'key' is not found, then return the value specified by this parameter. |
Definition at line 152 of file EnvVars.cpp.
References BLOCXX_NAMESPACE::Map< Key, T, Compare >::end(), BLOCXX_NAMESPACE::Map< Key, T, Compare >::find(), and m_envMap.
bool BLOCXX_NAMESPACE::EnvVars::removeVar | ( | const String & | key | ) |
Remove an environment variable from this EnvVars object.
key | The name of the environment variable to be removed. |
Definition at line 194 of file EnvVars.cpp.
References deleteEnvp(), BLOCXX_NAMESPACE::Map< Key, T, Compare >::erase(), and m_envMap.
Set the value for a given environemt variable.
If the environment variable does not exist in the EnvVars object, it will be added.
key | The name of the environment variable |
value | The value to set the environment variable to. |
Definition at line 224 of file EnvVars.cpp.
References deleteEnvp(), and m_envMap.
bool BLOCXX_NAMESPACE::EnvVars::setVar | ( | const String & | keyValue | ) |
Set the value for a given environemt variable.
If the environment variable does not exist in the EnvVars object, it will be added.
keyValue | A key=value string that represent the key/value of the environemt variable to be set/added. |
Definition at line 238 of file EnvVars.cpp.
size_t BLOCXX_NAMESPACE::EnvVars::size | ( | ) | const [inline] |
Definition at line 132 of file EnvVars.hpp.
Updates an existing variable.
Definition at line 247 of file EnvVars.cpp.
References deleteEnvp().
EnvMap BLOCXX_NAMESPACE::EnvVars::m_envMap [private] |
Definition at line 209 of file EnvVars.hpp.
Referenced by addVar(), getenvp(), getValue(), removeVar(), and setVar().
char** BLOCXX_NAMESPACE::EnvVars::m_envp [mutable, private] |
Definition at line 210 of file EnvVars.hpp.
Referenced by deleteEnvp(), and getenvp().