summaryrefslogtreecommitdiff
path: root/src/plugins/pglist.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/pglist.h')
-rw-r--r--src/plugins/pglist.h24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/plugins/pglist.h b/src/plugins/pglist.h
index 5dfd6c3..d2f2243 100644
--- a/src/plugins/pglist.h
+++ b/src/plugins/pglist.h
@@ -41,8 +41,21 @@ bool init_all_plugins(void);
/* Procède au déchargement des différents greffons présents. */
void exit_all_plugins(void);
+/* Ajoute un greffon à la liste principale de greffons. */
+void _register_plugin(GPluginModule *);
+
+/* Ajoute un greffon à la liste principale de greffons. */
+void register_plugin(GPluginModule *);
+
+/* Charge tous les greffons restant à charger. */
+void load_remaning_plugins(void);
+
+/* Founit le greffon répondant à un nom donné. */
+GPluginModule *get_plugin_by_name(const char *, size_t *);
+
/* Founit less greffons offrant le service demandé. */
-const GPluginModule **get_all_plugins_for_action(PluginAction, size_t *);
+GPluginModule **get_all_plugins_for_action(PluginAction, size_t *);
+
/**
@@ -52,18 +65,23 @@ const GPluginModule **get_all_plugins_for_action(PluginAction, size_t *);
#define process_all_plugins_for(a, f, ...) \
{ \
size_t __count; \
- const GPluginModule **__list; \
+ GPluginModule **__list; \
size_t __i; \
__list = get_all_plugins_for_action(a, &__count); \
for (__i = 0; __i < __count; __i++) \
+ { \
f(__list[__i], a, __VA_ARGS__); \
+ g_object_ref(G_OBJECT(__list[__i])); \
+ } \
+ if (__list != NULL) \
+ free(__list); \
} \
while (0)
/* DPS_FORMAT */
-#define find_matching_format()
+//#define find_matching_format()
#define handle_binary_format(a, f, s) \
process_all_plugins_for(a, g_plugin_module_handle_binary_format, f, s)