sbuild::chroot_config Class Reference

Chroot configuration. More...

#include <sbuild-chroot-config.h>

Inheritance diagram for sbuild::chroot_config:

Inheritance graph
[legend]
Collaboration diagram for sbuild::chroot_config:

Collaboration graph
[legend]
List of all members.

Public Types

typedef std::vector< chroot::ptrchroot_list
 A list of chroots.
typedef std::map< std::string,
std::string > 
string_map
 A map between key-value string pairs.
typedef std::map< std::string,
chroot::ptr
chroot_map
 A map between a chroot name and a chroot object.
typedef runtime_error_custom<
chroot_config
error
 Exception type.
typedef std::tr1::shared_ptr<
chroot_config
ptr
 A shared_ptr to a chroot_config object.

Public Member Functions

 chroot_config ()
 The constructor.
 chroot_config (std::string const &file, bool active)
 The constructor.
virtual ~chroot_config ()
 The destructor.
void add (std::string const &location, bool active)
 Add a configuration file or directory.
chroot_list get_chroots () const
 Get a list of available chroots.
const chroot::ptr find_chroot (std::string const &name) const
 Find a chroot by its name.
const chroot::ptr find_alias (std::string const &name) const
 Find a chroot by its name or an alias.
string_list get_chroot_list () const
 Get the names (including aliases) of all the available chroots, sorted in alphabetical order.
void print_chroot_list (std::ostream &stream) const
 Print all the available chroots to the specified stream.
void print_chroot_list_simple (std::ostream &stream) const
 Print a single line of all the available chroots to the specified stream.
void print_chroot_info (string_list const &chroots, std::ostream &stream) const
 Print information about the specified chroots to the specified stream.
void print_chroot_location (string_list const &chroots, std::ostream &stream) const
 Print location information about the specified chroots to the specified stream.
void print_chroot_config (string_list const &chroots, std::ostream &stream) const
 Print configuration of the specified chroots to the specified stream.
string_list validate_chroots (string_list const &chroots) const
 Check that all the chroots specified exist.

Protected Member Functions

void add (chroot::ptr &chroot)
 Add a chroot.

Private Member Functions

void add_config_file (std::string const &file, bool active)
 Add a configuration file.
void add_config_directory (std::string const &dir, bool active)
 Add a configuration directory.
void check_security (int fd) const
 Check the permissions and ownership of a configuration file.
void load_data (std::string const &file, bool active)
 Load a configuration file.
virtual void parse_data (std::istream &stream, bool active)
 Parse a loaded configuration file.

Private Attributes

chroot_map chroots
 A list of chroots (name->chroot mapping).
string_map aliases
 A list of aliases (alias->name mapping).

Detailed Description

Chroot configuration.

This class holds the configuration details from the configuration file. Conceptually, it's an opaque container of chroot objects.

Methods are provided to query the available chroots and find specific chroots.


Member Typedef Documentation

typedef std::vector<chroot::ptr> sbuild::chroot_config::chroot_list
 

A list of chroots.

typedef std::map<std::string, chroot::ptr> sbuild::chroot_config::chroot_map
 

A map between a chroot name and a chroot object.

typedef runtime_error_custom<chroot_config> sbuild::chroot_config::error
 

Exception type.

typedef std::tr1::shared_ptr<chroot_config> sbuild::chroot_config::ptr
 

A shared_ptr to a chroot_config object.

typedef std::map<std::string, std::string> sbuild::chroot_config::string_map
 

A map between key-value string pairs.


Constructor & Destructor Documentation

chroot_config::chroot_config  ) 
 

The constructor.

Reimplemented in dchroot::chroot_config.

chroot_config::chroot_config std::string const &  file,
bool  active
 

The constructor.

Parameters:
file initialise using a configuration file or a whole directory containing configuration files.
active true if the chroots in the configuration file are active sessions, otherwise false.

Reimplemented in dchroot::chroot_config.

chroot_config::~chroot_config  )  [virtual]
 

The destructor.

Reimplemented in dchroot::chroot_config.


Member Function Documentation

void chroot_config::add chroot::ptr chroot  )  [protected]
 

Add a chroot.

The lists of chroots and aliases will be updated. If a chroot or alias by the same name exists, the chroot will not be added, and a warning will be logged. Af any of the aliases already exist, a warning will be logged, and the alias will not be added.

Parameters:
chroot the chroot to add.

void chroot_config::add std::string const &  location,
bool  active
 

Add a configuration file or directory.

The configuration file or directory specified will be loaded.

Parameters:
location initialise using a configuration file or a whole directory containing configuration files.
active true if the chroots in the configuration file are active sessions, otherwise false.

void chroot_config::add_config_directory std::string const &  dir,
bool  active
[private]
 

Add a configuration directory.

The configuration files in the directory specified will all be loaded.

Parameters:
dir the directory containing the files to load.
active true if the chroots in the configuration file are active sessions, otherwise false.

void chroot_config::add_config_file std::string const &  file,
bool  active
[private]
 

Add a configuration file.

The configuration file specified will be loaded.

Parameters:
file the file to load.
active true if the chroots in the configuration file are active sessions, otherwise false.

void chroot_config::check_security int  fd  )  const [private]
 

Check the permissions and ownership of a configuration file.

The file must be owned by root, not writable by other, and be a regular file.

An error will be thrown on failure.

Parameters:
fd the file descriptor to check.

const sbuild::chroot::ptr chroot_config::find_alias std::string const &  name  )  const
 

Find a chroot by its name or an alias.

Parameters:
name the chroot name or alias.
Returns:
the chroot if found, otherwise 0.

const sbuild::chroot::ptr chroot_config::find_chroot std::string const &  name  )  const
 

Find a chroot by its name.

Parameters:
name the chroot name
Returns:
the chroot if found, otherwise 0.

string_list chroot_config::get_chroot_list  )  const
 

Get the names (including aliases) of all the available chroots, sorted in alphabetical order.

Returns:
the list. The list will be empty if no chroots are available.

chroot_config::chroot_list chroot_config::get_chroots  )  const
 

Get a list of available chroots.

Returns:
a list of available chroots. The list will be empty if no chroots are available.

void chroot_config::load_data std::string const &  file,
bool  active
[private]
 

Load a configuration file.

If there are problems with the configuration file, an error will be thrown.

Parameters:
file the file to load.
active true if the chroots in the configuration file are active sessions, otherwise false.

void chroot_config::parse_data std::istream &  stream,
bool  active
[private, virtual]
 

Parse a loaded configuration file.

If there are problems with the configuration file, an error will be thrown.

Parameters:
stream the data stream to parse.
active true if the chroots in the configuration file are active sessions, otherwise false.

Reimplemented in dchroot::chroot_config.

void chroot_config::print_chroot_config string_list const &  chroots,
std::ostream &  stream
const
 

Print configuration of the specified chroots to the specified stream.

Parameters:
chroots a list of chroots to print.
stream the stream to output to.

void chroot_config::print_chroot_info string_list const &  chroots,
std::ostream &  stream
const
 

Print information about the specified chroots to the specified stream.

Parameters:
chroots a list of chroots to print.
stream the stream to output to.

void chroot_config::print_chroot_list std::ostream &  stream  )  const
 

Print all the available chroots to the specified stream.

Parameters:
stream the stream to output to.

void chroot_config::print_chroot_list_simple std::ostream &  stream  )  const
 

Print a single line of all the available chroots to the specified stream.

Parameters:
stream the stream to output to.

void chroot_config::print_chroot_location string_list const &  chroots,
std::ostream &  stream
const
 

Print location information about the specified chroots to the specified stream.

Parameters:
chroots a list of chroots to print.
stream the stream to output to.

string_list chroot_config::validate_chroots string_list const &  chroots  )  const
 

Check that all the chroots specified exist.

Parameters:
chroots a list of chroots to validate.
Returns:
a list of invalid chroots. The list will be empty if all chroots are valid.


Member Data Documentation

string_map sbuild::chroot_config::aliases [private]
 

A list of aliases (alias->name mapping).

chroot_map sbuild::chroot_config::chroots [private]
 

A list of chroots (name->chroot mapping).


The documentation for this class was generated from the following files:
Generated on Sun Mar 19 12:08:51 2006 for schroot by  doxygen 1.4.6