## GOPlugin

GOPlugin

## Functions

void | (*GOPluginMethod) ()
void | go_plugin_activate ()
gboolean | go_plugin_can_deactivate ()
void | go_plugin_db_activate_plugin_list ()
void | go_plugin_db_deactivate_plugin_list ()
gboolean | go_plugin_db_is_plugin_marked_for_deactivation ()
void | go_plugin_db_mark_plugin_for_deactivation ()
void | go_plugin_deactivate ()
GSList * | go_plugin_get_dependencies_ids ()
char const * | go_plugin_get_description ()
char const * | go_plugin_get_dir_name ()
char const * | go_plugin_get_id ()
GOPluginLoader * | go_plugin_get_loader ()
char const * | go_plugin_get_name ()
GSList * | go_plugin_get_services ()
char const * | go_plugin_get_textdomain ()
GTypeModule * | go_plugin_get_type_module ()
gboolean | go_plugin_is_active ()
gboolean | go_plugin_is_loaded ()
void | go_plugin_load_service ()
void | go_plugin_unload_service ()
void | go_plugin_use_ref ()
void | go_plugin_use_unref ()
GSList * | go_plugins_get_active_plugins ()
GSList * | go_plugins_get_available_plugins ()
GOPlugin * | go_plugins_get_plugin_by_id ()
char * | go_plugins_get_plugin_dir ()
void | go_plugins_init ()
void | go_plugins_register_loader ()
void | go_plugins_rescan ()
GSList * | go_plugins_shutdown ()
void | go_plugins_unregister_loader ()

## Types and Values

| GOPluginServiceResource

## Object Hierarchy

        GObject
        ╰── GOPluginService
            ╰── GOPluginServiceResource

## Description

## Functions

### GOPluginMethod ()

    void
    (*GOPluginMethod) (GOPlugin *plugin,
                       GOCmdContext *cc);

### go_plugin_activate ()

    void
    go_plugin_activate (GOPlugin *plugin,
                        GOErrorInfo **ret_error);

Activates `plugin` together with all its dependencies. In case of error the plugin won't be activated and detailed error information will be returned using `ret_error` .

#### Parameters

plugin | GOPlugin |
ret_error | Pointer used to report errors |

### go_plugin_can_deactivate ()

    gboolean
    go_plugin_can_deactivate (GOPlugin *plugin);

Tells if the plugin can be deactivated using go_plugin_deactivate.

#### Parameters

plugin | GOPlugin |

#### Returns

`TRUE` if `plugin` can be deactivated and `FALSE` otherwise.

### go_plugin_db_activate_plugin_list ()

    void
    go_plugin_db_activate_plugin_list (GSList *plugins,
                                       GOErrorInfo **ret_error);

