OpenTTD Source 20260206-master-g4d4e37dbf1
IniFile Struct Reference

Ini file that supports both loading and saving. More...

#include <ini_type.h>

Inheritance diagram for IniFile:
IniLoadFile ConfigIniFile

Public Member Functions

 IniFile (const IniGroupNameList &list_group_names={})
 Create a new ini file with given group names.
bool SaveToDisk (const std::string &filename)
 Save the Ini file's data to the disk.
std::optional< FileHandleOpenFile (std::string_view filename, Subdirectory subdir, size_t *size) override
 Open the INI file.
void ReportFileError (std::string_view message) override
 Report an error about the file contents.
Public Member Functions inherited from IniLoadFile
 IniLoadFile (const IniGroupNameList &list_group_names={}, const IniGroupNameList &seq_group_names={})
 Construct a new in-memory Ini file representation.
const IniGroupGetGroup (std::string_view name) const
 Get the group with the given name.
IniGroupGetGroup (std::string_view name)
 Get the group with the given name.
IniGroupGetOrCreateGroup (std::string_view name)
 Get the group with the given name, and if it doesn't exist create a new group.
IniGroupCreateGroup (std::string_view name)
 Create an group with the given name.
void RemoveGroup (std::string_view name)
 Remove the group with the given name.
void LoadFromDisk (std::string_view filename, Subdirectory subdir)
 Load the Ini file's data from the disk.

Additional Inherited Members

Public Types inherited from IniLoadFile
using IniGroupNameList = std::initializer_list<const std::string_view>
Data Fields inherited from IniLoadFile
std::list< IniGroupgroups
 all groups in the ini
std::string comment
 last comment in file
const IniGroupNameList list_group_names
 list of group names that are lists
const IniGroupNameList seq_group_names
 list of group names that are sequences.

Detailed Description

Ini file that supports both loading and saving.

Definition at line 86 of file ini_type.h.

Constructor & Destructor Documentation

◆ IniFile()

IniFile::IniFile ( const IniGroupNameList & list_group_names = {})

Create a new ini file with given group names.

Parameters
list_group_namesA list with group names that should be loaded as lists instead of variables.
See also
IGT_LIST

Definition at line 33 of file ini.cpp.

References IniLoadFile::IniLoadFile(), and IniLoadFile::list_group_names.

Member Function Documentation

◆ OpenFile()

std::optional< FileHandle > IniFile::OpenFile ( std::string_view filename,
Subdirectory subdir,
size_t * size )
overridevirtual

Open the INI file.

Parameters
filenameName of the INI file.
subdirThe subdir to load the file from.
[out]sizeSize of the opened file.
Returns
File handle of the opened file, or std::nullopt.

Implements IniLoadFile.

Definition at line 104 of file ini.cpp.

References FioFOpenFile().

◆ ReportFileError()

void IniFile::ReportFileError ( std::string_view message)
overridevirtual

Report an error about the file contents.

Parameters
messageThe message to show.

Implements IniLoadFile.

Definition at line 111 of file ini.cpp.

◆ SaveToDisk()

bool IniFile::SaveToDisk ( const std::string & filename)

Save the Ini file's data to the disk.

Parameters
filenamethe file to save to.
Returns
true if saving succeeded.

Definition at line 42 of file ini.cpp.

References IniItem::comment, IniLoadFile::comment, Debug, IniLoadFile::groups, IniItem::name, OTTD2FS(), and IniItem::value.

Referenced by DeleteGRFPresetFromConfig(), SaveGRFPresetToConfig(), SaveToConfig(), and WindowDesc::SaveToConfig().


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