Developer Documentation
INIFile Class Reference

Class for the handling of simple configuration files. More...

#include <OpenFlipper/INIFile/INIFile.hh>

Public Member Functions

 INIFile ()
 Default constructor.
 
 ~INIFile ()
 Destructor.
 
bool connect (const QString &name, const bool create)
 Connect INIFile object with given filename.
 
void disconnect ()
 Remove connection of this object to a file.
 
bool is_connected () const
 Check if object is connected to file.
 
const QString & name () const
 Access to name of connected file.
 
Existence checking
bool section_exists (const QString &_section) const
 Check if given section exists in the current INI file.
 
bool entry_exists (const QString &_section, const QString &_key) const
 Check if given entry esists in the current INI file.
 
bool entry_in_section (const QString &_section, const QString &_key) const
 Same as entry_exists() (for backward compatibility)
 
Addition of entities
void add_section (const QString &_sectionname)
 Addition of a section.
 
void add_entry (const QString &_section, const QString &_key, const QString &_value)
 Addition / modification of a string entry.
 
void add_entry (const QString &_section, const QString &_key, const char *_value)
 Addition / modification of a string entry, given as char array.
 
void add_entry (const QString &_section, const QString &_key, const double &_value)
 Addition / modification of a double entry.
 
void add_entry (const QString &_section, const QString &_key, const float &_value)
 Addition / modification of a double entry.
 
void add_entry (const QString &_section, const QString &_key, const int &_value)
 Addition / modification of an int entry.
 
void add_entry (const QString &_section, const QString &_key, const unsigned int &_value)
 Addition / modification of an int entry.
 
void add_entry (const QString &_section, const QString &_key, const bool &_value)
 Addition / modification of a boolean entry.
 
void add_entry (const QString &_section, const QString &_key, const std::vector< float > &_value)
 Addition / modification of a float vector.
 
void add_entry (const QString &_section, const QString &_key, const std::vector< double > &_value)
 Addition / modification of a double vector.
 
void add_entry (const QString &_section, const QString &_key, const std::vector< bool > &_value)
 Addition / modification of a bool vector.
 
template<typename VectorT >
void add_entryVec (const QString &_section, const QString &_key, const VectorT &_value)
 Addition of a Vec_n_something. More...
 
template<typename VectorT >
void add_entryVec (const QString &_section, const QString &_key, const std::vector< VectorT > &_value)
 Addition of a vector of Vec_n_something.
 
void add_entry (const QString &_section, const QString &_key, const std::vector< int > &_value)
 Addition / modification of an int vector.
 
void add_entry (const QString &_section, const QString &_key, const std::vector< QString > &_value)
 Addition / modification of an int vector.
 
void add_entry (const QString &_section, const QString &_key, const QStringList &_value)
 Addition / modification of an int vector.
 
Deletion of entities
void delete_entry (const QString &_section, const QString &_key)
 Deletion of an entry.
 
void delete_section (const QString &_sectionname)
 Deletion of an entire section.
 

Access to stored entries

typedef std::map< QString, QString > EntryMap
 Type for map of contained entries.
 
typedef std::map< QString, EntryMapSectionMap
 Type for map of contained sections.
 
QString m_filename
 Name of current INI file.
 
bool mf_isConnected
 Flag: this object is connected to an INI file.
 
SectionMap m_iniData
 Stored data of an INI file.
 
bool get_entry (QString &_val, const QString &_section, const QString &_key) const
 Access to a string entry.
 
bool get_entry (double &_val, const QString &_section, const QString &_key) const
 Access to a floating point entry, stored as double value.
 
bool get_entry (float &_val, const QString &_section, const QString &_key) const
 Access to a floating point entry, stored as float value.
 
bool get_entry (int &_val, const QString &_section, const QString &_key) const
 Access to an int entry.
 
bool get_entry (unsigned int &_val, const QString &_section, const QString &_key) const
 Access to an unsigned int entry (which is actually stored as int!!!)
 
bool get_entry (bool &_val, const QString &_section, const QString &_key) const
 Access to a boolean entry.
 
bool get_entry (std::vector< float > &_val, const QString &_section, const QString &_key) const
 Access to a float vector.
 
