| Top |  |  |  |  | 
| GType | (*GOPluginServiceCreate) () | 
| void | go_plugin_service_activate () | 
| void | go_plugin_service_deactivate () | 
| void | go_plugin_service_define () | 
| gpointer | go_plugin_service_get_cbs () | 
| char const * | go_plugin_service_get_description () | 
| char const * | go_plugin_service_get_id () | 
| GOPlugin * | go_plugin_service_get_plugin () | 
| void | go_plugin_service_load () | 
| GOPluginService * | go_plugin_service_new () | 
| GType | go_plugin_service_plugin_loader_generate_type () | 
| void | go_plugin_service_unload () | 
| void | go_plugin_services_shutdown () | 
    GObject
    ╰── GOPluginService
        ├── GOPluginServiceFileOpener
        ├── GOPluginServiceFileSaver
        ├── GOPluginServiceGeneral
        ├── GOPluginServiceSimple
        │   ├── GOPluginServiceGObjectLoader
        │   ╰── GOPluginServiceGObjectLoader
        ├── GOPluginServicePluginLoader
        ╰── GOPluginServiceResource
void go_plugin_service_activate (GOPluginService *service,GOErrorInfo **ret_error);
void go_plugin_service_deactivate (GOPluginService *service,GOErrorInfo **ret_error);
void go_plugin_service_define (char const *type_str,GOPluginServiceCreate ctor);
Allow the definition of new service types
char const     *
go_plugin_service_get_description (GOPluginService *service);
void go_plugin_service_load (GOPluginService *service,GOErrorInfo **ret_error);
GOPluginService * go_plugin_service_new (GOPlugin *plugin,xmlNode *tree,GOErrorInfo **ret_error);
GType go_plugin_service_plugin_loader_generate_type (GOPluginService *service,GOErrorInfo **ret_error);
void go_plugin_service_unload (GOPluginService *service,GOErrorInfo **ret_error);
typedef struct {
	GObjectClass g_object_class;
	void (*read_xml) (GOPluginService *service, xmlNode *tree, GOErrorInfo **ret_error);
	void (*activate) (GOPluginService *service, GOErrorInfo **ret_error);
	void (*deactivate) (GOPluginService *service, GOErrorInfo **ret_error);
	char *(*get_description) (GOPluginService *service);
} GOPluginServiceClass;
typedef struct {
	GOPluginServiceClass plugin_service_class;
	GHashTable *pending; /* has service instances by type names */
} GOPluginServiceGObjectLoaderClass;
| GOPluginServiceClass  | parent class. | |
| has service instances by type names. | 
typedef struct {
	/* plugin_func_file_probe may be NULL */
	gboolean (*plugin_func_file_probe) (
	         GOFileOpener const *fo, GOPluginService *service,
	         GsfInput *input, GOFileProbeLevel pl);
	void     (*plugin_func_file_open) (
	         GOFileOpener const *fo, GOPluginService *service,
	         GOIOContext *io_context, GoView *view,
		 GsfInput *input, char const *enc);
} GOPluginServiceFileOpenerCallbacks;
typedef struct {
	void  (*plugin_func_file_save) (
	      GOFileSaver const *fs, GOPluginService *service,
	      GOIOContext *io_context, GoView const *view,
	      GsfOutput *output);
} GOPluginServiceFileSaverCallbacks;
typedef struct _GOPluginServiceGObjectLoader GOPluginServiceGObjectLoader;
typedef struct {
	void (*plugin_func_init) (GOPluginService *service, GOErrorInfo **ret_error);
	void (*plugin_func_cleanup) (GOPluginService *service, GOErrorInfo **ret_error);
} GOPluginServiceGeneralCallbacks;
typedef struct _GOPluginServicePluginLoader GOPluginServicePluginLoader;
typedef struct {
	GType (*plugin_func_get_loader_type) (
	      GOPluginService *service, GOErrorInfo **ret_error);
} GOPluginServicePluginLoaderCallbacks;