Public Member Functions | Data Fields

IniLoadFile Struct Reference

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.
virtual ~IniLoadFile ()
 Free everything we loaded.
IniGroupGetGroup (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

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 ( 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 130 of file ini_load.cpp.

References group, and last_group.

IniLoadFile::~IniLoadFile (  )  [virtual]

Free everything we loaded.

Definition at line 140 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 154 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(), 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 210 of file ini_load.cpp.

References IniItem::comment, IniGroup::comment, comment, free(), group, IGT_SEQUENCE, last_group, max(), OpenFile(), ReallocT(), ReportFileError(), 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 177 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: