![]() |
![]() |
![]() |
Gwyddion Module Library Reference Manual | ![]() |
---|
gwymoduleloadergwymoduleloader — Basic module loader interface |
#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 1
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 *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 *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. |
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. |
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. |
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. |
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. |
<< gwymoduleenums | gwymodule-file >> |