diff options
Diffstat (limited to 'src/plugins/plugin.h')
-rw-r--r-- | src/plugins/plugin.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/plugins/plugin.h b/src/plugins/plugin.h index bc6189f..6d783b7 100644 --- a/src/plugins/plugin.h +++ b/src/plugins/plugin.h @@ -44,6 +44,21 @@ typedef struct _GPluginModule GPluginModule; typedef struct _GPluginModuleClass GPluginModuleClass; +/* Fanions indiquant le statut du greffon */ +typedef enum _PluginStatusFlags +{ + PSF_NONE = (0 << 0), /* Aucune indication */ + PSF_UNKNOW_DEP = (1 << 0), /* Dépendance non trouvée */ + PSF_DEP_LOOP = (1 << 1), /* Dépendances circulaires */ + PSF_FAILURE = (1 << 2), /* Erreur au chargement */ + PSF_LOADED = (1 << 2) /* Greffon intégré au système */ + +} PluginStatusFlags; + + +#define BROKEN_PLUGIN_STATUS (PSF_UNKNOW_DEP | PSF_DEP_LOOP | PSF_FAILURE) + + #define G_TYPE_PLUGIN_MODULE (g_plugin_module_get_type()) #define G_PLUGIN_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_PLUGIN_MODULE, GPluginModule)) #define G_IS_PLUGIN_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_PLUGIN_MODULE)) @@ -61,6 +76,14 @@ GPluginModule *g_plugin_module_new(const gchar *); /* Fournit la description du greffon dans son intégralité. */ const plugin_interface *g_plugin_module_get_interface(const GPluginModule *); +/* Fournit des indications sur l'état du greffon. */ +PluginStatusFlags g_plugin_module_get_flags(const GPluginModule *); + +/* Met à jour l'ensemble des dépendances du greffon. */ +bool g_plugin_module_resolve_dependencies(GPluginModule *, GPluginModule **, size_t); + +/* Termine le chargement du greffon préparé. */ +bool g_plugin_module_load(GPluginModule *, GPluginModule **, size_t); |