- Main Page
- Namespaces
- Classes
- Files
- Directories
- Related Pages

- Class List
- Class Hierarchy
- Class Members

# sbuild::environment Class Reference

Container of environment variables. More...

`#include <sbuild-environment.h>`

Inheritance diagram for sbuild::environment:

[legend]
Collaboration diagram for sbuild::environment:

[legend]
List of all members.

## Public Member Functions
| environment ()
| The constructor.
| environment (char **environment)
| The constructor.
| ~environment ()
| The destructor.
void | add (char **environment)
| Add environment variables.
void | add (environment const &environment)
| Add environment variables.
void | add (value_type const &value)
| Add environment variable.
void | add (std::string const &name, std::string const &value)
| Add environment variable.
template<typename T>
void | add (std::string const &name, T const &value)
| Add environment variable.
void | add (std::string const &value)
| Add environment variable.
void | remove (char **environment)
| Remove environment variables.
void | remove (environment const &environment)
| Remove environment variables.
void | remove (std::string const &value)
| Remove environment variable.
void | remove (value_type const &value)
| Remove environment variable.
template<typename T>
bool | get (std::string const &name, T &value)
| Get the value of an environment variable.
char ** | get_strv () const
| Get the evironment variables as a string vector.
template<typename T>
environment & | operator+= (T &rhs)
| Add variables to the environment.
template<typename T>
environment & | operator-= (T &rhs)
| Remove variables from the environment.
## Friends
template<typename T>
environment | operator+ (environment const &lhs, T const &rhs)
| Add variables to the environment.
template<typename T>
environment | operator- (environment const &lhs, T const &rhs)
| Remove variables from the environment.
template<class charT, class traits>
std::basic_ostream< charT, traits > & | operator<< (std::basic_ostream< charT, traits > &stream, environment const &rhs)
| Output the environment to an ostream.

## Detailed Description

Container of environment variables.

Todo:
  Add filter to prevent addition of "unsafe" environment variables, use regex. This might be with a derived class (destructor would need to be virtual).

## Constructor & Destructor Documentation

environment::environment | ( |  | ) |

The constructor.

environment::environment | ( | char ** | environment | ) |

The constructor.

Parameters:

  | environment | the environment to set.

environment::~environment | ( |  | ) |

The destructor.

## Member Function Documentation

void environment::add | ( | std::string const & | value | ) |

Add environment variable.

Any existing variable sharing the name will be replaced.

Parameters:

  | value | the environment variable to add. This is a string in the form key=value.

template<typename T>

void sbuild::environment::add | ( | std::string const & | name,
|  | T const & | value |
| ) |  |  | `[inline]`

Add environment variable.

Any existing variable sharing the name will be replaced.

Parameters:

  | name | the environment variable name
  | value | the environment variable value to add.

Here is the call graph for this function:

void sbuild::environment::add | ( | std::string const & | name,
|  | std::string const & | value |
| ) |  |  | `[inline]`

Add environment variable.

Any existing variable sharing the name will be replaced.

Parameters:

  | name | the environment variable name
  | value | the environment variable value to add.

Here is the call graph for this function:

void environment::add | ( | value_type const & | value | ) |

Add environment variable.

Any existing variable sharing the name will be replaced.

Parameters:

  | value | the environment variable to add.

void environment::add | ( | environment const & | environment | ) |

Add environment variables.

Any existing variables sharing the name of a new value will be replaced.

Parameters:

  | environment | the environment variables to add.

void environment::add | ( | char ** | environment | ) |

Add environment variables.

Any existing variables sharing the name of a new value will be replaced.

Parameters:

  | environment | the environment variables to add. This is a null-terminated array of pointers to char.

Here is the caller graph for this function:

template<typename T>

bool sbuild::environment::get | ( | std::string const & | name,
|  | T & | value |
| ) |  |  | `[inline]`

Get the value of an environment variable.

Parameters:

  | name | the name of the environment variable.
  | value | the variable to store the value in on success.

Returns:
  true on success, false if the variable does not exist, or there is a parse error.

Here is the call graph for this function:

char ** environment::get_strv | ( |  | ) | const

Get the evironment variables as a string vector.

This form is suitable for use as an envp argument with execve, for example.

Returns:
  a newly-allocated string vector. This is allocated with new, and should be freed with strv_delete().

template<typename T>

environment& sbuild::environment::operator+= | ( | T & | rhs | ) | `[inline]`

Add variables to the environment.

Parameters:

  | rhs | the values to add.

Returns:
  the modified environment.

Here is the call graph for this function:

template<typename T>

environment& sbuild::environment::operator-= | ( | T & | rhs | ) | `[inline]`

Remove variables from the environment.

Parameters:

  | rhs | the values to remove.

Returns:
  the modified environment.

Here is the call graph for this function:

void environment::remove | ( | value_type const & | value | ) |

Remove environment variable.

Any variable sharing the name of the specified value will be removed.

Parameters:

  | value | the environment variable to remove.

void environment::remove | ( | std::string const & | value | ) |

Remove environment variable.

Any variable sharing the name of the specified value will be removed.

Parameters:

  | value | the environment variable to remove.

void environment::remove | ( | environment const & | environment | ) |

Remove environment variables.

Any variables sharing the names of a specified value will be removed.

Parameters:

  | environment | the environment variables to remove.

void environment::remove | ( | char ** | environment | ) |

Remove environment variables.

Any variables sharing the names of a specified value will be removed.

Parameters:

  | environment | the environment variables to remove. This is a null-terminated array of pointers to char.

Here is the caller graph for this function:

## Friends And Related Function Documentation

template<typename T>

environment operator+ | ( | environment const & | lhs,
|  | T const & | rhs |
| ) |  |  | `[friend]`

Add variables to the environment.

Parameters:

  | lhs | the environment to add to.
  | rhs | the values to add.

Returns:
  the new environment.

template<typename T>

environment operator- | ( | environment const & | lhs,
|  | T const & | rhs |
| ) |  |  | `[friend]`

Remove variables from the environment.

Parameters:

  | lhs | the environment to remove from.
  | rhs | the values to remove.

Returns:
  the new environment.

template<class charT, class traits>

std::basic_ostream<charT,traits>& operator<< | ( | std::basic_ostream< charT, traits > & | stream,
|  | environment const & | rhs |
| ) |  |  | `[friend]`

Output the environment to an ostream.

Parameters:

  | stream | the stream to output to.
  | rhs | the environment to output.

Returns:
  the stream.

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

- sbuild/sbuild-environment.h
- sbuild/sbuild-environment.cc