## GIOModule GIOModule — Loadable GIO Modules |

## Synopsis

    #include <gio/gio.h>

                        GIOModule;
    GIOModule *         g_io_module_new                     (const gchar *filename);
    GList *             g_io_modules_load_all_in_directory  (const gchar *dirname);
    void                g_io_module_load                    (GIOModule *module);
    void                g_io_module_unload                  (GIOModule *module);

## Object Hierarchy

      GObject
       +----GTypeModule
             +----GIOModule

## Implemented Interfaces

GIOModule implements GTypePlugin.

## Description

Provides an interface and default functions for loading and unloading modules. This is used internally to make GIO extensible, but can also be used by others to implement module loading.

## Details

### GIOModule

    typedef struct _GIOModule GIOModule;

Opaque module base class for extending GIO.

### g_io_module_new ()

    GIOModule *         g_io_module_new                     (const gchar *filename);

Creates a new GIOModule that will load the specific shared library when in use.

`filename` : | filename of the shared library module.
Returns : | a GIOModule from given `filename`, or `NULL` on error.

### g_io_modules_load_all_in_directory ()

    GList *             g_io_modules_load_all_in_directory  (const gchar *dirname);

Loads all the modules in the specified directory.

`dirname` : | pathname for a directory containing modules to load.
Returns : | a list of GIOModules loaded from the directory, All the modules are loaded into memory, if you want to unload them (enabling on-demand loading) you must call `g_type_module_unuse()` on all the modules. Free the list with `g_list_free()`.

### g_io_module_load ()

    void                g_io_module_load                    (GIOModule *module);

Required API for GIO modules to implement. This function is ran after the module has been loaded into GIO, to initialize the module.

`module` : | a GIOModule.

### g_io_module_unload ()

    void                g_io_module_unload                  (GIOModule *module);

Required API for GIO modules to implement. This function is ran when the module is being unloaded from GIO, to finalize the module.

`module` : | a GIOModule.