blocxx
Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
BLOCXX_NAMESPACE::EnvVars Class Reference

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, StringEnvMap
 
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. More...
 
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. More...
 
 EnvVars (const char *const envp[])
 Create an EnvVars object that contains the evironment variables specifed in a string array. More...
 
 EnvVars (const EnvVars &arg)
 Copy constructor. More...
 
 ~EnvVars ()
 Destructor. More...
 
EnvVarsoperator= (const EnvVars &arg)
 Assignment operator. More...
 
const char *const * getenvp () const
 
size_t size () const
 
String getValue (const String &key, const String &notFoundRetVal=String()) const
 Get the value associated with a given key. More...
 
bool removeVar (const String &key)
 Remove an environment variable from this EnvVars object. More...
 
bool setVar (const String &keyValue)
 Set the value for a given environemt variable. More...
 
bool setVar (const String &key, const String &value)
 Set the value for a given environemt variable. More...
 
bool addVar (const String &name, const String &value)
 Adds the variable name if its not already part of the set. More...
 
bool updateVar (const String &name, const String &value)
 Updates an existing variable. More...
 
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
 

Detailed Description

The EnvVars class is an abstraction for a set of environment variables.

Definition at line 77 of file EnvVars.hpp.

Member Typedef Documentation

◆ const_iterator

Definition at line 109 of file EnvVars.hpp.

◆ EnvMap

Definition at line 108 of file EnvVars.hpp.

Member Enumeration Documentation

◆ EEnvVarFlag

Enumerator
E_CURRENT_ENVIRONMENT 
E_EMPTY_ENVIRONMENT 

Definition at line 111 of file EnvVars.hpp.

Constructor & Destructor Documentation

◆ EnvVars() [1/4]

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 105 of file EnvVars.cpp.

References environ, and fillEnvMap().

◆ EnvVars() [2/4]

template<class InputIterator >
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.

Parameters
flagWhether to construct using empty or current environment.
firstInputIterator pointing to the first variable.
lastInputIterator pointing to one past the last variable.

Definition at line 139 of file EnvVars.hpp.

◆ EnvVars() [3/4]

BLOCXX_NAMESPACE::EnvVars::EnvVars ( const char *const  envp[])

Create an EnvVars object that contains the evironment variables specifed in a string array.

Parameters
envpA 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 116 of file EnvVars.cpp.

References i.

◆ EnvVars() [4/4]

BLOCXX_NAMESPACE::EnvVars::EnvVars ( const EnvVars arg)

Copy constructor.

Parameters
argThe EnvVars object this object will be a copy of.

◆ ~EnvVars()

BLOCXX_NAMESPACE::EnvVars::~EnvVars ( )

Destructor.

Definition at line 124 of file EnvVars.cpp.

Member Function Documentation

◆ addVar()

bool BLOCXX_NAMESPACE::EnvVars::addVar ( const String name,
const String value 
)

Adds the variable name if its not already part of the set.

Returns
true if it was added, false if it already exists or the variable name is empty or contains a '=' character.

Definition at line 236 of file EnvVars.cpp.

References BLOCXX_NAMESPACE::String::c_str(), and setVar().

◆ begin()

const_iterator BLOCXX_NAMESPACE::EnvVars::begin ( ) const
inline
Returns
A read only iterator that points to the first environemt variable in the EnvVars object.

Definition at line 246 of file EnvVars.hpp.

◆ deleteEnvp()

void BLOCXX_NAMESPACE::EnvVars::deleteEnvp ( ) const
private

◆ end()

const_iterator BLOCXX_NAMESPACE::EnvVars::end ( ) const
inline
Returns
A read only iterator that points one past the last environemt variable in the EnvVars object.

Definition at line 255 of file EnvVars.hpp.

◆ fillEnvMap() [1/2]

void BLOCXX_NAMESPACE::EnvVars::fillEnvMap ( const char *const  envp[],
EnvMap envMap 
)
staticprivate

Definition at line 140 of file EnvVars.cpp.

◆ fillEnvMap() [2/2]

void BLOCXX_NAMESPACE::EnvVars::fillEnvMap ( EnvMap envMap)
staticprivate

Definition at line 132 of file EnvVars.cpp.

Referenced by EnvVars().

◆ getenvp()

const char *const * BLOCXX_NAMESPACE::EnvVars::getenvp ( ) const
Returns
A null terminated char* array that contains all the environment variables contained by this EnvVars object. Each element of the returned array will be of the form "ENV_VAR_NAME=VALUE". Note, that in case the EnvVars object doesn't contain any variables, the function returns a envp pointer without any content (the terminating element only).

Definition at line 187 of file EnvVars.cpp.

◆ getValue()

String BLOCXX_NAMESPACE::EnvVars::getValue ( const String key,
const String notFoundRetVal = String() 
) const

Get the value associated with a given key.

Parameters
keyThe name for the value to retrieve.
notFoundRetValIf the environment variable by the name of 'key' is not found, then return the value specified by this parameter.
Returns
The value associated with a given key. If the key does not exist in this EnvVars object, the return value will be an empty string.

Definition at line 178 of file EnvVars.cpp.

◆ operator=()

EnvVars& BLOCXX_NAMESPACE::EnvVars::operator= ( const EnvVars arg)

Assignment operator.

Parameters
argThe EnvVars object to assign to this one.
Returns
A reference to this EnvVars object after the assignment is done.

◆ removeVar()

bool BLOCXX_NAMESPACE::EnvVars::removeVar ( const String key)

Remove an environment variable from this EnvVars object.

Parameters
keyThe name of the environment variable to be removed.
Returns
true if key was found and removed. Otherwise return false.

Definition at line 220 of file EnvVars.cpp.

◆ setVar() [1/2]

bool BLOCXX_NAMESPACE::EnvVars::setVar ( const String key,
const String value 
)

Set the value for a given environemt variable.

If the environment variable does not exist in the EnvVars object, it will be added.

Parameters
keyThe name of the environment variable
valueThe value to set the environment variable to.
Returns
false, if the key is empty or contains a '=' character.

Definition at line 250 of file EnvVars.cpp.

References deleteEnvp().

◆ setVar() [2/2]

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.

Parameters
keyValueA key=value string that represent the key/value of the environemt variable to be set/added.
Returns
false, if the key is empty or contains a '=' character.

Definition at line 264 of file EnvVars.cpp.

Referenced by addVar().

◆ size()

size_t BLOCXX_NAMESPACE::EnvVars::size ( ) const
inline
Returns
The number of environment variables contained by this object as a size_t.

Definition at line 188 of file EnvVars.hpp.

◆ updateVar()

bool BLOCXX_NAMESPACE::EnvVars::updateVar ( const String name,
const String value 
)

Updates an existing variable.

Returns
true if variable name was updated, false it it doesn't exist.

Definition at line 273 of file EnvVars.cpp.

Member Data Documentation

◆ m_envMap

EnvMap BLOCXX_NAMESPACE::EnvVars::m_envMap
private

Definition at line 265 of file EnvVars.hpp.

Referenced by deleteEnvp().

◆ m_envp

char** BLOCXX_NAMESPACE::EnvVars::m_envp
mutableprivate

Definition at line 266 of file EnvVars.hpp.

Referenced by deleteEnvp().


The documentation for this class was generated from the following files: