Claw  1.7.3
Classes | Public Types | Public Member Functions | List of all members
claw::configuration_file Class Reference

A class to get the content of a configuration file. More...

#include <configuration_file.hpp>

Classes

class  const_field_iterator
 This class is an iterator on the values set for a same field name. More...
struct  syntax_description
 This class tells us how to parse the input file. More...

Public Types

typedef claw::wrapped_iterator
< const file_content::key_type,
file_content::const_iterator,
const_pair_first
< file_content::value_type >
>::iterator_type 
const_file_iterator
 Iterator on the name of the sections.
typedef claw::wrapped_iterator
< const
section_content::key_type,
section_content::const_iterator,
const_pair_first
< section_content::value_type >
>::iterator_type 
const_section_iterator
 Iterator on the fields of a section.

Public Member Functions

 configuration_file ()
 Default constructor.
 configuration_file (std::istream &is, const syntax_description &syntax=syntax_description())
 Constructor.
bool open (std::istream &is, const syntax_description &syntax=syntax_description())
 Read the configuration from a stream.
void save (std::ostream &os, const syntax_description &syntax=syntax_description())
 Write the configuration in a stream.
const std::string & operator() (const std::string &section, const std::string &field) const
 Get the value of a field.
const std::string & operator() (const std::string &field) const
 Get the value of a field.
bool has_field (const std::string &section, const std::string &field) const
 Tell if a field exists.
bool has_field (const std::string &field) const
 Tell if a field exists.
void set_value (const std::string &section, const std::string &field, const std::string &val)
 Set the value of a field.
void set_value (const std::string &field, const std::string &val)
 Set the value of a field.
void add_value (const std::string &section, const std::string &field, const std::string &val)
 Add a value to a field.
void add_value (const std::string &field, const std::string &val)
 Set the value of a field.
void clear_section (const std::string &section)
 Remove a section and its fields.
const_field_iterator field_begin (const std::string &section, const std::string &field) const
 Get an iterator on the first value set for a field.
const_field_iterator field_end (const std::string &section, const std::string &field) const
 Get an iterator past the last value set for a field.
const_field_iterator field_begin (const std::string &field) const
 Get an iterator on the first value set for a field.
const_field_iterator field_end (const std::string &field) const
 Get an iterator past the last value set for a field.
const_section_iterator section_begin () const
 Get an iterator on the field names of a section.
const_section_iterator section_end () const
 Get an iterator past the last field name of a section.
const_section_iterator section_begin (const std::string &section) const
 Get an iterator on the field names of a section.
const_section_iterator section_end (const std::string &section) const
 Get an iterator past the last field name of a section.
const_file_iterator file_begin () const
 Get an iterator on the first named section.
const_file_iterator file_end () const
 Get an iterator just past the last named section.

Detailed Description

A class to get the content of a configuration file.

Author
Julien Jorge.

Definition at line 46 of file configuration_file.hpp.

Constructor & Destructor Documentation

claw::configuration_file::configuration_file ( std::istream &  is,
const syntax_description syntax = syntax_description() 
)

Constructor.

Parameters
isThe stream to read from.
syntaxDescription of the file's syntax.

Definition at line 101 of file configuration_file.cpp.

References open().

Member Function Documentation

void claw::configuration_file::add_value ( const std::string &  section,
const std::string &  field,
const std::string &  val 
)

Add a value to a field.

Parameters
sectionThe name of the section containing the field.
fieldThe name of the field to add.
valThe value.

This method keeps all previous values for the given field.

Definition at line 267 of file configuration_file.cpp.

Referenced by set_value().

void claw::configuration_file::add_value ( const std::string &  field,
const std::string &  val 
)

Set the value of a field.

Parameters
fieldThe name of the field to Set.
valThe value.

This method keeps all previous values for the given field.

Definition at line 281 of file configuration_file.cpp.

void claw::configuration_file::clear_section ( const std::string &  section)

Remove a section and its fields.

Parameters
sectionThe name of the section to remove.

Definition at line 291 of file configuration_file.cpp.

claw::configuration_file::const_field_iterator claw::configuration_file::field_begin ( const std::string &  section,
const std::string &  field 
) const

Get an iterator on the first value set for a field.

Parameters
sectionThe name of the section in which is the field.
fieldThe name of the field to get.

Definition at line 304 of file configuration_file.cpp.

