% endfor
</code></synopsis>
${formatter.format(node.doc)}
+
+% if node.parameters:
+<table>
+% for arg, ix in zip(node.parameters, range(len(node.parameters))):
+<tr>
+<td><p>${arg.argname} :</p></td>
+<td>${formatter.format(arg.doc)}</td>
+</tr>
+% endfor
+% if node.retval:
+<tr>
+<td><p>Returns :</p></td>
+<td>${formatter.format(node.retval.doc)}</td>
+</tr>
+% endif
+</table>
+% endif
</page>
<p>Compare two <link xref="GIBaseInfo">GIBaseInfo</link>.</p><p>Using pointer comparison is not practical since many functions return
different instances of <link xref="GIBaseInfo">GIBaseInfo</link> that refers to the same part of the
TypeLib; use this function instead to do <link xref="GIBaseInfo">GIBaseInfo</link> comparisons.</p>
+
+<table>
+<tr>
+<td><p>info2 :</p></td>
+<td><p>a <link xref="GIBaseInfo">GIBaseInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if and only if @info1 equals @info2.</p></td>
+</tr>
+</table>
</page>
gchar* g_base_info_get_attribute (gchar* name);
</code></synopsis>
<p>Retrieve an arbitrary attribute associated with this node.</p>
+
+<table>
+<tr>
+<td><p>name :</p></td>
+<td><p>a freeform string naming an attribute</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>The value of the attribute, or %NULL if no such attribute exists</p></td>
+</tr>
+</table>
</page>
<p>Obtain the container of the @info. The container is the parent
GIBaseInfo. For instance, the parent of a <link xref="GIFunctionInfo">GIFunctionInfo</link> is an
<link xref="GIObjectInfo">GIObjectInfo</link> or <link xref="GIInterfaceInfo">GIInterfaceInfo</link>.</p>
+
</page>
<p>Obtain the name of the @info. What the name represents depends on
the <link xref="GIInfoType">GIInfoType</link> of the @info. For instance for <link xref="GIFunctionInfo">GIFunctionInfo</link> it is
the name of the function.</p>
+
</page>
gchar* g_base_info_get_namespace (void);
</code></synopsis>
<p>Obtain the namespace of @info.</p>
+
</page>
GITypelib* g_base_info_get_typelib (void);
</code></synopsis>
<p>Obtain the typelib this @info belongs to</p>
+
</page>
</code></synopsis>
<p>Obtain whether the @info is represents a metadata which is
deprecated or not.</p>
+
</page>
}
</programlisting>
</example></p>
+
+<table>
+<tr>
+<td><p>iterator :</p></td>
+<td><p>a <link xref="GIAttributeIter">GIAttributeIter</link> structure, must be initialized; see below</p></td>
+</tr>
+<tr>
+<td><p>name :</p></td>
+<td><p>Returned name, must not be freed</p></td>
+</tr>
+<tr>
+<td><p>value :</p></td>
+<td><p>Returned name, must not be freed</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if there are more attributes</p></td>
+</tr>
+</table>
</page>
GIBaseInfo* g_base_info_ref (void);
</code></synopsis>
<p>Increases the reference count of @info.</p>
+
</page>
</code></synopsis>
<p>Decreases the reference count of @info. When its reference count
drops to 0, the info is freed.</p>
+
</page>
gboolean g_irepository_dump (char* arg);
</code></synopsis>
+
+<table>
+<tr>
+<td><p>arg :</p></td>
+<td></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain an unordered list of versions (either currently loaded or
available) for @namespace_ in this @repository.</p>
+
+<table>
+<tr>
+<td><p>namespace_ :</p></td>
+<td><p>GI namespace, e.g. "Gtk"</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the array of versions.</p></td>
+</tr>
+</table>
</page>
GQuark g_irepository_error_quark (void);
</code></synopsis>
+
</page>
domain. Before calling this function for a particular namespace,
you must call g_irepository_require() once to load the namespace, or
otherwise ensure the namespace has already been loaded.</p><p>enum type, or %NULL</p>
+
+<table>
+<tr>
+<td><p>domain :</p></td>
+<td><p>a <link xref="GError">GError</link> domain</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p><link xref="GIEnumInfo">GIEnumInfo</link> representing metadata about @domain's</p></td>
+</tr>
+</table>
</page>
mechanism for determining the namespace which corresponds to an
arbitrary GType - thus, this function will operate most reliably
when you know the GType to originate from be from a loaded namespace.</p>
+
+<table>
+<tr>
+<td><p>gtype :</p></td>
+<td><p>GType to search for</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p><link xref="GIBaseInfo">GIBaseInfo</link> representing metadata about @type, or %NULL</p></td>
+</tr>
+</table>
</page>
this function for a particular namespace, you must call
g_irepository_require() once to load the namespace, or otherwise
ensure the namespace has already been loaded.</p>
+
+<table>
+<tr>
+<td><p>namespace_ :</p></td>
+<td><p>Namespace which will be searched</p></td>
+</tr>
+<tr>
+<td><p>name :</p></td>
+<td><p>Entry name to find</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p><link xref="GIBaseInfo">GIBaseInfo</link> representing metadata about @name, or %NULL</p></td>
+</tr>
+</table>
</page>
associated with the given introspection namespace. Each C symbol
starts with this prefix, as well each <link xref="GType">GType</link> in the library.</p><p>Note: The namespace must have already been loaded using a function
such as g_irepository_require() before calling this function.</p>
+
+<table>
+<tr>
+<td><p>namespace_ :</p></td>
+<td><p>Namespace to inspect</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>C namespace prefix, or %NULL if none associated</p></td>
+</tr>
+</table>
</page>
All methods on <link xref="GIRepository">GIRepository</link> also accept %NULL as an instance
parameter to mean this default repository, which is usually more
convenient for C.</p>
+
</page>
@namespace_, including version. The returned strings are of the
form <code>namespace-version</code>.</p><p>Note: The namespace must have already been loaded using a function
such as g_irepository_require() before calling this function.</p>
+
+<table>
+<tr>
+<td><p>namespace_ :</p></td>
+<td><p>Namespace of interest</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>Zero-terminated string array of versioned dependencies</p></td>
+</tr>
+</table>
</page>
already been loaded before calling this function.
See g_irepository_get_n_infos() to find the maximum number of
entries.</p>
+
+<table>
+<tr>
+<td><p>namespace_ :</p></td>
+<td><p>Namespace to inspect</p></td>
+</tr>
+<tr>
+<td><p>index :</p></td>
+<td><p>0-based offset into namespace metadata for entry</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p><link xref="GIBaseInfo">GIBaseInfo</link> containing metadata</p></td>
+</tr>
+</table>
</page>
utf8* g_irepository_get_loaded_namespaces (GIRepository *self);
</code></synopsis>
<p>Return the list of currently loaded namespaces.</p>
+
</page>
<p>This function returns the number of metadata entries in
given namespace @namespace_. The namespace must have
already been loaded before calling this function.</p>
+
+<table>
+<tr>
+<td><p>namespace_ :</p></td>
+<td><p>Namespace to inspect</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of metadata entries</p></td>
+</tr>
+</table>
</page>
<p>Obtain the option group for girepository, it's used
by the dumper and for programs that wants to provide
introspection information</p>
+
</page>
<p>Returns the search path the GIRepository will use when looking for typelibs.
The string is internal to GIRespository and should not be freed, nor should
the elements.</p>
+
</page>
shared library path associated, in which case this function will
return %NULL.</p><p>Note: The namespace must have already been loaded using a function
such as g_irepository_require() before calling this function.</p>
+
+<table>
+<tr>
+<td><p>namespace_ :</p></td>
+<td><p>Namespace to inspect</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>Full path to shared library, or %NULL if none associated</p></td>
+</tr>
+</table>
</page>
.typelib file it was loaded from. If the typelib for
namespace @namespace_ was included in a shared library, return
the special string "$lt;builtin$gt;".</p>
+
+<table>
+<tr>
+<td><p>namespace_ :</p></td>
+<td><p>GI namespace to use, e.g. "Gtk"</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>Filesystem path (or $lt;builtin$gt;) if successful, %NULL if namespace is not loaded</p></td>
+</tr>
+</table>
</page>
<p>This function returns the loaded version associated with the given
namespace @namespace_.</p><p>Note: The namespace must have already been loaded using a function
such as g_irepository_require() before calling this function.</p>
+
+<table>
+<tr>
+<td><p>namespace_ :</p></td>
+<td><p>Namespace to inspect</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>Loaded version</p></td>
+</tr>
+</table>
</page>
metadata in the namespace, you should call g_irepository_require()
instead which will ensure the namespace is loaded, and return as
quickly as this function will if it has already been loaded.</p>
+
+<table>
+<tr>
+<td><p>namespace_ :</p></td>
+<td><p>Namespace of interest</p></td>
+</tr>
+<tr>
+<td><p>version :</p></td>
+<td><p>Required version, may be %NULL for latest</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if namespace-version is loaded, %FALSE otherwise</p></td>
+</tr>
+</table>
</page>
GIRepositoryLoadFlags flags);
</code></synopsis>
+
+<table>
+<tr>
+<td><p>typelib :</p></td>
+<td></td>
+</tr>
+<tr>
+<td><p>flags :</p></td>
+<td></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td></td>
+</tr>
+</table>
</page>
void g_irepository_prepend_search_path (char* directory);
</code></synopsis>
+
+<table>
+<tr>
+<td><p>directory :</p></td>
+<td></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td></td>
+</tr>
+</table>
</page>
".typelib" file using the repository search path. In addition, a
version @version of namespace may be specified. If @version is
not specified, the latest will be used.</p>
+
+<table>
+<tr>
+<td><p>namespace_ :</p></td>
+<td><p>GI namespace to use, e.g. "Gtk"</p></td>
+</tr>
+<tr>
+<td><p>version :</p></td>
+<td><p>Version of namespace, may be %NULL for latest</p></td>
+</tr>
+<tr>
+<td><p>flags :</p></td>
+<td><p>Set of %GIRepositoryLoadFlags, may be 0</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>a pointer to the <link xref="GITypelib">GITypelib</link> if successful, %NULL otherwise</p></td>
+</tr>
+</table>
</page>
".typelib" file within the private directory only. In addition, a
version @version of namespace should be specified. If @version is
not specified, the latest will be used.</p>
+
+<table>
+<tr>
+<td><p>typelib_dir :</p></td>
+<td><p>Private directory where to find the requested typelib</p></td>
+</tr>
+<tr>
+<td><p>namespace_ :</p></td>
+<td><p>GI namespace to use, e.g. "Gtk"</p></td>
+</tr>
+<tr>
+<td><p>version :</p></td>
+<td><p>Version of namespace, may be %NULL for latest</p></td>
+</tr>
+<tr>
+<td><p>flags :</p></td>
+<td><p>Set of %GIRepositoryLoadFlags, may be 0</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>a pointer to the <link xref="GITypelib">GITypelib</link> if successful, %NULL otherwise</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the index of the user data argument. This is only valid
for arguments which are callbacks.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIArgInfo">GIArgInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>index of the user data argument or -1 if there is none</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtains the index of the <link xref="GDestroyNotify">GDestroyNotify</link> argument. This is only valid
for arguments which are callbacks.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIArgInfo">GIArgInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>index of the <link xref="GDestroyNotify">GDestroyNotify</link> argument or -1 if there is none</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the direction of the argument. Check <link xref="GIDirection">GIDirection</link> for possible
direction values.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIArgInfo">GIArgInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the direction</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the ownership transfer for this argument.
<link xref="GITransfer">GITransfer</link> contains a list of possible values.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIArgInfo">GIArgInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the transfer</p></td>
+</tr>
+</table>
</page>
how a callback is going to be invoked, most importantly when
the resources required to invoke it can be freed.
<link xref="GIScopeType">GIScopeType</link> contains a list of possible values.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIArgInfo">GIArgInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the scope type</p></td>
+</tr>
+</table>
</page>
GITypeInfo* g_arg_info_get_type (GIArgInfo* info);
</code></synopsis>
<p>Obtain the type information for @info.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIArgInfo">GIArgInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIArgInfo">GIArgInfo</link>, free it with</p></td>
+</tr>
+</table>
</page>
receive an output of a function. The default assumption for
%GI_DIRECTION_OUT arguments which have allocation is that the
callee allocates; if this is %TRUE, then the caller must allocate.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIArgInfo">GIArgInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if caller is required to have allocated the argument</p></td>
+</tr>
+</table>
</page>
gboolean g_arg_info_is_optional (GIArgInfo* info);
</code></synopsis>
<p>Obtain if the argument is optional.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIArgInfo">GIArgInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if it is an optional argument</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain if the argument is a return value. It can either be a
parameter or a return value.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIArgInfo">GIArgInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if it is a return value</p></td>
+</tr>
+</table>
</page>
gboolean g_arg_info_is_skip (GIArgInfo* info);
</code></synopsis>
<p>Obtain if an argument is only useful in C.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIArgInfo">GIArgInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if argument is only useful in C.</p></td>
+</tr>
+</table>
</page>
<p>Obtain information about a the type of given argument @info; this
function is a variant of g_arg_info_get_type() designed for stack
allocation.</p><p>The initialized @type must not be referenced after @info is deallocated.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIArgInfo">GIArgInfo</link></p></td>
+</tr>
+<tr>
+<td><p>type :</p></td>
+<td><p>Initialized with information about type of @info</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td></td>
+</tr>
+</table>
</page>
gboolean g_arg_info_may_be_null (GIArgInfo* info);
</code></synopsis>
<p>Obtain if the argument accepts %NULL.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIArgInfo">GIArgInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if it accepts %NULL</p></td>
+</tr>
+</table>
</page>
GIInfoType g_base_info_get_type (GIBaseInfo* info);
</code></synopsis>
<p>Obtain the info type of the GIBaseInfo.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIBaseInfo">GIBaseInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the info type of @info</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain information about a particular argument of this callable.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GICallableInfo">GICallableInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>the argument index to fetch</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIArgInfo">GIArgInfo</link>. Free it with</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>See whether the caller owns the return value of this callable.
<link xref="GITransfer">GITransfer</link> contains a list of possible transfer values.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GICallableInfo">GICallableInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if the caller owns the return value, %FALSE otherwise.</p></td>
+</tr>
+</table>
</page>
gint g_callable_info_get_n_args (GICallableInfo* info);
</code></synopsis>
<p>Obtain the number of arguments (both IN and OUT) for this callable.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GICallableInfo">GICallableInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>The number of arguments this callable expects.</p></td>
+</tr>
+</table>
</page>
gchar* name);
</code></synopsis>
<p>Retrieve an arbitrary attribute associated with the return value.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GICallableInfo">GICallableInfo</link></p></td>
+</tr>
+<tr>
+<td><p>name :</p></td>
+<td><p>a freeform string naming an attribute</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>The value of the attribute, or %NULL if no such attribute exists</p></td>
+</tr>
+</table>
</page>
GITypeInfo* g_callable_info_get_return_type (GICallableInfo* info);
</code></synopsis>
<p>Obtain the return type of a callable item as a <link xref="GITypeInfo">GITypeInfo</link>.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GICallableInfo">GICallableInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GITypeInfo">GITypeInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
first member initialized to %NULL.</p><p>Both the @name and @value should be treated as constants
and must not be freed.</p><p>See g_base_info_iterate_attributes() for an example of how to use a
similar API.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GICallableInfo">GICallableInfo</link></p></td>
+</tr>
+<tr>
+<td><p>iterator :</p></td>
+<td><p>a <link xref="GIAttributeIter">GIAttributeIter</link> structure, must be initialized; see below</p></td>
+</tr>
+<tr>
+<td><p>name :</p></td>
+<td><p>Returned name, must not be freed</p></td>
+</tr>
+<tr>
+<td><p>value :</p></td>
+<td><p>Returned name, must not be freed</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if there are more attributes</p></td>
+</tr>
+</table>
</page>
<p>Obtain information about a particular argument of this callable; this
function is a variant of g_callable_info_get_arg() designed for stack
allocation.</p><p>The initialized @arg must not be referenced after @info is deallocated.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GICallableInfo">GICallableInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>the argument index to fetch</p></td>
+</tr>
+<tr>
+<td><p>arg :</p></td>
+<td><p>Initialize with argument number @n</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td></td>
+</tr>
+</table>
</page>
<p>Obtain information about a return value of callable; this
function is a variant of g_callable_info_get_return_type() designed for stack
allocation.</p><p>The initialized @type must not be referenced after @info is deallocated.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GICallableInfo">GICallableInfo</link></p></td>
+</tr>
+<tr>
+<td><p>type :</p></td>
+<td><p>Initialized with return type of @info</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td></td>
+</tr>
+</table>
</page>
gboolean g_callable_info_may_return_null (GICallableInfo* info);
</code></synopsis>
<p>See if a callable could return %NULL.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GICallableInfo">GICallableInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if callable could return %NULL</p></td>
+</tr>
+</table>
</page>
gboolean g_callable_info_skip_return (GICallableInfo* info);
</code></synopsis>
<p>See if a callable's return value is only useful in C.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GICallableInfo">GICallableInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if return value is only useful in C.</p></td>
+</tr>
+</table>
</page>
GIArgument* value);
</code></synopsis>
<p>Free the value returned from g_constant_info_get_value().</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIConstantInfo">GIConstantInfo</link></p></td>
+</tr>
+<tr>
+<td><p>value :</p></td>
+<td><p>the argument</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td></td>
+</tr>
+</table>
</page>
GITypeInfo* g_constant_info_get_type (GIConstantInfo* info);
</code></synopsis>
<p>Obtain the type of the constant as a <link xref="GITypeInfo">GITypeInfo</link>.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIConstantInfo">GIConstantInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GITypeInfo">GITypeInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
@value parameter. @argument needs to be allocated before passing it in.
The size of the constant value stored in @argument will be returned.
Free the value with g_constant_info_free_value().</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIConstantInfo">GIConstantInfo</link></p></td>
+</tr>
+<tr>
+<td><p>value :</p></td>
+<td><p>an argument</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>size of the constant</p></td>
+</tr>
+</table>
</page>
gchar* g_enum_info_get_error_domain (GIEnumInfo* info);
</code></synopsis>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an enum type method at index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIEnumInfo">GIEnumInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of method to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIFunctionInfo">GIFunctionInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
gint g_enum_info_get_n_methods (GIEnumInfo* info);
</code></synopsis>
<p>Obtain the number of methods that this enum type has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIEnumInfo">GIEnumInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of methods</p></td>
+</tr>
+</table>
</page>
gint g_enum_info_get_n_values (GIEnumInfo* info);
</code></synopsis>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td></td>
+</tr>
+</table>
</page>
Note that in the current implementation the width of the type is
computed correctly, but the signed or unsigned nature of the type
may not match the sign of the type used by the C compiler.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIEnumInfo">GIEnumInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the storage type for the enumeration</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain a value for this enumeration.</p><p>free the struct with g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIEnumInfo">GIEnumInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of value to fetch</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the enumeration value or %NULL if type tag is wrong,</p></td>
+</tr>
+</table>
</page>
union. This only handles fields of simple C types. It will fail
for a field of a composite type like a nested structure or union
even if that is actually readable.</p>
+
+<table>
+<tr>
+<td><p>field_info :</p></td>
+<td><p>a <link xref="GIFieldInfo">GIFieldInfo</link></p></td>
+</tr>
+<tr>
+<td><p>mem :</p></td>
+<td><p>pointer to a block of memory representing a C structure or union</p></td>
+</tr>
+<tr>
+<td><p>value :</p></td>
+<td><p>a <link xref="GIArgument">GIArgument</link> into which to store the value retrieved</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if reading the field succeeded, otherwise %FALSE</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the flags for this <link xref="GIFieldInfo">GIFieldInfo</link>. See <link xref="GIFieldInfoFlags">GIFieldInfoFlags</link> for possible
flag values.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIFieldInfo">GIFieldInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the flags</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the offset in bits of the field member, this is relative
to the beginning of the struct or union.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIFieldInfo">GIFieldInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the field offset</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the size in bits of the field member, this is how
much space you need to allocate to store the field.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIFieldInfo">GIFieldInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the field size</p></td>
+</tr>
+</table>
</page>
GITypeInfo* g_field_info_get_type (GIFieldInfo* info);
</code></synopsis>
<p>Obtain the type of a field as a <link xref="GITypeInfo">GITypeInfo</link>.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIFieldInfo">GIFieldInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GITypeInfo">GITypeInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
even if that is actually writable. Note also that that it will refuse
to write fields where memory management would by required. A field
with a type such as 'char *' must be set with a setter function.</p>
+
+<table>
+<tr>
+<td><p>field_info :</p></td>
+<td><p>a <link xref="GIFieldInfo">GIFieldInfo</link></p></td>
+</tr>
+<tr>
+<td><p>mem :</p></td>
+<td><p>pointer to a block of memory representing a C structure or union</p></td>
+</tr>
+<tr>
+<td><p>value :</p></td>
+<td><p>a <link xref="GIArgument">GIArgument</link> holding the value to store</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if writing the field succeeded, otherwise %FALSE</p></td>
+</tr>
+</table>
</page>
GIFunctionInfoFlags g_function_info_get_flags (GIFunctionInfo* info);
</code></synopsis>
<p>Obtain the <link xref="GIFunctionInfoFlags">GIFunctionInfoFlags</link> for the @info.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIFunctionInfo">GIFunctionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the flags</p></td>
+</tr>
+</table>
</page>
Only <link xref="GIFunctionInfo">GIFunctionInfo</link> with the flag %GI_FUNCTION_IS_GETTER or
%GI_FUNCTION_IS_SETTER have a property set. For other cases,
%NULL will be returned.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIFunctionInfo">GIFunctionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the property or %NULL if not set. Free it with</p></td>
+</tr>
+</table>
</page>
<p>Obtain the symbol of the function. The symbol is the name of the
exported function, suitable to be used as an argument to
g_module_symbol().</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIFunctionInfo">GIFunctionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the symbol</p></td>
+</tr>
+</table>
</page>
<p>Obtain the virtual function associated with this <link xref="GIFunctionInfo">GIFunctionInfo</link>.
Only <link xref="GIFunctionInfo">GIFunctionInfo</link> with the flag %GI_FUNCTION_WRAPS_VFUNC has
a virtual function set. For other cases, %NULL will be returned.</p><p>Free it by calling g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIFunctionInfo">GIFunctionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the virtual function or %NULL if not set.</p></td>
+</tr>
+</table>
</page>
to the function, so the library or shared object containing the
described function must either be linked to the caller, or must
have been g_module_symbol()<!-- -->ed before calling this function.</p><p>error occurred.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIFunctionInfo">GIFunctionInfo</link> describing the function to invoke</p></td>
+</tr>
+<tr>
+<td><p>in_args :</p></td>
+<td><p>an array of <link xref="GIArgument">GIArgument</link><!-- -->s, one for each in parameter of @info. If there are no in parameter, @in_args can be %NULL</p></td>
+</tr>
+<tr>
+<td><p>n_in_args :</p></td>
+<td><p>the length of the @in_args array</p></td>
+</tr>
+<tr>
+<td><p>out_args :</p></td>
+<td><p>an array of <link xref="GIArgument">GIArgument</link><!-- -->s, one for each out parameter of @info. If there are no out parameters, @out_args may be %NULL</p></td>
+</tr>
+<tr>
+<td><p>n_out_args :</p></td>
+<td><p>the length of the @out_args array</p></td>
+</tr>
+<tr>
+<td><p>return_value :</p></td>
+<td><p>return location for the return value of the function. If the function returns void, @return_value may be %NULL</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if the function has been invoked, %FALSE if an</p></td>
+</tr>
+</table>
</page>
guint32 offset);
</code></synopsis>
+
+<table>
+<tr>
+<td><p>type :</p></td>
+<td></td>
+</tr>
+<tr>
+<td><p>container :</p></td>
+<td></td>
+</tr>
+<tr>
+<td><p>typelib :</p></td>
+<td></td>
+</tr>
+<tr>
+<td><p>offset :</p></td>
+<td></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td></td>
+</tr>
+</table>
</page>
gchar* g_info_type_to_string (GIInfoType type);
</code></synopsis>
<p>Obtain a string representation of @type</p>
+
+<table>
+<tr>
+<td><p>type :</p></td>
+<td><p>the info type</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the string</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain a method of the interface type given a @name. %NULL will be
returned if there's no method available with that name.</p><p>Free the struct by calling g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>name :</p></td>
+<td><p>name of method to obtain</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIFunctionInfo">GIFunctionInfo</link> or %NULL if none found.</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Locate a virtual function slot with name @name. See the documentation
for g_object_info_find_vfunc() for more information on virtuals.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>name :</p></td>
+<td><p>The name of a virtual function to find.</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIVFuncInfo">GIVFuncInfo</link>, or %NULL. Free it with</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an interface type constant at index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of constant to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIConstantInfo">GIConstantInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
GIStructInfo* g_interface_info_get_iface_struct (GIInterfaceInfo* info);
</code></synopsis>
<p>Returns the layout C structure associated with this <link xref="GInterface">GInterface</link>.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIStructInfo">GIStructInfo</link> or %NULL. Free it with</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an interface type method at index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of method to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIFunctionInfo">GIFunctionInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
gint g_interface_info_get_n_constants (GIInterfaceInfo* info);
</code></synopsis>
<p>Obtain the number of constants that this interface type has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of constants</p></td>
+</tr>
+</table>
</page>
gint g_interface_info_get_n_methods (GIInterfaceInfo* info);
</code></synopsis>
<p>Obtain the number of methods that this interface type has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of methods</p></td>
+</tr>
+</table>
</page>
<p>Obtain the number of prerequisites for this interface type.
A prerequisites is another interface that needs to be implemented for
interface, similar to an base class for GObjects.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of prerequisites</p></td>
+</tr>
+</table>
</page>
gint g_interface_info_get_n_properties (GIInterfaceInfo* info);
</code></synopsis>
<p>Obtain the number of properties that this interface type has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of properties</p></td>
+</tr>
+</table>
</page>
gint g_interface_info_get_n_signals (GIInterfaceInfo* info);
</code></synopsis>
<p>Obtain the number of signals that this interface type has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of signals</p></td>
+</tr>
+</table>
</page>
gint g_interface_info_get_n_vfuncs (GIInterfaceInfo* info);
</code></synopsis>
<p>Obtain the number of virtual functions that this interface type has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of virtual functions</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an interface type prerequisites index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of prerequisites to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the prerequisites as a <link xref="GIBaseInfo">GIBaseInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an interface type property at index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of property to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIPropertyInfo">GIPropertyInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an interface type signal at index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of signal to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GISignalInfo">GISignalInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an interface type virtual function at index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIInterfaceInfo">GIInterfaceInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of virtual function to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIVFuncInfo">GIVFuncInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
GQuark g_invoke_error_quark (void);
</code></synopsis>
+
</page>
</code></synopsis>
<p>Obtain a method of the object type given a @name. %NULL will be
returned if there's no method available with that name.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>name :</p></td>
+<td><p>name of method to obtain</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIFunctionInfo">GIFunctionInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
object @info and any interfaces it implements. %NULL will be
returned if there's no method available with that name.</p><p>Note that this function does *not* search parent classes; you will have
to chain up if that's desired.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>name :</p></td>
+<td><p>name of method to obtain</p></td>
+</tr>
+<tr>
+<td><p>implementor :</p></td>
+<td><p>The implementor of the interface</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIFunctionInfo">GIFunctionInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
gchar* name);
</code></synopsis>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>name :</p></td>
+<td><p>Name of signal</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>Info for the signal with name @name in @info, or %NULL on failure.</p></td>
+</tr>
+</table>
</page>
returned.
See the documentation for g_vfunc_info_get_invoker() for more
information on invoking virtuals.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>name :</p></td>
+<td><p>The name of a virtual function to find.</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIVFuncInfo">GIVFuncInfo</link>, or %NULL. Free it with</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain if the object type is an abstract type, eg if it cannot be
instantiated</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if the object type is abstract</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Every <link xref="GObject">GObject</link> has two structures; an instance structure and a class
structure. This function returns the metadata for the class structure.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIStructInfo">GIStructInfo</link> or %NULL. Free with</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an object type constant at index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of constant to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIConstantInfo">GIConstantInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an object type field at index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of field to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIFieldInfo">GIFieldInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain if the object type is of a fundamental type which is not
G_TYPE_OBJECT. This is mostly for supporting GstMiniObject.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if the object type is a fundamental type</p></td>
+</tr>
+</table>
</page>
I's mainly used fundamental types. The type signature for the symbol
is %GIObjectInfoGetValueFunction, to fetch the function pointer
see g_object_info_get_get_value_function().</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the symbol or %NULL</p></td>
+</tr>
+</table>
</page>
extract an instance of this object type out of a GValue.
This takes derivation into account and will reversely traverse
the base classes of this type, starting at the top type.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the function pointer or %NULL</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an object type interface at index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of interface to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIInterfaceInfo">GIInterfaceInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an object type method at index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of method to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIFunctionInfo">GIFunctionInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
gint g_object_info_get_n_constants (GIObjectInfo* info);
</code></synopsis>
<p>Obtain the number of constants that this object type has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of constants</p></td>
+</tr>
+</table>
</page>
gint g_object_info_get_n_fields (GIObjectInfo* info);
</code></synopsis>
<p>Obtain the number of fields that this object type has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of fields</p></td>
+</tr>
+</table>
</page>
gint g_object_info_get_n_interfaces (GIObjectInfo* info);
</code></synopsis>
<p>Obtain the number of interfaces that this object type has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of interfaces</p></td>
+</tr>
+</table>
</page>
gint g_object_info_get_n_methods (GIObjectInfo* info);
</code></synopsis>
<p>Obtain the number of methods that this object type has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of methods</p></td>
+</tr>
+</table>
</page>
gint g_object_info_get_n_properties (GIObjectInfo* info);
</code></synopsis>
<p>Obtain the number of properties that this object type has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of properties</p></td>
+</tr>
+</table>
</page>
gint g_object_info_get_n_signals (GIObjectInfo* info);
</code></synopsis>
<p>Obtain the number of signals that this object type has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of signals</p></td>
+</tr>
+</table>
</page>
gint g_object_info_get_n_vfuncs (GIObjectInfo* info);
</code></synopsis>
<p>Obtain the number of virtual functions that this object type has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of virtual functions</p></td>
+</tr>
+</table>
</page>
GIObjectInfo* g_object_info_get_parent (GIObjectInfo* info);
</code></synopsis>
<p>Obtain the parent of the object type.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIObjectInfo">GIObjectInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an object type property at index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of property to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIPropertyInfo">GIPropertyInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
object type. It's mainly used fundamental types. The type signature for
the symbol is %GIObjectInfoRefFunction, to fetch the function pointer
see g_object_info_get_ref_function().</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the symbol or %NULL</p></td>
+</tr>
+</table>
</page>
increase the reference count an instance of this object type.
This takes derivation into account and will reversely traverse
the base classes of this type, starting at the top type.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the function pointer or %NULL</p></td>
+</tr>
+</table>
</page>
I's mainly used fundamental types. The type signature for the symbol
is %GIObjectInfoSetValueFunction, to fetch the function pointer
see g_object_info_get_set_value_function().</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the symbol or %NULL</p></td>
+</tr>
+</table>
</page>
set a GValue given an instance of this object type.
This takes derivation into account and will reversely traverse
the base classes of this type, starting at the top type.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the function pointer or %NULL</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an object type signal at index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of signal to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GISignalInfo">GISignalInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the function which when called will return the GType
function for which this object type is registered.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the type init function</p></td>
+</tr>
+</table>
</page>
gchar* g_object_info_get_type_name (GIObjectInfo* info);
</code></synopsis>
<p>Obtain the name of the objects class/type.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>name of the objects type</p></td>
+</tr>
+</table>
</page>
object type. It's mainly used fundamental types. The type signature for
the symbol is %GIObjectInfoUnrefFunction, to fetch the function pointer
see g_object_info_get_unref_function().</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the symbol or %NULL</p></td>
+</tr>
+</table>
</page>
decrease the reference count an instance of this object type.
This takes derivation into account and will reversely traverse
the base classes of this type, starting at the top type.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the function pointer or %NULL</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain an object type virtual function at index @n.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIObjectInfo">GIObjectInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of virtual function to get</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIVFuncInfo">GIVFuncInfo</link>. Free the struct by calling</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the flags for this property info. See <link xref="GParamFags">GParamFags</link> for
more information about possible flag values.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIPropertyInfo">GIPropertyInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the flags</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the ownership transfer for this property. See <link xref="GITransfer">GITransfer</link> for more
information about transfer values.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIPropertyInfo">GIPropertyInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the transfer</p></td>
+</tr>
+</table>
</page>
GITypeInfo* g_property_info_get_type (GIPropertyInfo* info);
</code></synopsis>
<p>Obtain the type information for the property @info.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIPropertyInfo">GIPropertyInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GITypeInfo">GITypeInfo</link>, free it with</p></td>
+</tr>
+</table>
</page>
It means that either there is no type information associated with this @info or
that the shared library which provides the type_init function for this
@info cannot be called.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIRegisteredTypeInfo">GIRegisteredTypeInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GType">GType</link>.</p></td>
+</tr>
+</table>
</page>
function which will register the GType within the GObject type system.
Usually this is not called by langauge bindings or applications, use
g_registered_type_info_get_g_type() directly instead.</p><p>passing into g_module_symbol().</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIRegisteredTypeInfo">GIRegisteredTypeInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the symbol name of the type init function, suitable for</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the type name of the struct within the GObject type system.
This type can be passed to g_type_name() to get a <link xref="GType">GType</link>.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIRegisteredTypeInfo">GIRegisteredTypeInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the type name</p></td>
+</tr>
+</table>
</page>
<p>Obtain the class closure for this signal if one is set. The class
closure is a virtual function on the type that the signal belongs to.
If the signal lacks a closure %NULL will be returned.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GISignalInfo">GISignalInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the class closure or %NULL</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the flags for this signal info. See <link xref="GSignalFlags">GSignalFlags</link> for
more information about possible flag values.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GISignalInfo">GISignalInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the flags</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain if the returning true in the signal handler will
stop the emission of the signal.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GISignalInfo">GISignalInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if returning true stops the signal emission</p></td>
+</tr>
+</table>
</page>
gchar* name);
</code></synopsis>
<p>Obtain the type information for method named @name.</p><p>when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIStructInfo">GIStructInfo</link></p></td>
+</tr>
+<tr>
+<td><p>name :</p></td>
+<td><p>a method name</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIFunctionInfo">GIFunctionInfo</link>, free it with g_base_info_unref()</p></td>
+</tr>
+</table>
</page>
gsize g_struct_info_get_alignment (GIStructInfo* info);
</code></synopsis>
<p>Obtain the required alignment of the structure.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIStructInfo">GIStructInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>required alignment in bytes</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain the type information for field with specified index.</p><p>when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIStructInfo">GIStructInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>a field index</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIFieldInfo">GIFieldInfo</link>, free it with g_base_info_unref()</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain the type information for method with specified index.</p><p>when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIStructInfo">GIStructInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>a method index</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIFunctionInfo">GIFunctionInfo</link>, free it with g_base_info_unref()</p></td>
+</tr>
+</table>
</page>
gint g_struct_info_get_n_fields (GIStructInfo* info);
</code></synopsis>
<p>Obtain the number of fields this structure has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIStructInfo">GIStructInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of fields</p></td>
+</tr>
+</table>
</page>
gint g_struct_info_get_n_methods (GIStructInfo* info);
</code></synopsis>
<p>Obtain the number of methods this structure has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIStructInfo">GIStructInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of methods</p></td>
+</tr>
+</table>
</page>
gsize g_struct_info_get_size (GIStructInfo* info);
</code></synopsis>
<p>Obtain the total size of the structure.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIStructInfo">GIStructInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>size of the structure in bytes</p></td>
+</tr>
+</table>
</page>
gboolean g_struct_info_is_foreign (GIStructInfo* info);
</code></synopsis>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td></td>
+</tr>
+</table>
</page>
<p>Return true if this structure represents the "class structure" for some
<link xref="GObject">GObject</link> or <link xref="GInterface">GInterface</link>. This function is mainly useful to hide this kind of structure
from generated public APIs.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIStructInfo">GIStructInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if this is a class struct, %FALSE otherwise</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the fixed array size of the type. The type tag must be a
<link xref="GI_TYPE_TAG_ARRAY">GI_TYPE_TAG_ARRAY</link> or -1 will returned.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GITypeInfo">GITypeInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the size or -1 if it's not an array</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the array length of the type. The type tag must be a
<link xref="GI_TYPE_TAG_ARRAY">GI_TYPE_TAG_ARRAY</link> or -1 will returned.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GITypeInfo">GITypeInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the array length, or -1 if the type is not an array</p></td>
+</tr>
+</table>
</page>
<p>Obtain the array type for this type. See <link xref="GIArrayType">GIArrayType</link> for a list of
possible values. If the type tag of this type is not array, -1 will be
returned.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GITypeInfo">GITypeInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the array type or -1</p></td>
+</tr>
+</table>
</page>
this function returns full information about the referenced type. You can then
inspect the type of the returned <link xref="GIBaseInfo">GIBaseInfo</link> to further query whether it is
a concrete GObject, a GInterface, a structure, etc. using g_base_info_get_type().</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GITypeInfo">GITypeInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIBaseInfo">GIBaseInfo</link>, or %NULL. Free it with</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain the parameter type @n.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GITypeInfo">GITypeInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>index of the parameter</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the param type info</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the type tag for the type. See <link xref="GITypeTag">GITypeTag</link> for a list
of type tags.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GITypeInfo">GITypeInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the type tag</p></td>
+</tr>
+</table>
</page>
gboolean g_type_info_is_pointer (GITypeInfo* info);
</code></synopsis>
<p>Obtain if the type is passed as a reference.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GITypeInfo">GITypeInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if it is a pointer</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain if the last element of the array is %NULL. The type tag must be a
<link xref="GI_TYPE_TAG_ARRAY">GI_TYPE_TAG_ARRAY</link> or %FALSE will returned.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GITypeInfo">GITypeInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if zero terminated</p></td>
+</tr>
+</table>
</page>
gchar* g_type_tag_to_string (GITypeTag type);
</code></synopsis>
<p>Obtain a string representation of @type</p>
+
+<table>
+<tr>
+<td><p>type :</p></td>
+<td><p>the type_tag</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the string</p></td>
+</tr>
+</table>
</page>
gchar* name);
</code></synopsis>
<p>Obtain the type information for method named @name.</p><p>when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIUnionInfo">GIUnionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>name :</p></td>
+<td><p>a method name</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIFunctionInfo">GIFunctionInfo</link>, free it with g_base_info_unref()</p></td>
+</tr>
+</table>
</page>
gsize g_union_info_get_alignment (GIUnionInfo* info);
</code></synopsis>
<p>Obtain the required alignment of the union.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIUnionInfo">GIUnionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>required alignment in bytes</p></td>
+</tr>
+</table>
</page>
<p>Obtain discriminator value assigned for n-th union field, i.e. n-th
union field is the active one if discriminator contains this
constant.</p><p>when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIUnionInfo">GIUnionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>a union field index</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIConstantInfo">GIConstantInfo</link>, free it with g_base_info_unref()</p></td>
+</tr>
+</table>
</page>
gint g_union_info_get_discriminator_offset (GIUnionInfo* info);
</code></synopsis>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td></td>
+</tr>
+</table>
</page>
GITypeInfo* g_union_info_get_discriminator_type (GIUnionInfo* info);
</code></synopsis>
<p>Obtain the type information of the union discriminator.</p><p>when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIUnionInfo">GIUnionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GITypeInfo">GITypeInfo</link>, free it with g_base_info_unref()</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain the type information for field with specified index.</p><p>when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIUnionInfo">GIUnionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>a field index</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIFieldInfo">GIFieldInfo</link>, free it with g_base_info_unref()</p></td>
+</tr>
+</table>
</page>
gint n);
</code></synopsis>
<p>Obtain the type information for method with specified index.</p><p>when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIUnionInfo">GIUnionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>n :</p></td>
+<td><p>a method index</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIFunctionInfo">GIFunctionInfo</link>, free it with g_base_info_unref()</p></td>
+</tr>
+</table>
</page>
gint g_union_info_get_n_fields (GIUnionInfo* info);
</code></synopsis>
<p>Obtain the number of fields this union has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIUnionInfo">GIUnionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of fields</p></td>
+</tr>
+</table>
</page>
gint g_union_info_get_n_methods (GIUnionInfo* info);
</code></synopsis>
<p>Obtain the number of methods this union has.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIUnionInfo">GIUnionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>number of methods</p></td>
+</tr>
+</table>
</page>
gsize g_union_info_get_size (GIUnionInfo* info);
</code></synopsis>
<p>Obtain the total size of the union.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIUnionInfo">GIUnionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>size of the union in bytes</p></td>
+</tr>
+</table>
</page>
gboolean g_union_info_is_discriminated (GIUnionInfo* info);
</code></synopsis>
<p>Return true if this union contains discriminator field.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIUnionInfo">GIUnionInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if this is a discriminated union, %FALSE otherwise</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the enumeration value of the <link xref="GIValueInfo">GIValueInfo</link>.</p><p>as a 32-bit signed or unsigned value. The use of gint64 as the
return type is to allow both.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIValueInfo">GIValueInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the enumeration value. This will always be representable</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>This method will look up where inside the type struct of @implementor_gtype
is the implementation for @info.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIVFuncInfo">GIVFuncInfo</link></p></td>
+</tr>
+<tr>
+<td><p>implementor_gtype :</p></td>
+<td><p><link xref="GType">GType</link> implementing this virtual function</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>address to a function or %NULL if an error happened</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the flags for this virtual function info. See <link xref="GIVFuncInfoFlags">GIVFuncInfoFlags</link> for
more information about possible flag values.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIVFuncInfo">GIVFuncInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the flags</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>If this virtual function has an associated invoker method, this
method will return it. An invoker method is a C entry point.</p><p>Not all virtuals will have invokers.</p><p>g_base_info_unref() when done.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIVFuncInfo">GIVFuncInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the <link xref="GIVFuncInfo">GIVFuncInfo</link> or %NULL. Free it with</p></td>
+</tr>
+</table>
</page>
</code></synopsis>
<p>Obtain the offset of the function pointer in the class struct. The value
0xFFFF indicates that the struct offset is unknown.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIVFuncInfo">GIVFuncInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the struct offset or 0xFFFF if it's unknown</p></td>
+</tr>
+</table>
</page>
<p>Obtain the signal for the virtual function if one is set.
The signal comes from the object or interface to which
this virtual function belongs.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIVFuncInfo">GIVFuncInfo</link></p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>the signal or %NULL if none set</p></td>
+</tr>
+</table>
</page>
<p>Invokes the function described in @info with the given
arguments. Note that inout parameters must appear in both
argument lists.</p><p>error occurred.</p>
+
+<table>
+<tr>
+<td><p>info :</p></td>
+<td><p>a <link xref="GIVFuncInfo">GIVFuncInfo</link> describing the virtual function to invoke</p></td>
+</tr>
+<tr>
+<td><p>implementor :</p></td>
+<td><p><link xref="GType">GType</link> of the type that implements this virtual function</p></td>
+</tr>
+<tr>
+<td><p>in_args :</p></td>
+<td><p>an array of <link xref="GIArgument">GIArgument</link><!-- -->s, one for each in parameter of @info. If there are no in parameter, @in_args can be %NULL</p></td>
+</tr>
+<tr>
+<td><p>n_in_args :</p></td>
+<td><p>the length of the @in_args array</p></td>
+</tr>
+<tr>
+<td><p>out_args :</p></td>
+<td><p>an array of <link xref="GIArgument">GIArgument</link><!-- -->s, one for each out parameter of @info. If there are no out parameters, @out_args may be %NULL</p></td>
+</tr>
+<tr>
+<td><p>n_out_args :</p></td>
+<td><p>the length of the @out_args array</p></td>
+</tr>
+<tr>
+<td><p>return_value :</p></td>
+<td><p>return location for the return value of the function. If the function returns void, @return_value may be %NULL</p></td>
+</tr>
+<tr>
+<td><p>Returns :</p></td>
+<td><p>%TRUE if the function has been invoked, %FALSE if an</p></td>
+</tr>
+</table>
</page>