diff options
author | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2011-08-14 11:10:14 +0200 |
---|---|---|
committer | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2011-08-14 11:12:28 +0200 |
commit | 21a8a702c46968d40cfc99a5b57f9801568eda21 (patch) | |
tree | 2b13e68d7069594097ab54c10bb468ab8e876ab7 | |
parent | 736924a8ed80b6d8ef14f342abf3440a8e9c9541 (diff) | |
download | gobject-introspection-21a8a702c46968d40cfc99a5b57f9801568eda21.tar.gz |
g-ir-doc-tool: Add -expected test for Python docbook
-rw-r--r-- | giscanner/docbookwriter.py | 107 | ||||
-rw-r--r-- | giscanner/docmain.py | 15 | ||||
-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.xml | 1781 | ||||
-rw-r--r-- | tests/doctool/Makefile.am | 18 |
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(' :') + self.writer.write_line(' :') 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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>info2</parameter> : </term> + <listitem> + <simpara> + a #GIBaseInfo + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>name</parameter> : </term> + <listitem> + <simpara> + a freeform string naming an attribute + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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. +<example> +<title>Iterating over attributes</title> +<programlisting> +void +print_attributes (GIBaseInfo *info) +{ +GIAttributeIter iter = { 0, }; +char *name; +char *value; +while (g_base_info_iterate_attributes (info, &iter, &name, &value)) +{ +} +} +</programlisting> +</example></para> + <variablelist role="params"> + <varlistentry> + <term> +<parameter>baseinfo</parameter> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>iterator</parameter> : </term> + <listitem> + <simpara> + a #GIAttributeIter structure, must be initialized; see below + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>name</parameter> : </term> + <listitem> + <simpara> + Returned name, must not be freed + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>value</parameter> : </term> + <listitem> + <simpara> + Returned name, must not be freed + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>namespace_</parameter> : </term> + <listitem> + <simpara> + GI namespace, e.g. "Gtk" + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>gtype</parameter> : </term> + <listitem> + <simpara> + GType to search for + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>namespace_</parameter> : </term> + <listitem> + <simpara> + Namespace which will be searched + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>name</parameter> : </term> + <listitem> + <simpara> + Entry name to find + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>namespace_</parameter> : </term> + <listitem> + <simpara> + Namespace to inspect + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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 <code>namespace-version</code>. +such as #g_irepository_require before calling this function.</para> + <variablelist role="params"> + <varlistentry> + <term> +<parameter>repository</parameter> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>namespace_</parameter> : </term> + <listitem> + <simpara> + Namespace of interest + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>namespace_</parameter> : </term> + <listitem> + <simpara> + Namespace to inspect + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>index</parameter> : </term> + <listitem> + <simpara> + 0-based offset into namespace metadata for entry + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>namespace_</parameter> : </term> + <listitem> + <simpara> + Namespace to inspect + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>namespace_</parameter> : </term> + <listitem> + <simpara> + Namespace to inspect + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>namespace_</parameter> : </term> + <listitem> + <simpara> + GI namespace to use, e.g. "Gtk" + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>namespace_</parameter> : </term> + <listitem> + <simpara> + Namespace to inspect + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>namespace_</parameter> : </term> + <listitem> + <simpara> + Namespace of interest + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>version</parameter> : </term> + <listitem> + <simpara> + Required version, may be %NULL for latest + <emphasis role="annotation"> +[allow-none] </emphasis> + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>namespace_</parameter> : </term> + <listitem> + <simpara> + GI namespace to use, e.g. "Gtk" + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>version</parameter> : </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> : </term> + <listitem> + <simpara> + Set of %GIRepositoryLoadFlags, may be 0 + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </term> + <listitem> + <simpara> + instance + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>typelib_dir</parameter> : </term> + <listitem> + <simpara> + Private directory where to find the requested typelib + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>namespace_</parameter> : </term> + <listitem> + <simpara> + GI namespace to use, e.g. "Gtk" + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>version</parameter> : </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> : </term> + <listitem> + <simpara> + Set of %GIRepositoryLoadFlags, may be 0 + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term> +<parameter>Returns</parameter> : </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> : </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> : </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> : </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) |