![]() |
![]() |
![]() |
Gwyddion Module Library Reference Manual | ![]() |
---|---|---|---|---|
#define GWY_MODULE_ABI_VERSION #define GWY_MODULE_QUERY (mod_info) GwyModuleInfo; gboolean (*GwyModuleRegisterFunc) (const gchar *name); GwyModuleInfo* (*GwyModuleQueryFunc) (void); void gwy_module_register_modules (const gchar **paths); const GwyModuleInfo* gwy_module_lookup (const gchar *name); const gchar* gwy_module_get_filename (const gchar *name); GSList* gwy_module_get_functions (const gchar *name); void gwy_module_foreach (GHFunc function, gpointer data); const GwyModuleInfo* gwy_module_register_module (const gchar *name); void gwy_module_set_register_callback (void (*callback) (const gchar *fullname));
#define GWY_MODULE_ABI_VERSION 0
Gwyddion module ABI version.
To be filled as abi_version
in GwyModuleInfo.
#define GWY_MODULE_QUERY(mod_info)
The declaration of module info query (the ONLY exported symbol from a module).
This macro does The Right Thing necessary to export module info in a way Gwyddion understands it. Put GWY_MODULE_QUERY with the module info (GwyModuleInfo) of your module as its argument on a line (with NO semicolon after).
mod_info : |
The GwyModuleInfo structure to return as module info. |
typedef struct { guint32 abi_version; GwyModuleRegisterFunc register_func; const gchar *name; const gchar *blurb; const gchar *author; const gchar *version; const gchar *copyright; const gchar *date; } GwyModuleInfo;
Module information returned by GWY_MODULE_QUERY()
.
guint32 abi_version ; |
Gwyddion module ABI version, should be always GWY_MODULE_ABI_VERSION. |
GwyModuleRegisterFunc register_func ; |
Module registration function (the function run by Gwyddion module system, actually registering particular module features). |
const gchar *name ; |
An unique module name. |
const gchar *blurb ; |
Some module description. |
const gchar *author ; |
Module author(s). |
const gchar *version ; |
Module version. |
const gchar *copyright ; |
Who has copyright on this module. |
const gchar *date ; |
Date (year). |
gboolean (*GwyModuleRegisterFunc) (const gchar *name);
Module registration function type.
It actually runs particular featrue registration functions, like
gwy_module_register_file_func()
and gwy_module_register_process_func()
.
name : |
An unique module name. |
Returns : | Whether the registration succeeded. When it returns FALSE , the
module and its features are unloaded (FIXME: maybe. Currenly only
module is unloaded, features are NOT unregistered, this can lead
to all kinds of disasters).
|
GwyModuleInfo* (*GwyModuleQueryFunc) (void);
Module query function type.
The module query function should be simply declared as GWY_MODULE_QUERY(mod_info), where mod_info is module info struct for the module.
Returns : | The module info struct. |
void gwy_module_register_modules (const gchar **paths);
Register all modules in given directories.
Can be called several times (on different directories).
paths : |
A NULL delimited list of directory names.
|
const GwyModuleInfo* gwy_module_lookup (const gchar *name);
Returns information about one module.
name : |
A module name. |
Returns : | The module info, of NULL if not found. It must be considered
constant and never modified or freed.
|
const gchar* gwy_module_get_filename (const gchar *name);
Returns full file name of a module.
name : |
A module name. |
Returns : | Module file name as a string that must be modified or freed. |
Since 1.9
GSList* gwy_module_get_functions (const gchar *name);
Returns list of names of functions a module implements.
name : |
A module name. |
Returns : | List of module function names, as a GSList that is owned by module loader and must not be modified or freed. |
Since 1.9
void gwy_module_foreach (GHFunc function, gpointer data);
Runs function
on each registered module.
It passes module name as the key and pointer to module info as the value. Neither should be modified.
function : |
A GHFunc run for each module. |
data : |
User data. |
Since 1.9
const GwyModuleInfo* gwy_module_register_module (const gchar *name);
Loads a single module.
name : |
Module file name to load, including full path and extension. |
Returns : | Module info on success, NULL on failure.
|
Since 1.4.
void gwy_module_set_register_callback (void (*callback) (const gchar *fullname));
Sets function registration callback.
Note this is very rudimentary and only one callback can exist at a time.
callback : |
A callback function called when a function is registered with full (prefixed) function name. |