![]() |
![]() |
![]() |
V_Sim API - Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
visu_configFilevisu_configFile — Defines methods to access (read/write) to config files and to create different entries. |
VisuConfigFileEntry; #define VISU_CONFIGFILE_PARAMETER #define VISU_CONFIGFILE_RESOURCE gboolean (*VisuConfigFileReadFunc) (gchar **lines
,int nbLines
,int position
,VisuData *dataObj
,GError **error
); void (*VisuConfigFileExportFunc) (GString *data
,VisuData *dataObj
); VisuConfigFileEntry* visu_configFile_addEntry (int kind
,const gchar *key
,const gchar *description
,int nbLines
,VisuConfigFileReadFunc readFunc
); void visu_configFile_addExportFunction (int kind
,VisuConfigFileExportFunc writeFunc
); void visu_configFile_entry_setTag (VisuConfigFileEntry *entry
,const gchar *tag
); void visu_configFile_entry_setVersion (VisuConfigFileEntry *entry
,float version
); void visu_configFile_entry_setReplace (VisuConfigFileEntry *newEntry
,VisuConfigFileEntry *oldEntry
); gboolean visu_configFile_load (int kind
,const char *fileName
,VisuData *dataObj
,GError **error
); gboolean visu_configFile_save (int kind
,const char *fileName
,int *lines
,VisuData *dataObj
,GError **error
); void visu_configFile_addKnownTag (gchar *tag
); gchar* visu_configFile_getValidPath (int kind
,int mode
,int utf8
); gchar* visu_configFile_getNextValidPath (int kind
,int accessMode
,GList **list
,int utf8
); gchar* visu_configFile_getDefaultFilename (int kind
); GList* visu_configFile_getPathList (int kind
); GList* visu_configFile_getEntries (int kind
); gboolean visu_configFile_exportToXML (const gchar *filename
,int kind
,GError **error
); const gchar* visu_configFile_getPathToResources ();
V_Sim uses two different configuration files. The first stores the configuration of the program itself and is called parameters file. The second stores differents values that control the way files are rendered. It is called resources file. For example, their is an entry in the parameters file that controls your favorite rendering method ; and there is an entry in the resources file that codes that vacancy elements are rendered by cube in the atomic rendering method. Most methods of this part uses a first argument usually called 'kind', that control if the method will apply on the parameters file or on the resources file. VISU_CONFIGFILE_PARAMETER and VISU_CONFIGFILE_RESOURCE are the two flags that should be used for the 'kind' argument.
There are different paths where these files can be
stored. These paths are stored in V_Sim with an order : for example
parameters file are first looked for in the current working
directory, then in the $HOME/.v_sim directory and finally in the
installation directory. This is transparent for the user and
visu_configFile_getValidPath()
is the right method to access to the
best readable configuration file.
Different part of V_Sim can add entries in these files. The
method visu_configFile_addEntry()
is designed to this purpose. The
entries are defined by their name and they appear in the
configuration file as 'name:' followed by the data associated to
this entry. In the parameters file, the data are on the same
line. In the resources file, the data begin the line after and can
be longer that one line. When a configuration file is read, the
method associated to each entry (VisuConfigFileReadFunc()
) is
called with a copy of their data lines. The method
visu_configFile_addExportFunction()
should be used to add a callback
when the configurations files are written, then each part of V_Sim
that have entries can put some lines in the configuration
files.
typedef struct _VisuConfigFileEntry VisuConfigFileEntry;
This is the common name of the structure.
#define VISU_CONFIGFILE_PARAMETER 0
This defines a parameter entry in the config files.
#define VISU_CONFIGFILE_RESOURCE 1
This defines a resource entry in the config files.
gboolean (*VisuConfigFileReadFunc) (gchar **lines
,int nbLines
,int position
,VisuData *dataObj
,GError **error
);
This prototype corresponds to methods called when an entry is
found. The lines
argument is an array of lines read from the files.
These strings are copies and can be modified but not freed. There are
nbLines
and this value correspond to the number of lines defined
for the entry. The error
argument is used to store some text
messages and error ids. They should be in UTF8. The error
argument
must be initialised with (GError*)0. The position
argument give the number
of the first line given in lines
argument. If the dataObj
argument is not null,
some updates should be done with read values.
|
an array of strings ; |
|
an integer ; |
|
an integer ; |
|
a VisuData object ; |
|
a pointer to a GError pointer. |
Returns : |
TRUE if everything goes right, FALSE otherwise. |
void (*VisuConfigFileExportFunc) (GString *data
,VisuData *dataObj
);
This prototype defines a method that is used to export some resources
or parameters. The data
argument is an empty GString where the export has
to be written. If the argument dataObj
is not null, only resources related
to the VisuData object should be exported (for parameters files, dataObj
is
always NULL).
|
an empty GString to store the export ; |
|
a VisuData object. |
VisuConfigFileEntry* visu_configFile_addEntry (int kind
,const gchar *key
,const gchar *description
,int nbLines
,VisuConfigFileReadFunc readFunc
);
This creates a new VisuConfigFileEntry object with the given values. The key and description arguments are copied.
|
an integer ; |
|
a string (should not be NULL) ; |
|
a string (can be NULL) ; |
|
an integer ; |
|
a VisuConfigFileReadFunc. |
Returns : |
the newly created VisuConfigFileEntry object. |
void visu_configFile_addExportFunction (int kind
,VisuConfigFileExportFunc writeFunc
);
This stores the writeFunc
given. It will be called when resources or parameters
will be exported to disk.
|
an integer to identify resources or parameters ; |
|
a VisuConfigFileExportFunc method. |
void visu_configFile_entry_setTag (VisuConfigFileEntry *entry
,const gchar *tag
);
This method is used to set a tag to the given entry. This tag is used
to ignore or not the entry when the file is read. The tag
argument
is copied.
|
a VisuConfigFileEntry object ; |
|
a string. |
void visu_configFile_entry_setVersion (VisuConfigFileEntry *entry
,float version
);
Set the version number the entry appear in.
|
a VisuConfigFileEntry object ; |
|
the version the entry appear in. |
void visu_configFile_entry_setReplace (VisuConfigFileEntry *newEntry
,VisuConfigFileEntry *oldEntry
);
Use this method to declare that oldEntry
has become obsolete and
has been replaced by newEntry
.
|
a VisuConfigFileEntry object ; |
|
idem. |
gboolean visu_configFile_load (int kind
,const char *fileName
,VisuData *dataObj
,GError **error
);
Try to load the resources/parameters from the file name given in parameter.
|
an integer to identify the kind of file ; |
|
the path to file to read ; |
|
a VisuData object, sometime needed to update values (can be NULL) ; |
|
a pointer to a GError pointer.. allow-none. |
Returns : |
TRUE if everything goes right. If error is not NULL it
should be freed with g_error_free() .
|
gboolean visu_configFile_save (int kind
,const char *fileName
,int *lines
,VisuData *dataObj
,GError **error
);
Try to export the resources/parameters to the file name given in
parameter. If lines
argument
is not NULL, and everything went right, it stores the number of written lines.
If the argument dataObj
is not null, only resources related
to the VisuData object should be exported (for parameters files, dataObj
is
always NULL).
|
an integer to identify the kind of file ; |
|
the path to file to read ; |
|
a pointer to an integer (can be NULL) ; |
|
a VisuData object (can be NULL) ; |
|
a location to store a possible error. |
Returns : |
TRUE if everything goes right. |
void visu_configFile_addKnownTag (gchar *tag
);
If parameter entries have a tag, they are ignored except if their tag has been declared using this method.
|
a string (not nul or empty). |
gchar* visu_configFile_getValidPath (int kind
,int mode
,int utf8
);
Test the entries of the hadoc list to find a valid position to read or write a config file. It tests access for the specified file.
|
an integer identifier ; |
|
a value from R_OK, W_OK and X_OK as described in unistd.h. |
|
if 1, the path is return in UTF-8 format, otherwise, the locale of the file system is used. |
Returns : |
the first valid path find in the list of known paths. |
gchar* visu_configFile_getNextValidPath (int kind
,int accessMode
,GList **list
,int utf8
);
Test the entries of the given list to find
a valid position to read or write a config file.
It tests access for the specified file. After a call to this
method the list
argument points to the next entry in the list, after
the one found.
|
an integer identifier ; |
|
a value from R_OK, W_OK and X_OK as described in unistd.h ; |
|
a pointer to a valid *GList ; |
|
if 1, the path is return in UTF-8 format, otherwise, the locale of the file system is used. |
Returns : |
the first valid path find in the given list of paths. |
gchar* visu_configFile_getDefaultFilename (int kind
);
This methods is used to get the filename used for different config files.
|
an integer identifier. |
Returns : |
the filename of config file. The returned *gchar is owned by V_Sim and should not be freed or modified. |
GList* visu_configFile_getPathList (int kind
);
V_Sim stores a list of paths where to look for resources or parameters files, this method is used to get these lists.
|
an integer identifier. |
Returns : |
the list of the parameters or resources paths. This list is read-only.. transfer none. |
GList* visu_configFile_getEntries (int kind
);
This routine should be used for introspections purpose, to know what resources or parameters are available.
|
either VISU_CONFIGFILE_PARAMETER or VISU_CONFIGFILE_RESOURCE ; |
Returns : |
a GList own by V_Sim.. element-type utf8. |
gboolean visu_configFile_exportToXML (const gchar *filename
,int kind
,GError **error
);
Export all the registered entries for resources or parameters to an XML file.
|
a string in the encoding of the file system ; |
|
either VISU_CONFIGFILE_PARAMETER or VISU_CONFIGFILE_RESOURCE ; |
|
a location to store an error. |
Returns : |
TRUE if the file is written with success. |
const gchar* visu_configFile_getPathToResources ();
The resource file can be read from different places.
Returns : |
the path used to read the last resource file. |
Since 3.6