Public Member Functions | Data Fields

# IniLoadFile Struct Reference

Ini file that only supports loading. More...

`#include <ini_type.h>`

Inheritance diagram for IniLoadFile:

## Public Member Functions
| IniLoadFile (const char *const *list_group_names=NULL, const char *const *seq_group_names=NULL)
| Construct a new in-memory Ini file representation.
virtual | ~IniLoadFile ()
| Free everything we loaded.
IniGroup * | GetGroup (const char *name, size_t len=0, bool create_new=true)
| Get the group with the given name.
void | RemoveGroup (const char *name)
| Remove the group with the given name.
void | LoadFromDisk (const char *filename, Subdirectory subdir)
| Load the Ini file's data from the disk.
virtual FILE * | OpenFile (const char *filename, Subdirectory subdir, size_t *size)=0
| Open the INI file.
virtual void | ReportFileError (const char *const pre, const char *const buffer, const char *const post)=0
| Report an error about the file contents.
## Data Fields
IniGroup * | group
| the first group in the ini
IniGroup ** | last_group
| the last group in the ini
char * | comment
| last comment in file
const char *const * | list_group_names
| NULL terminated list with group names that are lists.
const char *const * | seq_group_names
| NULL terminated list with group names that are sequences.

## Detailed Description

Ini file that only supports loading.

Definition at line 54 of file ini_type.h.

## Constructor & Destructor Documentation

IniLoadFile::IniLoadFile | ( | const char *const * | list_group_names = `NULL`,
|  | const char *const * | seq_group_names = `NULL` |
| ) |  |  |

Construct a new in-memory Ini file representation.

Parameters:

  | list_group_names | A `NULL` terminated list with group names that should be loaded as lists instead of variables.

See also:
  IGT_LIST

Parameters:

  | seq_group_names | A `NULL` terminated list with group names that should be loaded as lists of names.

See also:
  IGT_SEQUENCE

Definition at line 134 of file ini_load.cpp.

References group, and last_group.

IniLoadFile::~IniLoadFile | ( |  | ) | `[virtual]`

Free everything we loaded.

Definition at line 144 of file ini_load.cpp.

References comment, free(), and group.

## Member Function Documentation

IniGroup * IniLoadFile::GetGroup | ( | const char * | name,
|  | size_t | len = `0`,
|  | bool | create_new = `true` |
| ) |  |  |

Get the group with the given name.

If it doesn't exist and create_new is `true` create a new group.

Parameters:

  | name | name of the group to find.
  | len | the maximum length of said name (`0` means length of the string).
  | create_new | Allow creation of group if it does not exist.

Returns:
  The requested group if it exists or was created, else `NULL`.

Definition at line 158 of file ini_load.cpp.

References IniGroup::comment, group, IniGroup::name, and IniGroup::next.

Referenced by DumpGroup(), DumpSections(), BaseSet< T, Tnum_files, Tsearch_in_tars >::FillSetDetails(), GRFLoadConfig(), IniLoadSettingList(), IniLoadSettings(), IniSaveSettingList(), IniSaveSettings(), HotkeyList::Load(), HotkeyList::Save(), and SaveVersionInConfig().

void IniLoadFile::LoadFromDisk | ( | const char * | filename,
|  | Subdirectory | subdir |
| ) |  |  |

Load the Ini file's data from the disk.

Parameters:

  | filename | the file to load.
  | subdir | the sub directory to load the file from.

Precondition:
  nothing has been loaded yet.

Definition at line 214 of file ini_load.cpp.

References IniItem::comment, IniGroup::comment, comment, free(), group, IGT_SEQUENCE, last_group, max(), OpenFile(), ReallocT(), ReportFileError(), str_validate(), IniGroup::type, and IniItem::value.

Referenced by BaseMedia< Tbase_set >::AddFile(), WindowDesc::LoadFromConfig(), and LoadIniFile().

virtual FILE* IniLoadFile::OpenFile | ( | const char * | filename,
|  | Subdirectory | subdir,
|  | size_t * | size |
| ) |  |  | `[pure virtual]`

Open the INI file.

Parameters:

  | filename | Name of the INI file.
  | subdir | The subdir to load the file from.
  | size | [out] Size of the opened file.

Returns:
  File handle of the opened file, or `NULL`.

Implemented in IniFile, and SettingsIniFile.

Referenced by LoadFromDisk().

void IniLoadFile::RemoveGroup | ( | const char * | name | ) |

Remove the group with the given name.

Parameters:

  | name | name of the group to remove.

Definition at line 181 of file ini_load.cpp.

References group, last_group, and IniGroup::next.

Referenced by DeleteGRFPresetFromConfig(), and SaveToConfig().

virtual void IniLoadFile::ReportFileError | ( | const char *const | pre,
|  | const char *const | buffer,
|  | const char *const | post |
| ) |  |  | `[pure virtual]`

Report an error about the file contents.

Parameters:

  | pre | Prefix text of the buffer part.
  | buffer | Part of the file with the error.
  | post | Suffix text of the buffer part.

Implemented in IniFile, and SettingsIniFile.

Referenced by LoadFromDisk().

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

- src/ini_type.h
- src/ini_load.cpp