IO::IniFile class

A class that is used to read, parse, and write INI configuration files.

Stub, do not detour.

Public types

enum Options { kOptionNone, kOptionLeaveFileOpen }
using EnumCallback_t = bool(*)(wchar_t*, wchar_t*, void*)

Constructors, destructors, conversion operators

IniFile(const wchar_t* pPath, int optionFlags)
IniFile(IStream* pStream)
~IniFile() final

Public functions

auto GetOption(Options option) const -> int virtual
auto SetOption(Options option, int value) -> void virtual
auto GetPath() const -> wchar_t const* virtual
auto SetPath(const wchar_t* pPath) -> bool virtual
auto GetStream() const -> IStream* virtual
auto SetStream(IStream* pStream) -> bool virtual
auto Close() -> bool virtual
auto ReadEntry(const wchar_t* pSection, const wchar_t* pKey, eastl::basic_string<wchar_t>& sValue) -> int virtual
auto ReadEntryToBuffer(const wchar_t* pSection, const wchar_t* pKey, wchar_t* pValue, uint32_t nValueLength) -> int virtual
auto ReadEntryFormatted(const wchar_t* pSection, const wchar_t* pKey, const wchar_t* pValueFormat, ...) -> int virtual
auto WriteEntry(const wchar_t* pSection, const wchar_t* pKey, const wchar_t* pValue) -> bool virtual
auto WriteEntryFormatted(const wchar_t* pSection, const wchar_t* pKey, const wchar_t* kValueFormat, ...) -> bool virtual
auto ReadBinary(const wchar_t* pSection, const wchar_t* pKey, void* pData, uint32_t nDataLength) -> int virtual
auto WriteBinary(const wchar_t* pSection, const wchar_t* pKey, const void* pData, uint32_t nDataLength) -> bool virtual
auto EnumSections(EnumCallback_t pCallback, void* pContext) -> int virtual
auto EnumEntries(const wchar_t* pSection, EnumCallback_t pCallback, void* pContext) -> int virtual
auto SectionExists(const wchar_t* pSection) -> bool virtual

Protected functions

auto Open(int nAccessFlags) -> bool virtual
auto GetEncoding() -> int virtual
auto LoadSectionNames(int nAccessFlags) -> bool virtual
auto GetFileLine8To8(eastl::basic_string<char>& sLine) -> bool virtual
auto GetFileLine16To16(eastl::basic_string<wchar_t>& sLine) -> bool virtual
auto GetFileLine(eastl::basic_string<wchar_t>& sLine) -> bool virtual
auto ConvertAndWriteStream(const wchar_t* pchar, uint32_t count) -> bool virtual

Protected variables

wchar_t mPath
FileStream mFileStream
IStream* mpStream
int mnEncodingSrc
bool mbFileIsOpenForWriting
bool mbLeaveFileOpenBetweenOperations
bool mbReadEntryCacheReady
eastl::map<eastl::basic_string<wchar_t>, long, eastl::less<eastl::basic_string<wchar_t>>> mSectionPositionMap
eastl::map<eastl::basic_string<wchar_t>, eastl::basic_string<wchar_t>, eastl::less<eastl::basic_string<wchar_t>>> mSectionNameMap