Claw 1.7.0
Classes | Public Types | Public Member Functions
claw::configuration_file Class Reference

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

#include <configuration_file.hpp>

List of all members.

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 &  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.

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.

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 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.

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.

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().

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().


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