summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu.vizoso@collabora.co.uk>2011-08-14 11:10:14 +0200
committerTomeu Vizoso <tomeu.vizoso@collabora.co.uk>2011-08-14 11:12:28 +0200
commit21a8a702c46968d40cfc99a5b57f9801568eda21 (patch)
tree2b13e68d7069594097ab54c10bb468ab8e876ab7
parent736924a8ed80b6d8ef14f342abf3440a8e9c9541 (diff)
downloadgobject-introspection-21a8a702c46968d40cfc99a5b57f9801568eda21.tar.gz
g-ir-doc-tool: Add -expected test for Python docbook
-rw-r--r--giscanner/docbookwriter.py107
-rw-r--r--giscanner/docmain.py15
-rw-r--r--tests/doctool/GIRepository-2.0-C-expected.xml (renamed from tests/doctool/GIRepository-2.0-expected.xml)0
-rw-r--r--tests/doctool/GIRepository-2.0-Python-expected.xml1781
-rw-r--r--tests/doctool/Makefile.am18
5 files changed, 1868 insertions, 53 deletions
diff --git a/giscanner/docbookwriter.py b/giscanner/docbookwriter.py
index 30b15ee9..882f6dd7 100644
--- a/giscanner/docbookwriter.py
+++ b/giscanner/docbookwriter.py
@@ -38,12 +38,15 @@ def _space(num):
return " " * num
class DocBookFormatter(object):
- def __init__(self, writer):
- self._namespace = None
- self._writer = writer
+ def __init__(self):
+ self.namespace = None
+ self.writer = None
def set_namespace(self, namespace):
- self._namespace = namespace
+ self.namespace = namespace
+
+ def set_writer(self, writer):
+ self.writer = writer
def get_type_string(self, type):
return str(type.ctype)
@@ -52,17 +55,17 @@ class DocBookFormatter(object):
return "%s %s" % (param_type, param_name)
def _render_parameter(self, param, extra_content=''):
- with self._writer.tagcontext("parameter"):
+ with self.writer.tagcontext("parameter"):
if param.type.ctype is not None:
link_dest = param.type.ctype.replace("*", "")
else:
link_dest = param.type.ctype
- with self._writer.tagcontext("link", [("linkend", "%s" % link_dest)]):
- self._writer.write_tag("type", [], link_dest)
- self._writer.write_line(extra_content)
+ with self.writer.tagcontext("link", [("linkend", "%s" % link_dest)]):
+ self.writer.write_tag("type", [], link_dest)
+ self.writer.write_line(extra_content)
def _render_parameters(self, parent, parameters):
- self._writer.write_line(
+ self.writer.write_line(
"%s(" % _space(40 - len(parent.symbol)))
parent_class = parent.parent_class
@@ -74,7 +77,7 @@ class DocBookFormatter(object):
first_param = True
for param in params:
if not first_param:
- self._writer.write_line("\n%s" % _space(61))
+ self.writer.write_line("\n%s" % _space(61))
else:
first_param = False
@@ -84,8 +87,8 @@ class DocBookFormatter(object):
comma = ""
if isinstance(param.type, ast.Varargs):
- with self._writer.tagcontext("parameter"):
- self._writer.write_line('...%s' % comma)
+ with self.writer.tagcontext("parameter"):
+ self.writer.write_line('...%s' % comma)
else:
extra_content = " "
if param.type.ctype is not None and '*' in param.type.ctype:
@@ -94,16 +97,14 @@ class DocBookFormatter(object):
extra_content += comma
self._render_parameter(param, extra_content)
- self._writer.write_line(");\n")
+ self.writer.write_line(");\n")
def get_method_as_title(self, entity):
method = entity.get_ast()
return "%s ()" % method.symbol
def get_page_name(self, node):
- if isinstance(node, ast.Alias) or node.gtype_name is None:
- return node.ctype
- return node.gtype_name
+ pass
def get_class_name(self, node):
if node.gtype_name is None:
@@ -125,7 +126,7 @@ class DocBookFormatter(object):
def render_method(self, entity, link=False):
method = entity.get_ast()
- self._writer.disable_whitespace()
+ self.writer.disable_whitespace()
retval_type = method.retval.type
if retval_type.ctype:
@@ -135,28 +136,28 @@ class DocBookFormatter(object):
if retval_type.target_giname:
ns = retval_type.target_giname.split('.')
- if ns[0] == self._namespace.name:
+ if ns[0] == self.namespace.name:
link_dest = "%s" % (
retval_type.ctype.replace("*", ""))
- with self._writer.tagcontext("link", [("linkend", link_dest)]):
- self._writer.write_tag("returnvalue", [], link_dest)
+ with self.writer.tagcontext("link", [("linkend", link_dest)]):
+ self.writer.write_tag("returnvalue", [], link_dest)
if '*' in retval_type.ctype:
- self._writer.write_line(' *')
+ self.writer.write_line(' *')
- self._writer.write_line(
+ self.writer.write_line(
_space(20 - len(self.get_type_string(method.retval.type))))
if link:
- self._writer.write_tag("link", [("linkend",
+ self.writer.write_tag("link", [("linkend",
method.symbol.replace("_", "-"))],
method.symbol)
else:
- self._writer.write_line(method.symbol)
+ self.writer.write_line(method.symbol)
self._render_parameters(method, method.parameters)
- self._writer.enable_whitespace()
+ self.writer.enable_whitespace()
def _get_annotations(self, argument):
annotations = {}
@@ -189,31 +190,31 @@ class DocBookFormatter(object):
self._get_annotations(method.retval))
def _render_param(self, argname, doc, annotations):
- with self._writer.tagcontext('varlistentry'):
- with self._writer.tagcontext('term'):
- self._writer.disable_whitespace()
+ with self.writer.tagcontext('varlistentry'):
+ with self.writer.tagcontext('term'):
+ self.writer.disable_whitespace()
try:
- with self._writer.tagcontext('parameter'):
- self._writer.write_line(argname)
+ with self.writer.tagcontext('parameter'):
+ self.writer.write_line(argname)
if doc is not None:
- self._writer.write_line('&#xA0;:')
+ self.writer.write_line('&#xA0;:')
finally:
- self._writer.enable_whitespace()
+ self.writer.enable_whitespace()
if doc is not None:
- with self._writer.tagcontext('listitem'):
- with self._writer.tagcontext('simpara'):
- self._writer.write_line(doc)
+ with self.writer.tagcontext('listitem'):
+ with self.writer.tagcontext('simpara'):
+ self.writer.write_line(doc)
if annotations:
- with self._writer.tagcontext('emphasis', [('role', 'annotation')]):
+ with self.writer.tagcontext('emphasis', [('role', 'annotation')]):
for key, value in annotations.iteritems():
- self._writer.disable_whitespace()
+ self.writer.disable_whitespace()
try:
- self._writer.write_line('[%s' % key)
+ self.writer.write_line('[%s' % key)
if value is not None:
- self._writer.write_line(' %s' % value)
- self._writer.write_line(']')
+ self.writer.write_line(' %s' % value)
+ self.writer.write_line(']')
finally:
- self._writer.enable_whitespace()
+ self.writer.enable_whitespace()
def render_property(self, entity, link=False):
prop = entity.get_ast()
@@ -233,15 +234,15 @@ class DocBookFormatter(object):
self._render_prop_or_signal(prop_name, prop_type, flags)
def _render_prop_or_signal(self, name, type_, flags):
- self._writer.disable_whitespace()
+ self.writer.disable_whitespace()
line = _space(2) + name + _space(27 - len(name))
line += str(type_) + _space(22 - len(str(type_)))
line += ": " + " / ".join(flags)
- self._writer.write_line(line + "\n")
+ self.writer.write_line(line + "\n")
- self._writer.enable_whitespace()
+ self.writer.enable_whitespace()
def render_signal(self, entity, link=False):
@@ -252,6 +253,18 @@ class DocBookFormatter(object):
self._render_prop_or_signal(sig_name, "", flags)
+class DocBookFormatterPython(DocBookFormatter):
+ def get_page_name(self, node):
+ return node.name
+
+
+class DocBookFormatterC(DocBookFormatter):
+ def get_page_name(self, node):
+ if isinstance(node, ast.Alias) or node.gtype_name is None:
+ return node.ctype
+ return node.gtype_name
+
+
class DocBookPage(object):
def __init__(self, name, ast):
self.methods = []
@@ -297,12 +310,14 @@ class DocBookEntity(object):
class DocBookWriter(object):
- def __init__(self):
+ def __init__(self, formatter):
self._namespace = None
self._pages = []
self._writer = XMLWriter()
- self._formatter = DocBookFormatter(self._writer)
+
+ formatter.set_writer(self._writer)
+ self._formatter = formatter
def _add_page(self, page):
self._pages.append(page)
diff --git a/giscanner/docmain.py b/giscanner/docmain.py
index 29b5ddfb..3bffaefe 100644
--- a/giscanner/docmain.py
+++ b/giscanner/docmain.py
@@ -21,6 +21,8 @@
import optparse
from .docbookwriter import DocBookWriter
+from .docbookwriter import DocBookFormatterC
+from .docbookwriter import DocBookFormatterPython
from .transformer import Transformer
class GIDocGenerator(object):
@@ -42,6 +44,10 @@ def doc_main(args):
action="store", dest="format",
default="docbook",
help="Output format")
+ parser.add_option("-l", "--language",
+ action="store", dest="language",
+ default="Python",
+ help="Output language")
options, args = parser.parse_args(args)
if not options.output:
@@ -50,8 +56,15 @@ def doc_main(args):
if len(args) < 2:
raise SystemExit("Need an input GIR filename")
+ if options.language == "Python":
+ formatter = DocBookFormatterPython()
+ elif options.language == "C":
+ formatter = DocBookFormatterC()
+ else:
+ raise SystemExit("Unsupported language: %s" % (options.language, ))
+
if options.format == "docbook":
- writer = DocBookWriter()
+ writer = DocBookWriter(formatter)
else:
raise SystemExit("Unsupported output format: %s" % (options.format, ))
diff --git a/tests/doctool/GIRepository-2.0-expected.xml b/tests/doctool/GIRepository-2.0-C-expected.xml
index b4755860..b4755860 100644
--- a/tests/doctool/GIRepository-2.0-expected.xml
+++ b/tests/doctool/GIRepository-2.0-C-expected.xml
diff --git a/tests/doctool/GIRepository-2.0-Python-expected.xml b/tests/doctool/GIRepository-2.0-Python-expected.xml
new file mode 100644
index 00000000..7d24f2ab
--- /dev/null
+++ b/tests/doctool/GIRepository-2.0-Python-expected.xml
@@ -0,0 +1,1781 @@
+<?xml version="1.0"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
+<!ENTITY version SYSTEM "version.xml">
+]>
+<book xml:id="page_GIRepository"
+ xmlns="http://docbook.org/ns/docbook"
+ version="5.0">
+ <title>GIRepository Documentation</title>
+ <chapter xml:id="ch_ArgInfo">
+ <title>ArgInfo</title>
+ <refsynopsisdiv id="ArgInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="ArgInfo-struct">ArgInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="giarginfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIArgInfo" role="typedef">
+ <title>GIArgInfo</title>
+ <indexterm zone="GIArgInfo">
+ <primary sortas="ArgInfo">GIArgInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIArgInfo</programlisting>
+ <para>Represents an argument.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_CallableInfo">
+ <title>CallableInfo</title>
+ <refsynopsisdiv id="CallableInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="CallableInfo-struct">CallableInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="gicallableinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GICallableInfo" role="typedef">
+ <title>GICallableInfo</title>
+ <indexterm zone="GICallableInfo">
+ <primary sortas="CallableInfo">GICallableInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GICallableInfo</programlisting>
+ <para>Represents a callable, either #GIFunctionInfo, #GICallbackInfo or
+#GIVFuncInfo.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_CallbackInfo">
+ <title>CallbackInfo</title>
+ <refsynopsisdiv id="CallbackInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="CallbackInfo-struct">CallbackInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="gicallbackinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GICallbackInfo" role="typedef">
+ <title>GICallbackInfo</title>
+ <indexterm zone="GICallbackInfo">
+ <primary sortas="CallbackInfo">GICallbackInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GICallbackInfo</programlisting>
+ <para>Represents a callback, eg arguments and return value.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_ConstantInfo">
+ <title>ConstantInfo</title>
+ <refsynopsisdiv id="ConstantInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="ConstantInfo-struct">ConstantInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="giconstantinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIConstantInfo" role="typedef">
+ <title>GIConstantInfo</title>
+ <indexterm zone="GIConstantInfo">
+ <primary sortas="ConstantInfo">GIConstantInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIConstantInfo</programlisting>
+ <para>Represents a constant.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_EnumInfo">
+ <title>EnumInfo</title>
+ <refsynopsisdiv id="EnumInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="EnumInfo-struct">EnumInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="gienuminfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIEnumInfo" role="typedef">
+ <title>GIEnumInfo</title>
+ <indexterm zone="GIEnumInfo">
+ <primary sortas="EnumInfo">GIEnumInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIEnumInfo</programlisting>
+ <para>Represents an enum or a flag.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_ErrorDomainInfo">
+ <title>ErrorDomainInfo</title>
+ <refsynopsisdiv id="ErrorDomainInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="ErrorDomainInfo-struct">ErrorDomainInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="gierrordomaininfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIErrorDomainInfo" role="typedef">
+ <title>GIErrorDomainInfo</title>
+ <indexterm zone="GIErrorDomainInfo">
+ <primary sortas="ErrorDomainInfo">GIErrorDomainInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIErrorDomainInfo</programlisting>
+ <para>Represents a #GError error domain.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_FieldInfo">
+ <title>FieldInfo</title>
+ <refsynopsisdiv id="FieldInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="FieldInfo-struct">FieldInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="gifieldinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIFieldInfo" role="typedef">
+ <title>GIFieldInfo</title>
+ <indexterm zone="GIFieldInfo">
+ <primary sortas="FieldInfo">GIFieldInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIFieldInfo</programlisting>
+ <para>Represents a field of a #GIStructInfo or a #GIUnionInfo.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_FunctionInfo">
+ <title>FunctionInfo</title>
+ <refsynopsisdiv id="FunctionInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="FunctionInfo-struct">FunctionInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="gifunctioninfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIFunctionInfo" role="typedef">
+ <title>GIFunctionInfo</title>
+ <indexterm zone="GIFunctionInfo">
+ <primary sortas="FunctionInfo">GIFunctionInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIFunctionInfo</programlisting>
+ <para>Represents a function, eg arguments and return value.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_InterfaceInfo">
+ <title>InterfaceInfo</title>
+ <refsynopsisdiv id="InterfaceInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="InterfaceInfo-struct">InterfaceInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="giinterfaceinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIInterfaceInfo" role="typedef">
+ <title>GIInterfaceInfo</title>
+ <indexterm zone="GIInterfaceInfo">
+ <primary sortas="InterfaceInfo">GIInterfaceInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIInterfaceInfo</programlisting>
+ <para>Represents an interface.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_ObjectInfo">
+ <title>ObjectInfo</title>
+ <refsynopsisdiv id="ObjectInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="ObjectInfo-struct">ObjectInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="giobjectinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIObjectInfo" role="typedef">
+ <title>GIObjectInfo</title>
+ <indexterm zone="GIObjectInfo">
+ <primary sortas="ObjectInfo">GIObjectInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIObjectInfo</programlisting>
+ <para>Represents an object.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_PropertyInfo">
+ <title>PropertyInfo</title>
+ <refsynopsisdiv id="PropertyInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="PropertyInfo-struct">PropertyInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="gipropertyinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIPropertyInfo" role="typedef">
+ <title>GIPropertyInfo</title>
+ <indexterm zone="GIPropertyInfo">
+ <primary sortas="PropertyInfo">GIPropertyInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIPropertyInfo</programlisting>
+ <para>Represents a property of a #GIObjectInfo or a #GIInterfaceInfo.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_RegisteredTypeInfo">
+ <title>RegisteredTypeInfo</title>
+ <refsynopsisdiv id="RegisteredTypeInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="RegisteredTypeInfo-struct">RegisteredTypeInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="giregisteredtypeinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIRegisteredTypeInfo" role="typedef">
+ <title>GIRegisteredTypeInfo</title>
+ <indexterm zone="GIRegisteredTypeInfo">
+ <primary sortas="RegisteredTypeInfo">GIRegisteredTypeInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIRegisteredTypeInfo</programlisting>
+ <para>Represent a registered type.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_SignalInfo">
+ <title>SignalInfo</title>
+ <refsynopsisdiv id="SignalInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="SignalInfo-struct">SignalInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="gisignalinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GISignalInfo" role="typedef">
+ <title>GISignalInfo</title>
+ <indexterm zone="GISignalInfo">
+ <primary sortas="SignalInfo">GISignalInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GISignalInfo</programlisting>
+ <para>Represents a signal.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_StructInfo">
+ <title>StructInfo</title>
+ <refsynopsisdiv id="StructInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="StructInfo-struct">StructInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="gistructinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIStructInfo" role="typedef">
+ <title>GIStructInfo</title>
+ <indexterm zone="GIStructInfo">
+ <primary sortas="StructInfo">GIStructInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIStructInfo</programlisting>
+ <para>Represents a struct.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_TypeInfo">
+ <title>TypeInfo</title>
+ <refsynopsisdiv id="TypeInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="TypeInfo-struct">TypeInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="gitypeinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GITypeInfo" role="typedef">
+ <title>GITypeInfo</title>
+ <indexterm zone="GITypeInfo">
+ <primary sortas="TypeInfo">GITypeInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GITypeInfo</programlisting>
+ <para>Represents type information, direction, transfer etc.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_UnionInfo">
+ <title>UnionInfo</title>
+ <refsynopsisdiv id="UnionInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="UnionInfo-struct">UnionInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="giunioninfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIUnionInfo" role="typedef">
+ <title>GIUnionInfo</title>
+ <indexterm zone="GIUnionInfo">
+ <primary sortas="UnionInfo">GIUnionInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIUnionInfo</programlisting>
+ <para>Represents a union.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_VFuncInfo">
+ <title>VFuncInfo</title>
+ <refsynopsisdiv id="VFuncInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="VFuncInfo-struct">VFuncInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="givfuncinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIVFuncInfo" role="typedef">
+ <title>GIVFuncInfo</title>
+ <indexterm zone="GIVFuncInfo">
+ <primary sortas="VFuncInfo">GIVFuncInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIVFuncInfo</programlisting>
+ <para>Represents a virtual function.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_ValueInfo">
+ <title>ValueInfo</title>
+ <refsynopsisdiv id="ValueInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <synopsis>
+struct <link linkend="ValueInfo-struct">ValueInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="givalueinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIValueInfo" role="typedef">
+ <title>GIValueInfo</title>
+ <indexterm zone="GIValueInfo">
+ <primary sortas="ValueInfo">GIValueInfo</primary>
+ </indexterm>
+ <programlisting>typedef GIBaseInfo GIValueInfo</programlisting>
+ <para>Represents a enum value of a #GIEnumInfo.</para>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_AttributeIter">
+ <title>AttributeIter</title>
+ <refsynopsisdiv id="AttributeIter.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <anchor id="AttributeIter"/>
+ <synopsis>
+struct <link linkend="AttributeIter-struct">AttributeIter</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="giattributeiter-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIAttributeIter-struct" role="struct">
+ <title>struct GIAttributeIter</title>
+ <indexterm zone="GIAttributeIter-struct">
+ <primary sortas="AttributeIter">GIAttributeIter</primary>
+ </indexterm>
+ <programlisting>struct GIAttributeIter;</programlisting>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_BaseInfo">
+ <title>BaseInfo</title>
+ <refsynopsisdiv id="BaseInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <anchor id="BaseInfo"/>
+ <synopsis>
+struct <link linkend="BaseInfo-struct">BaseInfo</link>;
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="g-base-info-equal">g_base_info_equal</link> (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo, </parameter>
+ <parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *info2</parameter>);
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="g-base-info-get-attribute">g_base_info_get_attribute</link> (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *name</parameter>);
+<link linkend="GIBaseInfo"><returnvalue>GIBaseInfo</returnvalue></link> * <link linkend="g-base-info-get-container">g_base_info_get_container</link> (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="g-base-info-get-name">g_base_info_get_name</link> (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="g-base-info-get-namespace">g_base_info_get_namespace</link> (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+<link linkend="GITypelib"><returnvalue>GITypelib</returnvalue></link> * <link linkend="g-base-info-get-typelib">g_base_info_get_typelib</link> (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="g-base-info-is-deprecated">g_base_info_is_deprecated</link> (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="g-base-info-iterate-attributes">g_base_info_iterate_attributes</link> (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo, </parameter>
+ <parameter><link linkend="GIAttributeIter"><type>GIAttributeIter</type></link> *iterator, </parameter>
+ <parameter><link linkend="char"><type>char</type></link> *name, </parameter>
+ <parameter><link linkend="char"><type>char</type></link> *value</parameter>);
+<link linkend="GIBaseInfo"><returnvalue>GIBaseInfo</returnvalue></link> * <link linkend="g-base-info-ref">g_base_info_ref</link> (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="g-base-info-unref">g_base_info_unref</link> (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="gibaseinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIBaseInfo-struct" role="struct">
+ <title>struct GIBaseInfo</title>
+ <indexterm zone="GIBaseInfo-struct">
+ <primary sortas="BaseInfo">GIBaseInfo</primary>
+ </indexterm>
+ <programlisting>struct GIBaseInfo;</programlisting>
+ </refsect2>
+ <refsect2 id="g-base-info-equal" role="function">
+ <title>g_base_info_equal ()</title>
+ <indexterm zone="g-base-info-equal">
+ <primary>equal</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> g_base_info_equal (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo, </parameter>
+ <parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *info2</parameter>);
+ </programlisting>
+ <para>Compare two #GIBaseInfo.
+Using pointer comparison is not practical since many functions return
+different instances of #GIBaseInfo that refers to the same part of the
+TypeLib; use this function instead to do #GIBaseInfo comparisons.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>baseinfo</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>info2</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ a #GIBaseInfo
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ %TRUE if and only if @info1 equals @info2.
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-base-info-get-attribute" role="function">
+ <title>g_base_info_get_attribute ()</title>
+ <indexterm zone="g-base-info-get-attribute">
+ <primary>get_attribute</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * g_base_info_get_attribute (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *name</parameter>);
+ </programlisting>
+ <para>Retrieve an arbitrary attribute associated with this node.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>baseinfo</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>name</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ a freeform string naming an attribute
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ The value of the attribute, or %NULL if no such attribute exists
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-base-info-get-container" role="function">
+ <title>g_base_info_get_container ()</title>
+ <indexterm zone="g-base-info-get-container">
+ <primary>get_container</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="GIBaseInfo"><returnvalue>GIBaseInfo</returnvalue></link> * g_base_info_get_container (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+ </programlisting>
+ <para>Obtain the container of the @info. The container is the parent
+GIBaseInfo. For instance, the parent of a #GIFunctionInfo is an
+#GIObjectInfo or #GIInterfaceInfo.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>baseinfo</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ the container
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-base-info-get-name" role="function">
+ <title>g_base_info_get_name ()</title>
+ <indexterm zone="g-base-info-get-name">
+ <primary>get_name</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * g_base_info_get_name (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+ </programlisting>
+ <para>Obtain the name of the @info. What the name represents depends on
+the #GIInfoType of the @info. For instance for #GIFunctionInfo it is
+the name of the function.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>baseinfo</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ the name of @info or %NULL if it lacks a name.
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-base-info-get-namespace" role="function">
+ <title>g_base_info_get_namespace ()</title>
+ <indexterm zone="g-base-info-get-namespace">
+ <primary>get_namespace</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * g_base_info_get_namespace (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+ </programlisting>
+ <para>Obtain the namespace of @info.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>baseinfo</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ the namespace
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-base-info-get-typelib" role="function">
+ <title>g_base_info_get_typelib ()</title>
+ <indexterm zone="g-base-info-get-typelib">
+ <primary>get_typelib</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="GITypelib"><returnvalue>GITypelib</returnvalue></link> * g_base_info_get_typelib (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+ </programlisting>
+ <para>Obtain the typelib this @info belongs to</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>baseinfo</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ the typelib.
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-base-info-is-deprecated" role="function">
+ <title>g_base_info_is_deprecated ()</title>
+ <indexterm zone="g-base-info-is-deprecated">
+ <primary>is_deprecated</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> g_base_info_is_deprecated (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+ </programlisting>
+ <para>Obtain whether the @info is represents a metadata which is
+deprecated or not.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>baseinfo</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ %TRUE if deprecated
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-base-info-iterate-attributes" role="function">
+ <title>g_base_info_iterate_attributes ()</title>
+ <indexterm zone="g-base-info-iterate-attributes">
+ <primary>iterate_attributes</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> g_base_info_iterate_attributes (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo, </parameter>
+ <parameter><link linkend="GIAttributeIter"><type>GIAttributeIter</type></link> *iterator, </parameter>
+ <parameter><link linkend="char"><type>char</type></link> *name, </parameter>
+ <parameter><link linkend="char"><type>char</type></link> *value</parameter>);
+ </programlisting>
+ <para>Iterate over all attributes associated with this node. The iterator
+structure is typically stack allocated, and must have its first
+member initialized to %NULL.
+Both the @name and @value should be treated as constants
+and must not be freed.
+&lt;example&gt;
+&lt;title&gt;Iterating over attributes&lt;/title&gt;
+&lt;programlisting&gt;
+void
+print_attributes (GIBaseInfo *info)
+{
+GIAttributeIter iter = { 0, };
+char *name;
+char *value;
+while (g_base_info_iterate_attributes (info, &amp;iter, &amp;name, &amp;value))
+{
+}
+}
+&lt;/programlisting&gt;
+&lt;/example&gt;</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>baseinfo</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>iterator</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ a #GIAttributeIter structure, must be initialized; see below
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>name</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Returned name, must not be freed
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>value</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Returned name, must not be freed
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ %TRUE if there are more attributes
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-base-info-ref" role="function">
+ <title>g_base_info_ref ()</title>
+ <indexterm zone="g-base-info-ref">
+ <primary>ref</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="GIBaseInfo"><returnvalue>GIBaseInfo</returnvalue></link> * g_base_info_ref (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+ </programlisting>
+ <para>Increases the reference count of @info.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>baseinfo</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ the same @info.
+ <emphasis role="annotation">
+[transfer full] </emphasis>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-base-info-unref" role="function">
+ <title>g_base_info_unref ()</title>
+ <indexterm zone="g-base-info-unref">
+ <primary>unref</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="void"><returnvalue>void</returnvalue></link> g_base_info_unref (<parameter><link linkend="GIBaseInfo"><type>GIBaseInfo</type></link> *baseinfo</parameter>);
+ </programlisting>
+ <para>Decreases the reference count of @info. When its reference count
+drops to 0, the info is freed.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>baseinfo</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter> </term>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_Repository">
+ <title>Repository</title>
+ <refsynopsisdiv id="Repository.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <anchor id="Repository"/>
+ <synopsis>
+struct <link linkend="Repository-struct">Repository</link>;
+<link linkend="GList"><returnvalue>GList</returnvalue></link> * <link linkend="g-irepository-enumerate-versions">g_irepository_enumerate_versions</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+<link linkend="GIBaseInfo"><returnvalue>GIBaseInfo</returnvalue></link> * <link linkend="g-irepository-find-by-gtype">g_irepository_find_by_gtype</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="GType"><type>GType</type></link> gtype</parameter>);
+<link linkend="GIBaseInfo"><returnvalue>GIBaseInfo</returnvalue></link> * <link linkend="g-irepository-find-by-name">g_irepository_find_by_name</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *name</parameter>);
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="g-irepository-get-c-prefix">g_irepository_get_c_prefix</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="g-irepository-get-dependencies">g_irepository_get_dependencies</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+<link linkend="GIBaseInfo"><returnvalue>GIBaseInfo</returnvalue></link> * <link linkend="g-irepository-get-info">g_irepository_get_info</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_, </parameter>
+ <parameter><link linkend="gint"><type>gint</type></link> index</parameter>);
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="g-irepository-get-loaded-namespaces">g_irepository_get_loaded_namespaces</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository</parameter>);
+<link linkend="gint"><returnvalue>gint</returnvalue></link> <link linkend="g-irepository-get-n-infos">g_irepository_get_n_infos</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="g-irepository-get-shared-library">g_irepository_get_shared_library</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="g-irepository-get-typelib-path">g_irepository_get_typelib_path</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="g-irepository-get-version">g_irepository_get_version</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="g-irepository-is-registered">g_irepository_is_registered</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *version</parameter>);
+<link linkend="char"><returnvalue>char</returnvalue></link> * <link linkend="g-irepository-load-typelib">g_irepository_load_typelib</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="GITypelib"><type>GITypelib</type></link> *typelib, </parameter>
+ <parameter><link linkend="GIRepositoryLoadFlags"><type>GIRepositoryLoadFlags</type></link> flags</parameter>);
+<link linkend="GITypelib"><returnvalue>GITypelib</returnvalue></link> * <link linkend="g-irepository-require">g_irepository_require</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *version, </parameter>
+ <parameter><link linkend="GIRepositoryLoadFlags"><type>GIRepositoryLoadFlags</type></link> flags</parameter>);
+<link linkend="GITypelib"><returnvalue>GITypelib</returnvalue></link> * <link linkend="g-irepository-require-private">g_irepository_require_private</link> (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *typelib_dir, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *version, </parameter>
+ <parameter><link linkend="GIRepositoryLoadFlags"><type>GIRepositoryLoadFlags</type></link> flags</parameter>);
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="Repository.object-hierarchy" role="object_hierarchy">
+ <title role="object_hierarchy.title">Object Hierarchy</title>
+ <synopsis>
+ GObject
+ +----GIRepository </synopsis>
+ </refsect1>
+ <refsect1 id="girepository-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIRepository-struct" role="struct">
+ <title>struct GIRepository</title>
+ <indexterm zone="GIRepository-struct">
+ <primary sortas="Repository">GIRepository</primary>
+ </indexterm>
+ <programlisting>struct GIRepository;</programlisting>
+ </refsect2>
+ <refsect2 id="g-irepository-enumerate-versions" role="function">
+ <title>g_irepository_enumerate_versions ()</title>
+ <indexterm zone="g-irepository-enumerate-versions">
+ <primary>enumerate_versions</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="GList"><returnvalue>GList</returnvalue></link> * g_irepository_enumerate_versions (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+ </programlisting>
+ <para>Obtain an unordered list of versions (either currently loaded or
+available) for @namespace_ in this @repository.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>namespace_</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ GI namespace, e.g. "Gtk"
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ the array of versions.
+ <emphasis role="annotation">
+[element-type utf8][transfer full] </emphasis>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-find-by-gtype" role="function">
+ <title>g_irepository_find_by_gtype ()</title>
+ <indexterm zone="g-irepository-find-by-gtype">
+ <primary>find_by_gtype</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="GIBaseInfo"><returnvalue>GIBaseInfo</returnvalue></link> * g_irepository_find_by_gtype (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="GType"><type>GType</type></link> gtype</parameter>);
+ </programlisting>
+ <para>Searches all loaded namespaces for a particular #GType. Note that
+in order to locate the metadata, the namespace corresponding to
+the type must first have been loaded. There is currently no
+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.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>gtype</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ GType to search for
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ #GIBaseInfo representing metadata about @type, or %NULL
+ <emphasis role="annotation">
+[transfer full] </emphasis>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-find-by-name" role="function">
+ <title>g_irepository_find_by_name ()</title>
+ <indexterm zone="g-irepository-find-by-name">
+ <primary>find_by_name</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="GIBaseInfo"><returnvalue>GIBaseInfo</returnvalue></link> * g_irepository_find_by_name (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *name</parameter>);
+ </programlisting>
+ <para>Searches for a particular entry in a namespace. 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.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>namespace_</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Namespace which will be searched
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>name</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Entry name to find
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ #GIBaseInfo representing metadata about @name, or %NULL
+ <emphasis role="annotation">
+[transfer full] </emphasis>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-get-c-prefix" role="function">
+ <title>g_irepository_get_c_prefix ()</title>
+ <indexterm zone="g-irepository-get-c-prefix">
+ <primary>get_c_prefix</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * g_irepository_get_c_prefix (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+ </programlisting>
+ <para>This function returns the "C prefix", or the C level namespace
+associated with the given introspection namespace. Each C symbol
+starts with this prefix, as well each #GType in the library.
+such as #g_irepository_require before calling this function.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>namespace_</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Namespace to inspect
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ C namespace prefix, or %NULL if none associated
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-get-dependencies" role="function">
+ <title>g_irepository_get_dependencies ()</title>
+ <indexterm zone="g-irepository-get-dependencies">
+ <primary>get_dependencies</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * g_irepository_get_dependencies (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+ </programlisting>
+ <para>Return an array of all (transitive) dependencies for namespace
+form &lt;code&gt;namespace-version&lt;/code&gt;.
+such as #g_irepository_require before calling this function.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>namespace_</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Namespace of interest
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Zero-terminated string array of versioned dependencies
+ <emphasis role="annotation">
+[element-type utf8][transfer full] </emphasis>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-get-info" role="function">
+ <title>g_irepository_get_info ()</title>
+ <indexterm zone="g-irepository-get-info">
+ <primary>get_info</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="GIBaseInfo"><returnvalue>GIBaseInfo</returnvalue></link> * g_irepository_get_info (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_, </parameter>
+ <parameter><link linkend="gint"><type>gint</type></link> index</parameter>);
+ </programlisting>
+ <para>This function returns a particular metadata entry in the
+given namespace @namespace_. The namespace must have
+already been loaded before calling this function.
+See g_irepository_get_n_infos() to find the maximum number of
+entries.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>namespace_</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Namespace to inspect
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>index</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ 0-based offset into namespace metadata for entry
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ #GIBaseInfo containing metadata
+ <emphasis role="annotation">
+[transfer full] </emphasis>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-get-loaded-namespaces" role="function">
+ <title>g_irepository_get_loaded_namespaces ()</title>
+ <indexterm zone="g-irepository-get-loaded-namespaces">
+ <primary>get_loaded_namespaces</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * g_irepository_get_loaded_namespaces (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository</parameter>);
+ </programlisting>
+ <para>Return the list of currently loaded namespaces.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ List of namespaces
+ <emphasis role="annotation">
+[element-type utf8][transfer full] </emphasis>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-get-n-infos" role="function">
+ <title>g_irepository_get_n_infos ()</title>
+ <indexterm zone="g-irepository-get-n-infos">
+ <primary>get_n_infos</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gint"><returnvalue>gint</returnvalue></link> g_irepository_get_n_infos (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+ </programlisting>
+ <para>This function returns the number of metadata entries in
+given namespace @namespace_. The namespace must have
+already been loaded before calling this function.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>namespace_</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Namespace to inspect
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ number of metadata entries
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-get-shared-library" role="function">
+ <title>g_irepository_get_shared_library ()</title>
+ <indexterm zone="g-irepository-get-shared-library">
+ <primary>get_shared_library</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * g_irepository_get_shared_library (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+ </programlisting>
+ <para>This function returns the full path to the shared C library
+associated with the given namespace @namespace_. There may be no
+shared library path associated, in which case this function will
+return %NULL.
+such as #g_irepository_require before calling this function.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>namespace_</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Namespace to inspect
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Full path to shared library, or %NULL if none associated
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-get-typelib-path" role="function">
+ <title>g_irepository_get_typelib_path ()</title>
+ <indexterm zone="g-irepository-get-typelib-path">
+ <primary>get_typelib_path</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * g_irepository_get_typelib_path (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+ </programlisting>
+ <para>If namespace @namespace_ is loaded, return the full path to the
+.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;".</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>namespace_</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ GI namespace to use, e.g. "Gtk"
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Filesystem path (or $lt;builtin$gt;) if successful, %NULL if namespace is not loaded
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-get-version" role="function">
+ <title>g_irepository_get_version ()</title>
+ <indexterm zone="g-irepository-get-version">
+ <primary>get_version</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * g_irepository_get_version (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_</parameter>);
+ </programlisting>
+ <para>This function returns the loaded version associated with the given
+namespace @namespace_.
+such as #g_irepository_require before calling this function.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>namespace_</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Namespace to inspect
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Loaded version
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-is-registered" role="function">
+ <title>g_irepository_is_registered ()</title>
+ <indexterm zone="g-irepository-is-registered">
+ <primary>is_registered</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> g_irepository_is_registered (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *version</parameter>);
+ </programlisting>
+ <para>Check whether a particular namespace (and optionally, a specific
+version thereof) is currently loaded. This function is likely to
+only be useful in unusual circumstances; in order to act upon
+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.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>namespace_</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Namespace of interest
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>version</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Required version, may be %NULL for latest
+ <emphasis role="annotation">
+[allow-none] </emphasis>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ %TRUE if namespace-version is loaded, %FALSE otherwise
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-load-typelib" role="function">
+ <title>g_irepository_load_typelib ()</title>
+ <indexterm zone="g-irepository-load-typelib">
+ <primary>load_typelib</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="char"><returnvalue>char</returnvalue></link> * g_irepository_load_typelib (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="GITypelib"><type>GITypelib</type></link> *typelib, </parameter>
+ <parameter><link linkend="GIRepositoryLoadFlags"><type>GIRepositoryLoadFlags</type></link> flags</parameter>);
+ </programlisting>
+ <para/>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>typelib</parameter> </term>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>flags</parameter> </term>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter> </term>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-require" role="function">
+ <title>g_irepository_require ()</title>
+ <indexterm zone="g-irepository-require">
+ <primary>require</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="GITypelib"><returnvalue>GITypelib</returnvalue></link> * g_irepository_require (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *version, </parameter>
+ <parameter><link linkend="GIRepositoryLoadFlags"><type>GIRepositoryLoadFlags</type></link> flags</parameter>);
+ </programlisting>
+ <para>Force the namespace @namespace_ to be loaded if it isn't already.
+If @namespace_ is not loaded, this function will search for a
+".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.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>namespace_</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ GI namespace to use, e.g. "Gtk"
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>version</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Version of namespace, may be %NULL for latest
+ <emphasis role="annotation">
+[allow-none] </emphasis>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>flags</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Set of %GIRepositoryLoadFlags, may be 0
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ a pointer to the #GITypelib if successful, %NULL otherwise
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-irepository-require-private" role="function">
+ <title>g_irepository_require_private ()</title>
+ <indexterm zone="g-irepository-require-private">
+ <primary>require_private</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="GITypelib"><returnvalue>GITypelib</returnvalue></link> * g_irepository_require_private (<parameter><link linkend="GIRepository"><type>GIRepository</type></link> *repository, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *typelib_dir, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *namespace_, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *version, </parameter>
+ <parameter><link linkend="GIRepositoryLoadFlags"><type>GIRepositoryLoadFlags</type></link> flags</parameter>);
+ </programlisting>
+ <para>Force the namespace @namespace_ to be loaded if it isn't already.
+If @namespace_ is not loaded, this function will search for a
+".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.</para>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>repository</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>typelib_dir</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Private directory where to find the requested typelib
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>namespace_</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ GI namespace to use, e.g. "Gtk"
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>version</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Version of namespace, may be %NULL for latest
+ <emphasis role="annotation">
+[allow-none] </emphasis>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>flags</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ Set of %GIRepositoryLoadFlags, may be 0
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ a pointer to the #GITypelib if successful, %NULL otherwise
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_RepositoryClass">
+ <title>RepositoryClass</title>
+ <refsynopsisdiv id="RepositoryClass.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <anchor id="RepositoryClass"/>
+ <synopsis>
+struct <link linkend="RepositoryClass-struct">RepositoryClass</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="girepositoryclass-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIRepositoryClass-struct" role="struct">
+ <title>struct GIRepositoryClass</title>
+ <indexterm zone="GIRepositoryClass-struct">
+ <primary sortas="RepositoryClass">GIRepositoryClass</primary>
+ </indexterm>
+ <programlisting>struct GIRepositoryClass;</programlisting>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_RepositoryPrivate">
+ <title>RepositoryPrivate</title>
+ <refsynopsisdiv id="RepositoryPrivate.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <anchor id="RepositoryPrivate"/>
+ <synopsis>
+struct <link linkend="RepositoryPrivate-struct">RepositoryPrivate</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="girepositoryprivate-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIRepositoryPrivate-struct" role="struct">
+ <title>struct GIRepositoryPrivate</title>
+ <indexterm zone="GIRepositoryPrivate-struct">
+ <primary sortas="RepositoryPrivate">GIRepositoryPrivate</primary>
+ </indexterm>
+ <programlisting>struct GIRepositoryPrivate;</programlisting>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_Typelib">
+ <title>Typelib</title>
+ <refsynopsisdiv id="Typelib.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <anchor id="Typelib"/>
+ <synopsis>
+struct <link linkend="Typelib-struct">Typelib</link>;
+<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="g-typelib-free">g_typelib_free</link> (<parameter><link linkend="GITypelib"><type>GITypelib</type></link> *typelib</parameter>);
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="g-typelib-get-namespace">g_typelib_get_namespace</link> (<parameter><link linkend="GITypelib"><type>GITypelib</type></link> *typelib</parameter>);
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> <link linkend="g-typelib-symbol">g_typelib_symbol</link> (<parameter><link linkend="GITypelib"><type>GITypelib</type></link> *typelib, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *symbol_name, </parameter>
+ <parameter><link linkend="gpointer"><type>gpointer</type></link> *symbol</parameter>);
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="gitypelib-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GITypelib-struct" role="struct">
+ <title>struct GITypelib</title>
+ <indexterm zone="GITypelib-struct">
+ <primary sortas="Typelib">GITypelib</primary>
+ </indexterm>
+ <programlisting>struct GITypelib;</programlisting>
+ </refsect2>
+ <refsect2 id="g-typelib-free" role="function">
+ <title>g_typelib_free ()</title>
+ <indexterm zone="g-typelib-free">
+ <primary>free</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="void"><returnvalue>void</returnvalue></link> g_typelib_free (<parameter><link linkend="GITypelib"><type>GITypelib</type></link> *typelib</parameter>);
+ </programlisting>
+ <para/>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>typelib</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter> </term>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-typelib-get-namespace" role="function">
+ <title>g_typelib_get_namespace ()</title>
+ <indexterm zone="g-typelib-get-namespace">
+ <primary>get_namespace</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gchar"><returnvalue>gchar</returnvalue></link> * g_typelib_get_namespace (<parameter><link linkend="GITypelib"><type>GITypelib</type></link> *typelib</parameter>);
+ </programlisting>
+ <para/>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>typelib</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter> </term>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ <refsect2 id="g-typelib-symbol" role="function">
+ <title>g_typelib_symbol ()</title>
+ <indexterm zone="g-typelib-symbol">
+ <primary>symbol</primary>
+ </indexterm>
+ <programlisting>
+<link linkend="gboolean"><returnvalue>gboolean</returnvalue></link> g_typelib_symbol (<parameter><link linkend="GITypelib"><type>GITypelib</type></link> *typelib, </parameter>
+ <parameter><link linkend="gchar"><type>gchar</type></link> *symbol_name, </parameter>
+ <parameter><link linkend="gpointer"><type>gpointer</type></link> *symbol</parameter>);
+ </programlisting>
+ <para/>
+ <variablelist role="params">
+ <varlistentry>
+ <term>
+<parameter>typelib</parameter>&#xA0;: </term>
+ <listitem>
+ <simpara>
+ instance
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>symbol_name</parameter> </term>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>symbol</parameter> </term>
+ </varlistentry>
+ <varlistentry>
+ <term>
+<parameter>Returns</parameter> </term>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch_UnresolvedInfo">
+ <title>UnresolvedInfo</title>
+ <refsynopsisdiv id="UnresolvedInfo.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <anchor id="UnresolvedInfo"/>
+ <synopsis>
+struct <link linkend="UnresolvedInfo-struct">UnresolvedInfo</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="giunresolvedinfo-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="GIUnresolvedInfo-struct" role="struct">
+ <title>struct GIUnresolvedInfo</title>
+ <indexterm zone="GIUnresolvedInfo-struct">
+ <primary sortas="UnresolvedInfo">GIUnresolvedInfo</primary>
+ </indexterm>
+ <programlisting>struct GIUnresolvedInfo;</programlisting>
+ </refsect2>
+ </refsect1>
+ </chapter>
+ <chapter xml:id="ch__BaseInfoStub">
+ <title>_BaseInfoStub</title>
+ <refsynopsisdiv id="_BaseInfoStub.synopsis" role="synopsis">
+ <title role="synopsis.title">Synopsis</title>
+ <anchor id="_BaseInfoStub"/>
+ <synopsis>
+struct <link linkend="_BaseInfoStub-struct">_BaseInfoStub</link>;
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1 id="_gibaseinfostub-details" role="details">
+ <title role="details.title">Details</title>
+ <refsect2 id="_GIBaseInfoStub-struct" role="struct">
+ <title>struct _GIBaseInfoStub</title>
+ <indexterm zone="_GIBaseInfoStub-struct">
+ <primary sortas="_BaseInfoStub">_GIBaseInfoStub</primary>
+ </indexterm>
+ <programlisting>struct _GIBaseInfoStub;</programlisting>
+ </refsect2>
+ </refsect1>
+ </chapter>
+</book>
diff --git a/tests/doctool/Makefile.am b/tests/doctool/Makefile.am
index 1552930a..46e54beb 100644
--- a/tests/doctool/Makefile.am
+++ b/tests/doctool/Makefile.am
@@ -4,17 +4,23 @@ GIRepository-2.0.gir:
cp ../../GIRepository-2.0.gir .
GIRS = GIRepository-2.0.gir
-CHECKXML = $(GIRS:.gir=.xml.check)
+CHECKXML = $(GIRS:.gir=-C.xml.check) $(GIRS:.gir=-Python.xml.check)
DOCBOOKFILES = $(GIRS:.gir=.xml)
EXPECTEDDOCBOOKFILES = $(DOCBOOKFILES:.xml=-expected.xml)
CLEANFILES = $(DOCBOOK_FILES)
BUILT_SOURCES = $(DOCBOOK_FILES)
EXTRA_DIST = $(EXPECTEDDOCBOOKFILES)
-%.xml: %.gir
- $(INTROSPECTION_DOCTOOL) $*.gir -o $*.xml && echo " GEN $*.xml"
+%-C.xml: %.gir
+ $(INTROSPECTION_DOCTOOL) --language C $*.gir -o $*-C.xml && echo " GEN $*-C.xml"
-%.xml.check: %.xml
- @diff -u -U 10 $(srcdir)/$*-expected.xml $*.xml && echo " TEST $*.xml"
+%-Python.xml: %.gir
+ $(INTROSPECTION_DOCTOOL) --language Python $*.gir -o $*-Python.xml && echo " GEN $*-Python.xml"
-check-local: $(CHECKXML) $(TYPELIBS)
+%-C.xml.check: %-C.xml
+ @diff -u -U 10 $(srcdir)/$*-C-expected.xml $*-C.xml && echo " TEST $*-C.xml"
+
+%-Python.xml.check: %-Python.xml
+ @diff -u -U 10 $(srcdir)/$*-Python-expected.xml $*-Python.xml && echo " TEST $*-Python.xml"
+
+check-local: $(CHECKXML)