Finds a Gio.IOExtension for an extension point by name.
the name of the extension to get
the Gio.IOExtension for extension_point that has the given name, or null if there is no extension with that name
Gets a list of all extensions that implement this extension point. The list is sorted by priority, beginning with the highest priority.
a GLib.List of GIOExtensions. The list is owned by GIO and should not be modified.
Gets the required type for extension_point.
the GObject.GType that all implementations must have, or G_TYPE_INVALID if the extension point has no required type
Sets the required type for extension_point to type.
All implementations must henceforth have this type.
the GObject.GType to require
StaticimplementRegisters type as extension for the extension point with name
extension_point_name.
If type has already been registered as an extension for this
extension point, the existing Gio.IOExtension object is returned.
the name of the extension point
the GObject.GType to register as extension
the name for the extension
the priority for the extension
StaticlookupLooks up an existing extension point.
the name of the extension point
StaticregisterRegisters an extension point.
The name of the extension point
Gio.IOExtensionPoint provides a mechanism for modules to extend the functionality of the library or application that loaded it in an organized fashion.
An extension point is identified by a name, and it may optionally require that any implementation must be of a certain type (or derived thereof). Use Gio.IOExtensionPoint.register to register an extension point, and Gio.IOExtensionPoint.set_required_type to set a required type.
A module can implement an extension point by specifying the GObject.Type that implements the functionality. Additionally, each implementation of an extension point has a name, and a priority. Use Gio.IOExtensionPoint.implement to implement an extension point.
It is up to the code that registered the extension point how it uses the implementations that have been associated with it. Depending on the use case, it may use all implementations, or only the one with the highest priority, or pick a specific one by name.
To avoid opening all modules just to find out what extension points they implement, GIO makes use of a caching mechanism, see gio-querymodules. You are expected to run this command after installing a GIO module.
The
GIO_EXTRA_MODULESenvironment variable can be used to specify additional directories to automatically load modules from. This environment variable has the same syntax as thePATH. If two modules have the same base name in different directories, then the latter one will be ignored. If additional directories are specified GIO will load modules from the built-in directory last.