claw::configuration_file Class Reference

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

`#include <configuration_file.hpp>`

## Classes

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

## Public Types

typedef claw::wrapped_iterator< constfile_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< constsection_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.

## Member Typedef Documentation

## const_file_iterator

typedef claw::wrapped_iterator<constfile_content::key_type,file_content::const_iterator,const_pair_first<file_content::value_type>>::iterator_type claw::configuration_file::const_file_iterator

Iterator on the name of the sections.

Definition at line 92 of file configuration_file.hpp.

## const_section_iterator

typedef claw::wrapped_iterator<constsection_content::key_type,section_content::const_iterator,const_pair_first<section_content::value_type>>::iterator_type claw::configuration_file::const_section_iterator

Iterator on the fields of a section.

Definition at line 99 of file configuration_file.hpp.

## Constructor & Destructor Documentation

## configuration_file() [1/2]

claw::configuration_file::configuration_file | ( |  | ) |

Default constructor.

Definition at line 89 of file configuration_file.cpp.

## configuration_file() [2/2]

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

Constructor.

Parameters

  is | The stream to read from.
  syntax | Description of the file's syntax.

Definition at line 100 of file configuration_file.cpp.

References open().

## Member Function Documentation

## add_value() [1/2]

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

Set the value of a field.

Parameters

  field | The name of the field to Set.
  val | The value.

This method keeps all previous values for the given field.

Definition at line 280 of file configuration_file.cpp.

## add_value() [2/2]

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

  section | The name of the section containing the field.
  field | The name of the field to add.
  val | The value.

This method keeps all previous values for the given field.

Definition at line 266 of file configuration_file.cpp.

Referenced by set_value(), and set_value().

## clear_section()

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

Remove a section and its fields.

Parameters

  section | The name of the section to remove.

Definition at line 291 of file configuration_file.cpp.

## field_begin() [1/2]

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

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

## field_begin() [2/2]

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

  section | The name of the section in which is the field.
  field | The name of the field to get.

Definition at line 303 of file configuration_file.cpp.

Referenced by has_field(), and has_field().

## field_end() [1/2]

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

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

## field_end() [2/2]

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

  section | The name of the section in which is the field.
  field | The name of the field to get.

Definition at line 321 of file configuration_file.cpp.

Referenced by has_field(), and has_field().

## file_begin()

claw::configuration_file::const_file_iterator claw::configuration_file::file_begin | ( |  | ) | const

Get an iterator on the first named section.

Definition at line 419 of file configuration_file.cpp.

## file_end()

claw::configuration_file::const_file_iterator claw::configuration_file::file_end | ( |  | ) | const

Get an iterator just past the last named section.

Definition at line 429 of file configuration_file.cpp.

## has_field() [1/2]

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

Tell if a field exists.

Parameters

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

## has_field() [2/2]

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

Tell if a field exists.

Parameters

  section | The name of the section containing the field.
  field | The name of the field to test.

Definition at line 202 of file configuration_file.cpp.

References field_begin(), and field_end().

## open()

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

Read the configuration from a stream.

Parameters

  is | The stream to read from.
  syntax | Description of the file's syntax.

Definition at line 112 of file configuration_file.cpp.

Referenced by configuration_file().

## operator()() [1/2]

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

Get the value of a field.

Parameters

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

## operator()() [2/2]

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

Get the value of a field.

Parameters

  section | The name of the section in which is the field.
  field | The name of the field to get.

Definition at line 160 of file configuration_file.cpp.

## save()

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

Write the configuration in a stream.

Parameters

  os | The stream to write in.
  syntax | Description of the file's syntax.

Definition at line 136 of file configuration_file.cpp.

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

## section_begin() [1/2]

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.

## section_begin() [2/2]

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

  section | The name of the section in which the fields are searched.

Definition at line 388 of file configuration_file.cpp.

## section_end() [1/2]

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.

## section_end() [2/2]

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

  section | The name of the section in which the fields are searched.

Definition at line 404 of file configuration_file.cpp.

## set_value() [1/2]

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

Set the value of a field.

Parameters

  field | The name of the field to Set.
  val | The 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 250 of file configuration_file.cpp.

References add_value().

## set_value() [2/2]

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

  section | The name of the section containing the field.
  field | The name of the field to set.
  val | The value.

This method removes all previous values for the given field.

Definition at line 229 of file configuration_file.cpp.

References add_value().

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

- configuration_file.hpp
- code/configuration_file.cpp