bool get_entry (std::vector< double > &_val, const QString &_section, const QString &_key) const
 Access to a double vector.
 
bool get_entry (std::vector< bool > &_val, const QString &_section, const QString &_key) const
 Access to a bool vector.
 
bool get_entry (std::vector< int > &_val, const QString &_section, const QString &_key) const
 Access to an int vector.
 
bool get_entry (std::vector< QString > &_val, const QString &_section, const QString &_key) const
 Access to a string vector.
 
bool get_entry (QStringList &_val, const QString &_section, const QString &_key) const
 Access to a stringList.
 
template<typename VectorT >
bool get_entryVecd (VectorT &_val, const QString &_section, const QString &_key) const
 Get a Vec_n_d (double) More...
 
template<typename VectorT >
bool get_entryVecf (VectorT &_val, const QString &_section, const QString &_key) const
 Get a Vec_n_i (int) More...
 
template<typename VectorT >
bool get_entryVeci (VectorT &_val, const QString &_section, const QString &_key) const
 Get a Vec_n_i (int) More...
 
template<typename VectorT >
bool get_entryVecd (std::vector< VectorT > &_val, const QString &_section, const QString &_key) const
 Get a Vec_n_d.
 
template<typename VectorT >
bool get_entryVecf (std::vector< VectorT > &_val, const QString &_section, const QString &_key) const
 Get a Vec_n_f.
 
template<typename VectorT >
bool get_entryVeci (std::vector< VectorT > &_val, const QString &_section, const QString &_key) const
 Get a Vec_n_i.
 
bool parseFile (QFile &_inputStream)
 Read content of an INI file.
 
bool writeFile (void)
 Write data to file we are currently connected to.
 

Detailed Description

Class for the handling of simple configuration files.

The file format used by this class is similar to that of MS Windows INI files. It is possible to divide a file into sections which are denoted by brackets (e.g. [Section]). All values are stored in the form <key> = <value> and are assigned to a section. The INIFile class is able to store values of the types string, double, signed and unsigned int and bool.

The usual way to work with this class consists of the following steps:

  • Open an existing or create a new INI file with a call to connect()
  • Check for the existence of entries (entry_exists()), access stored values (get_entry()) or add new entries (add_entry()). Note that the function add_section() is obsolete and only kept for backward compatibility. A new section is now implicitly generated by specifying it in a call to add_entry().
  • disconnect() from the INI file. Only now are all entries and sections written to the file.

To be able to use the INIFile class, an object is created. After that the object is connected to a given filename. This means that, if the file exists, it is opened and the content is parsed and stored in memory. The second (boolean) parameter to the connect() function indicates that the file should be created if it does not exists.

Now a new section named Main is generated and several entries are added. Note that the INI file is not written to disc until the disconnect() function is called. All additions and modifications are only performed on the stored data in memory.

In the second part of this example the just created INI file is opened (connected) again and the created entries are read and printed to stdout.

Definition at line 99 of file INIFile.hh.

Member Function Documentation

◆ add_entryVec()

template<typename VectorT >
void INIFile::add_entryVec ( const QString &  _section,
const QString &  _key,
const VectorT &  _value 
)

Addition of a Vec_n_something.

Addition of a vector of Vec_n_whatever.

Definition at line 211 of file INIFileT_impl.hh.

◆ get_entryVecd()

template<typename VectorT >
bool INIFile::get_entryVecd ( VectorT &  _val,
const QString &  _section,
const QString &  _key 
) const

Get a Vec_n_d (double)

Get a Vec_n_d.

Definition at line 121 of file INIFileT_impl.hh.

◆ get_entryVecf()

template<typename VectorT >
bool INIFile::get_entryVecf ( VectorT &  _val,
const QString &  _section,
const QString &  _key 
) const

Get a Vec_n_i (int)

Get a Vec_n_f.

Definition at line 163 of file INIFileT_impl.hh.

◆ get_entryVeci()

template<typename VectorT >
bool INIFile::get_entryVeci ( VectorT &  _val,
const QString &  _section,
const QString &  _key 
) const

Get a Vec_n_i (int)

Get a Vec_n_i.

Definition at line 79 of file INIFileT_impl.hh.


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