cpp-utilities/io/inifile.h

55 lines
1.3 KiB
C
Raw Normal View History

2015-07-07 00:50:49 +02:00
#ifndef IOUTILITIES_INIFILE_H
#define IOUTILITIES_INIFILE_H
#include "../global.h"
2015-07-07 00:50:49 +02:00
#include <map>
2015-09-01 16:06:37 +02:00
#include <string>
2017-05-01 03:13:11 +02:00
#include <vector>
2015-07-07 00:50:49 +02:00
namespace IoUtilities {
2017-05-01 03:13:11 +02:00
class CPP_UTILITIES_EXPORT IniFile {
2015-07-07 00:50:49 +02:00
public:
IniFile();
2017-05-04 22:44:00 +02:00
std::vector<std::pair<std::string, std::multimap<std::string, std::string>>> &data();
const std::vector<std::pair<std::string, std::multimap<std::string, std::string>>> &data() const;
2015-07-07 00:50:49 +02:00
void parse(std::istream &inputStream);
void make(std::ostream &outputStream);
private:
2017-05-04 22:44:00 +02:00
std::vector<std::pair<std::string, std::multimap<std::string, std::string>>> m_data;
2015-07-07 00:50:49 +02:00
};
/*!
* \brief Constructs an empty ini file.
*/
inline IniFile::IniFile()
2017-05-01 03:13:11 +02:00
{
}
2015-07-07 00:50:49 +02:00
/*!
* \brief Returns the data of the file.
* \remarks
2016-01-18 23:41:30 +01:00
* - The returned pairs represent the [scope names] and the contained "key = value"-pairs.
* - The data might be modified and then saved using the make() method.
2015-07-07 00:50:49 +02:00
*/
2017-05-04 22:44:00 +02:00
inline std::vector<std::pair<std::string, std::multimap<std::string, std::string>>> &IniFile::data()
2015-07-07 00:50:49 +02:00
{
return m_data;
}
/*!
* \brief Returns the data of the file.
* \remarks The returned pairs represent the [scope names] and the contained "key = value"-pairs.
2015-07-07 00:50:49 +02:00
*/
2017-05-04 22:44:00 +02:00
inline const std::vector<std::pair<std::string, std::multimap<std::string, std::string>>> &IniFile::data() const
2015-07-07 00:50:49 +02:00
{
return m_data;
}
} // namespace IoUtilities
#endif // IOUTILITIES_INIFILE_H