GIRepository – 3.0
Description: Reference for GIRepository-3.0

### Namespace

# GIRepository – 3.0

GIRepository is a library providing access to typelibs and introspection data which describes C APIs

Version | 2.89.0
Authors | GLib Development Team
License | LGPL-2.1-or-later
Website | https://www.gtk.org
Source | https://gitlab.gnome.org/GNOME/glib/

#### Build

C headers | `girepository/girepository.h`
pkg-config files | `girepository-2.0`

#### Dependencies

GLib—2.0 | The base utility library
| Browse documentation
GModule—2.0 | Portable API for dynamically loading modules
| Browse documentation
GObject—2.0 | The base type system library
| Browse documentation
Gio—2.0 | Useful classes for general purpose I/O, networking, IPC, settings, etc.
| Browse documentation

#### Additional documentation

- Migrating from girepository-1.0 to girepository-2.0
- Classes Hierarchy

#### Classes

ArgInfo | `GIArgInfo` represents an argument of a callable. since: 2.80
BaseInfo | `GIBaseInfo` is the common base struct of all other Info structs accessible through the `GIRepository` API. since: 2.80
CallableInfo | `GICallableInfo` represents an entity which is callable. since: 2.80
CallbackInfo | `GICallbackInfo` represents a callback. since: 2.80
ConstantInfo | `GIConstantInfo` represents a constant. since: 2.80
EnumInfo | A `GIEnumInfo` represents an enumeration. since: 2.80
FieldInfo | A `GIFieldInfo` struct represents a field of a struct, union, or object. since: 2.80
FlagsInfo | A `GIFlagsInfo` represents an enumeration which defines flag values (independently set bits). since: 2.80
FunctionInfo | `GIFunctionInfo` represents a function, method or constructor. since: 2.80
InterfaceInfo | `GIInterfaceInfo` represents a `GInterface` type. since: 2.80
ObjectInfo | `GIObjectInfo` represents a classed type. since: 2.80
PropertyInfo | `GIPropertyInfo` represents a property in a `GObject`. since: 2.80
RegisteredTypeInfo | `GIRegisteredTypeInfo` represents an entity with a `GType` associated. since: 2.80
Repository | `GIRepository` is used to manage repositories of namespaces. Namespaces are represented on disk by type libraries (`.typelib` files). since: 2.80
SignalInfo | `GISignalInfo` represents a signal. since: 2.80
StructInfo | `GIStructInfo` represents a generic C structure type. since: 2.80
TypeInfo | `GITypeInfo` represents a type, including information about direction and transfer. since: 2.80
UnionInfo | `GIUnionInfo` represents a union type. since: 2.80
UnresolvedInfo | `GIUnresolvedInfo` represents an unresolved symbol. since: 2.80
ValueInfo | A `GIValueInfo` represents a value in an enumeration. since: 2.80
VFuncInfo | `GIVFuncInfo` represents a virtual function. since: 2.80

#### Structs

AttributeIter | An opaque structure used to iterate over attributes in a `GIBaseInfo` struct. since: 2.80
BaseInfoStack |
Typelib | `GITypelib` represents a loaded `.typelib` file, which contains a description of a single module’s API. since: 2.80

#### Unions

Argument | Stores an argument of varying type. since: 2.80

#### Enumerations

ArrayType | The type of array in a `GITypeInfo`. since: 2.80
Direction | The direction of a `GIArgInfo`. since: 2.80
RepositoryError | An error code used with `GI_REPOSITORY_ERROR` in a `GError` returned from a `GIRepository` routine. since: 2.80
ScopeType | Scope type of a `GIArgInfo` representing callback, determines how the callback is invoked and is used to decided when the invoke structs can be freed. since: 2.80
Transfer | `GITransfer` specifies who’s responsible for freeing the resources after an ownership transfer is complete. since: 2.80
TypeTag | The type tag of a `GITypeInfo`. since: 2.80

#### Bitfields

FieldInfoFlags | Flags for a `GIFieldInfo`. since: 2.80
FunctionInfoFlags | Flags for a `GIFunctionInfo` struct. since: 2.80
RepositoryLoadFlags | Flags that control how a typelib is loaded. since: 2.80
VFuncInfoFlags | Flags of a `GIVFuncInfo` struct. since: 2.80

#### Error Domains

InvokeError | An error occurring while invoking a function via `gi_function_info_invoke()`. since: 2.80

#### Callbacks

ObjectInfoGetValueFunction | Extract an object instance out of `value`. since: 2.80
ObjectInfoRefFunction | Increases the reference count of an object instance. since: 2.80
ObjectInfoSetValueFunction | Update `value` and attach the object instance pointer `object` to it. since: 2.80
ObjectInfoUnrefFunction | Decreases the reference count of an object instance. since: 2.80

