## GOPluginService GOPluginService |

## Functions

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 ()

## Types and Values

| GOPluginService
| GOPluginServiceClass
| GOPluginServiceGObjectLoaderClass
| GOPluginServiceFileOpener
| GOPluginServiceFileOpenerCallbacks
| GOPluginServiceFileSaver
| GOPluginServiceFileSaverCallbacks
| GOPluginServiceGObjectLoader
| GOPluginServiceGeneral
| GOPluginServiceGeneralCallbacks
| GOPluginServicePluginLoader
| GOPluginServicePluginLoaderCallbacks
| GOPluginServiceSimple

## Object Hierarchy

        GObject
        ├── GOPluginService
        │   ├── GOPluginServiceFileOpener
        │   ├── GOPluginServiceFileSaver
        │   ├── GOPluginServiceGeneral
        │   ├── GOPluginServicePluginLoader
        │   ╰── GOPluginServiceSimple
        │       ╰── GOPluginServiceGObjectLoader
        ╰── GOPluginService
            ├── GOPluginServiceFileOpener
            ├── GOPluginServiceFileSaver
            ├── GOPluginServiceGeneral
            ├── GOPluginServiceSimple
            │   ╰── GOPluginServiceGObjectLoader
            ├── GOPluginServicePluginLoader
            ╰── GOPluginServiceResource

## Description

## Functions

### GOPluginServiceCreate ()

    GType
    (*GOPluginServiceCreate) (void);

#### Returns

### go_plugin_service_activate ()

    void
    go_plugin_service_activate (GOPluginService *service,
                                GOErrorInfo **ret_error);

### go_plugin_service_deactivate ()

    void
    go_plugin_service_deactivate (GOPluginService *service,
                                  GOErrorInfo **ret_error);

### go_plugin_service_define ()

    void
    go_plugin_service_define (char const *type_str,
                              GOPluginServiceCreate ctor);

Allow the definition of new service types

#### Parameters

type_str | char const * |
ctor | GOPluginServiceCreate. | [scope async]

### go_plugin_service_get_cbs ()

    gpointer
    go_plugin_service_get_cbs (GOPluginService *service);

#### Parameters

service | GOPluginService |

#### Returns

the callbacks for the service.

[transfer none]

### go_plugin_service_get_description ()

    char const     *
    go_plugin_service_get_description (GOPluginService *service);

#### Returns

### go_plugin_service_get_id ()

    char const     *
    go_plugin_service_get_id (const GOPluginService *service);

#### Returns

### go_plugin_service_get_plugin ()

    GOPlugin *
    go_plugin_service_get_plugin (GOPluginService *service);

#### Parameters

service | GOPluginService |

#### Returns

the plugin offering `service` .

[transfer none]

### go_plugin_service_load ()

    void
    go_plugin_service_load (GOPluginService *service,
                            GOErrorInfo **ret_error);

### go_plugin_service_new ()

    GOPluginService *
    go_plugin_service_new (GOPlugin *plugin,
                           xmlNode *tree,
                           GOErrorInfo **ret_error);

#### Returns

### go_plugin_service_plugin_loader_generate_type ()

    GType
    go_plugin_service_plugin_loader_generate_type
                                   (GOPluginService *service,
                                    GOErrorInfo **ret_error);

#### Returns

### go_plugin_service_unload ()

    void
    go_plugin_service_unload (GOPluginService *service,
                              GOErrorInfo **ret_error);

### go_plugin_services_shutdown ()

    void
    go_plugin_services_shutdown (void);

## Types and Values

### GOPluginService

    typedef struct _GOPluginService GOPluginService;

### GOPluginServiceClass

    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;

#### Members

GObjectClass `g_object_class`; |  |
`read_xml` () | read XML node containing the service description. |
`activate` () | actviates the service. |
`deactivate` () | deactivates the service. |
`get_description` () | gets the service description. |

### GOPluginServiceGObjectLoaderClass

    typedef struct {
    	GOPluginServiceClass plugin_service_class;
    	GHashTable *pending; /* has service instances by type names */
    } GOPluginServiceGObjectLoaderClass;

#### Members

GOPluginServiceClass `plugin_service_class`; | parent class. |
GHashTable *`pending`; | has service instances by type names. |

### GOPluginServiceFileOpener

    typedef struct _GOPluginServiceFileOpener GOPluginServiceFileOpener;

### GOPluginServiceFileOpenerCallbacks

    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;

#### Members

`plugin_func_file_probe` () | probes the file, may be `NULL`. |
`plugin_func_file_open` () | opens and reads the file. |

### GOPluginServiceFileSaver

    typedef struct _GOPluginServiceFileSaver GOPluginServiceFileSaver;

### GOPluginServiceFileSaverCallbacks

    typedef struct {
    	void  (*plugin_func_file_save) (
    	      GOFileSaver const *fs, GOPluginService *service,
    	      GOIOContext *io_context, GoView const *view,
    	      GsfOutput *output);
    } GOPluginServiceFileSaverCallbacks;

#### Members

`plugin_func_file_save` () | saves the file. |

### GOPluginServiceGObjectLoader

    typedef struct _GOPluginServiceGObjectLoader GOPluginServiceGObjectLoader;

### GOPluginServiceGeneral

    typedef struct _GOPluginServiceGeneral GOPluginServiceGeneral;

### GOPluginServiceGeneralCallbacks

    typedef struct {
    	void (*plugin_func_init) (GOPluginService *service, GOErrorInfo **ret_error);
    	void (*plugin_func_cleanup) (GOPluginService *service, GOErrorInfo **ret_error);
    } GOPluginServiceGeneralCallbacks;

#### Members

`plugin_func_init` () | initializes the service. |
`plugin_func_cleanup` () | service cleanup. |

### GOPluginServicePluginLoader

    typedef struct _GOPluginServicePluginLoader GOPluginServicePluginLoader;

### GOPluginServicePluginLoaderCallbacks

    typedef struct {
    	GType (*plugin_func_get_loader_type) (
    	      GOPluginService *service, GOErrorInfo **ret_error);
    } GOPluginServicePluginLoaderCallbacks;

#### Members

`plugin_func_get_loader_type` () | returns a GType for a function loader. Used by gnumeric in the Python and Perl plugins. |

### GOPluginServiceSimple

    typedef struct _GOPluginServiceSimple GOPluginServiceSimple;