Activates all plugins in the list. If some of the plugins cannot be activated, the function reports this via `ret_error` (errors don't affect plugins activated successfully).

#### Parameters

plugins | The list of plugins. | [element-type GOPlugin]
ret_error | Pointer used to report errors. | [out]

### go_plugin_db_deactivate_plugin_list ()

    void
    go_plugin_db_deactivate_plugin_list (GSList *plugins,
                                         GOErrorInfo **ret_error);

Deactivates all plugins in the list. If some of the plugins cannot be deactivated, the function reports this via `ret_error` (errors don't affect plugins deactivated successfully).

#### Parameters

plugins | The list of plugins. | [element-type GOPlugin]
ret_error | Pointer used to report errors |

### go_plugin_db_is_plugin_marked_for_deactivation ()

    gboolean
    go_plugin_db_is_plugin_marked_for_deactivation
                                   (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

### go_plugin_db_mark_plugin_for_deactivation ()

    void
    go_plugin_db_mark_plugin_for_deactivation
                                   (GOPlugin *plugin,
                                    gboolean mark);

#### Parameters

plugin | GOPlugin |

### go_plugin_deactivate ()

    void
    go_plugin_deactivate (GOPlugin *plugin,
                          GOErrorInfo **ret_error);

Dectivates `plugin` . Its dependencies will NOT be automatically deactivated. In case of error the plugin won't be deactivated and detailed error information will be returned using `ret_error` .

#### Parameters

plugin | GOPlugin |
ret_error | Pointer used to report errors |

### go_plugin_get_dependencies_ids ()

    GSList *
    go_plugin_get_dependencies_ids (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

#### Returns

the list of identifiers of plugins that `plugin` depends on. All these plugins will be automatically activated before activating the `plugin` itself.

[element-type utf8][transfer full]

### go_plugin_get_description ()

    char const  *
    go_plugin_get_description (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

#### Returns

textual description of `plugin` or `NULL` if description is not available. Returned string stays valid during `plugin` 's lifetime.

### go_plugin_get_dir_name ()

    char const  *
    go_plugin_get_dir_name (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

#### Returns

the name of the directory in which `plugin` is located. Returned string is != NULL and stays valid during `plugin` 's lifetime.

### go_plugin_get_id ()

    char const  *
    go_plugin_get_id (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

#### Returns

the ID of `plugin` (unique string used for idenfification of plugin). Returned string is != NULL and stays valid during `plugin` 's lifetime.

### go_plugin_get_loader ()

    GOPluginLoader *
    go_plugin_get_loader (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

#### Returns

The loader.

[transfer none]

### go_plugin_get_name ()

    char const  *
    go_plugin_get_name (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

#### Returns

textual name of `plugin` . If the real name is not available for some reason, automatically generated string will be returned. Returned string is != NULL and stays valid during `plugin` 's lifetime.

### go_plugin_get_services ()

    GSList *
    go_plugin_get_services (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

#### Returns

A list of services. The list must not be freed or changed.

[element-type GOPluginService][transfer none]

### go_plugin_get_textdomain ()

    char const  *
    go_plugin_get_textdomain (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

#### Returns

plugin's textdomain for use with textdomain(3) and d*gettext(3) functions.

### go_plugin_get_type_module ()

    GTypeModule *
    go_plugin_get_type_module (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

#### Returns

the GTypeModule associated with the plugin creating it if necessary.

[transfer none]

### go_plugin_is_active ()

    gboolean
    go_plugin_is_active (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

#### Returns

`TRUE` if `plugin` is active and `FALSE` otherwise.

### go_plugin_is_loaded ()

    gboolean
    go_plugin_is_loaded (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

#### Returns

`TRUE` if `plugin` is loaded and `FALSE` otherwise.

### go_plugin_load_service ()

    void
    go_plugin_load_service (GOPlugin *plugin,
                            GOPluginService *service,
                            GOErrorInfo **ret_error);

Loads base part of the plugin if it is not loaded and then loads given plugin service (prepares necessary part of the plugin for direct use). This function is intended for use by GOPluginService objects.

#### Parameters

plugin | GOPlugin |
service | Plugin service |
ret_error | Pointer used to report errors |

### go_plugin_unload_service ()

    void
    go_plugin_unload_service (GOPlugin *plugin,
                              GOPluginService *service,
                              GOErrorInfo **ret_error);

... This function is intended for use by GOPluginService objects.

#### Parameters

plugin | GOPlugin |
service | Plugin service |
ret_error | Pointer used to report errors |

### go_plugin_use_ref ()

    void
    go_plugin_use_ref (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

### go_plugin_use_unref ()

    void
    go_plugin_use_unref (GOPlugin *plugin);

#### Parameters

plugin | GOPlugin |

### go_plugins_get_active_plugins ()

    GSList *
    go_plugins_get_active_plugins (void);

#### Returns

the list of active plugins names.

[element-type utf8][transfer container]

### go_plugins_get_available_plugins ()

    GSList *
    go_plugins_get_available_plugins (void);

#### Returns

the list of available plugins. The returned value must not be freed and stays valid until calling plugins_rescan or plugins_shutdown.

[element-type GOPlugin][transfer none]

### go_plugins_get_plugin_by_id ()

    GOPlugin *
    go_plugins_get_plugin_by_id (const gchar *plugin_id);

#### Parameters

plugin_id | String containing plugin ID |

#### Returns

GOPlugin object for plugin with ID equal to `plugin_id` or `NULL` if there's no plugin available with given id. Function returns "borrowed" reference, use g_object_ref if you want to be sure that plugin won't disappear.

[transfer none]

### go_plugins_get_plugin_dir ()

    char *
    go_plugins_get_plugin_dir (void);

### go_plugins_init ()

    void
    go_plugins_init (GOCmdContext *context,
                     GSList const *known_states,
                     GSList const *active_plugins,
                     GSList *plugin_dirs,
                     gboolean activate_new_plugins,
                     GType default_loader_type);

Initializes the plugin subsystem. Might be called several times to add new plugins.

#### Parameters

context | GOCmdContext used to report errors. | [allow-none]
known_states | A list of known states (defined how ?). | [allow-none][element-type utf8]
active_plugins | A list of active plugins. | [allow-none][element-type utf8]
plugin_dirs | a list of directories to search for plugins. | [allow-none][element-type utf8]
activate_new_plugins | activate plugins we have no seen before. |
default_loader_type | importer to use by default. |

### go_plugins_register_loader ()

    void
    go_plugins_register_loader (const gchar *id_str,
                                GOPluginService *service);

Registers new type of plugin loader identified by `loader_id` (identifier consists of loader's plugin ID and service ID concatenated using colon). All requests to create new loader object of this type will be passed to `service` .

This function is intended for use by GOPluginService objects.

#### Parameters

id_str | Loader's id |
service | Plugin service of type "plugin_loader" |

### go_plugins_rescan ()

    void
    go_plugins_rescan (GOErrorInfo **ret_error,
                       GSList **ret_new_plugins);

#### Parameters

ret_error | Pointer used to report errors |
ret_new_plugins | Optional pointer to return list of new plugins. | [element-type GOPlugin]

### go_plugins_shutdown ()

    GSList *
    go_plugins_shutdown (void);

Shuts down the plugin subsystem. Call this function only once before exiting the application. Some plugins may be left active or in broken state, so calling plugins_init again will NOT work properly.

#### Returns

the list of plugins still in use.

[element-type utf8][transfer full]

### go_plugins_unregister_loader ()

    void
    go_plugins_unregister_loader (const gchar *id_str);

Unregisters a type of plugin loader identified by `loader_id` . After callingthis function Gnumeric will be unable to load plugins supported by the specified loader.

This function is intended for use by GOPluginService objects.

#### Parameters

id_str | Loader's id |

## Types and Values

### GOPluginServiceResource

    typedef struct _GOPluginServiceResource GOPluginServiceResource;