]> Dogcows Code - chaz/homebank/blob - src/ext.h
add plugin engine (supports C and Perl plugins)
[chaz/homebank] / src / ext.h
1
2 #ifndef __EXT_H__
3 #define __EXT_H__
4
5 #include <glib.h>
6
7 #include "ext-value.h"
8
9
10 typedef gint (*PluginEngineInitializer)(int* argc, char** argv[], char** env[]);
11 typedef void (*PluginEngineTerminator)();
12 typedef gboolean (*PluginEngineFileChecker)(const gchar* plugin_filepath);
13 typedef GHashTable* (*PluginMetadataReader)(const gchar* plugin_filepath);
14 typedef gint (*PluginLoader)(const gchar* plugin_filepath);
15 typedef void (*PluginUnloader)(const gchar* plugin_filepath);
16 typedef void (*PluginExecutor)(const gchar* plugin_filepath);
17 typedef void (*PluginHookCaller)(const gchar* hook_id, GList* args);
18
19 void ext_init(int* argc, char** argv[], char** env[]);
20 void ext_term(void);
21 void ext_register(const gchar* type,
22 PluginEngineInitializer,
23 PluginEngineTerminator,
24 PluginEngineFileChecker,
25 PluginMetadataReader,
26 PluginLoader,
27 PluginUnloader,
28 PluginExecutor,
29 PluginHookCaller);
30
31
32 gchar** ext_list_plugins(void);
33 gchar* ext_find_plugin(const gchar* plugin_filename);
34 GHashTable* ext_read_plugin_metadata(const gchar* plugin_filename);
35 gint ext_load_plugin(const gchar* plugin_filename);
36 void ext_unload_plugin(const gchar* plugin_filename);
37 gboolean ext_is_plugin_loaded(const gchar* plugin_filename);
38 void ext_execute_action(const gchar* plugin_filename);
39 void ext_hook(const gchar* hook_id, ...);
40 void ext_vhook(const gchar* hook_id, GList* args);
41 gboolean ext_has(const gchar* feature);
42 void* ext_symbol_lookup(const gchar* symbol);
43 void ext_run_modal(const gchar* title, const gchar* text, const gchar* type);
44
45 #endif
46
This page took 0.032393 seconds and 4 git commands to generate.