OpenTTD
Public Member Functions | Data Fields
IniLoadFile Struct Referenceabstract

Ini file that only supports loading. More...

#include <ini_type.h>

Inheritance diagram for IniLoadFile:
IniFile SettingsIniFile

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. More...
 
virtual ~IniLoadFile ()
 Free everything we loaded. More...
 
IniGroupGetGroup (const char *name, size_t len=0, bool create_new=true)
 Get the group with the given name. More...
 
void RemoveGroup (const char *name)
 Remove the group with the given name. More...
 
void LoadFromDisk (const char *filename, Subdirectory subdir)
 Load the Ini file's data from the disk. More...
 
virtual FILE * OpenFile (const char *filename, Subdirectory subdir, size_t *size)=0
 Open the INI file. More...
 
virtual void ReportFileError (const char *const pre, const char *const buffer, const char *const post)=0
 Report an error about the file contents. More...
 

Data Fields

IniGroupgroup
 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::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_namesA NULL terminated list with group names that should be loaded as lists instead of variables.
See also
IGT_LIST
Parameters
seq_group_namesA NULL terminated list with group names that should be loaded as lists of names.
See also
IGT_SEQUENCE

Definition at line 132 of file ini_load.cpp.

References group, and last_group.

◆ ~IniLoadFile()

IniLoadFile::~IniLoadFile ( )
virtual

Free everything we loaded.

Definition at line 142 of file ini_load.cpp.

References comment, free(), and group.

Member Function Documentation

◆ GetGroup()

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
namename of the group to find.
lenthe maximum length of said name (0 means length of the string).
create_newAllow creation of group if it does not exist.
Returns
The requested group if it exists or was created, else NULL.

Definition at line 156 of file ini_load.cpp.

References IniGroup::comment, group, IniGroup::name, IniGroup::next, and stredup().

Referenced by DumpGroup(), DumpSections(), BaseSet< GraphicsSet, MAX_GFT, true >::FillSetDetails(), GRFLoadConfig(), IniLoadSettingList(), IniLoadSettings(), IniSaveSettingList(), HotkeyList::Load(), HotkeyList::Save(), and SaveVersionInConfig().

◆ LoadFromDisk()

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

Load the Ini file's data from the disk.

Parameters
filenamethe file to load.
subdirthe sub directory to load the file from.
Precondition
nothing has been loaded yet.

Definition at line 212 of file ini_load.cpp.

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

◆ OpenFile()

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

Open the INI file.

Parameters
filenameName of the INI file.
subdirThe subdir to load the file from.
size[out] Size of the opened file.
Returns
File handle of the opened file, or NULL.

Implemented in SettingsIniFile, and IniFile.

◆ RemoveGroup()

void IniLoadFile::RemoveGroup ( const char *  name)

Remove the group with the given name.

Parameters
namename of the group to remove.

Definition at line 179 of file ini_load.cpp.

References group, last_group, and IniGroup::next.

◆ ReportFileError()

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
prePrefix text of the buffer part.
bufferPart of the file with the error.
postSuffix text of the buffer part.

Implemented in SettingsIniFile, and IniFile.


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