diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2017-09-30 11:22:46 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2017-09-30 11:22:46 (GMT) |
commit | db702d1243e6fec187137d48cecb89de17fefc3b (patch) | |
tree | 13776b4b75377951d9ebf9a57078ae1aed659cba /src/plugins/pglist.h | |
parent | 6ba73df8224dc2a88fe5f37a331960936758036e (diff) |
Handled dependencies when loading plugins.
Diffstat (limited to 'src/plugins/pglist.h')
-rw-r--r-- | src/plugins/pglist.h | 24 |
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) |