Class
GIRepositoryRepository
since: 2.80
Description [src]
final class GIRepository.Repository : GObject.Object
{
/* No available fields */
}
GIRepository
is used to manage repositories of namespaces. Namespaces
are represented on disk by type libraries (.typelib
files).
The individual pieces of API within a type library are represented by
subclasses of GIBaseInfo
. These can be found using
methods like gi_repository_find_by_name()
or
gi_repository_get_info()
.
You are responsible for ensuring that the lifetime of the
GIRepository
exceeds that of the lifetime of any of its
GIBaseInfo
s. This cannot be guaranteed by using internal
references within libgirepository as that would affect performance.
Discovery of type libraries
GIRepository
will typically look for a girepository-1.0
directory
under the library directory used when compiling gobject-introspection. On a
standard Linux system this will end up being /usr/lib/girepository-1.0
.
It is possible to control the search paths programmatically, using
gi_repository_prepend_search_path()
. It is also possible to
modify the search paths by using the GI_TYPELIB_PATH
environment variable.
The environment variable takes precedence over the default search path
and the gi_repository_prepend_search_path()
calls.
Namespace ordering
In situations where namespaces may be searched in order, or returned in a
list, the namespaces will be returned in alphabetical order, with all fully
loaded namespaces being returned before any lazily loaded ones (those loaded
with GI_REPOSITORY_LOAD_FLAG_LAZY
). This allows for deterministic and
reproducible results.
Similarly, if a symbol (such as a GType
or error domain) is being searched
for in the set of loaded namespaces, the namespaces will be searched in that
order. In particular, this means that a symbol which exists in two namespaces
will always be returned from the alphabetically-higher namespace. This should
only happen in the case of Gio
and GioUnix
/GioWin32
, which all refer to
the same .so
file and expose overlapping sets of symbols. Symbols should
always end up being resolved to GioUnix
or GioWin32
if they are platform
dependent, rather than Gio
itself.
Available since: 2.80
Functions
gi_repository_dump
Dump the introspection data from the types specified in input_filename
to
output_filename
.
since: 2.80
Instance methods
gi_repository_enumerate_versions
Obtain an unordered list of versions (either currently loaded or
available) for namespace_
in this repository
.
since: 2.80
gi_repository_find_by_error_domain
Searches for the enum type corresponding to the given GError
domain.
since: 2.80
gi_repository_get_c_prefix
This function returns the ‘C prefix’, or the C level namespace associated with the given introspection namespace.
since: 2.80
gi_repository_get_dependencies
Retrieves all (transitive) versioned dependencies for
namespace_
.
since: 2.80
gi_repository_get_immediate_dependencies
Return an array of the immediate versioned dependencies for namespace_
.
Returned strings are of the form namespace-version
.
since: 2.80
gi_repository_get_info
This function returns a particular metadata entry in the
given namespace namespace_
.
since: 2.80
gi_repository_get_library_path
Returns the current search path GIRepository
will use when
loading shared libraries referenced by imported namespaces.
since: 2.80
gi_repository_get_n_infos
This function returns the number of metadata entries in
given namespace namespace_
.
since: 2.80
gi_repository_get_search_path
Returns the current search path GIRepository
will use when
loading typelib files.
since: 2.80
gi_repository_get_shared_libraries
This function returns an array of paths to the
shared C libraries associated with the given namespace namespace_
.
since: 2.80
gi_repository_get_typelib_path
If namespace namespace_
is loaded, return the full path to the
.typelib file it was loaded from.
since: 2.80
gi_repository_get_version
This function returns the loaded version associated with the given
namespace namespace_
.
since: 2.80
gi_repository_is_registered
Check whether a particular namespace (and optionally, a specific version thereof) is currently loaded.
since: 2.80
gi_repository_prepend_library_path
Prepends directory
to the search path that is used to
search shared libraries referenced by imported namespaces.
since: 2.80
gi_repository_require_private
Force the namespace namespace_
to be loaded if it isn’t already.
since: 2.80
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.