#### Functions

cclosure_marshal_generic | A generic C closure marshal function using ffi and `GIArgument`. since: 2.80
invoke_error_quark | Get the error quark which represents `GIInvokeError`. since: 2.80
type_tag_argument_from_hash_pointer | Convert a data pointer from a GLib data structure to a `GIArgument`. since: 2.80
type_tag_hash_pointer_from_argument | Convert a `GIArgument` to data pointer for use in a GLib data structure. since: 2.80
type_tag_to_string | Obtain a string representation of `type`. since: 2.80

#### Function Macros

DEPRECATED_ENUMERATOR_IN_2_26_FOR |
DEPRECATED_ENUMERATOR_IN_2_28_FOR |
DEPRECATED_ENUMERATOR_IN_2_30_FOR |
DEPRECATED_ENUMERATOR_IN_2_32_FOR |
DEPRECATED_ENUMERATOR_IN_2_34_FOR |
DEPRECATED_ENUMERATOR_IN_2_36_FOR |
DEPRECATED_ENUMERATOR_IN_2_38_FOR |
DEPRECATED_ENUMERATOR_IN_2_40_FOR |
DEPRECATED_ENUMERATOR_IN_2_42_FOR |
DEPRECATED_ENUMERATOR_IN_2_44_FOR |
DEPRECATED_ENUMERATOR_IN_2_46_FOR |
DEPRECATED_ENUMERATOR_IN_2_48_FOR |
DEPRECATED_ENUMERATOR_IN_2_50_FOR |
DEPRECATED_ENUMERATOR_IN_2_52_FOR |
DEPRECATED_ENUMERATOR_IN_2_54_FOR |
DEPRECATED_ENUMERATOR_IN_2_56_FOR |
DEPRECATED_ENUMERATOR_IN_2_58_FOR |
DEPRECATED_ENUMERATOR_IN_2_60_FOR |
DEPRECATED_ENUMERATOR_IN_2_62_FOR |
DEPRECATED_ENUMERATOR_IN_2_64_FOR |
DEPRECATED_ENUMERATOR_IN_2_66_FOR |
DEPRECATED_ENUMERATOR_IN_2_68_FOR |
DEPRECATED_ENUMERATOR_IN_2_70_FOR |
DEPRECATED_ENUMERATOR_IN_2_72_FOR |
DEPRECATED_ENUMERATOR_IN_2_74_FOR |
DEPRECATED_ENUMERATOR_IN_2_76_FOR |
DEPRECATED_ENUMERATOR_IN_2_78_FOR |
DEPRECATED_ENUMERATOR_IN_2_80_FOR |
DEPRECATED_ENUMERATOR_IN_2_82_FOR |
DEPRECATED_ENUMERATOR_IN_2_84_FOR |
DEPRECATED_ENUMERATOR_IN_2_86_FOR |
DEPRECATED_ENUMERATOR_IN_2_88_FOR |
DEPRECATED_ENUMERATOR_IN_2_90_FOR |
DEPRECATED_FOR |
DEPRECATED_IN_2_26_FOR |
DEPRECATED_IN_2_28_FOR |
DEPRECATED_IN_2_30_FOR |
DEPRECATED_IN_2_32_FOR |
DEPRECATED_IN_2_34_FOR |
DEPRECATED_IN_2_36_FOR |
DEPRECATED_IN_2_38_FOR |
DEPRECATED_IN_2_40_FOR |
DEPRECATED_IN_2_42_FOR |
DEPRECATED_IN_2_44_FOR |
DEPRECATED_IN_2_46_FOR |
DEPRECATED_IN_2_48_FOR |
DEPRECATED_IN_2_50_FOR |
DEPRECATED_IN_2_52_FOR |
DEPRECATED_IN_2_54_FOR |
DEPRECATED_IN_2_56_FOR |
DEPRECATED_IN_2_58_FOR |
DEPRECATED_IN_2_60_FOR |
DEPRECATED_IN_2_62_FOR |
DEPRECATED_IN_2_64_FOR |
DEPRECATED_IN_2_66_FOR |
DEPRECATED_IN_2_68_FOR |
DEPRECATED_IN_2_70_FOR |
DEPRECATED_IN_2_72_FOR |
DEPRECATED_IN_2_74_FOR |
DEPRECATED_IN_2_76_FOR |
DEPRECATED_IN_2_78_FOR |
DEPRECATED_IN_2_80_FOR |
DEPRECATED_IN_2_82_FOR |
DEPRECATED_IN_2_84_FOR |
DEPRECATED_IN_2_86_FOR |
DEPRECATED_IN_2_88_FOR |
DEPRECATED_IN_2_90_FOR |
DEPRECATED_MACRO_IN_2_26_FOR |
DEPRECATED_MACRO_IN_2_28_FOR |
DEPRECATED_MACRO_IN_2_30_FOR |
DEPRECATED_MACRO_IN_2_32_FOR |
DEPRECATED_MACRO_IN_2_34_FOR |
DEPRECATED_MACRO_IN_2_36_FOR |
DEPRECATED_MACRO_IN_2_38_FOR |
DEPRECATED_MACRO_IN_2_40_FOR |
DEPRECATED_MACRO_IN_2_42_FOR |
DEPRECATED_MACRO_IN_2_44_FOR |
DEPRECATED_MACRO_IN_2_46_FOR |
DEPRECATED_MACRO_IN_2_48_FOR |
DEPRECATED_MACRO_IN_2_50_FOR |
DEPRECATED_MACRO_IN_2_52_FOR |
DEPRECATED_MACRO_IN_2_54_FOR |
DEPRECATED_MACRO_IN_2_56_FOR |
DEPRECATED_MACRO_IN_2_58_FOR |
DEPRECATED_MACRO_IN_2_60_FOR |
DEPRECATED_MACRO_IN_2_62_FOR |
DEPRECATED_MACRO_IN_2_64_FOR |
DEPRECATED_MACRO_IN_2_66_FOR |
DEPRECATED_MACRO_IN_2_68_FOR |
DEPRECATED_MACRO_IN_2_70_FOR |
DEPRECATED_MACRO_IN_2_72_FOR |
DEPRECATED_MACRO_IN_2_74_FOR |
DEPRECATED_MACRO_IN_2_76_FOR |
DEPRECATED_MACRO_IN_2_78_FOR |
DEPRECATED_MACRO_IN_2_80_FOR |
DEPRECATED_MACRO_IN_2_82_FOR |
DEPRECATED_MACRO_IN_2_84_FOR |
DEPRECATED_MACRO_IN_2_86_FOR |
DEPRECATED_MACRO_IN_2_88_FOR |
DEPRECATED_MACRO_IN_2_90_FOR |
DEPRECATED_TYPE_IN_2_26_FOR |
DEPRECATED_TYPE_IN_2_28_FOR |
DEPRECATED_TYPE_IN_2_30_FOR |
DEPRECATED_TYPE_IN_2_32_FOR |
DEPRECATED_TYPE_IN_2_34_FOR |
DEPRECATED_TYPE_IN_2_36_FOR |
DEPRECATED_TYPE_IN_2_38_FOR |
DEPRECATED_TYPE_IN_2_40_FOR |
DEPRECATED_TYPE_IN_2_42_FOR |
DEPRECATED_TYPE_IN_2_44_FOR |
DEPRECATED_TYPE_IN_2_46_FOR |
DEPRECATED_TYPE_IN_2_48_FOR |
DEPRECATED_TYPE_IN_2_50_FOR |
DEPRECATED_TYPE_IN_2_52_FOR |
DEPRECATED_TYPE_IN_2_54_FOR |
DEPRECATED_TYPE_IN_2_56_FOR |
DEPRECATED_TYPE_IN_2_58_FOR |
DEPRECATED_TYPE_IN_2_60_FOR |
DEPRECATED_TYPE_IN_2_62_FOR |
DEPRECATED_TYPE_IN_2_64_FOR |
DEPRECATED_TYPE_IN_2_66_FOR |
DEPRECATED_TYPE_IN_2_68_FOR |
DEPRECATED_TYPE_IN_2_70_FOR |
DEPRECATED_TYPE_IN_2_72_FOR |
DEPRECATED_TYPE_IN_2_74_FOR |
DEPRECATED_TYPE_IN_2_76_FOR |
DEPRECATED_TYPE_IN_2_78_FOR |
DEPRECATED_TYPE_IN_2_80_FOR |
DEPRECATED_TYPE_IN_2_82_FOR |
DEPRECATED_TYPE_IN_2_84_FOR |
DEPRECATED_TYPE_IN_2_86_FOR |
DEPRECATED_TYPE_IN_2_88_FOR |
DEPRECATED_TYPE_IN_2_90_FOR |
UNAVAILABLE |
UNAVAILABLE_STATIC_INLINE |
VFUNC_INFO | Casts a `GIVFuncInfo` or derived pointer into a `(GIVFuncInfo*)` pointer. since: 2.80

#### Constants

TYPE_TAG_N_TYPES | Number of entries in `GITypeTag`.