inicpp
C++ parser of INI files with schema validation.
inicpp::section Class Reference

#include <section.h>

Public Types

using iterator = section_iterator< option >
 
using const_iterator = section_iterator< const option >
 

Public Member Functions

 section ()=delete
 
 section (const section &source)
 
sectionoperator= (const section &source)
 
 section (section &&source)
 
sectionoperator= (section &&source)
 
 section (const std::string &name)
 
const std::string & get_name () const
 
template<typename ValueType >
void add_option (const std::string &option_name, ValueType value)
 
void add_option (const option &opt)
 
void remove_option (const std::string &option_name)
 
size_t size () const
 
optionoperator[] (size_t index)
 
const optionoperator[] (size_t index) const
 
optionoperator[] (const std::string &option_name)
 
const optionoperator[] (const std::string &option_name) const
 
bool contains (const std::string &option_name) const
 
void validate (const section_schema &sect_schema, schema_mode mode)
 
bool operator== (const section &other) const
 
bool operator!= (const section &other) const
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 

Friends

class section_iterator< option >
 
class section_iterator< const option >
 
INICPP_API friend std::ostream & operator<< (std::ostream &os, const section &sect)
 

Detailed Description

Represents section from ini format. Can contain multiple options. Always should be in config container class.

Definition at line 27 of file section.h.

Member Typedef Documentation

type of const iterator

Definition at line 48 of file section.h.

type of iterator

Definition at line 46 of file section.h.

Constructor & Destructor Documentation

inicpp::section::section ( )
delete

Default constructor is deleted.

inicpp::section::section ( const section source)

Copy constructor.

Definition at line 5 of file section.cpp.

inicpp::section::section ( section &&  source)

Move constructor.

Definition at line 30 of file section.cpp.

inicpp::section::section ( const std::string &  name)

Construct instance of section class with given name.

Parameters
namename of newly created section class

Definition at line 45 of file section.cpp.

Member Function Documentation

template<typename ValueType >
void inicpp::section::add_option ( const std::string &  option_name,
ValueType  value 
)
inline

Creates and add option to this section.

Parameters
option_namename of newly created option class
valuevalue which will be stored in option
Exceptions
ambiguity_exceptionif option with specified name exists

Definition at line 89 of file section.h.

void inicpp::section::add_option ( const option opt)

Add given option instance to options container.

Parameters
optparticular instance of option class
Exceptions
ambiguity_exceptionif option with specified name exists

Definition at line 54 of file section.cpp.

section::iterator inicpp::section::begin ( )

Iterator pointing at the beginning of options list.

Returns
section_iterator

Definition at line 162 of file section.cpp.

section::const_iterator inicpp::section::begin ( ) const

Constant iterator pointing at the beginning of options list.

Returns
section_iterator

Definition at line 172 of file section.cpp.

section::const_iterator inicpp::section::cbegin ( ) const

Constant iterator pointing at the beginning of options list.

Returns
section_iterator

Definition at line 182 of file section.cpp.

section::const_iterator inicpp::section::cend ( ) const

Constant iterator pointing at the end of options list.

Returns
section_iterator

Definition at line 187 of file section.cpp.

bool inicpp::section::contains ( const std::string &  option_name) const

Tries to find option with specified name inside this section.

Parameters
option_namename which is searched
Returns
true if option with this name is present, false otherwise

Definition at line 128 of file section.cpp.

section::iterator inicpp::section::end ( )

Iterator pointing at the end of options list.

Returns
section_iterator

Definition at line 167 of file section.cpp.

section::const_iterator inicpp::section::end ( ) const

Constant iterator pointing at the end of options list.

Returns
section_iterator

Definition at line 177 of file section.cpp.

const std::string & inicpp::section::get_name ( ) const

Getter for name of this section.

Returns
name

Definition at line 49 of file section.cpp.

bool inicpp::section::operator!= ( const section other) const

Inequality operator.

Parameters
other
Returns

Definition at line 157 of file section.cpp.

section & inicpp::section::operator= ( const section source)

Copy assignment.

Definition at line 19 of file section.cpp.

section & inicpp::section::operator= ( section &&  source)

Move assignment.

Definition at line 35 of file section.cpp.

bool inicpp::section::operator== ( const section other) const

Equality operator.

Parameters
other
Returns

Definition at line 143 of file section.cpp.

option & inicpp::section::operator[] ( size_t  index)

Access option on specified index.

Parameters
index
Returns
modifiable reference to stored option
Exceptions
not_found_exceptionin case of out of range

Definition at line 88 of file section.cpp.

const option & inicpp::section::operator[] ( size_t  index) const

Access constant reference on option specified index.

Parameters
index
Returns
constant reference to stored option
Exceptions
not_found_exceptionin case of out of range

Definition at line 97 of file section.cpp.

option & inicpp::section::operator[] ( const std::string &  option_name)

Access option with specified name

Parameters
option_name
Returns
modifiable reference to stored option
Exceptions
not_found_exceptionif option with given name does not exist

Definition at line 106 of file section.cpp.

const option & inicpp::section::operator[] ( const std::string &  option_name) const

Access constant reference on option with specified name

Parameters
option_name
Returns
constant reference to stored option
Exceptions
not_found_exceptionif option with given name does not exist

Definition at line 117 of file section.cpp.

void inicpp::section::remove_option ( const std::string &  option_name)

From list of options remove the one with specified name

Parameters
option_namename of option which will be removed
Exceptions
not_found_exceptionif option with given name was not found

Definition at line 66 of file section.cpp.

size_t inicpp::section::size ( ) const

Returns size of options list

Returns
unsigned integer

Definition at line 83 of file section.cpp.

void inicpp::section::validate ( const section_schema sect_schema,
schema_mode  mode 
)

Validates this section agains given section_schema.

Parameters
sect_schemarules how this section should look like
modevalidation mode
Exceptions
validation_exceptionif error occured

Definition at line 138 of file section.cpp.

Friends And Related Function Documentation

INICPP_API friend std::ostream& operator<< ( std::ostream &  os,
const section sect 
)
friend

Classic stream operator for printing this instance to output stream.

Parameters
osoutput stream
sectreference to section instance to be written
Returns
reference to output stream which allows chaining

Definition at line 192 of file section.cpp.


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