class Gio::IOModule

Overview

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.

Included Modules

Defined in:

lib/gi-crystal/src/auto/gio-2.0/io_module.cr

Constructors

Class Method Summary

Instance methods inherited from module GObject::TypePlugin

complete_interface_info(instance_type : UInt64, interface_type : UInt64, info : GObject::InterfaceInfo) : Nil complete_interface_info, complete_type_info(g_type : UInt64, info : GObject::TypeInfo, value_table : GObject::TypeValueTable) : Nil complete_type_info, to_unsafe to_unsafe, unuse : Nil unuse, use : Nil use

Class methods inherited from module GObject::TypePlugin

g_type : UInt64 g_type

Instance methods inherited from class GObject::TypeModule

add_interface(instance_type : UInt64, interface_type : UInt64, interface_info : GObject::InterfaceInfo) : Nil add_interface, name=(name : String) : Nil name=, register_enum(name : String, const_static_values : GObject::EnumValue) : UInt64 register_enum, register_flags(name : String, const_static_values : GObject::FlagsValue) : UInt64 register_flags, register_type(parent_type : UInt64, type_name : String, type_info : GObject::TypeInfo, flags : GObject::TypeFlags) : UInt64 register_type, unuse : Nil unuse, use : Bool use

Constructor methods inherited from class GObject::TypeModule

new new

Class methods inherited from class GObject::TypeModule

g_type : UInt64 g_type

Instance methods inherited from module GObject::TypePlugin

complete_interface_info(instance_type : UInt64, interface_type : UInt64, info : GObject::InterfaceInfo) : Nil complete_interface_info, complete_type_info(g_type : UInt64, info : GObject::TypeInfo, value_table : GObject::TypeValueTable) : Nil complete_type_info, to_unsafe to_unsafe, unuse : Nil unuse, use : Nil use

Class methods inherited from module GObject::TypePlugin

g_type : UInt64 g_type

Instance methods inherited from class GObject::Object

bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding bind_property, bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding bind_property_full, data(key : String) : Pointer(Void)? data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, notify(property_name : String) : Nil notify, notify_by_pspec(pspec : GObject::ParamSpec) : Nil notify_by_pspec, notify_signal notify_signal, property(property_name : String, value : _) : Nil property, qdata(quark : UInt32) : Pointer(Void)? qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void)?) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void)? steal_data, steal_qdata(quark : UInt32) : Pointer(Void)? steal_qdata, thaw_notify : Nil thaw_notify, to_unsafe : Pointer(Void) to_unsafe, watch_closure(closure : GObject::Closure) : Nil watch_closure

Constructor methods inherited from class GObject::Object

cast(obj : GObject::Object) : self cast, cast?(obj : GObject::Object) : self? cast?, new(pointer, transfer : GICrystal::Transfer)
new
new
, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv

Class methods inherited from class GObject::Object

compat_control(what : UInt64, data : Pointer(Void)?) : UInt64 compat_control, g_type : UInt64 g_type, interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec interface_find_property, interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec) interface_list_properties

Constructor Detail

def self.new(filename : String) : self #

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


def self.new #

Initialize a new IOModule.


Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


def self.query : Enumerable(String) #

Optional API for GIO modules to implement.

Should return a list of all the extension points that may be implemented in this module.

This method will not be called in normal use, however it may be called when probing existing modules and recording which extension points that this model is used for. This means we won't have to load and initialize this module unless its needed.

If this function is not implemented by the module the module will always be loaded, initialized and then unloaded on application startup so that it can register its extension points during init.

Note that a module need not actually implement all the extension points that g_io_module_query() returns, since the exact list of extension may depend on runtime issues. However all extension points actually implemented must be returned by g_io_module_query() (if defined).

When installing a module that implements g_io_module_query() you must run gio-querymodules in order to build the cache files required for lazy loading.

Since 2.56, this function should be named g_io_<modulename>_query, where modulename is the plugin’s filename with the lib or libgio prefix and everything after the first dot removed, and with - replaced with _ throughout. For example, libgiognutls-helper.so becomes gnutls_helper. Using the new symbol names avoids name clashes when building modules statically. The old symbol names continue to be supported, but cannot be used for static builds.