Referenced by has_field().

claw::configuration_file::const_field_iterator claw::configuration_file::field_begin ( const std::string &  field) const

Get an iterator on the first value set for a field.

Parameters
fieldThe name of the field to get.
Remarks
The field is searched in the fields declared outside any section.

Definition at line 340 of file configuration_file.cpp.

claw::configuration_file::const_field_iterator claw::configuration_file::field_end ( const std::string &  section,
const std::string &  field 
) const

Get an iterator past the last value set for a field.

Parameters
sectionThe name of the section in which is the field.
fieldThe name of the field to get.

Definition at line 322 of file configuration_file.cpp.

Referenced by has_field().

claw::configuration_file::const_field_iterator claw::configuration_file::field_end ( const std::string &  field) const

Get an iterator past the last value set for a field.

Parameters
fieldThe name of the field to get.
Remarks
The field is searched in the fields declared outside any section.

Definition at line 353 of file configuration_file.cpp.

bool claw::configuration_file::has_field ( const std::string &  section,
const std::string &  field 
) const

Tell if a field exists.

Parameters
sectionThe name of the section containing the field.
fieldThe name of the field to test.

Definition at line 203 of file configuration_file.cpp.

References field_begin(), and field_end().

bool claw::configuration_file::has_field ( const std::string &  field) const

Tell if a field exists.

Parameters
fieldThe name of the field to test.
Remarks
The field is searched outside any section.

Definition at line 215 of file configuration_file.cpp.

References field_begin(), and field_end().

bool claw::configuration_file::open ( std::istream &  is,
const syntax_description syntax = syntax_description() 
)

Read the configuration from a stream.

Parameters
isThe stream to read from.
syntaxDescription of the file's syntax.

Definition at line 113 of file configuration_file.cpp.

References claw::text::trim_right().

Referenced by configuration_file().

const std::string & claw::configuration_file::operator() ( const std::string &  section,
const std::string &  field 
) const

Get the value of a field.

Parameters
sectionThe name of the section in which is the field.
fieldThe name of the field to get.

Definition at line 161 of file configuration_file.cpp.

const std::string & claw::configuration_file::operator() ( const std::string &  field) const

Get the value of a field.

Parameters
fieldThe name of the field to get.
Remarks
The field is searched in the fields declared outside any section.

Definition at line 186 of file configuration_file.cpp.

void claw::configuration_file::save ( std::ostream &  os,
const syntax_description syntax = syntax_description() 
)

Write the configuration in a stream.

Parameters
osThe stream to write in.
syntaxDescription of the file's syntax.

Definition at line 137 of file configuration_file.cpp.

References claw::configuration_file::syntax_description::make_section_name().

claw::configuration_file::const_section_iterator claw::configuration_file::section_begin ( ) const

Get an iterator on the field names of a section.

Remarks
The names are searched in the fields declared outside any section.

Definition at line 365 of file configuration_file.cpp.

claw::configuration_file::const_section_iterator claw::configuration_file::section_begin ( const std::string &  section) const

Get an iterator on the field names of a section.

Parameters
sectionThe name of the section in which the fields are searched.

Definition at line 388 of file configuration_file.cpp.

claw::configuration_file::const_section_iterator claw::configuration_file::section_end ( ) const

Get an iterator past the last field name of a section.

Remarks
The names are searched in the fields declared outside any section.

Definition at line 377 of file configuration_file.cpp.

claw::configuration_file::const_section_iterator claw::configuration_file::section_end ( const std::string &  section) const

Get an iterator past the last field name of a section.

Parameters
sectionThe name of the section in which the fields are searched.

Definition at line 404 of file configuration_file.cpp.

void claw::configuration_file::set_value ( const std::string &  section,
const std::string &  field,
const std::string &  val 
)

Set the value of a field.

Parameters
sectionThe name of the section containing the field.
fieldThe name of the field to set.
valThe value.

This method removes all previous values for the given field.

Definition at line 230 of file configuration_file.cpp.

References add_value().

void claw::configuration_file::set_value ( const std::string &  field,
const std::string &  val 
)

Set the value of a field.

Parameters
fieldThe name of the field to Set.
valThe value.

This method removes all previous values for the given field.

Remarks
The value is inserted in the fields declared outside any section.

Definition at line 251 of file configuration_file.cpp.

References add_value().


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