1 #ifndef GO_PLUGIN_LOADER_H
2 #define GO_PLUGIN_LOADER_H
3 
4 #include <glib.h>
5 #include <glib-object.h>
6 #include <libxml/tree.h>
7 #include <goffice/app/go-plugin.h>
8 #include <goffice/app/goffice-app.h>
9 
10 G_BEGIN_DECLS
11 
12 #define GO_TYPE_PLUGIN_LOADER		(go_plugin_loader_get_type ())
13 #define GO_PLUGIN_LOADER(o)		(G_TYPE_CHECK_INSTANCE_CAST ((o), GO_TYPE_PLUGIN_LOADER, GOPluginLoader))
14 #define GO_IS_PLUGIN_LOADER(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), GO_TYPE_PLUGIN_LOADER))
15 #define GO_PLUGIN_LOADER_CLASS(k)	(G_TYPE_CHECK_CLASS_CAST ((k), GO_TYPE_PLUGIN_LOADER, GOPluginLoaderClass))
16 #define GO_IS_PLUGIN_LOADER_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), GO_TYPE_PLUGIN_LOADER))
17 
18 typedef struct {
19 	GTypeInterface base;
20 
21 	void (*load_base)		(GOPluginLoader *l, GOErrorInfo **err);
22 	void (*unload_base)		(GOPluginLoader *l, GOErrorInfo **err);
23 	void (*set_attributes)		(GOPluginLoader *l, GHashTable *attrs, GOErrorInfo **err);
24 	gboolean (*service_load)	(GOPluginLoader *l, GOPluginService *s, GOErrorInfo **err);
25 	gboolean (*service_unload)	(GOPluginLoader *l, GOPluginService *s, GOErrorInfo **err);
26 
27 	void (*load_service_file_opener)	(GOPluginLoader *l, GOPluginService *s, GOErrorInfo **err);
28 	void (*unload_service_file_opener)	(GOPluginLoader *l, GOPluginService *s, GOErrorInfo **err);
29 
30 	void (*load_service_file_saver)		(GOPluginLoader *l, GOPluginService *s, GOErrorInfo **err);
31 	void (*unload_service_file_saver)	(GOPluginLoader *l, GOPluginService *s, GOErrorInfo **err);
32 
33 	void (*load_service_plugin_loader)	(GOPluginLoader *l, GOPluginService *s, GOErrorInfo **err);
34 	void (*unload_service_plugin_loader)	(GOPluginLoader *l, GOPluginService *s, GOErrorInfo **err);
35 } GOPluginLoaderClass;
36 
37 GType	   go_plugin_loader_get_type (void);
38 void	   go_plugin_loader_set_attributes (GOPluginLoader *l, GHashTable *attrs,
39 					    GOErrorInfo **err);
40 GOPlugin *go_plugin_loader_get_plugin	   (GOPluginLoader *l);
41 void	   go_plugin_loader_set_plugin	   (GOPluginLoader *l, GOPlugin *p);
42 void	   go_plugin_loader_load_base	   (GOPluginLoader *l, GOErrorInfo **err);
43 void	   go_plugin_loader_unload_base	   (GOPluginLoader *l, GOErrorInfo **err);
44 void	   go_plugin_loader_load_service   (GOPluginLoader *l, GOPluginService *s, GOErrorInfo **err);
45 void	   go_plugin_loader_unload_service (GOPluginLoader *l, GOPluginService *s, GOErrorInfo **err);
46 gboolean   go_plugin_loader_is_base_loaded (GOPluginLoader *l);
47 
48 G_END_DECLS
49 
50 #endif /* GO_PLUGIN_LOADER_H */
51