### Class

# Gio IOModule

#### Description

    final class Gio.IOModule : GObject.TypeModule
      implements GObject.TypePlugin {
      /* No available fields */
    }

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.

#### Ancestors

- GTypeModule
- GObject

#### Implements

- GTypePlugin

#### Constructors

###### g_io_module_new

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

#### Functions

###### g_io_module_query

Optional API for GIO modules to implement.

since: 2.24

#### Instance methods

###### g_io_module_load

Required API for GIO modules to implement.

###### g_io_module_unload

Required API for GIO modules to implement.

##### Methods inherited from GTypeModule (7)

###### g_type_module_add_interface

Registers an additional interface for a type, whose interface lives in the given type plugin. If the interface was already registered for the type in this plugin, nothing will be done.

###### g_type_module_register_enum

Looks up or registers an enumeration that is implemented with a particular type plugin. If a type with name `type_name` was previously registered, the `GType` identifier for the type is returned, otherwise the type is newly registered, and the resulting `GType` identifier returned.

###### g_type_module_register_flags

Looks up or registers a flags type that is implemented with a particular type plugin. If a type with name `type_name` was previously registered, the `GType` identifier for the type is returned, otherwise the type is newly registered, and the resulting `GType` identifier returned.

###### g_type_module_register_type

Looks up or registers a type that is implemented with a particular type plugin. If a type with name `type_name` was previously registered, the `GType` identifier for the type is returned, otherwise the type is newly registered, and the resulting `GType` identifier returned.

###### g_type_module_set_name

Sets the name for a `GTypeModule`.

###### g_type_module_unuse

Decreases the use count of a `GTypeModule` by one. If the result is zero, the module will be unloaded. (However, the `GTypeModule` will not be freed, and types associated with the `GTypeModule` are not unregistered. Once a `GTypeModule` is initialized, it must exist forever.).

###### g_type_module_use

Increases the use count of a `GTypeModule` by one. If the use count was zero before, the plugin will be loaded. If loading the plugin fails, the use count is reset to its prior value.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from GTypePlugin (4)

###### g_type_plugin_complete_interface_info

Calls the `complete_interface_info` function from the `GTypePluginClass` of `plugin`. There should be no need to use this function outside of the GObject type system itself.

###### g_type_plugin_complete_type_info

Calls the `complete_type_info` function from the `GTypePluginClass` of `plugin`. There should be no need to use this function outside of the GObject type system itself.

###### g_type_plugin_unuse

Calls the `unuse_plugin` function from the `GTypePluginClass` of `plugin`. There should be no need to use this function outside of the GObject type system itself.

###### g_type_plugin_use

Calls the `use_plugin` function from the `GTypePluginClass` of `plugin`. There should be no need to use this function outside of the GObject type system itself.

#### Signals

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct GioIOModuleClass {
      /* no available fields */
    }

No description available.