summaryrefslogtreecommitdiff
path: root/src/plugins/plugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/plugin.h')
-rw-r--r--src/plugins/plugin.h23
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);