* @brief Internal implementation of the class for reading and writing parameter values in INI files.
* @author Enar Vaikene
*
- * Copyright (c) 2011 Enar Vaikene
+ * Copyright (c) 2011-2019 Enar Vaikene
*
* This file is part of the eVaf C++ cross-platform application development framework.
*
{
public:
- IniFileValue(quint64 pos)
+ IniFileValue(qint64 pos)
: QSharedData()
, filePos(pos)
, thisOsOnly(false)
* Offset of the parameter in the INI file. By seeking the file to this offset value,
* the next character read or written will be the beginning of the key name.
*/
- quint64 filePos;
+ qint64 filePos;
/**
* Key name of the parameter
*/
- QString name;
+ QByteArray name;
/**
* Value from the INI file
*/
- QString paramValue;
+ QByteArray paramValue;
+
+ /**
+ * Value converted to the final type (defaults to QVariant::Invalid
+ */
+ QVariant value;
/**
* Flag indicating that this value is valid on this OS only
{
public:
- IniFileSection(quint64 pos)
+ IniFileSection(qint64 pos)
: QSharedData()
, filePos(pos)
{}
* Offset of the section in the INI file. By seeking the file to this offset value,
* the next character read or written will be the first character of the section.
*/
- quint64 filePos;
+ qint64 filePos;
/**
* Name of the section
*/
- QString name;
+ QByteArray name;
/**
* List of all the known parameter values in this section
*
* The key to the hash table is the name of the key for the parameters value.
*/
- QHash<QString, QExplicitlySharedDataPointer<IniFileValue> > values;
+ QHash<QByteArray, QExplicitlySharedDataPointer<IniFileValue> > values;
};
~IniFileImpl();
- QVariant getValue(QString const & paramName, QVariant const & defaultValue);
+ QVariant getValue(QByteArray const & paramName, QVariant const & defaultValue);
- bool setValue(QString const & paramName, QVariant const & value);
+ bool setValue(QByteArray const & paramName, QVariant const & value);
inline bool isValid() const { return mValid; }
*
* The key to the hash table is the name of the section.
*/
- QHash<QString, QExplicitlySharedDataPointer<IniFileSection> > mCache;
+ QHash<QByteArray, QExplicitlySharedDataPointer<IniFileSection> > mCache;
/// When was the INI file modified.
QDateTime mLastModified;
* Sections and parameters that come after the modified parameter value are shifted and their file
* positions changed. This method updates items in the internal cache after changes to the INI file.
*/
- void updateCache(quint64 pos, qint64 diff);
+ void updateCache(qint64 pos, qint64 diff);
/**
* Looks for a section in the INI file
* The file object is expected to be opened if the mValid flag is true. If the mValid flag is false, looks
* only in the cache.
*/
- QExplicitlySharedDataPointer<IniFileSection> getSection(QFile & file, QString const & sectionName);
+ QExplicitlySharedDataPointer<IniFileSection> getSection(QFile & file, QByteArray const & sectionName);
/**
* Looks for a parameter in the INI file
* The file object is expected to be opened if the mValid flag is true. If the mValid flag is false, looks
* only in the cache.
*/
- QExplicitlySharedDataPointer<IniFileValue> getParameter(QFile & file, IniFileSection & section, QString const & paramName);
+ QExplicitlySharedDataPointer<IniFileValue> getParameter(QFile & file, IniFileSection & section, QByteArray const & paramName);
};