docs: Move the GTypeModule SECTION

Move the content to the struct docs.

Helps: #3037
This commit is contained in:
Matthias Clasen 2023-09-25 15:29:10 -04:00 committed by Philip Withnall
parent bc084d8780
commit 7eba4e8f49
2 changed files with 15 additions and 23 deletions

View File

@ -26,41 +26,40 @@
/**
* SECTION:gtypemodule
* @short_description: Type loading modules
* @see_also: #GTypePlugin, #GModule
* @title: GTypeModule
* GTypeModule:
* @name: the name of the module
*
* #GTypeModule provides a simple implementation of the #GTypePlugin
* `GTypeModule` provides a simple implementation of the `GTypePlugin`
* interface.
*
* The model of #GTypeModule is a dynamically loaded module which
* The model of `GTypeModule` is a dynamically loaded module which
* implements some number of types and interface implementations.
*
* When the module is loaded, it registers its types and interfaces
* using g_type_module_register_type() and g_type_module_add_interface().
* using [method@GObject.TypeModule.register_type] and
* [method@GObject.TypeModule.add_interface].
* As long as any instances of these types and interface implementations
* are in use, the module is kept loaded. When the types and interfaces
* are gone, the module may be unloaded. If the types and interfaces
* become used again, the module will be reloaded. Note that the last
* reference cannot be released from within the module code, since that
* would lead to the caller's code being unloaded before g_object_unref()
* would lead to the caller's code being unloaded before `g_object_unref()`
* returns to it.
*
* Keeping track of whether the module should be loaded or not is done by
* using a use count - it starts at zero, and whenever it is greater than
* zero, the module is loaded. The use count is maintained internally by
* the type system, but also can be explicitly controlled by
* g_type_module_use() and g_type_module_unuse(). Typically, when loading
* a module for the first type, g_type_module_use() will be used to load
* it so that it can initialize its types. At some later point, when the
* module no longer needs to be loaded except for the type
* implementations it contains, g_type_module_unuse() is called.
* [func@GObject.type_module_use] and [func@GObject.type_module_unuse].
* Typically, when loading a module for the first type, `g_type_module_use()`
* will be used to load it so that it can initialize its types. At some later
* point, when the module no longer needs to be loaded except for the type
* implementations it contains, `g_type_module_unuse()` is called.
*
* #GTypeModule does not actually provide any implementation of module
* `GTypeModule` does not actually provide any implementation of module
* loading and unloading. To create a particular module type you must
* derive from #GTypeModule and implement the load and unload functions
* in #GTypeModuleClass.
* derive from `GTypeModule` and implement the load and unload functions
* in `GTypeModuleClass`.
*/
typedef struct _ModuleTypeInfo ModuleTypeInfo;

View File

@ -40,13 +40,6 @@ typedef struct _GTypeModuleClass GTypeModuleClass;
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTypeModule, g_object_unref)
/**
* GTypeModule:
* @name: the name of the module
*
* The members of the GTypeModule structure should not
* be accessed directly, except for the @name field.
*/
struct _GTypeModule
{
GObject parent_instance;