<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:doc="http://www.gtk.org/introspection/doc/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="libxml2" version="2.0"/>
  <c:include name="gsf/gsf.h"/>
  <doc:format name="unknown"/>
  <namespace name="Gsf"
             version="1"
             shared-library="libgsf-1.so.114"
             c:identifier-prefixes="Gsf"
             c:symbol-prefixes="gsf">
    <alias name="gsf_off_t" c:type="gsf_off_t">
      <doc xml:space="preserve"
           filename="gsf-fwd.h"
           line="84">Data type to represent offsets (positions) within a data stream.

FIXME:
gsf_off_t is really supposed to be the widest type off_t can be configured
to on the platform</doc>
      <source-position filename="gsf-fwd.h" line="93"/>
      <type name="gint64" c:type="gint64"/>
    </alias>
    <function-macro name="BLOB" c:identifier="GSF_BLOB" introspectable="0">
      <source-position filename="gsf-blob.h" line="9"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BLOB_CLASS"
                    c:identifier="GSF_BLOB_CLASS"
                    introspectable="0">
      <source-position filename="gsf-blob.h" line="10"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BLOB_GET_CLASS"
                    c:identifier="GSF_BLOB_GET_CLASS"
                    introspectable="0">
      <source-position filename="gsf-blob.h" line="13"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Blob"
           c:symbol-prefix="blob"
           c:type="GsfBlob"
           parent="GObject.Object"
           glib:type-name="GsfBlob"
           glib:get-type="gsf_blob_get_type"
           glib:type-struct="BlobClass">
      <source-position filename="gsf-blob.h" line="18"/>
      <constructor name="new" c:identifier="gsf_blob_new" throws="1">
        <doc xml:space="preserve"
             filename="gsf-blob.c"
             line="77">Creates a new #GsfBlob object to hold the specified data.  The blob can then
be used as a facility for reference-counting for the data.  The data is
copied internally, so the blob does not hold references to external chunks
of memory.</doc>
        <source-position filename="gsf-blob.h" line="29"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-blob.c"
               line="89">A newly-created #GsfBlob, or
%NULL if the data could not be copied.

Error domain: #GSF_ERROR

Possible errors: #GSF_ERROR_OUT_OF_MEMORY if the @data_to_copy could not be copied.</doc>
          <type name="Blob" c:type="GsfBlob*"/>
        </return-value>
        <parameters>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-blob.c"
                 line="79">Size of the data in bytes.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
          <parameter name="data_to_copy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-blob.c"
                 line="80">
Data which will be copied into the blob, or %NULL if @size is zero.</doc>
            <array length="0" zero-terminated="0" c:type="gconstpointer">
              <type name="guint8"/>
            </array>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_size" c:identifier="gsf_blob_get_size">
        <doc xml:space="preserve"
             filename="gsf-blob.c"
             line="135">Queries the size in bytes of the data stored in the blob.</doc>
        <source-position filename="gsf-blob.h" line="33"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-blob.c"
               line="141">Size in bytes, or 0 if the data is %NULL.</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="blob" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-blob.c"
                 line="137">A #GsfBlob.</doc>
            <type name="Blob" c:type="const GsfBlob*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="peek_data" c:identifier="gsf_blob_peek_data">
        <doc xml:space="preserve"
             filename="gsf-blob.c"
             line="154">Queries a pointer to the data stored in the blob.  This does not
copy the data for you; it returns a pointer to the actual buffer
which the blob uses internally, so you should not free this buffer
on your own.</doc>
        <source-position filename="gsf-blob.h" line="35"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-blob.c"
               line="163">Pointer to the data stored in the
blob, or %NULL if the size of the data is zero.</doc>
          <type name="gpointer" c:type="gconstpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="blob" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-blob.c"
                 line="156">A #GsfBlob.</doc>
            <type name="Blob" c:type="const GsfBlob*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="BlobPrivate" c:type="GsfBlobPrivate*"/>
      </field>
    </class>
    <record name="BlobClass"
            c:type="GsfBlobClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Blob">
      <source-position filename="gsf-blob.h" line="18"/>
    </record>
    <record name="BlobPrivate"
            c:type="GsfBlobPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gsf-blob.h" line="19"/>
    </record>
    <function-macro name="CLIP_DATA"
                    c:identifier="GSF_CLIP_DATA"
                    introspectable="0">
      <source-position filename="gsf-clip-data.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CLIP_DATA_CLASS"
                    c:identifier="GSF_CLIP_DATA_CLASS"
                    introspectable="0">
      <source-position filename="gsf-clip-data.h" line="37"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CLIP_DATA_GET_CLASS"
                    c:identifier="GSF_CLIP_DATA_GET_CLASS"
                    introspectable="0">
      <source-position filename="gsf-clip-data.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="ClipData"
           c:symbol-prefix="clip_data"
           c:type="GsfClipData"
           parent="GObject.Object"
           glib:type-name="GsfClipData"
           glib:get-type="gsf_clip_data_get_type"
           glib:type-struct="ClipDataClass">
      <source-position filename="gsf-clip-data.h" line="43"/>
      <constructor name="new" c:identifier="gsf_clip_data_new">
        <doc xml:space="preserve"
             filename="gsf-clip-data.c"
             line="86">Creates a new #GsfClipData object.  This function acquires a reference to the
@data_blob, so you should unref the blob on your own if you no longer need it
directly.</doc>
        <source-position filename="gsf-clip-data.h" line="55"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-clip-data.c"
               line="95">A newly-created #GsfClipData.</doc>
          <type name="ClipData" c:type="GsfClipData*"/>
        </return-value>
        <parameters>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-clip-data.c"
                 line="88">Format for the data inside the @data_blob</doc>
            <type name="ClipFormat" c:type="GsfClipFormat"/>
          </parameter>
          <parameter name="data_blob" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-clip-data.c"
                 line="89">Object which holds the binary contents for the #GsfClipData</doc>
            <type name="Blob" c:type="GsfBlob*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_data_blob" c:identifier="gsf_clip_data_get_data_blob">
        <doc xml:space="preserve"
             filename="gsf-clip-data.c"
             line="135">Queries the data blob that actually stores a #GsfClipData's binary data.</doc>
        <source-position filename="gsf-clip-data.h" line="60"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-clip-data.c"
               line="141">A new reference to the #GsfBlob that stores this @clip_data's
binary data.  You must use g_object_unref() to dispose of that data blob when
you are done with it.</doc>
          <type name="Blob" c:type="GsfBlob*"/>
        </return-value>
        <parameters>
          <instance-parameter name="clip_data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-clip-data.c"
                 line="137">A #GsfClipData.</doc>
            <type name="ClipData" c:type="GsfClipData*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_format" c:identifier="gsf_clip_data_get_format">
        <doc xml:space="preserve"
             filename="gsf-clip-data.c"
             line="115">Queries the clipboard data format of a #GsfClipData.  The format refers to the data
blob inside the @clip_data; use gsf_clip_data_get_data_blob() to get that data blob.</doc>
        <source-position filename="gsf-clip-data.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-clip-data.c"
               line="122">The format in which the #GsfClipData's data blob is stored.</doc>
          <type name="ClipFormat" c:type="GsfClipFormat"/>
        </return-value>
        <parameters>
          <instance-parameter name="clip_data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-clip-data.c"
                 line="117">A #GsfClipData.</doc>
            <type name="ClipData" c:type="GsfClipData*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_windows_clipboard_format"
              c:identifier="gsf_clip_data_get_windows_clipboard_format"
              throws="1">
        <doc xml:space="preserve"
             filename="gsf-clip-data.c"
             line="225">Queries the Windows clipboard data format for a #GsfClipData.  The @clip_data must
have been created with #GSF_CLIP_FORMAT_WINDOWS_CLIPBOARD.</doc>
        <source-position filename="gsf-clip-data.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-clip-data.c"
               line="233">A #GsfClipFormatWindows value.

Possible errors: #GSF_ERROR_INVALID_DATA if the data blob in the @clip_data is
smaller than it should be; in this case GSF_CLIP_FORMAT_WINDOWS_ERROR will be returned.</doc>
          <type name="ClipFormatWindows" c:type="GsfClipFormatWindows"/>
        </return-value>
        <parameters>
          <instance-parameter name="clip_data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-clip-data.c"
                 line="227">A #GsfClipData.</doc>
            <type name="ClipData" c:type="GsfClipData*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="peek_real_data"
              c:identifier="gsf_clip_data_peek_real_data"
              throws="1">
        <doc xml:space="preserve"
             filename="gsf-clip-data.c"
             line="293">Queries a pointer directly to the clipboard data of a #GsfClipData.  The
resulting pointer is not necessarily the same data pointer that was passed to
gsf_blob_new() prior to creating the @clip_data.  For example, if the data is
in #GSF_CLIP_FORMAT_WINDOWS_CLIPBOARD format, then it will have extra header
bytes in front of the actual metafile data.  This function will skip over
those header bytes if necessary and return a pointer to the "real" data.</doc>
        <source-position filename="gsf-clip-data.h" line="65"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-clip-data.c"
               line="306">Pointer to the real clipboard data.  The size in bytes of this
buffer is returned in the @ret_size argument.</doc>
          <type name="gpointer" c:type="gconstpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="clip_data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-clip-data.c"
                 line="295">A #GsfClipData.</doc>
            <type name="ClipData" c:type="GsfClipData*"/>
          </instance-parameter>
          <parameter name="ret_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-clip-data.c"
                 line="296">Location to return the size of the returned data buffer.</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ClipDataPrivate" c:type="GsfClipDataPrivate*"/>
      </field>
    </class>
    <record name="ClipDataClass"
            c:type="GsfClipDataClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="ClipData">
      <source-position filename="gsf-clip-data.h" line="43"/>
    </record>
    <record name="ClipDataPrivate"
            c:type="GsfClipDataPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gsf-clip-data.h" line="44"/>
    </record>
    <enumeration name="ClipFormat" c:type="GsfClipFormat">
      <source-position filename="gsf-clip-data.h" line="25"/>
      <member name="windows_clipboard"
              value="-1"
              c:identifier="GSF_CLIP_FORMAT_WINDOWS_CLIPBOARD">
        <doc xml:space="preserve"
             filename="gsf-clip-data.h"
             line="10">Windows clipboard format</doc>
      </member>
      <member name="macintosh_clipboard"
              value="-2"
              c:identifier="GSF_CLIP_FORMAT_MACINTOSH_CLIPBOARD">
        <doc xml:space="preserve"
             filename="gsf-clip-data.h"
             line="11">Macintosh clipboard format</doc>
      </member>
      <member name="guid" value="-3" c:identifier="GSF_CLIP_FORMAT_GUID">
        <doc xml:space="preserve"
             filename="gsf-clip-data.h"
             line="12">GUID that contains a format identifier</doc>
      </member>
      <member name="no_data" value="0" c:identifier="GSF_CLIP_FORMAT_NO_DATA">
        <doc xml:space="preserve"
             filename="gsf-clip-data.h"
             line="13">No clipboard data</doc>
      </member>
      <member name="clipboard_format_name"
              value="1"
              c:identifier="GSF_CLIP_FORMAT_CLIPBOARD_FORMAT_NAME">
        <doc xml:space="preserve"
             filename="gsf-clip-data.h"
             line="14">Custom clipboard format</doc>
      </member>
      <member name="unknown" value="2" c:identifier="GSF_CLIP_FORMAT_UNKNOWN">
        <doc xml:space="preserve"
             filename="gsf-clip-data.h"
             line="15">Unknown clipboard type or invalid data</doc>
      </member>
    </enumeration>
    <enumeration name="ClipFormatWindows" c:type="GsfClipFormatWindows">
      <source-position filename="gsf-clip-data.h" line="33"/>
      <member name="error"
              value="-1"
              c:identifier="GSF_CLIP_FORMAT_WINDOWS_ERROR">
        <doc xml:space="preserve"
             filename="gsf-clip-data.c"
             line="30">error</doc>
      </member>
      <member name="unknown"
              value="-2"
              c:identifier="GSF_CLIP_FORMAT_WINDOWS_UNKNOWN">
        <doc xml:space="preserve"
             filename="gsf-clip-data.c"
             line="31">unknown</doc>
      </member>
      <member name="metafile"
              value="3"
              c:identifier="GSF_CLIP_FORMAT_WINDOWS_METAFILE">
        <doc xml:space="preserve"
             filename="gsf-clip-data.c"
             line="32">CF_METAFILEPICT</doc>
      </member>
      <member name="dib" value="8" c:identifier="GSF_CLIP_FORMAT_WINDOWS_DIB">
        <doc xml:space="preserve"
             filename="gsf-clip-data.c"
             line="33">CF_DIB</doc>
      </member>
      <member name="enhanced_metafile"
              value="14"
              c:identifier="GSF_CLIP_FORMAT_WINDOWS_ENHANCED_METAFILE">
        <doc xml:space="preserve"
             filename="gsf-clip-data.c"
             line="34">CF_ENHMETAFILE</doc>
      </member>
    </enumeration>
    <function-macro name="DOCPROP_VECTOR"
                    c:identifier="GSF_DOCPROP_VECTOR"
                    introspectable="0">
      <source-position filename="gsf-docprop-vector.h" line="30"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DOC_META_DATA"
                    c:identifier="GSF_DOC_META_DATA"
                    introspectable="0">
      <source-position filename="gsf-doc-meta-data.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <class name="DocMetaData"
           c:symbol-prefix="doc_meta_data"
           c:type="GsfDocMetaData"
           parent="GObject.Object"
           glib:type-name="GsfDocMetaData"
           glib:get-type="gsf_doc_meta_data_get_type">
      <doc xml:space="preserve"
           filename="gsf-fwd.h"
           line="65">Class representing information about a document, such as creator and time of
last modification.</doc>
      <constructor name="new" c:identifier="gsf_doc_meta_data_new">
        <source-position filename="gsf-doc-meta-data.h" line="37"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-doc-meta-data.c"
               line="76">a new metadata property collection</doc>
          <type name="DocMetaData" c:type="GsfDocMetaData*"/>
        </return-value>
      </constructor>
      <method name="foreach" c:identifier="gsf_doc_meta_data_foreach">
        <doc xml:space="preserve"
             filename="gsf-doc-meta-data.c"
             line="187">Iterate through each (key, value) pair in this collection</doc>
        <source-position filename="gsf-doc-meta-data.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="meta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="189">the collection</doc>
            <type name="DocMetaData" c:type="const GsfDocMetaData*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="190">the function called once for each element in the collection</doc>
            <type name="GLib.HFunc" c:type="GHFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="191">any supplied user data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="gsf_doc_meta_data_insert">
        <doc xml:space="preserve"
             filename="gsf-doc-meta-data.c"
             line="100">Take ownership of @name and @value and insert a property into @meta.
If a property exists with @name, it is replaced (The link is lost)</doc>
        <source-position filename="gsf-doc-meta-data.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="meta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="102">#GsfDocMetaData</doc>
            <type name="DocMetaData" c:type="GsfDocMetaData*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="103">the id.</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="104">#GValue</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup" c:identifier="gsf_doc_meta_data_lookup">
        <source-position filename="gsf-doc-meta-data.h" line="38"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-doc-meta-data.c"
               line="89">the property with @name in @meta.  The caller can
modify the property value and link but not the name.</doc>
          <type name="DocProp" c:type="GsfDocProp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="meta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="86">#GsfDocMetaData</doc>
            <type name="DocMetaData" c:type="const GsfDocMetaData*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="odf_subtree"
              c:identifier="gsf_doc_meta_data_odf_subtree"
              version="1.14.24">
        <doc xml:space="preserve"
             filename="gsf-opendoc-utils.c"
             line="444">Extend @xin so that it can parse a subtree in OpenDoc metadata format</doc>
        <source-position filename="gsf-opendoc-utils.h" line="139"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="md" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-opendoc-utils.c"
                 line="446">#GsfDocMetaData</doc>
            <type name="DocMetaData" c:type="GsfDocMetaData*"/>
          </instance-parameter>
          <parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-opendoc-utils.c"
                 line="447">#GsfXMLInDoc</doc>
            <type name="XMLIn" c:type="GsfXMLIn*"/>
          </parameter>
        </parameters>
      </method>
      <method name="read_from_msole"
              c:identifier="gsf_doc_meta_data_read_from_msole"
              version="1.14.24">
        <doc xml:space="preserve"
             filename="gsf-msole-utils.c"
             line="1162">Read a stream formated as a set of MS OLE properties from @in and store the
results in @accum.</doc>
        <source-position filename="gsf-msole-utils.h" line="29"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="1172">A #GError if there was an error.</doc>
          <type name="GLib.Error" c:type="GError*"/>
        </return-value>
        <parameters>
          <instance-parameter name="accum" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-msole-utils.c"
                 line="1164">#GsfDocMetaData</doc>
            <type name="DocMetaData" c:type="GsfDocMetaData*"/>
          </instance-parameter>
          <parameter name="in" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-msole-utils.c"
                 line="1165">#GsfInput</doc>
            <type name="Input" c:type="GsfInput*"/>
          </parameter>
        </parameters>
      </method>
      <method name="read_from_odf"
              c:identifier="gsf_doc_meta_data_read_from_odf"
              version="1.14.24">
        <doc xml:space="preserve"
             filename="gsf-opendoc-utils.c"
             line="507">Read an OpenDocument metadata stream from @input and store the properties
into @md.  Overwrite any existing properties with the same id.</doc>
        <source-position filename="gsf-opendoc-utils.h" line="138"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-opendoc-utils.c"
               line="517">(out) (optional) (nullable): place to store a #GError if anything goes wrong if there is a problem.</doc>
          <type name="GLib.Error" c:type="GError*"/>
        </return-value>
        <parameters>
          <instance-parameter name="md" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-opendoc-utils.c"
                 line="509">#GsfDocMetaData</doc>
            <type name="DocMetaData" c:type="GsfDocMetaData*"/>
          </instance-parameter>
          <parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-opendoc-utils.c"
                 line="510">#GsfInput</doc>
            <type name="Input" c:type="GsfInput*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="gsf_doc_meta_data_remove">
        <doc xml:space="preserve"
             filename="gsf-doc-meta-data.c"
             line="124">If @name does not exist in the collection, do nothing. If @name does exist,
remove it and its value from the collection</doc>
        <source-position filename="gsf-doc-meta-data.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="meta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="126">the collection</doc>
            <type name="DocMetaData" c:type="GsfDocMetaData*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="127">the non-null string name of the property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="size" c:identifier="gsf_doc_meta_data_size">
        <source-position filename="gsf-doc-meta-data.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-doc-meta-data.c"
               line="228">the number of items in this collection</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="meta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="226">the collection</doc>
            <type name="DocMetaData" c:type="const GsfDocMetaData*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="steal" c:identifier="gsf_doc_meta_data_steal">
        <source-position filename="gsf-doc-meta-data.h" line="44"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-doc-meta-data.c"
               line="145">the property with @name in @meta.</doc>
          <type name="DocProp" c:type="GsfDocProp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="meta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="142">#GsfDocMetaData</doc>
            <type name="DocMetaData" c:type="GsfDocMetaData*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="store" c:identifier="gsf_doc_meta_data_store">
        <source-position filename="gsf-doc-meta-data.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="meta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="161">#GsfDocMetaData</doc>
            <type name="DocMetaData" c:type="GsfDocMetaData*"/>
          </instance-parameter>
          <parameter name="prop" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="162">#GsfDocProp</doc>
            <type name="DocProp" c:type="GsfDocProp*"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_to_msole"
              c:identifier="gsf_doc_meta_data_write_to_msole"
              version="1.14.24">
        <source-position filename="gsf-msole-utils.h" line="31"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="1866">%TRUE on success;</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="meta_data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-msole-utils.c"
                 line="1861">#GsfDocMetaData</doc>
            <type name="DocMetaData" c:type="const GsfDocMetaData*"/>
          </instance-parameter>
          <parameter name="out" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-msole-utils.c"
                 line="1860">#GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </parameter>
          <parameter name="doc_not_component" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-msole-utils.c"
                 line="1862">a kludge to differentiate DocumentSummary from Summary</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_to_odf"
              c:identifier="gsf_doc_meta_data_write_to_odf"
              version="1.14.24">
        <source-position filename="gsf-opendoc-utils.h" line="140"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-opendoc-utils.c"
               line="769">%TRUE if no error occured.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="md" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-opendoc-utils.c"
                 line="764">#GsfDocMetaData</doc>
            <type name="DocMetaData" c:type="const GsfDocMetaData*"/>
          </instance-parameter>
          <parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-opendoc-utils.c"
                 line="765">a pointer to a #GsfOutput.</doc>
            <type name="XMLOut" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="DocProp"
            c:type="GsfDocProp"
            opaque="1"
            glib:type-name="GsfDocProp"
            glib:get-type="gsf_doc_prop_get_type"
            c:symbol-prefix="doc_prop">
      <doc xml:space="preserve"
           filename="gsf-fwd.h"
           line="58">Class representing a properties of a document.</doc>
      <source-position filename="gsf-fwd.h" line="63"/>
      <constructor name="new" c:identifier="gsf_doc_prop_new">
        <source-position filename="gsf-doc-meta-data.h" line="54"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-doc-meta-data.c"
               line="269">a new #GsfDocProp.</doc>
          <type name="DocProp" c:type="GsfDocProp*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="267">The name of the property.</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="dump" c:identifier="gsf_doc_prop_dump">
        <doc xml:space="preserve"
             filename="gsf-doc-meta-data.c"
             line="430">A debugging utility to dump @prop as text via g_print
New in 1.14.2</doc>
        <source-position filename="gsf-doc-meta-data.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="prop" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="432">#GsfDocProp</doc>
            <type name="DocProp" c:type="const GsfDocProp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gsf_doc_prop_free">
        <doc xml:space="preserve"
             filename="gsf-doc-meta-data.c"
             line="287">Release the given property.</doc>
        <source-position filename="gsf-doc-meta-data.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="prop"
                              transfer-ownership="full"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="289">#GsfDocProp</doc>
            <type name="DocProp" c:type="GsfDocProp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_link" c:identifier="gsf_doc_prop_get_link">
        <source-position filename="gsf-doc-meta-data.h" line="60"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-doc-meta-data.c"
               line="403">the current link descriptor of @prop.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prop" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="401">#GsfDocProp</doc>
            <type name="DocProp" c:type="const GsfDocProp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gsf_doc_prop_get_name">
        <source-position filename="gsf-doc-meta-data.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-doc-meta-data.c"
               line="337">the name of the property</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prop" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="335">#GsfDocProp</doc>
            <type name="DocProp" c:type="const GsfDocProp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_val" c:identifier="gsf_doc_prop_get_val">
        <source-position filename="gsf-doc-meta-data.h" line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-doc-meta-data.c"
               line="350">the value of the property, the caller should not modify the result.</doc>
          <type name="GObject.Value" c:type="const GValue*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prop" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="348">the property</doc>
            <type name="DocProp" c:type="const GsfDocProp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_link" c:identifier="gsf_doc_prop_set_link">
        <doc xml:space="preserve"
             filename="gsf-doc-meta-data.c"
             line="412">Sets @prop's link to @link</doc>
        <source-position filename="gsf-doc-meta-data.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="prop" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="414">#GsfDocProp</doc>
            <type name="DocProp" c:type="GsfDocProp*"/>
          </instance-parameter>
          <parameter name="link"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="415">a link.</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_val" c:identifier="gsf_doc_prop_set_val">
        <doc xml:space="preserve"
             filename="gsf-doc-meta-data.c"
             line="359">Assigns @val to @prop, and unsets and frees the current value.</doc>
        <source-position filename="gsf-doc-meta-data.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="prop" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="361">#GsfDocProp</doc>
            <type name="DocProp" c:type="GsfDocProp*"/>
          </instance-parameter>
          <parameter name="val" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="362">#GValue</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="swap_val" c:identifier="gsf_doc_prop_swap_val">
        <source-position filename="gsf-doc-meta-data.h" line="59"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-doc-meta-data.c"
               line="385">the current value of @prop, and replaces
	it with @val.</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prop" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="382">#GsfDocProp</doc>
            <type name="DocProp" c:type="GsfDocProp*"/>
          </instance-parameter>
          <parameter name="val" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gsf-doc-meta-data.c"
                 line="383">#GValue</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <class name="DocPropVector"
           c:symbol-prefix="docprop_vector"
           c:type="GsfDocPropVector"
           parent="GObject.Object"
           glib:type-name="GsfDocPropVector"
           glib:get-type="gsf_docprop_vector_get_type">
      <constructor name="new" c:identifier="gsf_docprop_vector_new">
        <doc xml:space="preserve"
             filename="gsf-docprop-vector.c"
             line="179">This function creates a new gsf_docprop_vector object.</doc>
        <source-position filename="gsf-docprop-vector.h" line="37"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-docprop-vector.c"
               line="184">GsfDocPropVector*</doc>
          <type name="DocPropVector" c:type="GsfDocPropVector*"/>
        </return-value>
      </constructor>
      <method name="append" c:identifier="gsf_docprop_vector_append">
        <doc xml:space="preserve"
             filename="gsf-docprop-vector.c"
             line="83">Insert a copy of @value as the last element of @vector.</doc>
        <source-position filename="gsf-docprop-vector.h" line="38"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="vector" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-docprop-vector.c"
                 line="85">The vector to which the GValue will be added</doc>
            <type name="DocPropVector" c:type="GsfDocPropVector*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-docprop-vector.c"
                 line="86">The GValue to add to @vector</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="as_string" c:identifier="gsf_docprop_vector_as_string">
        <doc xml:space="preserve"
             filename="gsf-docprop-vector.c"
             line="109">This function returns a string which represents all the GValues in @vector.
The caller is responsible for freeing the result.</doc>
        <source-position filename="gsf-docprop-vector.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-docprop-vector.c"
               line="116">a string of comma-separated values</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="vector" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-docprop-vector.c"
                 line="111">The #GsfDocPropVector from which GValues will be extracted.</doc>
            <type name="DocPropVector" c:type="const GsfDocPropVector*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <enumeration name="Error"
                 c:type="GsfError"
                 glib:error-domain="gsf-error-quark">
      <source-position filename="gsf-utils.h" line="339"/>
      <member name="out_of_memory"
              value="0"
              c:identifier="GSF_ERROR_OUT_OF_MEMORY">
        <doc xml:space="preserve"
             filename="gsf-utils.h"
             line="332">Memory allocation failed</doc>
      </member>
      <member name="invalid_data"
              value="1"
              c:identifier="GSF_ERROR_INVALID_DATA">
        <doc xml:space="preserve"
             filename="gsf-utils.h"
             line="333">Invalid data encountered (e.g. not enough data)</doc>
      </member>
    </enumeration>
    <function-macro name="INFILE" c:identifier="GSF_INFILE" introspectable="0">
      <source-position filename="gsf-infile.h" line="30"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INFILE_CLASS"
                    c:identifier="GSF_INFILE_CLASS"
                    introspectable="0">
      <source-position filename="gsf-infile-impl.h" line="45"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INFILE_MSOLE"
                    c:identifier="GSF_INFILE_MSOLE"
                    introspectable="0">
      <source-position filename="gsf-infile-msole.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INFILE_MSVBA"
                    c:identifier="GSF_INFILE_MSVBA"
                    introspectable="0">
      <source-position filename="gsf-infile-msvba.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INFILE_STDIO"
                    c:identifier="GSF_INFILE_STDIO"
                    introspectable="0">
      <source-position filename="gsf-infile-stdio.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INFILE_TAR"
                    c:identifier="GSF_INFILE_TAR"
                    introspectable="0">
      <source-position filename="gsf-infile-tar.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INFILE_ZIP"
                    c:identifier="GSF_INFILE_ZIP"
                    introspectable="0">
      <source-position filename="gsf-infile-zip.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INPUT" c:identifier="GSF_INPUT" introspectable="0">
      <source-position filename="gsf-input.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INPUT_CLASS"
                    c:identifier="GSF_INPUT_CLASS"
                    introspectable="0">
      <source-position filename="gsf-input-impl.h" line="57"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INPUT_GIO"
                    c:identifier="GSF_INPUT_GIO"
                    introspectable="0">
      <source-position filename="gsf-input-gio.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INPUT_GZIP"
                    c:identifier="GSF_INPUT_GZIP"
                    introspectable="0">
      <source-position filename="gsf-input-gzip.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INPUT_HTTP"
                    c:identifier="GSF_INPUT_HTTP"
                    introspectable="0">
      <source-position filename="gsf-input-http.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INPUT_MEMORY"
                    c:identifier="GSF_INPUT_MEMORY"
                    introspectable="0">
      <source-position filename="gsf-input-memory.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INPUT_PROXY"
                    c:identifier="GSF_INPUT_PROXY"
                    introspectable="0">
      <source-position filename="gsf-input-proxy.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INPUT_STDIO"
                    c:identifier="GSF_INPUT_STDIO"
                    introspectable="0">
      <source-position filename="gsf-input-stdio.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INPUT_TEXTLINE"
                    c:identifier="GSF_INPUT_TEXTLINE"
                    introspectable="0">
      <source-position filename="gsf-input-textline.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_BLOB"
                    c:identifier="GSF_IS_BLOB"
                    introspectable="0">
      <source-position filename="gsf-blob.h" line="11"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_BLOB_CLASS"
                    c:identifier="GSF_IS_BLOB_CLASS"
                    introspectable="0">
      <source-position filename="gsf-blob.h" line="12"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CLIP_DATA"
                    c:identifier="GSF_IS_CLIP_DATA"
                    introspectable="0">
      <source-position filename="gsf-clip-data.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CLIP_DATA_CLASS"
                    c:identifier="GSF_IS_CLIP_DATA_CLASS"
                    introspectable="0">
      <source-position filename="gsf-clip-data.h" line="39"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_GSF_DOCPROP_VECTOR"
                    c:identifier="IS_GSF_DOCPROP_VECTOR"
                    introspectable="0">
      <source-position filename="gsf-docprop-vector.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_GSF_DOC_META_DATA"
                    c:identifier="IS_GSF_DOC_META_DATA"
                    introspectable="0">
      <source-position filename="gsf-doc-meta-data.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INFILE"
                    c:identifier="GSF_IS_INFILE"
                    introspectable="0">
      <source-position filename="gsf-infile.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INFILE_CLASS"
                    c:identifier="GSF_IS_INFILE_CLASS"
                    introspectable="0">
      <source-position filename="gsf-infile-impl.h" line="46"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INFILE_MSOLE"
                    c:identifier="GSF_IS_INFILE_MSOLE"
                    introspectable="0">
      <source-position filename="gsf-infile-msole.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INFILE_MSVBA"
                    c:identifier="GSF_IS_INFILE_MSVBA"
                    introspectable="0">
      <source-position filename="gsf-infile-msvba.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INFILE_STDIO"
                    c:identifier="GSF_IS_INFILE_STDIO"
                    introspectable="0">
      <source-position filename="gsf-infile-stdio.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INFILE_TAR"
                    c:identifier="GSF_IS_INFILE_TAR"
                    introspectable="0">
      <source-position filename="gsf-infile-tar.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INFILE_ZIP"
                    c:identifier="GSF_IS_INFILE_ZIP"
                    introspectable="0">
      <source-position filename="gsf-infile-zip.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INPUT"
                    c:identifier="GSF_IS_INPUT"
                    introspectable="0">
      <source-position filename="gsf-input.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INPUT_CLASS"
                    c:identifier="GSF_IS_INPUT_CLASS"
                    introspectable="0">
      <source-position filename="gsf-input-impl.h" line="58"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INPUT_GIO"
                    c:identifier="GSF_IS_INPUT_GIO"
                    introspectable="0">
      <source-position filename="gsf-input-gio.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INPUT_GZIP"
                    c:identifier="GSF_IS_INPUT_GZIP"
                    introspectable="0">
      <source-position filename="gsf-input-gzip.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INPUT_HTTP"
                    c:identifier="GSF_IS_INPUT_HTTP"
                    introspectable="0">
      <source-position filename="gsf-input-http.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INPUT_MEMORY"
                    c:identifier="GSF_IS_INPUT_MEMORY"
                    introspectable="0">
      <source-position filename="gsf-input-memory.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INPUT_PROXY"
                    c:identifier="GSF_IS_INPUT_PROXY"
                    introspectable="0">
      <source-position filename="gsf-input-proxy.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INPUT_STDIO"
                    c:identifier="GSF_IS_INPUT_STDIO"
                    introspectable="0">
      <source-position filename="gsf-input-stdio.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INPUT_TEXTLINE"
                    c:identifier="GSF_IS_INPUT_TEXTLINE"
                    introspectable="0">
      <source-position filename="gsf-input-textline.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_ODF_OUT"
                    c:identifier="GSF_IS_ODF_OUT"
                    introspectable="0">
      <source-position filename="gsf-opendoc-utils.h" line="54"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTFILE"
                    c:identifier="GSF_IS_OUTFILE"
                    introspectable="0">
      <source-position filename="gsf-outfile.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTFILE_CLASS"
                    c:identifier="GSF_IS_OUTFILE_CLASS"
                    introspectable="0">
      <source-position filename="gsf-outfile-impl.h" line="42"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTFILE_MSOLE"
                    c:identifier="GSF_IS_OUTFILE_MSOLE"
                    introspectable="0">
      <source-position filename="gsf-outfile-msole.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTFILE_OPEN_PKG"
                    c:identifier="GSF_IS_OUTFILE_OPEN_PKG"
                    introspectable="0">
      <source-position filename="gsf-open-pkg-utils.h" line="68"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTFILE_STDIO"
                    c:identifier="GSF_IS_OUTFILE_STDIO"
                    introspectable="0">
      <source-position filename="gsf-outfile-stdio.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTFILE_ZIP"
                    c:identifier="GSF_IS_OUTFILE_ZIP"
                    introspectable="0">
      <source-position filename="gsf-outfile-zip.h" line="48"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTPUT"
                    c:identifier="GSF_IS_OUTPUT"
                    introspectable="0">
      <source-position filename="gsf-output.h" line="61"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTPUT_BZIP"
                    c:identifier="GSF_IS_OUTPUT_BZIP"
                    introspectable="0">
      <source-position filename="gsf-output-bzip.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTPUT_CLASS"
                    c:identifier="GSF_IS_OUTPUT_CLASS"
                    introspectable="0">
      <source-position filename="gsf-output.h" line="43"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTPUT_CSV"
                    c:identifier="GSF_IS_OUTPUT_CSV"
                    introspectable="0">
      <source-position filename="gsf-output-csv.h" line="69"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTPUT_GIO"
                    c:identifier="GSF_IS_OUTPUT_GIO"
                    introspectable="0">
      <source-position filename="gsf-output-gio.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTPUT_GZIP"
                    c:identifier="GSF_IS_OUTPUT_GZIP"
                    introspectable="0">
      <source-position filename="gsf-output-gzip.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTPUT_ICONV"
                    c:identifier="GSF_IS_OUTPUT_ICONV"
                    introspectable="0">
      <source-position filename="gsf-output-iconv.h" line="36"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTPUT_IOCHANNEL"
                    c:identifier="GSF_IS_OUTPUT_IOCHANNEL"
                    introspectable="0">
      <source-position filename="gsf-output-iochannel.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTPUT_MEMORY"
                    c:identifier="GSF_IS_OUTPUT_MEMORY"
                    introspectable="0">
      <source-position filename="gsf-output-memory.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OUTPUT_STDIO"
                    c:identifier="GSF_IS_OUTPUT_STDIO"
                    introspectable="0">
      <source-position filename="gsf-output-stdio.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SHARED_MEMORY"
                    c:identifier="GSF_IS_SHARED_MEMORY"
                    introspectable="0">
      <source-position filename="gsf-shared-memory.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STRUCTURED_BLOB"
                    c:identifier="GSF_IS_STRUCTURED_BLOB"
                    introspectable="0">
      <source-position filename="gsf-structured-blob.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Infile"
           c:symbol-prefix="infile"
           c:type="GsfInfile"
           parent="Input"
           abstract="1"
           glib:type-name="GsfInfile"
           glib:get-type="gsf_infile_get_type"
           glib:type-struct="InfileClass">
      <doc xml:space="preserve"
           filename="gsf-fwd.h"
           line="37">Class representing an input file.</doc>
      <source-position filename="gsf-infile-impl.h" line="43"/>
      <virtual-method name="child_by_index" introspectable="0" throws="1">
        <source-position filename="gsf-infile-impl.h" line="39"/>
        <return-value>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="infile" transfer-ownership="none">
            <type name="Infile" c:type="GsfInfile*"/>
          </instance-parameter>
          <parameter name="i" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="child_by_name" introspectable="0" throws="1">
        <source-position filename="gsf-infile-impl.h" line="41"/>
        <return-value>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="infile" transfer-ownership="none">
            <type name="Infile" c:type="GsfInfile*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="name_by_index" invoker="name_by_index">
        <source-position filename="gsf-infile-impl.h" line="38"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-infile.c"
               line="50">the utf8 encoded name of the @i-th child</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="infile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="47">An #GsfInfile</doc>
            <type name="Infile" c:type="GsfInfile*"/>
          </instance-parameter>
          <parameter name="i" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="48">zero-based index of child to find.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="num_children" invoker="num_children">
        <source-position filename="gsf-infile-impl.h" line="37"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-infile.c"
               line="34">the number of children the storage has, or -1 if the storage can not
	have children.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="infile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="32">the structured storage</doc>
            <type name="Infile" c:type="GsfInfile*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="child_by_aname" c:identifier="gsf_infile_child_by_aname">
        <doc xml:space="preserve"
             filename="gsf-infile.c"
             line="183">This function finds a child that is several directory levels down
the tree.  If, for example, the names "foo", "bar", and "baz" are
given, then this function first finds the "foo" directory in the
root infile, then locates "bar" within that directory, and finally
locates "baz" within that and returns the "baz" child.  In other
words, this function finds the "foo/bar/baz" child.

New in 1.14.9.</doc>
        <source-position filename="gsf-infile.h" line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-infile.c"
               line="197">a newly created child which must be unrefed.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="infile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="185">#GsfInfile</doc>
            <type name="Infile" c:type="GsfInfile*"/>
          </instance-parameter>
          <parameter name="names" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="186">A %NULL terminated array of names (e.g. from g_strsplit)</doc>
            <array c:type="const char**">
              <type name="utf8" c:type="char*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="child_by_index" c:identifier="gsf_infile_child_by_index">
        <doc xml:space="preserve"
             filename="gsf-infile.c"
             line="60">TODO : For 2.0 api will change to include a #GError.</doc>
        <source-position filename="gsf-infile.h" line="38"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-infile.c"
               line="66">a newly created child which must be unrefed.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="infile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="62">#GsfInfile</doc>
            <type name="Infile" c:type="GsfInfile*"/>
          </instance-parameter>
          <parameter name="i" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="63">target index</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="child_by_name" c:identifier="gsf_infile_child_by_name">
        <doc xml:space="preserve"
             filename="gsf-infile.c"
             line="89">The function returns a named child of the given infile.  This only
works for an immediate child.  If you need to go several levels
down use gsf_infile_child_by_aname, for example.

TODO : For 2.0 api will change to include a #GError.</doc>
        <source-position filename="gsf-infile.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-infile.c"
               line="100">a newly created child which must be
unrefed.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="infile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="91">#GsfInfile</doc>
            <type name="Infile" c:type="GsfInfile*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="92">target name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="child_by_vaname"
              c:identifier="gsf_infile_child_by_vaname"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gsf-infile.c"
             line="148">Apart from argument types, this is the same as gsf_infile_child_by_aname.
Please see the documentation there.
New in 1.14.9.</doc>
        <source-position filename="gsf-infile.h" line="42"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-infile.c"
               line="157">a newly created child which must be unrefed.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="infile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="150">#GsfInfile</doc>
            <type name="Infile" c:type="GsfInfile*"/>
          </instance-parameter>
          <parameter name="names" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="151">A %NULL terminated array of names (e.g. from g_strsplit)</doc>
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </method>
      <method name="child_by_vname"
              c:identifier="gsf_infile_child_by_vname"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gsf-infile.c"
             line="125">Apart from the way arguments are specified, this is the same as
gsf_infile_child_by_aname.  Please see the documentation there.</doc>
        <source-position filename="gsf-infile.h" line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-infile.c"
               line="133">a newly created child which must be unrefed.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="infile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="127">a #GsfInfile</doc>
            <type name="Infile" c:type="GsfInfile*"/>
          </instance-parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="128">A %NULL terminated list of names</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="name_by_index" c:identifier="gsf_infile_name_by_index">
        <source-position filename="gsf-infile.h" line="37"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-infile.c"
               line="50">the utf8 encoded name of the @i-th child</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="infile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="47">An #GsfInfile</doc>
            <type name="Infile" c:type="GsfInfile*"/>
          </instance-parameter>
          <parameter name="i" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="48">zero-based index of child to find.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="num_children" c:identifier="gsf_infile_num_children">
        <source-position filename="gsf-infile.h" line="36"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-infile.c"
               line="34">the number of children the storage has, or -1 if the storage can not
	have children.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="infile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="32">the structured storage</doc>
            <type name="Infile" c:type="GsfInfile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Input" c:type="GsfInput"/>
      </field>
    </class>
    <record name="InfileClass"
            c:type="GsfInfileClass"
            glib:is-gtype-struct-for="Infile">
      <source-position filename="gsf-infile-impl.h" line="43"/>
      <field name="input_class">
        <type name="InputClass" c:type="GsfInputClass"/>
      </field>
      <field name="num_children">
        <callback name="num_children">
          <source-position filename="gsf-infile-impl.h" line="37"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="34">the number of children the storage has, or -1 if the storage can not
	have children.</doc>
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="infile" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-infile.c"
                   line="32">the structured storage</doc>
              <type name="Infile" c:type="GsfInfile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="name_by_index">
        <callback name="name_by_index">
          <source-position filename="gsf-infile-impl.h" line="38"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="gsf-infile.c"
                 line="50">the utf8 encoded name of the @i-th child</doc>
            <type name="utf8" c:type="const char*"/>
          </return-value>
          <parameters>
            <parameter name="infile" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-infile.c"
                   line="47">An #GsfInfile</doc>
              <type name="Infile" c:type="GsfInfile*"/>
            </parameter>
            <parameter name="i" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-infile.c"
                   line="48">zero-based index of child to find.</doc>
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="child_by_index" introspectable="0">
        <callback name="child_by_index" introspectable="0" throws="1">
          <source-position filename="gsf-infile-impl.h" line="39"/>
          <return-value>
            <type name="Input" c:type="GsfInput*"/>
          </return-value>
          <parameters>
            <parameter name="infile" transfer-ownership="none">
              <type name="Infile" c:type="GsfInfile*"/>
            </parameter>
            <parameter name="i" transfer-ownership="none">
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="child_by_name" introspectable="0">
        <callback name="child_by_name" introspectable="0" throws="1">
          <source-position filename="gsf-infile-impl.h" line="41"/>
          <return-value>
            <type name="Input" c:type="GsfInput*"/>
          </return-value>
          <parameters>
            <parameter name="infile" transfer-ownership="none">
              <type name="Infile" c:type="GsfInfile*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="InfileMSOle"
           c:symbol-prefix="infile_msole"
           c:type="GsfInfileMSOle"
           parent="Infile"
           glib:type-name="GsfInfileMSOle"
           glib:get-type="gsf_infile_msole_get_type">
      <constructor name="new" c:identifier="gsf_infile_msole_new" throws="1">
        <doc xml:space="preserve"
             filename="gsf-infile-msole.c"
             line="1040">Opens the root directory of an MS OLE file.
&lt;note&gt;This adds a reference to @source.&lt;/note&gt;</doc>
        <source-position filename="gsf-infile-msole.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-infile-msole.c"
               line="1048">the new ole file handler</doc>
          <type name="Infile" c:type="GsfInfile*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile-msole.c"
                 line="1042">#GsfInput</doc>
            <type name="Input" c:type="GsfInput*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_class_id" c:identifier="gsf_infile_msole_get_class_id">
        <doc xml:space="preserve"
             filename="gsf-infile-msole.c"
             line="1077">Retrieves the 16 byte indentifier (often a GUID in MS Windows apps)
stored within the directory associated with @ole and stores it in @res.</doc>
        <source-position filename="gsf-infile-msole.h" line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-infile-msole.c"
               line="1086">TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ole" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile-msole.c"
                 line="1079">a #GsfInfileMSOle</doc>
            <type name="InfileMSOle" c:type="const GsfInfileMSOle*"/>
          </instance-parameter>
          <parameter name="res"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gsf-infile-msole.c"
                 line="1080">identifier (often a GUID in
MS Windows apps)</doc>
            <array zero-terminated="0" c:type="guint8*" fixed-size="16">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
    </class>
    <class name="InfileMSVBA"
           c:symbol-prefix="infile_msvba"
           c:type="GsfInfileMSVBA"
           parent="Infile"
           glib:type-name="GsfInfileMSVBA"
           glib:get-type="gsf_infile_msvba_get_type">
      <constructor name="new" c:identifier="gsf_infile_msvba_new" throws="1">
        <source-position filename="gsf-infile-msvba.h" line="39"/>
        <return-value transfer-ownership="full">
          <type name="Infile" c:type="GsfInfile*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <type name="Infile" c:type="GsfInfile*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_modules" c:identifier="gsf_infile_msvba_get_modules">
        <doc xml:space="preserve"
             filename="gsf-infile-msvba.c"
             line="517">a collection of names and source code.</doc>
        <source-position filename="gsf-infile-msvba.h" line="40"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-infile-msvba.c"
               line="523">
A #GHashTable of names and source code (unknown encoding).</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="vba_stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile-msvba.c"
                 line="519">#GsfInfile</doc>
            <type name="InfileMSVBA" c:type="const GsfInfileMSVBA*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="steal_modules"
              c:identifier="gsf_infile_msvba_steal_modules">
        <doc xml:space="preserve"
             filename="gsf-infile-msvba.c"
             line="533">A collection of names and source code which the caller is responsible for destroying.</doc>
        <source-position filename="gsf-infile-msvba.h" line="41"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-infile-msvba.c"
               line="539">A
#GHashTable of names and source code (unknown encoding).</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="vba_stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile-msvba.c"
                 line="535">#GsfInfile</doc>
            <type name="InfileMSVBA" c:type="GsfInfileMSVBA*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <class name="InfileStdio"
           c:symbol-prefix="infile_stdio"
           c:type="GsfInfileStdio"
           parent="Infile"
           glib:type-name="GsfInfileStdio"
           glib:get-type="gsf_infile_stdio_get_type">
      <constructor name="new" c:identifier="gsf_infile_stdio_new" throws="1">
        <source-position filename="gsf-infile-stdio.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-infile-stdio.c"
               line="167">a new file or %NULL.</doc>
          <type name="Infile" c:type="GsfInfile*"/>
        </return-value>
        <parameters>
          <parameter name="root" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile-stdio.c"
                 line="164">in locale dependent encoding</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
    </class>
    <class name="InfileTar"
           c:symbol-prefix="infile_tar"
           c:type="GsfInfileTar"
           parent="Infile"
           glib:type-name="GsfInfileTar"
           glib:get-type="gsf_infile_tar_get_type">
      <constructor name="new" c:identifier="gsf_infile_tar_new" throws="1">
        <doc xml:space="preserve"
             filename="gsf-infile-tar.c"
             line="574">Opens the root directory of a Tar file.
&lt;note&gt;This adds a reference to @source.&lt;/note&gt;</doc>
        <source-position filename="gsf-infile-tar.h" line="36"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-infile-tar.c"
               line="582">the new tar file handler</doc>
          <type name="Infile" c:type="GsfInfile*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile-tar.c"
                 line="576">A base #GsfInput</doc>
            <type name="Input" c:type="GsfInput*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="source"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Input"/>
      </property>
    </class>
    <class name="InfileZip"
           c:symbol-prefix="infile_zip"
           c:type="GsfInfileZip"
           parent="Infile"
           glib:type-name="GsfInfileZip"
           glib:get-type="gsf_infile_zip_get_type">
      <constructor name="new" c:identifier="gsf_infile_zip_new" throws="1">
        <doc xml:space="preserve"
             filename="gsf-infile-zip.c"
             line="1054">Opens the root directory of a Zip file.
&lt;note&gt;This adds a reference to @source.&lt;/note&gt;</doc>
        <source-position filename="gsf-infile-zip.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-infile-zip.c"
               line="1062">the new zip file handler</doc>
          <type name="Infile" c:type="GsfInfile*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile-zip.c"
                 line="1056">A base #GsfInput</doc>
            <type name="Input" c:type="GsfInput*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="compression-level"
                transfer-ownership="none"
                default-value="0">
        <doc xml:space="preserve"
             filename="gsf-infile-zip.c"
             line="1013">Controls the level of compression used for new members.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="internal-parent"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="InfileZip"/>
      </property>
      <property name="source"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Input"/>
      </property>
      <property name="zip64" transfer-ownership="none" default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
    </class>
    <class name="Input"
           c:symbol-prefix="input"
           c:type="GsfInput"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="GsfInput"
           glib:get-type="gsf_input_get_type"
           glib:type-struct="InputClass">
      <doc xml:space="preserve"
           filename="gsf-fwd.h"
           line="30">Class representing an input stream.</doc>
      <source-position filename="gsf-input-impl.h" line="55"/>
      <constructor name="mmap_new"
                   c:identifier="gsf_input_mmap_new"
                   throws="1">
        <source-position filename="gsf-input-memory.h" line="42"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-memory.c"
               line="197">A new #GsfInputMemory</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-memory.c"
                 line="194">The file on disk that you want to mmap</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="error_id" c:identifier="gsf_input_error_id">
        <source-position filename="gsf-input.h" line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="667">A utility quark to flag a #GError as being an input problem.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="Dup" invoker="dup" throws="1">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="259">Duplicates @input leaving the new one at the same offset.</doc>
        <source-position filename="gsf-input-impl.h" line="42"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="266">the duplicate</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="261">The input to duplicate</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="OpenSibling" invoker="sibling" throws="1">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="300">UNIMPLEMENTED BY ANY BACKEND
	and it is probably unnecessary.   gsf_input_get_container provides
	enough power to do what is necessary.

Attempts to open a 'sibling' of @input.  The caller is responsible for
managing the resulting object.</doc>
        <source-position filename="gsf-input-impl.h" line="47"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="313">A related #GsfInput</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="302">The input</doc>
            <type name="Input" c:type="const GsfInput*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="303">name.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="Read" invoker="read" introspectable="0">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="355">Read at least @num_bytes.  Does not change the current position if there
is an error.  Will only read if the entire amount can be read.  Invalidates
the buffer associated with previous calls to gsf_input_read.</doc>
        <source-position filename="gsf-input-impl.h" line="43"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="365">pointer to the buffer or %NULL if there is
an error or 0 bytes are requested.</doc>
          <array zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="357">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="num_bytes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="358">number of bytes to read</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="optional_buffer"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="359">Pointer to destination memory area</doc>
            <array zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="Seek" invoker="seek">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="447">Move the current location in the input stream.</doc>
        <source-position filename="gsf-input-impl.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="456">%TRUE on error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="449">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="450">target offset</doc>
            <type name="gsf_off_t" c:type="gsf_off_t"/>
          </parameter>
          <parameter name="whence" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="451">determines whether the offset is relative to the beginning or
         the end of the stream, or to the current location.</doc>
            <type name="GLib.SeekType" c:type="GSeekType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="container" c:identifier="gsf_input_container">
        <source-position filename="gsf-input.h" line="38"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="250">@input's container</doc>
          <type name="Infile" c:type="GsfInfile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="248">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="gsf_input_copy">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="695">Copy the contents from @input to @output from their respective
current positions. So if you want to be sure to copy *everything*,
make sure to call gsf_input_seek (input, 0, G_SEEK_SET) and
gsf_output_seek (output, 0, G_SEEK_SET) first, if applicable.</doc>
        <source-position filename="gsf-input.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="705">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="697">#GsfInput</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="698">#GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </parameter>
        </parameters>
      </method>
      <method name="dump" c:identifier="gsf_input_dump">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="285">Dumps @input's contents to STDOUT, optionally in hex format.</doc>
        <source-position filename="gsf-utils.h" line="257"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-utils.c"
                 line="287">a #GsfInput</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="dump_as_hex" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-utils.c"
                 line="288">If %TRUE, dump in hexidecmal format</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="dup" c:identifier="gsf_input_dup" throws="1">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="259">Duplicates @input leaving the new one at the same offset.</doc>
        <source-position filename="gsf-input.h" line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="266">the duplicate</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="261">The input to duplicate</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="eof" c:identifier="gsf_input_eof" glib:get-property="eof">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="339">Are we at the end of the file?</doc>
        <source-position filename="gsf-input.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="345">%TRUE if the input is at the eof.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="341">the input</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="find_vba" c:identifier="gsf_input_find_vba" throws="1">
        <doc xml:space="preserve"
             filename="gsf-infile-msvba.c"
             line="552">A utility routine that attempts to find the VBA file withint a stream.</doc>
        <source-position filename="gsf-infile-msvba.h" line="45"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-infile-msvba.c"
               line="559">a GsfInfile</doc>
          <type name="InfileMSVBA" c:type="GsfInfileMSVBA*"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-infile-msvba.c"
                 line="554">#GsfInput</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modtime"
              c:identifier="gsf_input_get_modtime"
              glib:get-property="modtime">
        <source-position filename="gsf-input.h" line="55"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="596">A #GDateTime representing when the input
was last modified, or %NULL if not known.</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="594">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="name" c:identifier="gsf_input_name">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="231">The name of the input stream.</doc>
        <source-position filename="gsf-input.h" line="37"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="237">@input's name.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="233">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="read"
              c:identifier="gsf_input_read"
              shadowed-by="read0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="355">Read at least @num_bytes.  Does not change the current position if there
is an error.  Will only read if the entire amount can be read.  Invalidates
the buffer associated with previous calls to gsf_input_read.</doc>
        <source-position filename="gsf-input.h" line="44"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="365">pointer to the buffer or %NULL if there is
an error or 0 bytes are requested.</doc>
          <array zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="357">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="num_bytes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="358">number of bytes to read</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="optional_buffer"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="359">Pointer to destination memory area</doc>
            <array zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="read0" c:identifier="gsf_input_read0" shadows="read">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="386">Read @num_bytes.  Does not change the current position if there
is an error.  Will only read if the entire amount can be read.</doc>
        <source-position filename="gsf-input.h" line="47"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="395">
the data read.</doc>
          <array length="1" zero-terminated="0" c:type="guint8*">
            <type name="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="388">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="num_bytes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="389">number of bytes to read</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="bytes_read"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="390">copy of @num_bytes</doc>
            <type name="gsize" c:type="size_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remaining" c:identifier="gsf_input_remaining">
        <source-position filename="gsf-input.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="423">the number of bytes left in the file.</doc>
          <type name="gsf_off_t" c:type="gsf_off_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="421">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="seek" c:identifier="gsf_input_seek">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="447">Move the current location in the input stream.</doc>
        <source-position filename="gsf-input.h" line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="456">%TRUE on error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="449">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="450">target offset</doc>
            <type name="gsf_off_t" c:type="gsf_off_t"/>
          </parameter>
          <parameter name="whence" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="451">determines whether the offset is relative to the beginning or
         the end of the stream, or to the current location.</doc>
            <type name="GLib.SeekType" c:type="GSeekType"/>
          </parameter>
        </parameters>
      </method>
      <method name="seek_emulate" c:identifier="gsf_input_seek_emulate">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="569">Emulate forward seeks by reading.</doc>
        <source-position filename="gsf-input-impl.h" line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="576">%TRUE if the emulation failed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="571">stream to emulate seek for</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="pos" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="572">absolute position to seek to</doc>
            <type name="gsf_off_t" c:type="gsf_off_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_container" c:identifier="gsf_input_set_container">
        <source-position filename="gsf-input-impl.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="537">%TRUE if the assignment was ok.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="534">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="container"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Infile" c:type="GsfInfile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modtime" c:identifier="gsf_input_set_modtime">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="607">protected.</doc>
        <source-position filename="gsf-input-impl.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="614">%TRUE if the assignment was ok.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="609">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="modtime"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="610">the new modification time.</doc>
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modtime_from_stat"
              c:identifier="gsf_input_set_modtime_from_stat">
        <source-position filename="gsf-input-impl.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="st"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="const stat*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="gsf_input_set_name">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="489">protected.</doc>
        <source-position filename="gsf-input-impl.h" line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="496">%TRUE if the assignment was ok.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="491">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="492">the new name of the stream</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name_from_filename"
              c:identifier="gsf_input_set_name_from_filename">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="512">protected.</doc>
        <source-position filename="gsf-input-impl.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="519">%TRUE if the assignment was ok.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="514">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="515">the (fs-sys encoded) filename</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size" c:identifier="gsf_input_set_size">
        <source-position filename="gsf-input-impl.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="557">%TRUE if the assignment was ok.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="554">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="555">the size of the stream</doc>
            <type name="gsf_off_t" c:type="gsf_off_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="sibling" c:identifier="gsf_input_sibling" throws="1">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="300">UNIMPLEMENTED BY ANY BACKEND
	and it is probably unnecessary.   gsf_input_get_container provides
	enough power to do what is necessary.

Attempts to open a 'sibling' of @input.  The caller is responsible for
managing the resulting object.</doc>
        <source-position filename="gsf-input.h" line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="313">A related #GsfInput</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="302">The input</doc>
            <type name="Input" c:type="const GsfInput*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="303">name.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="size" c:identifier="gsf_input_size">
        <source-position filename="gsf-input.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="330">the total number of bytes in @input or -1 on error</doc>
          <type name="gsf_off_t" c:type="gsf_off_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="328">The input</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="tell" c:identifier="gsf_input_tell">
        <source-position filename="gsf-input.h" line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="437">the current offset in the file.</doc>
          <type name="gsf_off_t" c:type="gsf_off_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="435">the input stream</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="uncompress" c:identifier="gsf_input_uncompress">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="730">This functions takes ownership of the incoming reference and yields a
new one as its output.</doc>
        <source-position filename="gsf-input.h" line="59"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input.c"
               line="737">A stream equivalent to the source stream,
but uncompressed if the source was compressed.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="src" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="732">stream to be uncompressed.</doc>
            <type name="Input" c:type="GsfInput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="container" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="212">The container, optionally %NULL, in which this input lives.</doc>
        <type name="Infile"/>
      </property>
      <property name="eof"
                transfer-ownership="none"
                getter="eof"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="149">%TRUE if the end of the file has been reached.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="modtime" transfer-ownership="none" getter="get_modtime">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="194">The time the input was last updated.  This represents the
timestamp from the originating file or @GsfInfile member.
It is not supported by all derived classes.</doc>
        <type name="GLib.DateTime"/>
      </property>
      <property name="name" transfer-ownership="none" default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="position" transfer-ownership="none" default-value="0">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="179">The current position in the input.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="remaining" transfer-ownership="none" default-value="0">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="164">The number of bytes remaining in the file.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="size" transfer-ownership="none" default-value="0">
        <doc xml:space="preserve"
             filename="gsf-input.c"
             line="134">The total number of bytes in the file.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <field name="g_object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="size">
        <type name="gsf_off_t" c:type="gsf_off_t"/>
      </field>
      <field name="cur_offset">
        <type name="gsf_off_t" c:type="gsf_off_t"/>
      </field>
      <field name="name">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="container">
        <type name="Infile" c:type="GsfInfile*"/>
      </field>
    </class>
    <record name="InputClass"
            c:type="GsfInputClass"
            glib:is-gtype-struct-for="Input">
      <source-position filename="gsf-input-impl.h" line="55"/>
      <field name="g_object_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="Dup">
        <callback name="Dup" throws="1">
          <source-position filename="gsf-input-impl.h" line="42"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="266">the duplicate</doc>
            <type name="Input" c:type="GsfInput*"/>
          </return-value>
          <parameters>
            <parameter name="input" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-input.c"
                   line="261">The input to duplicate</doc>
              <type name="Input" c:type="GsfInput*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="Read">
        <callback name="Read">
          <source-position filename="gsf-input-impl.h" line="43"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="365">pointer to the buffer or %NULL if there is
an error or 0 bytes are requested.</doc>
            <array zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </return-value>
          <parameters>
            <parameter name="input" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-input.c"
                   line="357">the input stream</doc>
              <type name="Input" c:type="GsfInput*"/>
            </parameter>
            <parameter name="num_bytes" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-input.c"
                   line="358">number of bytes to read</doc>
              <type name="gsize" c:type="size_t"/>
            </parameter>
            <parameter name="optional_buffer"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gsf-input.c"
                   line="359">Pointer to destination memory area</doc>
              <array zero-terminated="0" c:type="guint8*">
                <type name="guint8" c:type="guint8"/>
              </array>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="Seek">
        <callback name="Seek">
          <source-position filename="gsf-input-impl.h" line="45"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="456">%TRUE on error.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="input" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-input.c"
                   line="449">the input stream</doc>
              <type name="Input" c:type="GsfInput*"/>
            </parameter>
            <parameter name="offset" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-input.c"
                   line="450">target offset</doc>
              <type name="gsf_off_t" c:type="gsf_off_t"/>
            </parameter>
            <parameter name="whence" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-input.c"
                   line="451">determines whether the offset is relative to the beginning or
         the end of the stream, or to the current location.</doc>
              <type name="GLib.SeekType" c:type="GSeekType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="OpenSibling">
        <callback name="OpenSibling" throws="1">
          <source-position filename="gsf-input-impl.h" line="47"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gsf-input.c"
                 line="313">A related #GsfInput</doc>
            <type name="Input" c:type="GsfInput*"/>
          </return-value>
          <parameters>
            <parameter name="input" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-input.c"
                   line="302">The input</doc>
              <type name="Input" c:type="const GsfInput*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-input.c"
                   line="303">name.</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gsf_reserved0" introspectable="0">
        <callback name="_gsf_reserved0">
          <source-position filename="gsf-input-impl.h" line="51"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gsf_reserved1" introspectable="0">
        <callback name="_gsf_reserved1">
          <source-position filename="gsf-input-impl.h" line="52"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gsf_reserved2" introspectable="0">
        <callback name="_gsf_reserved2">
          <source-position filename="gsf-input-impl.h" line="53"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gsf_reserved3" introspectable="0">
        <callback name="_gsf_reserved3">
          <source-position filename="gsf-input-impl.h" line="54"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="InputGZip"
           c:symbol-prefix="input_gzip"
           c:type="GsfInputGZip"
           parent="Input"
           glib:type-name="GsfInputGZip"
           glib:get-type="gsf_input_gzip_get_type">
      <constructor name="new" c:identifier="gsf_input_gzip_new" throws="1">
        <doc xml:space="preserve"
             filename="gsf-input-gzip.c"
             line="205">Adds a reference to @source.</doc>
        <source-position filename="gsf-input-gzip.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-gzip.c"
               line="212">a new file or %NULL.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-gzip.c"
                 line="207">The underlying data source.</doc>
            <type name="Input" c:type="GsfInput*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="raw"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="source"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Input"/>
      </property>
      <property name="uncompressed-size"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="-1">
        <type name="gint64" c:type="gint64"/>
      </property>
    </class>
    <class name="InputGio"
           c:symbol-prefix="input_gio"
           c:type="GsfInputGio"
           parent="Input"
           glib:type-name="GsfInputGio"
           glib:get-type="gsf_input_gio_get_type">
      <constructor name="new" c:identifier="gsf_input_gio_new" throws="1">
        <source-position filename="gsf-input-gio.h" line="38"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-gio.c"
               line="119">A new #GsfInputGio or %NULL</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_path"
                   c:identifier="gsf_input_gio_new_for_path"
                   throws="1">
        <source-position filename="gsf-input-gio.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-gio.c"
               line="173">A new #GsfInputGio or %NULL</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_uri"
                   c:identifier="gsf_input_gio_new_for_uri"
                   throws="1">
        <source-position filename="gsf-input-gio.h" line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-gio.c"
               line="195">A new #GsfInputGio or %NULL</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
    </class>
    <class name="InputHTTP"
           c:symbol-prefix="input_http"
           c:type="GsfInputHTTP"
           parent="Input"
           glib:type-name="GsfInputHTTP"
           glib:get-type="gsf_input_http_get_type">
      <constructor name="new" c:identifier="gsf_input_http_new" throws="1">
        <source-position filename="gsf-input-http.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-http.c"
               line="270">an open HTTP connection, ready for reading.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-http.c"
                 line="267">A string containing the URL to retrieve</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_content_type"
              c:identifier="gsf_input_http_get_content_type"
              glib:get-property="content-type">
        <source-position filename="gsf-input-http.h" line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-http.c"
               line="212">an allocated string containing the Content-Type field of the HTTP response.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-http.c"
                 line="210">#GsfInputHTTP</doc>
            <type name="InputHTTP" c:type="GsfInputHTTP*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url"
              c:identifier="gsf_input_http_get_url"
              glib:get-property="url">
        <source-position filename="gsf-input-http.h" line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-http.c"
               line="197">an allocated string containing the URL used for input.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-http.c"
                 line="195">#GsfInputHTTP</doc>
            <type name="InputHTTP" c:type="GsfInputHTTP*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="content-type"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_content_type"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="url"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_url"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <class name="InputMemory"
           c:symbol-prefix="input_memory"
           c:type="GsfInputMemory"
           parent="Input"
           glib:type-name="GsfInputMemory"
           glib:get-type="gsf_input_memory_get_type">
      <constructor name="new" c:identifier="gsf_input_memory_new">
        <source-position filename="gsf-input-memory.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-memory.c"
               line="60">A new #GsfInputMemory</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="buf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-memory.c"
                 line="56">The input bytes</doc>
            <array length="1" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-memory.c"
                 line="57">The length of @buf</doc>
            <type name="gsf_off_t" c:type="gsf_off_t"/>
          </parameter>
          <parameter name="needs_free" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-memory.c"
                 line="58">Whether you want this memory to be free'd at object destruction</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_clone" c:identifier="gsf_input_memory_new_clone">
        <source-position filename="gsf-input-memory.h" line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-memory.c"
               line="76">A new #GsfInputMemory</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="buf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-memory.c"
                 line="73">The input bytes</doc>
            <array length="1" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-memory.c"
                 line="74">The length of @buf</doc>
            <type name="gsf_off_t" c:type="gsf_off_t"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_bzip"
                   c:identifier="gsf_input_memory_new_from_bzip"
                   throws="1">
        <source-position filename="gsf-input-bzip.h" line="30"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-bzip.c"
               line="39">a new #GsfInputMemory or %NULL.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-bzip.c"
                 line="36">a #GsfInput</doc>
            <type name="Input" c:type="GsfInput*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_iochannel"
                   c:identifier="gsf_input_memory_new_from_iochannel"
                   throws="1">
        <source-position filename="gsf-input-iochannel.h" line="30"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-iochannel.c"
               line="32">a new #GsfInputMemory or %NULL.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-iochannel.c"
                 line="29">a #GIOChannel.</doc>
            <type name="GLib.IOChannel" c:type="GIOChannel*"/>
          </parameter>
        </parameters>
      </constructor>
    </class>
    <class name="InputProxy"
           c:symbol-prefix="input_proxy"
           c:type="GsfInputProxy"
           parent="Input"
           glib:type-name="GsfInputProxy"
           glib:get-type="gsf_input_proxy_get_type">
      <constructor name="new" c:identifier="gsf_input_proxy_new">
        <doc xml:space="preserve"
             filename="gsf-input-proxy.c"
             line="89">This creates a new proxy to the entire, given input source.  See
gsf_input_proxy_new_section for details.</doc>
        <source-position filename="gsf-input-proxy.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-proxy.c"
               line="96">a new input object.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-proxy.c"
                 line="91">The underlying data source.</doc>
            <type name="Input" c:type="GsfInput*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_section"
                   c:identifier="gsf_input_proxy_new_section">
        <doc xml:space="preserve"
             filename="gsf-input-proxy.c"
             line="40">This creates a new proxy to a section of the given source.  The new
object will have its own current position, but any operation on it
can change the source's position.

If a proxy to a proxy is created, the intermediate proxy is short-
circuited.

This function will ref the source.</doc>
        <source-position filename="gsf-input-proxy.h" line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-proxy.c"
               line="55">a new input object.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-proxy.c"
                 line="42">The underlying data source.</doc>
            <type name="Input" c:type="GsfInput*"/>
          </parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-proxy.c"
                 line="43">Offset into source for start of section.</doc>
            <type name="gsf_off_t" c:type="gsf_off_t"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-proxy.c"
                 line="44">Length of section.</doc>
            <type name="gsf_off_t" c:type="gsf_off_t"/>
          </parameter>
        </parameters>
      </constructor>
    </class>
    <class name="InputStdio"
           c:symbol-prefix="input_stdio"
           c:type="GsfInputStdio"
           parent="Input"
           glib:type-name="GsfInputStdio"
           glib:get-type="gsf_input_stdio_get_type">
      <constructor name="new" c:identifier="gsf_input_stdio_new" throws="1">
        <source-position filename="gsf-input-stdio.h" line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-stdio.c"
               line="108">a new file or %NULL.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-stdio.c"
                 line="105">in utf8.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_FILE" c:identifier="gsf_input_stdio_new_FILE">
        <doc xml:space="preserve"
             filename="gsf-input-stdio.c"
             line="159">Assumes ownership of @file when succeeding.  If @keep_open is true,
ownership reverts to caller when the #GsfInput is closed.</doc>
        <source-position filename="gsf-input-stdio.h" line="43"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-input-stdio.c"
               line="168">a new #GsfInput wrapper for @file.  Note that if the file is not
	seekable, this function will make a local copy of the entire file.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-stdio.c"
                 line="161">The filename corresponding to @file.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="file"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-input-stdio.c"
                 line="162">an existing stdio &lt;type&gt;FILE&lt;/type&gt; *</doc>
            <type name="gpointer" c:type="FILE*"/>
          </parameter>
          <parameter name="keep_open" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-stdio.c"
                 line="163">Should @file be closed when the wrapper is closed</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
    </class>
    <class name="InputTextline"
           c:symbol-prefix="input_textline"
           c:type="GsfInputTextline"
           parent="Input"
           glib:type-name="GsfInputTextline"
           glib:get-type="gsf_input_textline_get_type">
      <constructor name="new" c:identifier="gsf_input_textline_new">
        <doc xml:space="preserve"
             filename="gsf-input-textline.c"
             line="48">&lt;note&gt;This adds a reference to @source.&lt;/note&gt;</doc>
        <source-position filename="gsf-input-textline.h" line="40"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-input-textline.c"
               line="54">a new file</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-textline.c"
                 line="50">in some combination of ascii and utf8</doc>
            <type name="Input" c:type="GsfInput*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="ascii_gets" c:identifier="gsf_input_textline_ascii_gets">
        <doc xml:space="preserve"
             filename="gsf-input-textline.c"
             line="158">A utility routine to read things line by line from the underlying source.
Trailing newlines and carriage returns are stripped, and the resultant buffer
can be edited.</doc>
        <source-position filename="gsf-input-textline.h" line="41"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-input-textline.c"
               line="166">the string read, or %NULL on eof.</doc>
          <array zero-terminated="0" c:type="unsigned char*">
            <type name="guint8" c:type="unsigned char"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="textline" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-textline.c"
                 line="160">#GsfInputTextline</doc>
            <type name="InputTextline" c:type="GsfInputTextline*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="utf8_gets" c:identifier="gsf_input_textline_utf8_gets">
        <doc xml:space="preserve"
             filename="gsf-input-textline.c"
             line="174">A utility routine to read things line by line from the underlying source.
Trailing newlines and carriage returns are stripped, and the resultant buffer
can be edited.</doc>
        <source-position filename="gsf-input-textline.h" line="42"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-input-textline.c"
               line="182">the string read, or %NULL on eof.</doc>
          <array zero-terminated="0" c:type="guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="textline" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-input-textline.c"
                 line="176">#GsfInputTextline</doc>
            <type name="InputTextline" c:type="GsfInputTextline*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <function-macro name="LE_GET_DOUBLE"
                    c:identifier="GSF_LE_GET_DOUBLE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="127">Interpret binary data as a double in little endian order.</doc>
      <source-position filename="gsf-utils.h" line="135"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="129">pointer to storage</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_GET_FLOAT"
                    c:identifier="GSF_LE_GET_FLOAT"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="117">Interpret binary data as a float in little endian order.</doc>
      <source-position filename="gsf-utils.h" line="125"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="119">pointer to storage</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_GET_GINT16"
                    c:identifier="GSF_LE_GET_GINT16"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="87">Interpret binary data as a signed 16-bit integer in little endian order.</doc>
      <source-position filename="gsf-utils.h" line="95"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="89">pointer to storage</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_GET_GINT32"
                    c:identifier="GSF_LE_GET_GINT32"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="97">Interpret binary data as a signed 32-bit integer in little endian order.</doc>
      <source-position filename="gsf-utils.h" line="105"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="99">pointer to storage</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_GET_GINT64"
                    c:identifier="GSF_LE_GET_GINT64"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="107">Interpret binary data as a signed 64-bit integer in little endian order.</doc>
      <source-position filename="gsf-utils.h" line="115"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="109">pointer to storage</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_GET_GINT8"
                    c:identifier="GSF_LE_GET_GINT8"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="77">Interpret binary data as a signed 8-bit integer in little endian order.</doc>
      <source-position filename="gsf-utils.h" line="85"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="79">pointer to storage</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_GET_GUINT16"
                    c:identifier="GSF_LE_GET_GUINT16"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="41">Interpret binary data as an unsigned 16-bit integer in little endian order.</doc>
      <source-position filename="gsf-utils.h" line="49"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="43">pointer to storage</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_GET_GUINT32"
                    c:identifier="GSF_LE_GET_GUINT32"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="53">Interpret binary data as an unsigned 32-bit integer in little endian order.</doc>
      <source-position filename="gsf-utils.h" line="61"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="55">pointer to storage</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_GET_GUINT64"
                    c:identifier="GSF_LE_GET_GUINT64"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="67">Interpret binary data as an unsigned 64-bit integer in little endian order.</doc>
      <source-position filename="gsf-utils.h" line="75"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="69">pointer to storage</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_GET_GUINT8"
                    c:identifier="GSF_LE_GET_GUINT8"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="31">Interpret binary data as an unsigned 8-bit integer in little endian order.</doc>
      <source-position filename="gsf-utils.h" line="39"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="33">pointer to storage</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_SET_DOUBLE"
                    c:identifier="GSF_LE_SET_DOUBLE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="237">Store @dat in little endian order in memory pointed to by @p.</doc>
      <source-position filename="gsf-utils.h" line="244"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="239">pointer to storage</doc>
        </parameter>
        <parameter name="dat">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="240">double to be stored</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_SET_FLOAT"
                    c:identifier="GSF_LE_SET_FLOAT"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="228">Store @dat in little endian order in memory pointed to by @p.</doc>
      <source-position filename="gsf-utils.h" line="235"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="230">pointer to storage</doc>
        </parameter>
        <parameter name="dat">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="231">float to be stored</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_SET_GINT16"
                    c:identifier="GSF_LE_SET_GINT16"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="201">Store @dat in little endian order in memory pointed to by @p.</doc>
      <source-position filename="gsf-utils.h" line="208"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="203">pointer to storage</doc>
        </parameter>
        <parameter name="dat">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="204">16-bit signed integer</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_SET_GINT32"
                    c:identifier="GSF_LE_SET_GINT32"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="210">Store @dat in little endian order in memory pointed to by @p.</doc>
      <source-position filename="gsf-utils.h" line="217"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="212">pointer to storage</doc>
        </parameter>
        <parameter name="dat">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="213">32-bit signed integer</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_SET_GINT64"
                    c:identifier="GSF_LE_SET_GINT64"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="219">Store @dat in little endian order in memory pointed to by @p.</doc>
      <source-position filename="gsf-utils.h" line="226"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="221">pointer to storage</doc>
        </parameter>
        <parameter name="dat">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="222">64-bit signed integer</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_SET_GINT8"
                    c:identifier="GSF_LE_SET_GINT8"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="192">Store @dat in little endian order in memory pointed to by @p.</doc>
      <source-position filename="gsf-utils.h" line="199"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="194">pointer to storage</doc>
        </parameter>
        <parameter name="dat">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="195">8-bit signed integer</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_SET_GUINT16"
                    c:identifier="GSF_LE_SET_GUINT16"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="151">Store @dat in little endian order in memory pointed to by @p.</doc>
      <source-position filename="gsf-utils.h" line="158"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="153">pointer to storage</doc>
        </parameter>
        <parameter name="dat">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="154">16-bit unsigned integer</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_SET_GUINT32"
                    c:identifier="GSF_LE_SET_GUINT32"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="162">Store @dat in little endian order in memory pointed to by @p.</doc>
      <source-position filename="gsf-utils.h" line="169"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="164">pointer to storage</doc>
        </parameter>
        <parameter name="dat">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="165">32-bit unsigned integer</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_SET_GUINT64"
                    c:identifier="GSF_LE_SET_GUINT64"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="175">Store @dat in little endian order in memory pointed to by @p.</doc>
      <source-position filename="gsf-utils.h" line="182"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="177">pointer to storage</doc>
        </parameter>
        <parameter name="dat">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="178">64-bit unsigned integer</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LE_SET_GUINT8"
                    c:identifier="GSF_LE_SET_GUINT8"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.h"
           line="141">Store @dat in little endian order in memory pointed to by @p.</doc>
      <source-position filename="gsf-utils.h" line="148"/>
      <parameters>
        <parameter name="p">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="143">pointer to storage</doc>
        </parameter>
        <parameter name="dat">
          <doc xml:space="preserve"
               filename="gsf-utils.h"
               line="144">8-bit unsigned integer</doc>
        </parameter>
      </parameters>
    </function-macro>
    <constant name="META_NAME_BYTE_COUNT"
              value="gsf:byte-count"
              c:type="GSF_META_NAME_BYTE_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="107">(Integer) Count of bytes in the document.</doc>
      <source-position filename="gsf-meta-names.h" line="112"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_CASE_SENSITIVE"
              value="gsf:case-sensitivity"
              c:type="GSF_META_NAME_CASE_SENSITIVE">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="114">(Unsigned Integer) Identifier representing the case-sensitiveness.
&lt;note&gt;of what ?? why is it an integer ??&lt;/note&gt;</doc>
      <source-position filename="gsf-meta-names.h" line="120"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_CATEGORY"
              value="gsf:category"
              c:type="GSF_META_NAME_CATEGORY">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="122">(String) Category of the document. &lt;note&gt;example???&lt;/note&gt;</doc>
      <source-position filename="gsf-meta-names.h" line="127"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_CELL_COUNT"
              value="gsf:cell-count"
              c:type="GSF_META_NAME_CELL_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="129">(Integer) Count of cells in the spread-sheet document, if appropriate.</doc>
      <source-position filename="gsf-meta-names.h" line="134"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_CHARACTER_COUNT"
              value="gsf:character-count"
              c:type="GSF_META_NAME_CHARACTER_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="136">(Integer) Count of characters in the document.

TODO See how to sync this with ODF's document-statistic</doc>
      <source-position filename="gsf-meta-names.h" line="143"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_CODEPAGE"
              value="msole:codepage"
              c:type="GSF_META_NAME_CODEPAGE">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="81">(UnsignedShort) The MS codepage to encode strings for metadata
1.14.0	Clarified that this is unique from _NAME_CODEPAGE in msole</doc>
      <source-position filename="gsf-meta-names.h" line="87"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_COMPANY"
              value="dc:publisher"
              c:type="GSF_META_NAME_COMPANY">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="434">(String) Name of the company/organization that the "CREATOR" entity is
associated with.

1.14.1	Moved from "gsf:company" to "dc:publisher".</doc>
      <source-position filename="gsf-meta-names.h" line="442"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_CREATOR"
              value="dc:creator"
              c:type="GSF_META_NAME_CREATOR">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="38">(String) An entity primarily responsible for making the content of the
resource typically a person, organization, or service.

1.14.0	Moved from "gsf" to "dc".</doc>
      <source-position filename="gsf-meta-names.h" line="46"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_DATE_CREATED"
              value="meta:creation-date"
              c:type="GSF_META_NAME_DATE_CREATED">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="388">(Date as ISO String) A date associated with an event in the life cycle of
the resource (creation/publication date).
Moved from gsf:date-created to meta:creation-date. This way can be used correctly
by OpenDocument and Gnumeric.</doc>
      <source-position filename="gsf-meta-names.h" line="396"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_DATE_MODIFIED"
              value="dc:date"
              c:type="GSF_META_NAME_DATE_MODIFIED">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="48">(GsfTimestamp) The last time this document was saved.

1.14.0	Moved from dc:date-modified to dc:date.</doc>
      <source-position filename="gsf-meta-names.h" line="55"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_DESCRIPTION"
              value="dc:description"
              c:type="GSF_META_NAME_DESCRIPTION">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="57">(String) An account of the content of the resource.</doc>
      <source-position filename="gsf-meta-names.h" line="62"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_DICTIONARY"
              value="gsf:dictionary"
              c:type="GSF_META_NAME_DICTIONARY">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="152">(None) Reserved name (PID) for Dictionary</doc>
      <source-position filename="gsf-meta-names.h" line="157"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_DOCUMENT_PARTS"
              value="gsf:document-parts"
              c:type="GSF_META_NAME_DOCUMENT_PARTS">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="159">(Vector of strings) Names of the 'interesting' parts of the document.  In
spreadsheets this is a list of the sheet names, and the named expressions.
From MSOLE</doc>
      <source-position filename="gsf-meta-names.h" line="166"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_EDITING_DURATION"
              value="meta:editing-duration"
              c:type="GSF_META_NAME_EDITING_DURATION">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="398">(Date as ISO String) The total-time taken until the last modification.
Moved from "gsf" to "meta". This way can be used correctly by OpenDocument
and Gnumeric.</doc>
      <source-position filename="gsf-meta-names.h" line="405"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_GENERATOR"
              value="meta:generator"
              c:type="GSF_META_NAME_GENERATOR">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="407">(String) The application that generated this document. AbiWord, Gnumeric,
etc...

1.14.0 Moved from "gsf" to "meta".</doc>
      <source-position filename="gsf-meta-names.h" line="415"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_HEADING_PAIRS"
              value="gsf:heading-pairs"
              c:type="GSF_META_NAME_HEADING_PAIRS">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="168">(Vector of string value pairs stored in alternating elements) Store the
counts of objects in the document as names 'worksheet' and count '4'
From MSOLE</doc>
      <source-position filename="gsf-meta-names.h" line="175"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_HIDDEN_SLIDE_COUNT"
              value="gsf:hidden-slide-count"
              c:type="GSF_META_NAME_HIDDEN_SLIDE_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="177">(Integer) Count of hidden-slides in the presentation document.</doc>
      <source-position filename="gsf-meta-names.h" line="182"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_IMAGE_COUNT"
              value="gsf:image-count"
              c:type="GSF_META_NAME_IMAGE_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="184">(Integer) Count of images in the document, if appropriate.</doc>
      <source-position filename="gsf-meta-names.h" line="189"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_INITIAL_CREATOR"
              value="meta:initial-creator"
              c:type="GSF_META_NAME_INITIAL_CREATOR">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="425">(String) Specifies the name of the person who created the document
initially.
1.14.0 Moved from "gsf" to "meta".</doc>
      <source-position filename="gsf-meta-names.h" line="432"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_KEYWORD"
              value="meta:keyword"
              c:type="GSF_META_NAME_KEYWORD">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="417">(String) Searchable, indexable keywords. Similar to PDF keywords or HTML's
meta block.</doc>
      <source-position filename="gsf-meta-names.h" line="423"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_KEYWORDS"
              value="dc:keywords"
              c:type="GSF_META_NAME_KEYWORDS">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="64">(GsfDocPropVector of String) Searchable, indexable keywords. Similar to PDF
keywords or HTML's meta block.</doc>
      <source-position filename="gsf-meta-names.h" line="70"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_LANGUAGE"
              value="dc:language"
              c:type="GSF_META_NAME_LANGUAGE">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="72">(String) The locale language of the intellectual content of the resource
	(basically xx_YY form for us).
1.14.0	Clarified that this is unique from _NAME_CODEPAGE in msole</doc>
      <source-position filename="gsf-meta-names.h" line="79"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_LAST_PRINTED"
              value="gsf:last-printed"
              c:type="GSF_META_NAME_LAST_PRINTED">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="452">(GSF_META_NAME_HEADING_PAIRS) The last time this document was printed.

1.14.0	Moved from "gsf" to "dc".
1.14.1	Moved back to "gsf" from "dc".</doc>
      <source-position filename="gsf-meta-names.h" line="460"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_LAST_SAVED_BY"
              value="gsf:last-saved-by"
              c:type="GSF_META_NAME_LAST_SAVED_BY">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="191">(String) The entity that made the last change to the document, typically a
person, organization, or service.</doc>
      <source-position filename="gsf-meta-names.h" line="197"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_LINE_COUNT"
              value="gsf:line-count"
              c:type="GSF_META_NAME_LINE_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="262">(Integer) Count of liness in the document.</doc>
      <source-position filename="gsf-meta-names.h" line="267"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_LINKS_DIRTY"
              value="gsf:links-dirty"
              c:type="GSF_META_NAME_LINKS_DIRTY">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="199">(Boolean) ???????</doc>
      <source-position filename="gsf-meta-names.h" line="204"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_LOCALE_SYSTEM_DEFAULT"
              value="gsf:default-locale"
              c:type="GSF_META_NAME_LOCALE_SYSTEM_DEFAULT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="206">(Unsigned Integer) Identifier representing the default system locale.</doc>
      <source-position filename="gsf-meta-names.h" line="211"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_MANAGER"
              value="gsf:manager"
              c:type="GSF_META_NAME_MANAGER">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="213">(String) Name of the manager of "CREATOR" entity.</doc>
      <source-position filename="gsf-meta-names.h" line="218"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_MM_CLIP_COUNT"
              value="gsf:MM-clip-count"
              c:type="GSF_META_NAME_MM_CLIP_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="269">(Integer) Count of "multi-media" clips in the document.</doc>
      <source-position filename="gsf-meta-names.h" line="274"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_MSOLE_UNKNOWN_17"
              value="msole:unknown-doc-17"
              c:type="GSF_META_NAME_MSOLE_UNKNOWN_17">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="336">(Unknown) User-defined name</doc>
      <source-position filename="gsf-meta-names.h" line="341"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_MSOLE_UNKNOWN_18"
              value="msole:unknown-doc-18"
              c:type="GSF_META_NAME_MSOLE_UNKNOWN_18">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="343">(Unknown) User-defined name</doc>
      <source-position filename="gsf-meta-names.h" line="348"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_MSOLE_UNKNOWN_19"
              value="msole:unknown-doc-19"
              c:type="GSF_META_NAME_MSOLE_UNKNOWN_19">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="350">(Boolean) User-defined name</doc>
      <source-position filename="gsf-meta-names.h" line="355"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_MSOLE_UNKNOWN_20"
              value="msole:unknown-doc-20"
              c:type="GSF_META_NAME_MSOLE_UNKNOWN_20">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="357">(Unknown) User-defined name</doc>
      <source-position filename="gsf-meta-names.h" line="362"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_MSOLE_UNKNOWN_21"
              value="msole:unknown-doc-21"
              c:type="GSF_META_NAME_MSOLE_UNKNOWN_21">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="364">(Unknown) User-defined name</doc>
      <source-position filename="gsf-meta-names.h" line="369"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_MSOLE_UNKNOWN_22"
              value="msole:unknown-doc-22"
              c:type="GSF_META_NAME_MSOLE_UNKNOWN_22">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="371">(Boolean) User-defined name</doc>
      <source-position filename="gsf-meta-names.h" line="376"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_MSOLE_UNKNOWN_23"
              value="msole:unknown-doc-23"
              c:type="GSF_META_NAME_MSOLE_UNKNOWN_23">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="378">(i4) User-defined name</doc>
      <source-position filename="gsf-meta-names.h" line="383"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_NOTE_COUNT"
              value="gsf:note-count"
              c:type="GSF_META_NAME_NOTE_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="276">(Integer) Count of "notes" in the document.</doc>
      <source-position filename="gsf-meta-names.h" line="281"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_OBJECT_COUNT"
              value="gsf:object-count"
              c:type="GSF_META_NAME_OBJECT_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="283">(Integer) Count of objects (OLE and other graphics) in the document, if
appropriate.</doc>
      <source-position filename="gsf-meta-names.h" line="289"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_PAGE_COUNT"
              value="gsf:page-count"
              c:type="GSF_META_NAME_PAGE_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="291">(Integer) Count of pages in the document, if appropriate.</doc>
      <source-position filename="gsf-meta-names.h" line="296"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_PARAGRAPH_COUNT"
              value="gsf:paragraph-count"
              c:type="GSF_META_NAME_PARAGRAPH_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="298">(Integer) Count of paragraphs in the document, if appropriate.</doc>
      <source-position filename="gsf-meta-names.h" line="303"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_PRESENTATION_FORMAT"
              value="gsf:presentation-format"
              c:type="GSF_META_NAME_PRESENTATION_FORMAT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="220">(String) Type of presentation, like "On-screen Show", "SlideView" etc.</doc>
      <source-position filename="gsf-meta-names.h" line="225"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_PRINTED_BY"
              value="meta:printed-by"
              c:type="GSF_META_NAME_PRINTED_BY">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="462">(String) Specifies the name of the last person who printed the document.

1.14.0	Moved from "gsf" to "meta".</doc>
      <source-position filename="gsf-meta-names.h" line="469"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_PRINT_DATE"
              value="meta:print-date"
              c:type="GSF_META_NAME_PRINT_DATE">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="444">(GsfTimestamp) Specifies the date and time when the document was last
printed.</doc>
      <source-position filename="gsf-meta-names.h" line="450"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_REVISION_COUNT"
              value="meta:editing-cycles"
              c:type="GSF_META_NAME_REVISION_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="471">(Integer) Count of revision on the document, if appropriate.
Moved from gsf:revision-count to meta:editing-cycles. This way can be used
correctly by OpenDocument and Gnumeric.</doc>
      <source-position filename="gsf-meta-names.h" line="478"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_SCALE"
              value="gsf:scale"
              c:type="GSF_META_NAME_SCALE">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="227">(Boolean) ?????</doc>
      <source-position filename="gsf-meta-names.h" line="232"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_SECURITY"
              value="gsf:security"
              c:type="GSF_META_NAME_SECURITY">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="234">(Integer) Level of security.

&lt;informaltable frame="none" role="params"&gt;
&lt;tgroup cols="2"&gt;
&lt;thead&gt;
&lt;row&gt;&lt;entry align="left"&gt;Level&lt;/entry&gt;&lt;entry&gt;Value&lt;/entry&gt;&lt;/row&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;row&gt;&lt;entry&gt;None&lt;/entry&gt;&lt;entry&gt;0&lt;/entry&gt;&lt;/row&gt;
&lt;row&gt;&lt;entry&gt;Password protected&lt;/entry&gt;&lt;entry&gt;1&lt;/entry&gt;&lt;/row&gt;
&lt;row&gt;&lt;entry&gt;Read-only recommended&lt;/entry&gt;&lt;entry&gt;2&lt;/entry&gt;&lt;/row&gt;
&lt;row&gt;&lt;entry&gt;Read-only enforced&lt;/entry&gt;&lt;entry&gt;3&lt;/entry&gt;&lt;/row&gt;
&lt;row&gt;&lt;entry&gt;Locked for annotations&lt;/entry&gt;&lt;entry&gt;4&lt;/entry&gt;&lt;/row&gt;
&lt;/tbody&gt;&lt;/tgroup&gt;&lt;/informaltable&gt;</doc>
      <source-position filename="gsf-meta-names.h" line="252"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_SLIDE_COUNT"
              value="gsf:slide-count"
              c:type="GSF_META_NAME_SLIDE_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="305">(Integer) Count of slides in the presentation document.</doc>
      <source-position filename="gsf-meta-names.h" line="310"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_SPREADSHEET_COUNT"
              value="gsf:spreadsheet-count"
              c:type="GSF_META_NAME_SPREADSHEET_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="312">(Integer) Count of pages in the document, if appropriate.</doc>
      <source-position filename="gsf-meta-names.h" line="317"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_STATUS"
              value="gsf:content-status"
              c:type="GSF_META_NAME_STATUS">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="145">(String) Current status of the content. Can be related to signature or user set in the document.</doc>
      <source-position filename="gsf-meta-names.h" line="150"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_SUBJECT"
              value="dc:subject"
              c:type="GSF_META_NAME_SUBJECT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="89">(String) The topic of the content of the resource,
&lt;emphasis&gt;typically&lt;/emphasis&gt; including keywords.</doc>
      <source-position filename="gsf-meta-names.h" line="95"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_TABLE_COUNT"
              value="gsf:table-count"
              c:type="GSF_META_NAME_TABLE_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="319">(Integer) Count of tables in the document, if appropriate.</doc>
      <source-position filename="gsf-meta-names.h" line="324"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_TEMPLATE"
              value="meta:template"
              c:type="GSF_META_NAME_TEMPLATE">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="480">(String) The template file that is been used to generate this document.

1.14.0 Moved from "gsf" to "meta"</doc>
      <source-position filename="gsf-meta-names.h" line="487"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_THUMBNAIL"
              value="gsf:thumbnail"
              c:type="GSF_META_NAME_THUMBNAIL">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="254">(GsfClipData) Thumbnail data of the document, typically a
preview image of the document.</doc>
      <source-position filename="gsf-meta-names.h" line="260"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_TITLE"
              value="dc:title"
              c:type="GSF_META_NAME_TITLE">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="97">(String) A formal name given to the resource.</doc>
      <source-position filename="gsf-meta-names.h" line="102"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="META_NAME_WORD_COUNT"
              value="gsf:word-count"
              c:type="GSF_META_NAME_WORD_COUNT">
      <doc xml:space="preserve"
           filename="gsf-meta-names.h"
           line="326">(Integer) Count of words in the document.</doc>
      <source-position filename="gsf-meta-names.h" line="331"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <record name="MSOleSortingKey"
            c:type="GsfMSOleSortingKey"
            opaque="1"
            glib:type-name="GsfMSOleSortingKey"
            glib:get-type="gsf_msole_sorting_key_get_type"
            c:symbol-prefix="msole_sorting_key">
      <source-position filename="gsf-msole-utils.h" line="61"/>
      <constructor name="new" c:identifier="gsf_msole_sorting_key_new">
        <source-position filename="gsf-msole-utils.h" line="63"/>
        <return-value transfer-ownership="full">
          <type name="MSOleSortingKey" c:type="GsfMSOleSortingKey*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="cmp" c:identifier="gsf_msole_sorting_key_cmp">
        <source-position filename="gsf-msole-utils.h" line="65"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <type name="MSOleSortingKey" c:type="const GsfMSOleSortingKey*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <type name="MSOleSortingKey" c:type="const GsfMSOleSortingKey*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gsf_msole_sorting_key_free">
        <source-position filename="gsf-msole-utils.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sk" transfer-ownership="none">
            <type name="MSOleSortingKey" c:type="GsfMSOleSortingKey*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="ODFOut"
           c:symbol-prefix="odf_out"
           c:type="GsfODFOut"
           parent="XMLOut"
           glib:type-name="GsfODFOut"
           glib:get-type="gsf_odf_out_get_type"
           glib:type-struct="ODFOutClass">
      <source-position filename="gsf-opendoc-utils.h" line="43"/>
      <method name="get_version" c:identifier="gsf_odf_out_get_version">
        <source-position filename="gsf-opendoc-utils.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="oout" transfer-ownership="none">
            <type name="ODFOut" c:type="GsfODFOut*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version_string"
              c:identifier="gsf_odf_out_get_version_string">
        <source-position filename="gsf-opendoc-utils.h" line="59"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="oout" transfer-ownership="none">
            <type name="ODFOut" c:type="GsfODFOut*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="odf-version"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="100">
        <type name="gint" c:type="gint"/>
      </property>
      <field name="base">
        <type name="XMLOut" c:type="GsfXMLOut"/>
      </field>
      <field name="priv">
        <type name="gpointer" c:type="_GsfODFOutPrivate*"/>
      </field>
    </class>
    <record name="ODFOutClass"
            c:type="GsfODFOutClass"
            glib:is-gtype-struct-for="ODFOut">
      <source-position filename="gsf-opendoc-utils.h" line="43"/>
      <field name="base">
        <type name="XMLOutClass" c:type="GsfXMLOutClass"/>
      </field>
      <field name="_gsf_reserved1" introspectable="0">
        <callback name="_gsf_reserved1">
          <source-position filename="gsf-opendoc-utils.h" line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gsf_reserved2" introspectable="0">
        <callback name="_gsf_reserved2">
          <source-position filename="gsf-opendoc-utils.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gsf_reserved3" introspectable="0">
        <callback name="_gsf_reserved3">
          <source-position filename="gsf-opendoc-utils.h" line="41"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gsf_reserved4" introspectable="0">
        <callback name="_gsf_reserved4">
          <source-position filename="gsf-opendoc-utils.h" line="42"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <function-macro name="ODF_OUT"
                    c:identifier="GSF_ODF_OUT"
                    introspectable="0">
      <source-position filename="gsf-opendoc-utils.h" line="53"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTFILE"
                    c:identifier="GSF_OUTFILE"
                    introspectable="0">
      <source-position filename="gsf-outfile.h" line="30"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTFILE_CLASS"
                    c:identifier="GSF_OUTFILE_CLASS"
                    introspectable="0">
      <source-position filename="gsf-outfile-impl.h" line="41"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTFILE_MSOLE"
                    c:identifier="GSF_OUTFILE_MSOLE"
                    introspectable="0">
      <source-position filename="gsf-outfile-msole.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTFILE_OPEN_PKG"
                    c:identifier="GSF_OUTFILE_OPEN_PKG"
                    introspectable="0">
      <source-position filename="gsf-open-pkg-utils.h" line="67"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTFILE_STDIO"
                    c:identifier="GSF_OUTFILE_STDIO"
                    introspectable="0">
      <source-position filename="gsf-outfile-stdio.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTFILE_ZIP"
                    c:identifier="GSF_OUTFILE_ZIP"
                    introspectable="0">
      <source-position filename="gsf-outfile-zip.h" line="47"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTPUT" c:identifier="GSF_OUTPUT" introspectable="0">
      <source-position filename="gsf-output.h" line="60"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTPUT_BZIP"
                    c:identifier="GSF_OUTPUT_BZIP"
                    introspectable="0">
      <source-position filename="gsf-output-bzip.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTPUT_CLASS"
                    c:identifier="GSF_OUTPUT_CLASS"
                    introspectable="0">
      <source-position filename="gsf-output.h" line="42"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTPUT_CSV"
                    c:identifier="GSF_OUTPUT_CSV"
                    introspectable="0">
      <source-position filename="gsf-output-csv.h" line="68"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTPUT_GIO"
                    c:identifier="GSF_OUTPUT_GIO"
                    introspectable="0">
      <source-position filename="gsf-output-gio.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTPUT_GZIP"
                    c:identifier="GSF_OUTPUT_GZIP"
                    introspectable="0">
      <source-position filename="gsf-output-gzip.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTPUT_ICONV"
                    c:identifier="GSF_OUTPUT_ICONV"
                    introspectable="0">
      <source-position filename="gsf-output-iconv.h" line="35"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTPUT_IOCHANNEL"
                    c:identifier="GSF_OUTPUT_IOCHANNEL"
                    introspectable="0">
      <source-position filename="gsf-output-iochannel.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTPUT_MEMORY"
                    c:identifier="GSF_OUTPUT_MEMORY"
                    introspectable="0">
      <source-position filename="gsf-output-memory.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OUTPUT_STDIO"
                    c:identifier="GSF_OUTPUT_STDIO"
                    introspectable="0">
      <source-position filename="gsf-output-stdio.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <callback name="OpenPkgIter" c:type="GsfOpenPkgIter">
      <source-position filename="gsf-open-pkg-utils.h" line="32"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="opkg" transfer-ownership="none">
          <type name="Input" c:type="GsfInput*"/>
        </parameter>
        <parameter name="rel" transfer-ownership="none">
          <type name="OpenPkgRel" c:type="const GsfOpenPkgRel*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="OpenPkgRel" c:type="GsfOpenPkgRel" disguised="1" opaque="1">
      <source-position filename="gsf-open-pkg-utils.h" line="30"/>
      <method name="get_target" c:identifier="gsf_open_pkg_rel_get_target">
        <source-position filename="gsf-open-pkg-utils.h" line="37"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="144">The target of @rel.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="142">#GsfOpenPkgRel</doc>
            <type name="OpenPkgRel" c:type="const GsfOpenPkgRel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_type" c:identifier="gsf_open_pkg_rel_get_type">
        <source-position filename="gsf-open-pkg-utils.h" line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="157">The type of @rel.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="155">#GsfOpenPkgRel</doc>
            <type name="OpenPkgRel" c:type="const GsfOpenPkgRel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_extern" c:identifier="gsf_open_pkg_rel_is_extern">
        <source-position filename="gsf-open-pkg-utils.h" line="36"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="131">%TRUE if @rel has mode 'External'</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="rel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="129">#GsfOpenPkgRel</doc>
            <type name="OpenPkgRel" c:type="const GsfOpenPkgRel*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="OpenPkgRels"
            c:type="GsfOpenPkgRels"
            disguised="1"
            opaque="1">
      <source-position filename="gsf-open-pkg-utils.h" line="31"/>
    </record>
    <class name="Outfile"
           c:symbol-prefix="outfile"
           c:type="GsfOutfile"
           parent="Output"
           abstract="1"
           glib:type-name="GsfOutfile"
           glib:get-type="gsf_outfile_get_type"
           glib:type-struct="OutfileClass">
      <doc xml:space="preserve"
           filename="gsf-fwd.h"
           line="51">Class representing an output file, counterpart to #GsfInfile.</doc>
      <source-position filename="gsf-outfile-impl.h" line="39"/>
      <virtual-method name="new_child"
                      invoker="new_child_varg"
                      introspectable="0">
        <source-position filename="gsf-outfile-impl.h" line="35"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-outfile.c"
               line="80">a newly created child</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="outfile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile.c"
                 line="74">A #GsfOutfile</doc>
            <type name="Outfile" c:type="GsfOutfile*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile.c"
                 line="75">The name of the new child to create</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="is_dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile.c"
                 line="76">%TRUE to create a directory, %FALSE to create a plain file</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="args" transfer-ownership="none">
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="new_child" c:identifier="gsf_outfile_new_child">
        <source-position filename="gsf-outfile.h" line="36"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-outfile.c"
               line="34">a newly created child</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="outfile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile.c"
                 line="30">A #GsfOutfile</doc>
            <type name="Outfile" c:type="GsfOutfile*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile.c"
                 line="31">The name of the new child to create</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="is_dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile.c"
                 line="32">%TRUE to create a directory, %FALSE to create a plain file</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_child_full"
              c:identifier="gsf_outfile_new_child_full"
              introspectable="0">
        <source-position filename="gsf-outfile.h" line="38"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-outfile.c"
               line="51">a newly created child</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="outfile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile.c"
                 line="45">A #GsfOutfile</doc>
            <type name="Outfile" c:type="GsfOutfile*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile.c"
                 line="46">The name of the new child to create</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="is_dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile.c"
                 line="47">%TRUE to create a directory, %FALSE to create a plain file</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="new_child_varg"
              c:identifier="gsf_outfile_new_child_varg"
              introspectable="0">
        <source-position filename="gsf-outfile.h" line="42"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-outfile.c"
               line="80">a newly created child</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="outfile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile.c"
                 line="74">A #GsfOutfile</doc>
            <type name="Outfile" c:type="GsfOutfile*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile.c"
                 line="75">The name of the new child to create</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="is_dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile.c"
                 line="76">%TRUE to create a directory, %FALSE to create a plain file</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="args" transfer-ownership="none">
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_pkg_add_rel"
              c:identifier="gsf_outfile_open_pkg_add_rel">
        <doc xml:space="preserve"
             filename="gsf-open-pkg-utils.c"
             line="909">A convenience wrapper to create a child in @dir of @content_type then create
a @type relation to @parent</doc>
        <source-position filename="gsf-open-pkg-utils.h" line="82"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="920">the new part.</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="911">#GsfOutfile</doc>
            <type name="Outfile" c:type="GsfOutfile*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="912">target name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="913">non-%NULL content type</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="914">#GsfOutfile</doc>
            <type name="Outfile" c:type="GsfOutfile*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="915">target type</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Output" c:type="GsfOutput"/>
      </field>
    </class>
    <record name="OutfileClass"
            c:type="GsfOutfileClass"
            glib:is-gtype-struct-for="Outfile">
      <source-position filename="gsf-outfile-impl.h" line="39"/>
      <field name="output_class">
        <type name="OutputClass" c:type="GsfOutputClass"/>
      </field>
      <field name="new_child" introspectable="0">
        <callback name="new_child" introspectable="0">
          <source-position filename="gsf-outfile-impl.h" line="35"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gsf-outfile.c"
                 line="80">a newly created child</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </return-value>
          <parameters>
            <parameter name="outfile" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-outfile.c"
                   line="74">A #GsfOutfile</doc>
              <type name="Outfile" c:type="GsfOutfile*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-outfile.c"
                   line="75">The name of the new child to create</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="is_dir" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-outfile.c"
                   line="76">%TRUE to create a directory, %FALSE to create a plain file</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="first_property_name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="args" transfer-ownership="none">
              <type name="va_list" c:type="va_list"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="OutfileMSOle"
           c:symbol-prefix="outfile_msole"
           c:type="GsfOutfileMSOle"
           parent="Outfile"
           glib:type-name="GsfOutfileMSOle"
           glib:get-type="gsf_outfile_msole_get_type">
      <constructor name="new" c:identifier="gsf_outfile_msole_new">
        <doc xml:space="preserve"
             filename="gsf-outfile-msole.c"
             line="962">Creates the root directory of an MS OLE file and manages the addition of
children.

&lt;note&gt;This adds a reference to @sink.&lt;/note&gt;</doc>
        <source-position filename="gsf-outfile-msole.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-outfile-msole.c"
               line="971">the new ole file handler.</doc>
          <type name="Outfile" c:type="GsfOutfile*"/>
        </return-value>
        <parameters>
          <parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-msole.c"
                 line="964">a #GsfOutput to hold the OLE2 file</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_full" c:identifier="gsf_outfile_msole_new_full">
        <doc xml:space="preserve"
             filename="gsf-outfile-msole.c"
             line="898">Creates the root directory of an MS OLE file and manages the addition of
children.

&lt;note&gt;This adds a reference to @sink.&lt;/note&gt;</doc>
        <source-position filename="gsf-outfile-msole.h" line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-outfile-msole.c"
               line="909">the new ole file handler.</doc>
          <type name="Outfile" c:type="GsfOutfile*"/>
        </return-value>
        <parameters>
          <parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-msole.c"
                 line="900">a #GsfOutput to hold the OLE2 file.</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </parameter>
          <parameter name="bb_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-msole.c"
                 line="901">size of large blocks.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="sb_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-msole.c"
                 line="902">size of small blocks.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="set_class_id"
              c:identifier="gsf_outfile_msole_set_class_id">
        <doc xml:space="preserve"
             filename="gsf-outfile-msole.c"
             line="980">Write @clsid to the directory associated with @ole.</doc>
        <source-position filename="gsf-outfile-msole.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-outfile-msole.c"
               line="987">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ole" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-msole.c"
                 line="982">a #GsfOutfileMSOle</doc>
            <type name="OutfileMSOle" c:type="GsfOutfileMSOle*"/>
          </instance-parameter>
          <parameter name="clsid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-msole.c"
                 line="983">Identifier (often a GUID in MS Windows apps)</doc>
            <array zero-terminated="0" c:type="const guint8*" fixed-size="16">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <property name="big-block-size"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="512">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="sink"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Output"/>
      </property>
      <property name="small-block-size"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="64">
        <type name="guint" c:type="guint"/>
      </property>
    </class>
    <class name="OutfileOpenPkg"
           c:symbol-prefix="outfile_open_pkg"
           c:type="GsfOutfileOpenPkg"
           parent="Outfile"
           glib:type-name="GsfOutfileOpenPkg"
           glib:get-type="gsf_outfile_open_pkg_get_type">
      <constructor name="new" c:identifier="gsf_outfile_open_pkg_new">
        <doc xml:space="preserve"
             filename="gsf-open-pkg-utils.c"
             line="797">Convenience routine to create a GsfOutfileOpenPkg inside @sink.</doc>
        <source-position filename="gsf-open-pkg-utils.h" line="73"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="803">a GsfOutfile that the caller is responsible for.</doc>
          <type name="Outfile" c:type="GsfOutfile*"/>
        </return-value>
        <parameters>
          <parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="799">#GsfOutfile</doc>
            <type name="Outfile" c:type="GsfOutfile*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_extern_rel"
              c:identifier="gsf_outfile_open_pkg_add_extern_rel">
        <doc xml:space="preserve"
             filename="gsf-open-pkg-utils.c"
             line="937">Add an external relation to @parent.</doc>
        <source-position filename="gsf-open-pkg-utils.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="945">The id of the relation.  The string is
managed by the parent and should not be changed or freed by the
caller.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="parent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="939">#GsfOutfileOpenPkg</doc>
            <type name="OutfileOpenPkg" c:type="GsfOutfileOpenPkg*"/>
          </instance-parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="940">target type</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="941">target content</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="relate" c:identifier="gsf_outfile_open_pkg_relate">
        <doc xml:space="preserve"
             filename="gsf-open-pkg-utils.c"
             line="861">Create a relationship between @child and @parent of @type.</doc>
        <source-position filename="gsf-open-pkg-utils.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="869">the relID which the caller does not own
	but will live as long as @parent.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="863">#GsfOutfileOpenPkg</doc>
            <type name="OutfileOpenPkg" c:type="GsfOutfileOpenPkg*"/>
          </instance-parameter>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="864">#GsfOutfileOpenPkg</doc>
            <type name="OutfileOpenPkg" c:type="GsfOutfileOpenPkg*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="865">target type</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_type"
              c:identifier="gsf_outfile_open_pkg_set_content_type">
        <source-position filename="gsf-open-pkg-utils.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="open_pkg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="832">#GsfOutfileOpenPkg</doc>
            <type name="OutfileOpenPkg" c:type="GsfOutfileOpenPkg*"/>
          </instance-parameter>
          <parameter name="content_type" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sink" c:identifier="gsf_outfile_open_pkg_set_sink">
        <doc xml:space="preserve"
             filename="gsf-open-pkg-utils.c"
             line="813">Assigns a GsfOutput (@sink) to store the package into.</doc>
        <source-position filename="gsf-open-pkg-utils.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="open_pkg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="815">#GsfOutfileOpenPkg</doc>
            <type name="OutfileOpenPkg" c:type="GsfOutfileOpenPkg*"/>
          </instance-parameter>
          <parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-open-pkg-utils.c"
                 line="816">#GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </parameter>
        </parameters>
      </method>
      <property name="content-type"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="is-dir"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="sink"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Outfile"/>
      </property>
    </class>
    <class name="OutfileStdio"
           c:symbol-prefix="outfile_stdio"
           c:type="GsfOutfileStdio"
           parent="Outfile"
           glib:type-name="GsfOutfileStdio"
           glib:get-type="gsf_outfile_stdio_get_type">
      <constructor name="new" c:identifier="gsf_outfile_stdio_new" throws="1">
        <source-position filename="gsf-outfile-stdio.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-outfile-stdio.c"
               line="170">a new outfile or %NULL.</doc>
          <type name="Outfile" c:type="GsfOutfile*"/>
        </return-value>
        <parameters>
          <parameter name="root" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-stdio.c"
                 line="167">root directory in utf8.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_full"
                   c:identifier="gsf_outfile_stdio_new_full"
                   introspectable="0">
        <source-position filename="gsf-outfile-stdio.h" line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-outfile-stdio.c"
               line="148">a new outfile or %NULL.</doc>
          <type name="Outfile" c:type="GsfOutfile*"/>
        </return-value>
        <parameters>
          <parameter name="root" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-stdio.c"
                 line="142">root directory in utf8.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="err"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-outfile-stdio.c"
                 line="143">place to store a #GError if anything goes wrong</doc>
            <type name="GLib.Error" c:type="GError**"/>
          </parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-stdio.c"
                 line="144">name of first property to set</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-stdio.c"
                 line="145">value of first property, followed by more properties,
		%NULL-terminated</doc>
            <varargs/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_valist"
                   c:identifier="gsf_outfile_stdio_new_valist"
                   introspectable="0">
        <source-position filename="gsf-outfile-stdio.h" line="43"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-outfile-stdio.c"
               line="111">a new outfile or %NULL.</doc>
          <type name="Outfile" c:type="GsfOutfile*"/>
        </return-value>
        <parameters>
          <parameter name="root" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-stdio.c"
                 line="106">root directory in utf8.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="err"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-outfile-stdio.c"
                 line="107">place to store a #GError if anything goes wrong</doc>
            <type name="GLib.Error" c:type="GError**"/>
          </parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-stdio.c"
                 line="108">name of first property to set</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="var_args" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-stdio.c"
                 line="109">a %NULL-terminated #va_list</doc>
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </constructor>
    </class>
    <class name="OutfileZip"
           c:symbol-prefix="outfile_zip"
           c:type="GsfOutfileZip"
           parent="Outfile"
           glib:type-name="GsfOutfileZip"
           glib:get-type="gsf_outfile_zip_get_type">
      <constructor name="new" c:identifier="gsf_outfile_zip_new" throws="1">
        <doc xml:space="preserve"
             filename="gsf-outfile-zip.c"
             line="1163">Creates the root directory of a Zip file and manages the addition of
children.

&lt;note&gt;This adds a reference to @sink.&lt;/note&gt;</doc>
        <source-position filename="gsf-outfile-zip.h" line="53"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-outfile-zip.c"
               line="1173">the new zip file handler</doc>
          <type name="Outfile" c:type="GsfOutfile*"/>
        </return-value>
        <parameters>
          <parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-outfile-zip.c"
                 line="1165">a #GsfOutput to hold the ZIP file</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="set_compression_method"
              c:identifier="gsf_outfile_zip_set_compression_method">
        <source-position filename="gsf-outfile-zip.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="zip" transfer-ownership="none">
            <type name="OutfileZip" c:type="GsfOutfileZip*"/>
          </instance-parameter>
          <parameter name="method" transfer-ownership="none">
            <type name="ZipCompressionMethod"
                  c:type="GsfZipCompressionMethod"/>
          </parameter>
        </parameters>
      </method>
      <property name="compression-level"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="8">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="deflate-level"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="entry-name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="sink"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Output"/>
      </property>
      <property name="zip64"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
    </class>
    <class name="Output"
           c:symbol-prefix="output"
           c:type="GsfOutput"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="GsfOutput"
           glib:get-type="gsf_output_get_type"
           glib:type-struct="OutputClass">
      <doc xml:space="preserve"
           filename="gsf-fwd.h"
           line="44">Class representing an output stream, counterpart to #GsfInput.</doc>
      <source-position filename="gsf-output.h" line="41"/>
      <function name="error_id" c:identifier="gsf_output_error_id">
        <source-position filename="gsf-output.h" line="89"/>
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <function name="unwrap" c:identifier="gsf_output_unwrap">
        <source-position filename="gsf-output.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="618">%TRUE if the unwrapping succeeded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="wrapper" transfer-ownership="none">
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
          <parameter name="wrapee" transfer-ownership="none">
            <type name="Output" c:type="GsfOutput*"/>
          </parameter>
        </parameters>
      </function>
      <function name="wrap" c:identifier="gsf_output_wrap">
        <source-position filename="gsf-output.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="594">%TRUE if the wrapping succeeded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="wrapper" transfer-ownership="none">
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
          <parameter name="wrapee" transfer-ownership="none">
            <type name="Output" c:type="GsfOutput*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="Close" invoker="close">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="301">Close a stream.</doc>
        <source-position filename="gsf-output.h" line="33"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="307">%FALSE on error</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="303">#GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="Seek" invoker="seek">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="358">Reposition in output stream @output. @whence specifies what the offset is
relative to: the beginning of the stream (%G_SEEK_SET), current position in
the stream (%G_SEEK_CUR) or the end of the stream (%G_SEEK_END).
This function is similar to
&lt;citerefentry&gt;&lt;refentrytitle&gt;fseek&lt;/refentrytitle&gt;
&lt;manvolnum&gt;3&lt;/manvolnum&gt;&lt;/citerefentry&gt;.</doc>
        <source-position filename="gsf-output.h" line="34"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="371">%FALSE on error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="360">#GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="361">Relative amount to reposition</doc>
            <type name="gsf_off_t" c:type="gsf_off_t"/>
          </parameter>
          <parameter name="whence" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="362">What the offset is relative to.</doc>
            <type name="GLib.SeekType" c:type="GSeekType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="Vprintf" invoker="vprintf" introspectable="0">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="704">Output @args to @output using the format string @format, similar to
&lt;citerefentry&gt;&lt;refentrytitle&gt;vprintf&lt;/refentrytitle&gt;
&lt;manvolnum&gt;3&lt;/manvolnum&gt;&lt;/citerefentry&gt;.</doc>
        <source-position filename="gsf-output.h" line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="714">number of bytes printed, a negative value if not successful</doc>
          <type name="gsf_off_t" c:type="gsf_off_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="706">A #GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="707">The printf-style format string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="args" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="708">the arguments for @format</doc>
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="Write" invoker="write">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="433">Write @num_bytes of @data to @output.</doc>
        <source-position filename="gsf-output.h" line="36"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="441">%FALSE on error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="435">Output stream</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
          <parameter name="num_bytes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="436">Number of bytes to write</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="437">Data to write.</doc>
            <array length="0" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="close" c:identifier="gsf_output_close">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="301">Close a stream.</doc>
        <source-position filename="gsf-output.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="307">%FALSE on error</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="303">#GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="container" c:identifier="gsf_output_container">
        <source-position filename="gsf-output.h" line="67"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="277">@output's container</doc>
          <type name="Outfile" c:type="GsfOutfile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="Output" c:type="const GsfOutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="error" c:identifier="gsf_output_error">
        <source-position filename="gsf-output.h" line="69"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="462">the last error logged on the output</doc>
          <type name="GLib.Error" c:type="const GError*"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="Output" c:type="const GsfOutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modtime"
              c:identifier="gsf_output_get_modtime"
              glib:get-property="modtime">
        <source-position filename="gsf-output.h" line="87"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="636">A #GDateTime representing when
the output was last modified</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="634">the output stream</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_closed"
              c:identifier="gsf_output_is_closed"
              glib:get-property="is-closed">
        <source-position filename="gsf-output.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="331">%TRUE if @output has already been closed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="329">#GsfOutput</doc>
            <type name="Output" c:type="const GsfOutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="name" c:identifier="gsf_output_name">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="258">Give the name of @output.</doc>
        <source-position filename="gsf-output.h" line="66"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="264">@output's name in utf8 form.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="260">#GsfOutput</doc>
            <type name="Output" c:type="const GsfOutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="printf"
              c:identifier="gsf_output_printf"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="680">Output @Varargs to @output using the format string @format, similar to
&lt;citerefentry&gt;&lt;refentrytitle&gt;printf&lt;/refentrytitle&gt;
&lt;manvolnum&gt;3&lt;/manvolnum&gt;&lt;/citerefentry&gt;.</doc>
        <source-position filename="gsf-output.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="690">%TRUE if successful, %FALSE if not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="682">A #GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="683">The printf-style format string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="684">the arguments for @format</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="puts" c:identifier="gsf_output_puts">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="766">Like fputs, this assumes that the line already ends with a newline</doc>
        <source-position filename="gsf-output.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="773">%TRUE if successful, %FALSE if not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="768">A #GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="769">Nul terminated string to write</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="seek" c:identifier="gsf_output_seek">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="358">Reposition in output stream @output. @whence specifies what the offset is
relative to: the beginning of the stream (%G_SEEK_SET), current position in
the stream (%G_SEEK_CUR) or the end of the stream (%G_SEEK_END).
This function is similar to
&lt;citerefentry&gt;&lt;refentrytitle&gt;fseek&lt;/refentrytitle&gt;
&lt;manvolnum&gt;3&lt;/manvolnum&gt;&lt;/citerefentry&gt;.</doc>
        <source-position filename="gsf-output.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="371">%FALSE on error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="360">#GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="361">Relative amount to reposition</doc>
            <type name="gsf_off_t" c:type="gsf_off_t"/>
          </parameter>
          <parameter name="whence" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="362">What the offset is relative to.</doc>
            <type name="GLib.SeekType" c:type="GSeekType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_container"
              c:identifier="gsf_output_set_container"
              glib:set-property="container">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="521">&lt;note&gt;This is a utility routine that should only be used by derived
outputs.&lt;/note&gt;</doc>
        <source-position filename="gsf-output-impl.h" line="32"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="529">%TRUE if the assignment was ok.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="523">#GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
          <parameter name="container"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="524">#GsfOutfile</doc>
            <type name="Outfile" c:type="GsfOutfile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_error"
              c:identifier="gsf_output_set_error"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="544">&lt;note&gt;This is a utility routine that should only be used by derived
outputs.&lt;/note&gt;</doc>
        <source-position filename="gsf-output.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="554">Always returns %FALSE to facilitate its use.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="546">#GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
          <parameter name="code" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="547">The error id</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="548">printf style format string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="549">arguments for @format</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modtime" c:identifier="gsf_output_set_modtime">
        <source-position filename="gsf-output-impl.h" line="33"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="652">%TRUE if the assignment was ok.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="649">the output stream</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
          <parameter name="modtime"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="650">the new modification time.</doc>
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="gsf_output_set_name"
              glib:set-property="name">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="471">&lt;note&gt;This is a utility routine that should only be used by derived
outputs.&lt;/note&gt;</doc>
        <source-position filename="gsf-output-impl.h" line="30"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="479">%TRUE if the assignment was ok.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="473">#GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="474">the new name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name_from_filename"
              c:identifier="gsf_output_set_name_from_filename">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="495">&lt;note&gt;This is a utility routine that should only be used by derived
outputs.&lt;/note&gt;</doc>
        <source-position filename="gsf-output-impl.h" line="31"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="503">%TRUE if the assignment was ok.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="497">the output stream</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
          <parameter name="filename"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="498">the (fs-sys encoded) filename</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="size" c:identifier="gsf_output_size">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="286">Determine the size of the output stream @output.</doc>
        <source-position filename="gsf-output.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="292">the size of the output, or -1 if it does not have a size.</doc>
          <type name="gsf_off_t" c:type="gsf_off_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="288">#GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="tell" c:identifier="gsf_output_tell">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="340">Tell the current position in @output, similar to
&lt;citerefentry&gt;&lt;refentrytitle&gt;ftell&lt;/refentrytitle&gt;
&lt;manvolnum&gt;3&lt;/manvolnum&gt;&lt;/citerefentry&gt;.</doc>
        <source-position filename="gsf-output.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="348">the current position in the file</doc>
          <type name="gsf_off_t" c:type="gsf_off_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="342">#GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="vprintf"
              c:identifier="gsf_output_vprintf"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="704">Output @args to @output using the format string @format, similar to
&lt;citerefentry&gt;&lt;refentrytitle&gt;vprintf&lt;/refentrytitle&gt;
&lt;manvolnum&gt;3&lt;/manvolnum&gt;&lt;/citerefentry&gt;.</doc>
        <source-position filename="gsf-output.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="714">number of bytes printed, a negative value if not successful</doc>
          <type name="gsf_off_t" c:type="gsf_off_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="706">A #GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="707">The printf-style format string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="args" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="708">the arguments for @format</doc>
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </method>
      <method name="write" c:identifier="gsf_output_write">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="433">Write @num_bytes of @data to @output.</doc>
        <source-position filename="gsf-output.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-output.c"
               line="441">%FALSE on error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="435">Output stream</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </instance-parameter>
          <parameter name="num_bytes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="436">Number of bytes to write</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="437">Data to write.</doc>
            <array length="0" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <property name="container"
                writable="1"
                transfer-ownership="none"
                setter="set_container">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="239">The container, optionally %NULL, in which this output lives.</doc>
        <type name="Outfile"/>
      </property>
      <property name="is-closed"
                transfer-ownership="none"
                getter="is_closed"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="189">%TRUE if the output has been closed.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="modtime"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_modtime">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="219">The time the output was last updated.  This must be set on object
construction and represents the timestamp to put on the resulting
file or #GsfOutfile member.  Not all derived classes will actually
do anything with this property.</doc>
        <type name="GLib.DateTime"/>
      </property>
      <property name="name"
                writable="1"
                transfer-ownership="none"
                setter="set_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="position" transfer-ownership="none" default-value="0">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="204">The current position in the output.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="size" transfer-ownership="none" default-value="0">
        <doc xml:space="preserve"
             filename="gsf-output.c"
             line="174">The current file size.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <field name="g_object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="cur_size">
        <type name="gsf_off_t" c:type="gsf_off_t"/>
      </field>
      <field name="cur_offset">
        <type name="gsf_off_t" c:type="gsf_off_t"/>
      </field>
      <field name="name">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="wrapped_by">
        <type name="GObject.Object" c:type="GObject*"/>
      </field>
      <field name="container">
        <type name="Outfile" c:type="GsfOutfile*"/>
      </field>
      <field name="err">
        <type name="GLib.Error" c:type="GError*"/>
      </field>
      <field name="is_closed">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="printf_buf">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="printf_buf_size">
        <type name="gint" c:type="int"/>
      </field>
    </class>
    <class name="OutputBzip"
           c:symbol-prefix="output_bzip"
           c:type="GsfOutputBzip"
           parent="Output"
           glib:type-name="GsfOutputBzip"
           glib:get-type="gsf_output_bzip_get_type">
      <constructor name="new" c:identifier="gsf_output_bzip_new" throws="1">
        <doc xml:space="preserve"
             filename="gsf-output-bzip.c"
             line="241">Adds a reference to @sink.</doc>
        <source-position filename="gsf-output-bzip.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-output-bzip.c"
               line="248">a new file or %NULL.</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output-bzip.c"
                 line="243">The underlying data source.</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </parameter>
        </parameters>
      </constructor>
    </class>
    <record name="OutputClass"
            c:type="GsfOutputClass"
            glib:is-gtype-struct-for="Output">
      <source-position filename="gsf-output.h" line="41"/>
      <field name="g_object_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="Close">
        <callback name="Close">
          <source-position filename="gsf-output.h" line="33"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="307">%FALSE on error</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="output" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-output.c"
                   line="303">#GsfOutput</doc>
              <type name="Output" c:type="GsfOutput*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="Seek">
        <callback name="Seek">
          <source-position filename="gsf-output.h" line="34"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="371">%FALSE on error.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="output" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-output.c"
                   line="360">#GsfOutput</doc>
              <type name="Output" c:type="GsfOutput*"/>
            </parameter>
            <parameter name="offset" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-output.c"
                   line="361">Relative amount to reposition</doc>
              <type name="gsf_off_t" c:type="gsf_off_t"/>
            </parameter>
            <parameter name="whence" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-output.c"
                   line="362">What the offset is relative to.</doc>
              <type name="GLib.SeekType" c:type="GSeekType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="Write">
        <callback name="Write">
          <source-position filename="gsf-output.h" line="36"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="441">%FALSE on error.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="output" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-output.c"
                   line="435">Output stream</doc>
              <type name="Output" c:type="GsfOutput*"/>
            </parameter>
            <parameter name="num_bytes" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-output.c"
                   line="436">Number of bytes to write</doc>
              <type name="gsize" c:type="size_t"/>
            </parameter>
            <parameter name="data" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-output.c"
                   line="437">Data to write.</doc>
              <array length="1" zero-terminated="0" c:type="const guint8*">
                <type name="guint8" c:type="guint8"/>
              </array>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="Vprintf" introspectable="0">
        <callback name="Vprintf" introspectable="0">
          <source-position filename="gsf-output.h" line="38"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output.c"
                 line="714">number of bytes printed, a negative value if not successful</doc>
            <type name="gsf_off_t" c:type="gsf_off_t"/>
          </return-value>
          <parameters>
            <parameter name="output" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-output.c"
                   line="706">A #GsfOutput</doc>
              <type name="Output" c:type="GsfOutput*"/>
            </parameter>
            <parameter name="format" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-output.c"
                   line="707">The printf-style format string</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="args" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gsf-output.c"
                   line="708">the arguments for @format</doc>
              <type name="va_list" c:type="va_list"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="OutputCsv"
           c:symbol-prefix="output_csv"
           c:type="GsfOutputCsv"
           parent="Output"
           glib:type-name="GsfOutputCsv"
           glib:get-type="gsf_output_csv_get_type"
           glib:type-struct="OutputCsvClass">
      <source-position filename="gsf-output-csv.h" line="80"/>
      <method name="write_eol" c:identifier="gsf_output_csv_write_eol">
        <source-position filename="gsf-output-csv.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="csv" transfer-ownership="none">
            <type name="OutputCsv" c:type="GsfOutputCsv*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="write_field" c:identifier="gsf_output_csv_write_field">
        <source-position filename="gsf-output-csv.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="csv" transfer-ownership="none">
            <type name="OutputCsv" c:type="GsfOutputCsv*"/>
          </instance-parameter>
          <parameter name="field" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </method>
      <property name="eol"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="\n">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="quote"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value='\"'>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="quoting-mode"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="GSF_OUTPUT_CSV_QUOTING_MODE_NEVER">
        <type name="OutputCsvQuotingMode"/>
      </property>
      <property name="quoting-on-whitespace"
                writable="1"
                transfer-ownership="none"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="quoting-triggers"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="separator"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value=",">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="sink" writable="1" transfer-ownership="none">
        <type name="Output"/>
      </property>
      <field name="output">
        <type name="Output" c:type="GsfOutput"/>
      </field>
      <field name="sink">
        <type name="Output" c:type="GsfOutput*"/>
      </field>
      <field name="quote">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="quote_len">
        <type name="gsize" c:type="size_t"/>
      </field>
      <field name="quoting_mode">
        <type name="OutputCsvQuotingMode" c:type="GsfOutputCsvQuotingMode"/>
      </field>
      <field name="quoting_triggers">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="eol">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="eol_len">
        <type name="gsize" c:type="size_t"/>
      </field>
      <field name="separator">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="separator_len">
        <type name="gsize" c:type="size_t"/>
      </field>
      <field name="fields_on_line">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="buf">
        <type name="GLib.String" c:type="GString*"/>
      </field>
    </class>
    <record name="OutputCsvClass"
            c:type="GsfOutputCsvClass"
            glib:is-gtype-struct-for="OutputCsv">
      <source-position filename="gsf-output-csv.h" line="80"/>
      <field name="output_class">
        <type name="OutputClass" c:type="GsfOutputClass"/>
      </field>
    </record>
    <enumeration name="OutputCsvQuotingMode"
                 glib:type-name="GsfOutputCsvQuotingMode"
                 glib:get-type="gsf_output_csv_quoting_mode_get_type"
                 c:type="GsfOutputCsvQuotingMode">
      <doc xml:space="preserve"
           filename="gsf-output-csv.h"
           line="29">Controls when to add quotes around fields.</doc>
      <member name="never"
              value="0"
              c:identifier="GSF_OUTPUT_CSV_QUOTING_MODE_NEVER"
              glib:nick="never"
              glib:name="GSF_OUTPUT_CSV_QUOTING_MODE_NEVER">
        <doc xml:space="preserve"
             filename="gsf-output-csv.h"
             line="31">never add quotes around fields</doc>
      </member>
      <member name="auto"
              value="1"
              c:identifier="GSF_OUTPUT_CSV_QUOTING_MODE_AUTO"
              glib:nick="auto"
              glib:name="GSF_OUTPUT_CSV_QUOTING_MODE_AUTO">
        <doc xml:space="preserve"
             filename="gsf-output-csv.h"
             line="32">add quotes around fields when needed</doc>
      </member>
      <member name="always"
              value="2"
              c:identifier="GSF_OUTPUT_CSV_QUOTING_MODE_ALWAYS"
              glib:nick="always"
              glib:name="GSF_OUTPUT_CSV_QUOTING_MODE_ALWAYS">
        <doc xml:space="preserve"
             filename="gsf-output-csv.h"
             line="33">always add quotes around fields</doc>
      </member>
    </enumeration>
    <class name="OutputGZip"
           c:symbol-prefix="output_gzip"
           c:type="GsfOutputGZip"
           parent="Output"
           glib:type-name="GsfOutputGZip"
           glib:get-type="gsf_output_gzip_get_type">
      <constructor name="new" c:identifier="gsf_output_gzip_new" throws="1">
        <doc xml:space="preserve"
             filename="gsf-output-gzip.c"
             line="128">Adds a reference to @sink.</doc>
        <source-position filename="gsf-output-gzip.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-output-gzip.c"
               line="135">a new file or %NULL.</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output-gzip.c"
                 line="130">The underlying data source.</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="deflate-level"
                writable="1"
                transfer-ownership="none"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="raw"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="sink"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Output"/>
      </property>
    </class>
    <class name="OutputGio"
           c:symbol-prefix="output_gio"
           c:type="GsfOutputGio"
           parent="Output"
           glib:type-name="GsfOutputGio"
           glib:get-type="gsf_output_gio_get_type">
      <constructor name="new" c:identifier="gsf_output_gio_new">
        <source-position filename="gsf-output-gio.h" line="38"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-output-gio.c"
               line="77">A new #GsfOutputGio or %NULL</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output-gio.c"
                 line="75">an existing GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_path"
                   c:identifier="gsf_output_gio_new_for_path"
                   throws="1">
        <source-position filename="gsf-output-gio.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-output-gio.c"
               line="90">A new #GsfOutputGio or %NULL</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_uri"
                   c:identifier="gsf_output_gio_new_for_uri"
                   throws="1">
        <source-position filename="gsf-output-gio.h" line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-output-gio.c"
               line="115">A new #GsfOutputGio or %NULL</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
    </class>
    <class name="OutputIOChannel"
           c:symbol-prefix="output_iochannel"
           c:type="GsfOutputIOChannel"
           parent="Output"
           glib:type-name="GsfOutputIOChannel"
           glib:get-type="gsf_output_iochannel_get_type">
      <constructor name="new" c:identifier="gsf_output_iochannel_new">
        <source-position filename="gsf-output-iochannel.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-output-iochannel.c"
               line="40">a new file or %NULL.</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output-iochannel.c"
                 line="38">A #GIOChannel</doc>
            <type name="GLib.IOChannel" c:type="GIOChannel*"/>
          </parameter>
        </parameters>
      </constructor>
    </class>
    <class name="OutputIconv"
           c:symbol-prefix="output_iconv"
           c:type="GsfOutputIconv"
           parent="Output"
           glib:type-name="GsfOutputIconv"
           glib:get-type="gsf_output_iconv_get_type"
           glib:type-struct="OutputIconvClass">
      <source-position filename="gsf-output-iconv.h" line="32"/>
      <constructor name="new" c:identifier="gsf_output_iconv_new">
        <doc xml:space="preserve"
             filename="gsf-output-iconv.c"
             line="53">Adds a reference to @sink.</doc>
        <source-position filename="gsf-output-iconv.h" line="43"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-output-iconv.c"
               line="61">a new GsfOutput object.</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output-iconv.c"
                 line="55">The underlying data source.</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </parameter>
          <parameter name="dst"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-output-iconv.c"
                 line="56">The target character set.  %NULL for "UTF-8"</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="src"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-output-iconv.c"
                 line="57">The source character set.  %NULL for "UTF-8"</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="fallback"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gsf-output-iconv.c"
             line="303">Either NULL or a UTF-8 string (representable in the target encoding)
to convert and output in place of characters that cannot be represented
in the target encoding.  NULL means use \u1234 or \U12345678 format.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="input-charset"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="UTF-8">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="output-charset"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="UTF-8">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="sink"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Output"/>
      </property>
    </class>
    <record name="OutputIconvClass"
            c:type="GsfOutputIconvClass"
            glib:is-gtype-struct-for="OutputIconv">
      <source-position filename="gsf-output-iconv.h" line="32"/>
      <field name="output_class">
        <type name="OutputClass" c:type="GsfOutputClass"/>
      </field>
    </record>
    <class name="OutputMemory"
           c:symbol-prefix="output_memory"
           c:type="GsfOutputMemory"
           parent="Output"
           glib:type-name="GsfOutputMemory"
           glib:get-type="gsf_output_memory_get_type">
      <constructor name="new" c:identifier="gsf_output_memory_new">
        <source-position filename="gsf-output-memory.h" line="39"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-output-memory.c"
               line="44">a new file.</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
      </constructor>
      <method name="get_bytes" c:identifier="gsf_output_memory_get_bytes">
        <source-position filename="gsf-output-memory.h" line="40"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-output-memory.c"
               line="215">The data that has been
written to @mem</doc>
          <array zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="mem" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output-memory.c"
                 line="213">the output device.</doc>
            <type name="OutputMemory" c:type="GsfOutputMemory*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="steal_bytes" c:identifier="gsf_output_memory_steal_bytes">
        <source-position filename="gsf-output-memory.h" line="41"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-output-memory.c"
               line="229">The data that has been
written to @mem.  The caller takes ownership and the buffer
belonging to @mem is set to %NULL.</doc>
          <array zero-terminated="0" c:type="guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="mem" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output-memory.c"
                 line="227">the output device.</doc>
            <type name="OutputMemory" c:type="GsfOutputMemory*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <class name="OutputStdio"
           c:symbol-prefix="output_stdio"
           c:type="GsfOutputStdio"
           parent="Output"
           glib:type-name="GsfOutputStdio"
           glib:get-type="gsf_output_stdio_get_type">
      <constructor name="new" c:identifier="gsf_output_stdio_new" throws="1">
        <source-position filename="gsf-output-stdio.h" line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-output-stdio.c"
               line="579">a new file or %NULL.</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output-stdio.c"
                 line="576">name of file to create or replace.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_FILE"
                   c:identifier="gsf_output_stdio_new_FILE"
                   introspectable="0">
        <doc xml:space="preserve"
             filename="gsf-output-stdio.c"
             line="587">Assumes ownership of @file.  If @keep_open is true, ownership reverts
to caller when the GsfOutput is closed.</doc>
        <source-position filename="gsf-output-stdio.h" line="47"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-output-stdio.c"
               line="596">a new GsfOutput wrapper for @file.  Warning: the result will be
seekable only if @file is seekable.  If it is seekable, the resulting
GsfOutput object will seek relative to @file's beginning, not its
current location at the time the GsfOutput object is created.</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output-stdio.c"
                 line="589">The filename corresponding to @file.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="file"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-output-stdio.c"
                 line="590">an existing stdio &lt;type&gt;FILE&lt;/type&gt; *</doc>
            <type name="gpointer" c:type="FILE*"/>
          </parameter>
          <parameter name="keep_open" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output-stdio.c"
                 line="591">Should @file be closed when the wrapper is closed</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_full"
                   c:identifier="gsf_output_stdio_new_full"
                   introspectable="0">
        <source-position filename="gsf-output-stdio.h" line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-output-stdio.c"
               line="555">a new file or %NULL.</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output-stdio.c"
                 line="550">name of file to create or replace.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="err"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-output-stdio.c"
                 line="551">place to store a #GError if anything goes wrong</doc>
            <type name="GLib.Error" c:type="GError**"/>
          </parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-output-stdio.c"
                 line="552">%NULL terminated list of properties</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_valist"
                   c:identifier="gsf_output_stdio_new_valist"
                   introspectable="0">
        <source-position filename="gsf-output-stdio.h" line="44"/>
        <return-value transfer-ownership="full">
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="err" transfer-ownership="none">
            <type name="GLib.Error" c:type="GError**"/>
          </parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="var_args" transfer-ownership="none">
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </constructor>
    </class>
    <function-macro name="SHARED_MEMORY"
                    c:identifier="GSF_SHARED_MEMORY"
                    introspectable="0">
      <source-position filename="gsf-shared-memory.h" line="30"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STRUCTURED_BLOB"
                    c:identifier="GSF_STRUCTURED_BLOB"
                    introspectable="0">
      <source-position filename="gsf-structured-blob.h" line="30"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <class name="SharedMemory"
           c:symbol-prefix="shared_memory"
           c:type="GsfSharedMemory"
           parent="GObject.Object"
           glib:type-name="GsfSharedMemory"
           glib:get-type="gsf_shared_memory_get_type">
      <constructor name="mmapped_new"
                   c:identifier="gsf_shared_memory_mmapped_new">
        <source-position filename="gsf-shared-memory.h" line="47"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-shared-memory.c"
               line="63">a new #GsfSharedMemory object.</doc>
          <type name="SharedMemory" c:type="GsfSharedMemory*"/>
        </return-value>
        <parameters>
          <parameter name="buf"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-shared-memory.c"
                 line="60">The mmapped memory area to share.</doc>
            <type name="gpointer" c:type="void*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-shared-memory.c"
                 line="61">The size of @buf.</doc>
            <type name="gsf_off_t" c:type="gsf_off_t"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new" c:identifier="gsf_shared_memory_new">
        <source-position filename="gsf-shared-memory.h" line="46"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-shared-memory.c"
               line="45">a new #GsfSharedMemory object.</doc>
          <type name="SharedMemory" c:type="GsfSharedMemory*"/>
        </return-value>
        <parameters>
          <parameter name="buf"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-shared-memory.c"
                 line="41">The memory area to share.</doc>
            <type name="gpointer" c:type="void*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-shared-memory.c"
                 line="42">The size of @buf.</doc>
            <type name="gsf_off_t" c:type="gsf_off_t"/>
          </parameter>
          <parameter name="needs_free" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-shared-memory.c"
                 line="43">Whether @buf should be freed with g_free when the object is finalized.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="g_object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="buf">
        <type name="gpointer" c:type="void*"/>
      </field>
      <field name="size">
        <type name="gsf_off_t" c:type="gsf_off_t"/>
      </field>
      <field name="needs_free">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="needs_unmap">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <class name="StructuredBlob"
           c:symbol-prefix="structured_blob"
           c:type="GsfStructuredBlob"
           parent="Infile"
           glib:type-name="GsfStructuredBlob"
           glib:get-type="gsf_structured_blob_get_type">
      <function name="read" c:identifier="gsf_structured_blob_read">
        <doc xml:space="preserve"
             filename="gsf-structured-blob.c"
             line="193">Create a tree of binary blobs with unknown content from a #GsfInput or
#GsfInfile and store it in a newly created #GsfStructuredBlob.</doc>
        <source-position filename="gsf-structured-blob.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-structured-blob.c"
               line="200">a new #GsfStructuredBlob object which the caller is responsible for.</doc>
          <type name="StructuredBlob" c:type="GsfStructuredBlob*"/>
        </return-value>
        <parameters>
          <parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-structured-blob.c"
                 line="195">An input (potentially a GsfInfile) holding the blob</doc>
            <type name="Input" c:type="GsfInput*"/>
          </parameter>
        </parameters>
      </function>
      <method name="write" c:identifier="gsf_structured_blob_write">
        <doc xml:space="preserve"
             filename="gsf-structured-blob.c"
             line="259">Dumps structured blob @blob onto the @container.  Will fail if the output is
not an Outfile and blob has multiple streams.</doc>
        <source-position filename="gsf-structured-blob.h" line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-structured-blob.c"
               line="267">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="blob" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-structured-blob.c"
                 line="261">#GsfStructuredBlob</doc>
            <type name="StructuredBlob" c:type="GsfStructuredBlob*"/>
          </instance-parameter>
          <parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-structured-blob.c"
                 line="262">#GsfOutfile</doc>
            <type name="Outfile" c:type="GsfOutfile*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="Timestamp"
            c:type="GsfTimestamp"
            glib:type-name="GsfTimestamp"
            glib:get-type="gsf_timestamp_get_type"
            c:symbol-prefix="timestamp">
      <doc xml:space="preserve"
           filename="gsf-fwd.h"
           line="73">A point in time.</doc>
      <source-position filename="gsf-timestamp.h" line="39"/>
      <field name="date" writable="1">
        <doc xml:space="preserve"
             filename="gsf-fwd.h"
             line="75">#GDate in local timezone</doc>
        <type name="GLib.Date" c:type="GDate"/>
      </field>
      <field name="seconds" writable="1">
        <doc xml:space="preserve"
             filename="gsf-fwd.h"
             line="76">#glong number of seconds since @date.</doc>
        <type name="glong" c:type="glong"/>
      </field>
      <field name="time_zone" writable="1">
        <doc xml:space="preserve"
             filename="gsf-fwd.h"
             line="77">possibly blank #GString of the timezone</doc>
        <type name="GLib.String" c:type="GString"/>
      </field>
      <field name="timet" writable="1">
        <doc xml:space="preserve"
             filename="gsf-fwd.h"
             line="78">as from g_date_time_to_unix.</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <constructor name="new" c:identifier="gsf_timestamp_new">
        <source-position filename="gsf-timestamp.h" line="44"/>
        <return-value transfer-ownership="full">
          <type name="Timestamp" c:type="GsfTimestamp*"/>
        </return-value>
      </constructor>
      <method name="as_string" c:identifier="gsf_timestamp_as_string">
        <doc xml:space="preserve"
             filename="gsf-timestamp.c"
             line="178">Produce a string representation (ISO 8601 format) of @stamp.</doc>
        <source-position filename="gsf-timestamp.h" line="49"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-timestamp.c"
               line="184">a string representation of @stamp. When @stamp is invalid, the
representation is "&amp;lt;invalid&amp;gt;".</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-timestamp.c"
                 line="180">timestamp to be converted.</doc>
            <type name="Timestamp" c:type="const GsfTimestamp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="gsf_timestamp_copy">
        <doc xml:space="preserve"
             filename="gsf-timestamp.c"
             line="60">Copies a timestamp.</doc>
        <source-position filename="gsf-timestamp.h" line="46"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-timestamp.c"
               line="66">a separate copy of @stamp.</doc>
          <type name="Timestamp" c:type="GsfTimestamp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-timestamp.c"
                 line="62">timestamp to be copied</doc>
            <type name="Timestamp" c:type="const GsfTimestamp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="gsf_timestamp_equal">
        <doc xml:space="preserve"
             filename="gsf-timestamp.c"
             line="233">Compare timestamps @a and @b.</doc>
        <source-position filename="gsf-timestamp.h" line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-timestamp.c"
               line="240">true if @a and @b represent the same point in time; false otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-timestamp.c"
                 line="235">a timestamp</doc>
            <type name="Timestamp" c:type="const GsfTimestamp*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-timestamp.c"
                 line="236">another timestamp</doc>
            <type name="Timestamp" c:type="const GsfTimestamp*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gsf_timestamp_free">
        <doc xml:space="preserve"
             filename="gsf-timestamp.c"
             line="76">Releases the memory in use for @stamp (if any).</doc>
        <source-position filename="gsf-timestamp.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-timestamp.c"
                 line="78">timestamp to be freed</doc>
            <type name="Timestamp" c:type="GsfTimestamp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hash" c:identifier="gsf_timestamp_hash">
        <source-position filename="gsf-timestamp.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stamp" transfer-ownership="none">
            <type name="Timestamp" c:type="const GsfTimestamp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_from_string"
              c:identifier="gsf_timestamp_load_from_string"
              version="1.14.24">
        <doc xml:space="preserve"
             filename="gsf-timestamp.c"
             line="88">Parser for time stamps.  Requires a ISO 8601 formatted string.</doc>
        <source-position filename="gsf-timestamp.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-timestamp.c"
               line="97">%TRUE on success</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="stamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-timestamp.c"
                 line="90">#GsfTimestamp</doc>
            <type name="Timestamp" c:type="GsfTimestamp*"/>
          </instance-parameter>
          <parameter name="spec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-timestamp.c"
                 line="91">The string to parse</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_time" c:identifier="gsf_timestamp_set_time">
        <source-position filename="gsf-timestamp.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stamp" transfer-ownership="none">
            <type name="Timestamp" c:type="GsfTimestamp*"/>
          </instance-parameter>
          <parameter name="t" transfer-ownership="none">
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_value"
              c:identifier="gsf_timestamp_to_value"
              version="1.14.24">
        <doc xml:space="preserve"
             filename="gsf-timestamp.c"
             line="249">Calls g_value_set_box (value, stamp);</doc>
        <source-position filename="gsf-timestamp.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-timestamp.c"
                 line="251">#GsfTimestamp</doc>
            <type name="Timestamp" c:type="const GsfTimestamp*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-timestamp.c"
                 line="252">#GValue</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <function-macro name="VAL_IS_GSF_DOCPROP_VECTOR"
                    c:identifier="VAL_IS_GSF_DOCPROP_VECTOR"
                    introspectable="0">
      <source-position filename="gsf-docprop-vector.h" line="41"/>
      <parameters>
        <parameter name="v">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VAL_IS_GSF_TIMESTAMP"
                    c:identifier="VAL_IS_GSF_TIMESTAMP"
                    introspectable="0">
      <source-position filename="gsf-timestamp.h" line="31"/>
      <parameters>
        <parameter name="v">
        </parameter>
      </parameters>
    </function-macro>
    <record name="XMLBlob" c:type="GsfXMLBlob" disguised="1" opaque="1">
      <source-position filename="gsf-fwd.h" line="114"/>
    </record>
    <enumeration name="XMLContent" c:type="GsfXMLContent">
      <doc xml:space="preserve"
           filename="gsf-libxml.h"
           line="57">Controls the handling of character data within a parser node.</doc>
      <source-position filename="gsf-libxml.h" line="72"/>
      <member name="no_content" value="0" c:identifier="GSF_XML_NO_CONTENT">
        <doc xml:space="preserve"
             filename="gsf-libxml.h"
             line="59">node has no cstr contents</doc>
      </member>
      <member name="content" value="1" c:identifier="GSF_XML_CONTENT">
        <doc xml:space="preserve"
             filename="gsf-libxml.h"
             line="60">node has cstr contents</doc>
      </member>
      <member name="shared_content"
              value="2"
              c:identifier="GSF_XML_SHARED_CONTENT">
        <doc xml:space="preserve"
             filename="gsf-libxml.h"
             line="61">node has contents that is shared with children</doc>
      </member>
      <member name="2nd" value="3" c:identifier="GSF_XML_2ND">
        <doc xml:space="preserve"
             filename="gsf-libxml.h"
             line="62">node is second or later occurrence</doc>
      </member>
    </enumeration>
    <record name="XMLIn" c:type="GsfXMLIn">
      <source-position filename="gsf-libxml.h" line="85"/>
      <field name="user_state" writable="1">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="540">user data</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="content" writable="1">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="541">the current node content</doc>
        <type name="GLib.String" c:type="GString*"/>
      </field>
      <field name="doc" writable="1">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="542">Current document being parsed #GsfXMLInDoc</doc>
        <type name="XMLInDoc" c:type="const GsfXMLInDoc*"/>
      </field>
      <field name="node" writable="1">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="543">current node (not on the stack)</doc>
        <type name="XMLInNode" c:type="const GsfXMLInNode*"/>
      </field>
      <field name="node_stack" readable="0" private="1">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <method name="check_ns" c:identifier="gsf_xml_in_check_ns">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1395">According to @state is @str in the namespace @ns_id ?</doc>
        <source-position filename="gsf-libxml.h" line="146"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="1403">a pointer to @str after the namespace
if successful, otherwise %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="xin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1397">#GsfXMLIn</doc>
            <type name="XMLIn" c:type="const GsfXMLIn*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1398">string to check</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="ns_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1399">the namespace id</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_input" c:identifier="gsf_xml_in_get_input">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1362">(New in 1.14.2)</doc>
        <source-position filename="gsf-libxml.h" line="145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="1368">(but does not reference) the stream being parsed.</doc>
          <type name="Input" c:type="GsfInput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="xin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1364">#GsfXMLIn</doc>
            <type name="XMLIn" c:type="const GsfXMLIn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="namecmp" c:identifier="gsf_xml_in_namecmp">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1426">Checks to see if @str is the same as @ns_id::@name with either an explicit
namespace or the current default namespace.</doc>
        <source-position filename="gsf-libxml.h" line="148"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="1436">%TRUE if @str == @ns_id:@name according to @state.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="xin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1428">The #GsfXMLIn we are reading from.</doc>
            <type name="XMLIn" c:type="const GsfXMLIn*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1429">The potentially namespace qualified node name.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="ns_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1430">The name space id to check</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1431">The target node name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="push_state" c:identifier="gsf_xml_in_push_state">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1268">Take the first node from @doc as the current node and call its start handler.</doc>
        <source-position filename="gsf-libxml.h" line="141"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1270">#GsfXMLIn</doc>
            <type name="XMLIn" c:type="GsfXMLIn*"/>
          </instance-parameter>
          <parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1271">#GsfXMLInDoc</doc>
            <type name="XMLInDoc" c:type="const GsfXMLInDoc*"/>
          </parameter>
          <parameter name="new_state"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1272">arbitrary content for the parser</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="dtor" transfer-ownership="none" scope="call">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1273">#GsfXMLInExtDtor</doc>
            <type name="XMLInExtDtor" c:type="GsfXMLInExtDtor"/>
          </parameter>
          <parameter name="attrs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1274">array of xmlChar const *</doc>
            <array zero-terminated="0" c:type="const xmlChar**">
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="set_silent_unknowns"
              c:identifier="gsf_xml_in_set_silent_unknowns">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1377">(New in 1.14.33)

This provides a means to silently ignore unknown tags in contexts where
they are expected.</doc>
        <source-position filename="gsf-libxml.h" line="150"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1379">#GsfXMLIn</doc>
            <type name="XMLIn" c:type="GsfXMLIn*"/>
          </instance-parameter>
          <parameter name="silent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1380">whether to be silent about unknown tags</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="XMLInDoc"
            c:type="GsfXMLInDoc"
            opaque="1"
            glib:type-name="GsfXMLInDoc"
            glib:get-type="gsf_xml_in_doc_get_type"
            c:symbol-prefix="xml_in_doc">
      <source-position filename="gsf-fwd.h" line="111"/>
      <constructor name="new" c:identifier="gsf_xml_in_doc_new">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1110">Combine the nodes in the %NULL terminated array starting at @nodes with the
name spaces in the %NULL terminated array starting at @ns.  Prepare the
data structures necessary to validate a doument based on that description.</doc>
        <source-position filename="gsf-libxml.h" line="132"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="1119">a #GsfXMLInDoc</doc>
          <type name="XMLInDoc" c:type="GsfXMLInDoc*"/>
        </return-value>
        <parameters>
          <parameter name="nodes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1112">an array of node descriptors</doc>
            <array c:type="const GsfXMLInNode*">
              <type name="XMLInNode" c:type="GsfXMLInNode"/>
            </array>
          </parameter>
          <parameter name="ns" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1113">an array of namespace identifiers</doc>
            <array c:type="const GsfXMLInNS*">
              <type name="XMLInNS" c:type="GsfXMLInNS"/>
            </array>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_nodes" c:identifier="gsf_xml_in_doc_add_nodes">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1165">Adds additional nodes to the structure of @doc</doc>
        <source-position filename="gsf-libxml.h" line="136"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1167">#GsfXMLInDoc</doc>
            <type name="XMLInDoc" c:type="GsfXMLInDoc*"/>
          </instance-parameter>
          <parameter name="nodes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1168">%NULL terminated array of #GsfXMLInNode</doc>
            <array c:type="const GsfXMLInNode*">
              <type name="XMLInNode" c:type="GsfXMLInNode"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gsf_xml_in_doc_free">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1087">Free up resources</doc>
        <source-position filename="gsf-libxml.h" line="133"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1089">A #GsfXMLInDoc</doc>
            <type name="XMLInDoc" c:type="GsfXMLInDoc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="parse" c:identifier="gsf_xml_in_doc_parse">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1301">Read an xml document from @input and parse based on the the descriptor in
@doc</doc>
        <source-position filename="gsf-libxml.h" line="134"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="1310">%FALSE on error</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1303">#GsfXMLInDoc</doc>
            <type name="XMLInDoc" c:type="GsfXMLInDoc*"/>
          </instance-parameter>
          <parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1304">#GsfInput</doc>
            <type name="Input" c:type="GsfInput*"/>
          </parameter>
          <parameter name="user_state"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1305">arbitrary content stored in the parser</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_unknown_handler"
              c:identifier="gsf_xml_in_doc_set_unknown_handler">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1253">Call the function @handler when an unexpected child node is found</doc>
        <source-position filename="gsf-libxml.h" line="138"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1255">#GsfXMLInDoc</doc>
            <type name="XMLInDoc" c:type="GsfXMLInDoc*"/>
          </instance-parameter>
          <parameter name="handler" transfer-ownership="none" scope="call">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1256">The function to call</doc>
            <type name="XMLInUnknownFunc" c:type="GsfXMLInUnknownFunc"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <callback name="XMLInExtDtor" c:type="GsfXMLInExtDtor">
      <source-position filename="gsf-libxml.h" line="75"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="xin" transfer-ownership="none">
          <type name="XMLIn" c:type="GsfXMLIn*"/>
        </parameter>
        <parameter name="old_state"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="XMLInNS"
            c:type="GsfXMLInNS"
            glib:type-name="GsfXMLInNS"
            glib:get-type="gsf_xml_in_ns_get_type"
            c:symbol-prefix="xml_in_ns">
      <source-position filename="gsf-libxml.h" line="111"/>
      <field name="uri" writable="1">
        <doc xml:space="preserve" filename="gsf-libxml.c" line="534">URI</doc>
        <type name="utf8" c:type="const char*"/>
      </field>
      <field name="ns_id" writable="1">
        <type name="guint" c:type="unsigned int"/>
      </field>
    </record>
    <record name="XMLInNode" c:type="GsfXMLInNode">
      <source-position filename="gsf-libxml.h" line="105"/>
      <field name="id" writable="1">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="548">identifier unique in the entire tree</doc>
        <type name="utf8" c:type="const char*"/>
      </field>
      <field name="ns_id" writable="1">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="549">namespace identifier</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="name" writable="1">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="550">node name</doc>
        <type name="utf8" c:type="const char*"/>
      </field>
      <field name="parent_id" writable="1">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="551">parent node identifier</doc>
        <type name="utf8" c:type="const char*"/>
      </field>
      <field name="start">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="552">callback for the node opening</doc>
        <callback name="start">
          <source-position filename="gsf-libxml.h" line="92"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="xin" transfer-ownership="none">
              <type name="XMLIn" c:type="GsfXMLIn*"/>
            </parameter>
            <parameter name="attrs" transfer-ownership="none">
              <type name="libxml2.Char" c:type="const xmlChar**"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="end">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="553">callback for node end</doc>
        <callback name="end">
          <source-position filename="gsf-libxml.h" line="93"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="xin" transfer-ownership="none">
              <type name="XMLIn" c:type="GsfXMLIn*"/>
            </parameter>
            <parameter name="unknown" transfer-ownership="none">
              <type name="XMLBlob" c:type="GsfXMLBlob*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <union name="user_data" c:type="user_data">
        <source-position filename="gsf-libxml.h" line="100"/>
        <field name="v_int" writable="1">
          <type name="gint" c:type="int"/>
        </field>
        <field name="v_bool" writable="1">
          <type name="gboolean" c:type="gboolean"/>
        </field>
        <field name="v_blob" writable="1">
          <type name="gpointer" c:type="gpointer"/>
        </field>
        <field name="v_str" writable="1">
          <type name="utf8" c:type="const char*"/>
        </field>
      </union>
      <field name="has_content" writable="1">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="554">whether the node has content</doc>
        <type name="XMLContent" c:type="GsfXMLContent"/>
      </field>
      <field name="check_children_for_ns" writable="1" bits="1">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="555">whether to check namespace for children</doc>
        <type name="guint" c:type="unsigned int"/>
      </field>
      <field name="share_children_with_parent" writable="1" bits="1">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="556">whether to share children with parent.</doc>
        <type name="guint" c:type="unsigned int"/>
      </field>
    </record>
    <callback name="XMLInUnknownFunc" c:type="GsfXMLInUnknownFunc">
      <source-position filename="gsf-libxml.h" line="73"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="xin" transfer-ownership="none">
          <type name="XMLIn" c:type="GsfXMLIn*"/>
        </parameter>
        <parameter name="elem" transfer-ownership="none">
          <type name="libxml2.Char" c:type="const xmlChar*"/>
        </parameter>
        <parameter name="attrs" transfer-ownership="none">
          <type name="libxml2.Char" c:type="const xmlChar**"/>
        </parameter>
      </parameters>
    </callback>
    <class name="XMLOut"
           c:symbol-prefix="xml_out"
           c:type="GsfXMLOut"
           parent="GObject.Object"
           glib:type-name="GsfXMLOut"
           glib:get-type="gsf_xml_out_get_type"
           glib:type-struct="XMLOutClass">
      <source-position filename="gsf-libxml.h" line="166"/>
      <constructor name="new" c:identifier="gsf_xml_out_new">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1588">Create an XML output stream.</doc>
        <source-position filename="gsf-libxml.h" line="183"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="1594">#GsfXMLOut</doc>
          <type name="XMLOut" c:type="GsfXMLOut*"/>
        </return-value>
        <parameters>
          <parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1590">#GsfOutput</doc>
            <type name="Output" c:type="GsfOutput*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_base64" c:identifier="gsf_xml_out_add_base64">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="2131">Dump @len bytes in @data into the content of node @id using base64</doc>
        <source-position filename="gsf-libxml.h" line="213"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2133">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2134">tag id, or %NULL for node content</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2135">Data to be written</doc>
            <array length="2" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2136">Length of data</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_bool" c:identifier="gsf_xml_out_add_bool">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1929">dump boolean value @val to an attribute named @id or as the nodes content
Use '1' or '0' to simplify import</doc>
        <source-position filename="gsf-libxml.h" line="203"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1931">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1932">tag id, or %NULL for node content</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1933">a boolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_color" c:identifier="gsf_xml_out_add_color">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="2008">dump Color @r.@g.@b to an attribute named @id or as the nodes content</doc>
        <source-position filename="gsf-libxml.h" line="211"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2010">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2011">tag id, or %NULL for node content</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="r" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2012">Red value</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
          <parameter name="g" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2013">Green value</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2014">Blue value</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_cstr" c:identifier="gsf_xml_out_add_cstr">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1850">dump @val_utf8 to an attribute named @id or as the nodes content escaping
characters as necessary.  If @val_utf8 is %NULL do nothing (no warning, no
output)</doc>
        <source-position filename="gsf-libxml.h" line="201"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1852">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1853">tag id, or %NULL for node content</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="val_utf8"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1854">a utf8 encoded string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_cstr_unchecked"
              c:identifier="gsf_xml_out_add_cstr_unchecked">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1823">dump @val_utf8 to an attribute named @id without checking to see if
the content needs escaping.  A useful performance enhancement when
the application knows that structure of the content well.  If
@val_utf8 is %NULL do nothing (no warning, no output)</doc>
        <source-position filename="gsf-libxml.h" line="199"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1825">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1826">tag id, or %NULL for node content</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="val_utf8"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1827">a utf8 encoded string to export</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_enum" c:identifier="gsf_xml_out_add_enum">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="2027">Output the name of value @val of enumeration type @etype.</doc>
        <source-position filename="gsf-libxml.h" line="215"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2029">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2030">tag id, or %NULL for node content</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="etype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2031">#GType</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2032">enum element number</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_float" c:identifier="gsf_xml_out_add_float">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1981">dump float value @val to an attribute named @id or as the nodes
content with precision @precision.  The number will be formattted
according to the "C" locale.</doc>
        <source-position filename="gsf-libxml.h" line="209"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1983">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1984">tag id, or %NULL for node content</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1985">the value</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="precision" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1986">the number of significant digits to use, -1 meaning "enough".</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_gvalue" c:identifier="gsf_xml_out_add_gvalue">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="2050">Output the value of @val as a string.  Does NOT store any type information
with the string, just thevalue.</doc>
        <source-position filename="gsf-libxml.h" line="217"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2052">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2053">tag id, or %NULL for node content</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2054">#GValue</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_int" c:identifier="gsf_xml_out_add_int">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1946">dump integer value @val to an attribute named @id or as the nodes content</doc>
        <source-position filename="gsf-libxml.h" line="205"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1948">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1949">tag id, or %NULL for node content</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1950">the value</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_uint" c:identifier="gsf_xml_out_add_uint">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1963">dump unsigned integer value @val to an attribute named @id or as the nodes
content</doc>
        <source-position filename="gsf-libxml.h" line="207"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1965">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1966">tag id, or %NULL for node content</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1967">the value</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
        </parameters>
      </method>
      <method name="end_element" c:identifier="gsf_xml_out_end_element">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1717">Closes/ends an XML element.</doc>
        <source-position filename="gsf-libxml.h" line="187"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="1723">the element that has been closed.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1719">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_output" c:identifier="gsf_xml_out_get_output">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="2156">Get the #GsfOutput we are writing to..</doc>
        <source-position filename="gsf-libxml.h" line="223"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="2162">#GsfInput</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="2158">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="const GsfXMLOut*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pretty_print"
              c:identifier="gsf_xml_out_get_pretty_print"
              glib:get-property="pretty-print">
        <source-position filename="gsf-libxml.h" line="189"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="1625">the current state of the pretty-print flag.  Note, that
gsf_xml_out_set_pretty_print will return the same value.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1623">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_doc_type" c:identifier="gsf_xml_out_set_doc_type">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1606">Store some optional &amp;lt;!DOCTYPE .. &amp;gt; content</doc>
        <source-position filename="gsf-libxml.h" line="185"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1608">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1609">the document type declaration</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pretty_print"
              c:identifier="gsf_xml_out_set_pretty_print"
              glib:set-property="pretty-print">
        <source-position filename="gsf-libxml.h" line="190"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="1640">the previous state of the pretty-print flag.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1637">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="pp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1638">new state of pretty-print flag.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="simple_element" c:identifier="gsf_xml_out_simple_element">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1760">Convenience routine to output a simple @id element with content @content.</doc>
        <source-position filename="gsf-libxml.h" line="192"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1762">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1763">Element name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="content" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1764">Content of the element</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="simple_float_element"
              c:identifier="gsf_xml_out_simple_float_element">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1794">Convenience routine to output an element @id with float value @val using
@precision significant digits.</doc>
        <source-position filename="gsf-libxml.h" line="196"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1796">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1797">Element name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1798">Element value</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="precision" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1799">the number of significant digits to use, -1 meaning "enough".</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="simple_int_element"
              c:identifier="gsf_xml_out_simple_int_element">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1778">Convenience routine to output an element @id with integer value @val.</doc>
        <source-position filename="gsf-libxml.h" line="194"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1780">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1781">Element name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1782">Element value</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="start_element" c:identifier="gsf_xml_out_start_element">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="1678">Output a start element @id, if necessary preceeded by an XML declaration.</doc>
        <source-position filename="gsf-libxml.h" line="186"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="xout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1680">#GsfXMLOut</doc>
            <type name="XMLOut" c:type="GsfXMLOut*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gsf-libxml.c"
                 line="1681">Element name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="pretty-print"
                writable="1"
                transfer-ownership="none"
                setter="set_pretty_print"
                getter="get_pretty_print"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="sink"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Output"/>
      </property>
      <field name="base">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="output">
        <type name="Output" c:type="GsfOutput*"/>
      </field>
      <field name="priv">
        <type name="gpointer" c:type="_GsfXMLOutPrivate*"/>
      </field>
    </class>
    <record name="XMLOutClass"
            c:type="GsfXMLOutClass"
            glib:is-gtype-struct-for="XMLOut">
      <source-position filename="gsf-libxml.h" line="166"/>
      <field name="base">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gsf_reserved1" introspectable="0">
        <callback name="_gsf_reserved1">
          <source-position filename="gsf-libxml.h" line="162"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gsf_reserved2" introspectable="0">
        <callback name="_gsf_reserved2">
          <source-position filename="gsf-libxml.h" line="163"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gsf_reserved3" introspectable="0">
        <callback name="_gsf_reserved3">
          <source-position filename="gsf-libxml.h" line="164"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gsf_reserved4" introspectable="0">
        <callback name="_gsf_reserved4">
          <source-position filename="gsf-libxml.h" line="165"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <callback name="XMLProbeFunc" c:type="GsfXMLProbeFunc">
      <source-position filename="gsf-libxml.h" line="43"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <type name="libxml2.Char" c:type="const xmlChar*"/>
        </parameter>
        <parameter name="prefix" transfer-ownership="none">
          <type name="libxml2.Char" c:type="const xmlChar*"/>
        </parameter>
        <parameter name="URI" transfer-ownership="none">
          <type name="libxml2.Char" c:type="const xmlChar*"/>
        </parameter>
        <parameter name="nb_namespaces" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="namespaces" transfer-ownership="none">
          <type name="libxml2.Char" c:type="const xmlChar**"/>
        </parameter>
        <parameter name="nb_attributes" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="nb_defaulted" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <type name="libxml2.Char" c:type="const xmlChar**"/>
        </parameter>
      </parameters>
    </callback>
    <function-macro name="XML_IN_NS"
                    c:identifier="GSF_XML_IN_NS"
                    introspectable="0">
      <source-position filename="gsf-libxml.h" line="113"/>
      <parameters>
        <parameter name="id">
        </parameter>
        <parameter name="uri">
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="ZipCompressionMethod" c:type="GsfZipCompressionMethod">
      <source-position filename="gsf-outfile-zip.h" line="42"/>
      <member name="stored" value="0" c:identifier="GSF_ZIP_STORED">
      </member>
      <member name="shrunk" value="1" c:identifier="GSF_ZIP_SHRUNK">
      </member>
      <member name="reducedx1" value="2" c:identifier="GSF_ZIP_REDUCEDx1">
      </member>
      <member name="reducedx2" value="3" c:identifier="GSF_ZIP_REDUCEDx2">
      </member>
      <member name="reducedx3" value="4" c:identifier="GSF_ZIP_REDUCEDx3">
      </member>
      <member name="reducedx4" value="5" c:identifier="GSF_ZIP_REDUCEDx4">
      </member>
      <member name="imploded" value="6" c:identifier="GSF_ZIP_IMPLODED">
      </member>
      <member name="tokenized" value="7" c:identifier="GSF_ZIP_TOKENIZED">
      </member>
      <member name="deflated" value="8" c:identifier="GSF_ZIP_DEFLATED">
      </member>
      <member name="deflated_better"
              value="9"
              c:identifier="GSF_ZIP_DEFLATED_BETTER">
      </member>
      <member name="imploded_better"
              value="10"
              c:identifier="GSF_ZIP_IMPLODED_BETTER">
      </member>
    </enumeration>
    <function name="base64_decode_simple"
              c:identifier="gsf_base64_decode_simple">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="694">Decodes a chunk of base64 encoded data from @data back into @data.</doc>
      <source-position filename="gsf-utils.h" line="268"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="701">the number of bytes converted</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="696">data stream</doc>
          <array length="1" zero-terminated="0" c:type="guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="697">max length of data to decode</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="base64_decode_step" c:identifier="gsf_base64_decode_step">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="644">Decodes a chunk of base64 encoded data</doc>
      <source-position filename="gsf-utils.h" line="269"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="654">the number of bytes converted</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="646">input stream</doc>
          <array length="1" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="647">max length of data to decode</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="out" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="648">output stream</doc>
          <array zero-terminated="0" c:type="guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="state"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="649">holds the number of bits that are stored in @save</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="save"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="650">leftover bits that have not yet been decoded</doc>
          <type name="guint" c:type="guint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="base64_encode_close"
              c:identifier="gsf_base64_encode_close">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="595">This funcion should be called to when finished encoding everything, to
flush off the last little bit.</doc>
      <source-position filename="gsf-utils.h" line="261"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="607">a count of the number of bytes in the final block.</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="597">Data to be encoded</doc>
          <array length="1" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="598">Length of data to be encoded</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="break_lines" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="599">Whether to use line breaks</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="out" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="600">Encoded data.</doc>
          <array zero-terminated="0" c:type="guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="state"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="601">holds the number of bits that are stored in @save</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="save"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="602">leftover bits that have not yet been decoded</doc>
          <type name="guint" c:type="guint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="base64_encode_simple"
              c:identifier="gsf_base64_encode_simple">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="663">Encodes data from @data back into @data using base64 encoding.</doc>
      <source-position filename="gsf-utils.h" line="260"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="670">the encoded string.</doc>
        <type name="guint8" c:type="guint8*"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="665">data stream</doc>
          <array length="1" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="666">length of data to encode</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="base64_encode_step" c:identifier="gsf_base64_encode_step">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="621">Performs an 'encode step', only encodes blocks of 3 characters from @in into
the output @out at a time, saves left-over state in @state and @save
(initialise to 0 on first invocation).</doc>
      <source-position filename="gsf-utils.h" line="264"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="634">the number of bytes encoded</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="623">input stream</doc>
          <array length="1" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="624">max length of data to decode</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="break_lines" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="625">Whether to use line breaks</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="out" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="626">output stream</doc>
          <array zero-terminated="0" c:type="guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="state"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="627">holds the number of bits that are stored in @save</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="save"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="628">leftover bits that have not yet been decoded</doc>
          <type name="guint" c:type="guint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="debug_flag" c:identifier="gsf_debug_flag">
      <source-position filename="gsf-utils.h" line="253"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="47">%TRUE if the debug flag @flag is set in the GSF_DEBUG environment variable.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="flag" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="45">The debug flag to check.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="doc_meta_dump" c:identifier="gsf_doc_meta_dump">
      <doc xml:space="preserve"
           filename="gsf-doc-meta-data.c"
           line="250">A debugging utility to dump the content of @meta via g_print</doc>
      <source-position filename="gsf-doc-meta-data.h" line="51"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="meta" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-doc-meta-data.c"
               line="252">#GsfDocMetaData</doc>
          <type name="DocMetaData" c:type="const GsfDocMetaData*"/>
        </parameter>
      </parameters>
    </function>
    <function name="error_quark" c:identifier="gsf_error_quark">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="850">the #GQuark used to identify libgsf errors in #GError structures.
	Specific error codes come from the #GsfError enumeration.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="extension_pointer" c:identifier="gsf_extension_pointer">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="527">Extracts the extension from the end of a filename (the part after the final
'.' in the filename).</doc>
      <source-position filename="gsf-utils.h" line="299"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="534">A pointer to the extension part of the
filename, or a pointer to the end of the string if the filename
does not have an extension.</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="529">A filename or file path.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="filename_to_utf8" c:identifier="gsf_filename_to_utf8">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="570">A utility wrapper to make sure filenames are valid utf8.</doc>
      <source-position filename="gsf-utils.h" line="274"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="578">@filename using utf-8 encoding for display</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="572">file name suitable for open(2).</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="quoted" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="573">if %TRUE, the resulting utf8 file name will be quoted
   (unless it is invalid).</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="iconv_close"
              c:identifier="gsf_iconv_close"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="557">A utility wrapper to safely close an iconv handle.</doc>
      <source-position filename="gsf-utils.h" line="300"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="handle" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="559">handle to be closed.</doc>
          <type name="GLib.IConv" c:type="GIConv"/>
        </parameter>
      </parameters>
    </function>
    <function name="init" c:identifier="gsf_init">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="94">Initializes the GSF library</doc>
      <source-position filename="gsf-utils.h" line="249"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="init_dynamic" c:identifier="gsf_init_dynamic">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="171">Initializes the GSF library and associates it with a type module @module.
If @module is %NULL, types are registered statically.</doc>
      <source-position filename="gsf-utils.h" line="251"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="module"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="173">#GTypeModule.</doc>
          <type name="GObject.TypeModule" c:type="GTypeModule*"/>
        </parameter>
      </parameters>
    </function>
    <function name="le_get_double" c:identifier="gsf_le_get_double">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="439">Interpret binary data as a double in little endian order.</doc>
      <source-position filename="gsf-utils.h" line="139"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="445">interpreted data</doc>
        <type name="gdouble" c:type="double"/>
      </return-value>
      <parameters>
        <parameter name="p"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="441">pointer to storage</doc>
          <type name="gpointer" c:type="void*"/>
        </parameter>
      </parameters>
    </function>
    <function name="le_get_float" c:identifier="gsf_le_get_float">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="359">Interpret binary data as a float in little endian order.</doc>
      <source-position filename="gsf-utils.h" line="138"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="365">interpreted data</doc>
        <type name="gfloat" c:type="float"/>
      </return-value>
      <parameters>
        <parameter name="p"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="361">pointer to storage</doc>
          <type name="gpointer" c:type="void*"/>
        </parameter>
      </parameters>
    </function>
    <function name="le_get_guint64" c:identifier="gsf_le_get_guint64">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="315">Interpret binary data as a guint64 (8 byte unsigned integer type) in little
endian order.</doc>
      <source-position filename="gsf-utils.h" line="137"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="322">interpreted data</doc>
        <type name="guint64" c:type="guint64"/>
      </return-value>
      <parameters>
        <parameter name="p"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="317">pointer to storage</doc>
          <type name="gpointer" c:type="void*"/>
        </parameter>
      </parameters>
    </function>
    <function name="le_set_double" c:identifier="gsf_le_set_double">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="487">Store a value of type double in memory in little endian order</doc>
      <source-position filename="gsf-utils.h" line="247"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="p"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="489">pointer to storage</doc>
          <type name="gpointer" c:type="void*"/>
        </parameter>
        <parameter name="d" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="490">double to be stored</doc>
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="le_set_float" c:identifier="gsf_le_set_float">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="402">Store a value of type float in memory in little endian order.</doc>
      <source-position filename="gsf-utils.h" line="246"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="p"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="404">pointer to storage</doc>
          <type name="gpointer" c:type="void*"/>
        </parameter>
        <parameter name="f" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="405">float to be stored</doc>
          <type name="gfloat" c:type="float"/>
        </parameter>
      </parameters>
    </function>
    <function name="mem_dump" c:identifier="gsf_mem_dump">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="272">Dump @len bytes from the memory location given by @ptr.</doc>
      <source-position filename="gsf-utils.h" line="256"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ptr" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="274">memory area to be dumped.</doc>
          <array length="1" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="275">how many bytes will be dumped.</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="msole_codepage_to_lid"
              c:identifier="gsf_msole_codepage_to_lid">
      <source-position filename="gsf-msole-utils.h" line="46"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="codepage" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="msole_iconv_open_codepage_for_export"
              c:identifier="gsf_msole_iconv_open_codepage_for_export"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-msole-utils.c"
           line="2619">NOTE: skipped since GIConv is not exported to introspection.</doc>
      <source-position filename="gsf-msole-utils.h" line="57"/>
      <return-value>
        <doc xml:space="preserve"
             filename="gsf-msole-utils.c"
             line="2625">an iconv converter to go from utf8 -&gt; to our best guess at a useful
	windows codepage.</doc>
        <type name="GLib.IConv" c:type="GIConv"/>
      </return-value>
      <parameters>
        <parameter name="codepage_to" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="2621">the target code page.</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="msole_iconv_open_codepage_for_import"
              c:identifier="gsf_msole_iconv_open_codepage_for_import"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-msole-utils.c"
           line="2536">NOTE: skipped since GIConv is not exported to introspection.</doc>
      <source-position filename="gsf-msole-utils.h" line="55"/>
      <return-value>
        <doc xml:space="preserve"
             filename="gsf-msole-utils.c"
             line="2543">an iconv converter for @codepage -&gt; utf8.</doc>
        <type name="GLib.IConv" c:type="GIConv"/>
      </return-value>
      <parameters>
        <parameter name="to" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="2538">the target encoding.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="codepage" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="2539">the source code page.</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="msole_iconv_open_codepages_for_export"
              c:identifier="gsf_msole_iconv_open_codepages_for_export"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-msole-utils.c"
           line="2585">NOTE: skipped since GIConv is not exported to introspection.</doc>
      <source-position filename="gsf-msole-utils.h" line="56"/>
      <return-value>
        <doc xml:space="preserve"
             filename="gsf-msole-utils.c"
             line="2592">an iconv converter to go from utf8 -&gt; to our best guess at a useful
	windows codepage.</doc>
        <type name="GLib.IConv" c:type="GIConv"/>
      </return-value>
      <parameters>
        <parameter name="codepage_to" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="2587">the target code page.</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="from" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="2588">the source encoding.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="msole_iconv_open_for_export"
              c:identifier="gsf_msole_iconv_open_for_export"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-msole-utils.c"
           line="2634">NOTE: skipped since GIConv is not exported to introspection.</doc>
      <source-position filename="gsf-msole-utils.h" line="53"/>
      <return-value>
        <doc xml:space="preserve"
             filename="gsf-msole-utils.c"
             line="2639">an iconv convert to go from utf8 -&gt; to our best guess at a useful
	windows codepage.</doc>
        <type name="GLib.IConv" c:type="GIConv"/>
      </return-value>
    </function>
    <function name="msole_iconv_open_for_import"
              c:identifier="gsf_msole_iconv_open_for_import"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-msole-utils.c"
           line="2569">NOTE: skipped since GIConv is not exported to introspection.</doc>
      <source-position filename="gsf-msole-utils.h" line="52"/>
      <return-value>
        <doc xml:space="preserve"
             filename="gsf-msole-utils.c"
             line="2575">an iconv converter for single byte encodings @codepage -&gt; utf8.
	Attempt to handle the semantics of a specification for multibyte encodings
	since this is only supposed to be used for single bytes.</doc>
        <type name="GLib.IConv" c:type="GIConv"/>
      </return-value>
      <parameters>
        <parameter name="codepage" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="2571">the source code page.</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="msole_iconv_win_codepage"
              c:identifier="gsf_msole_iconv_win_codepage">
      <source-position filename="gsf-msole-utils.h" line="51"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-msole-utils.c"
             line="2472">our best guess at the applicable windows code page based on an
	environment variable or the current locale.</doc>
        <type name="gint" c:type="int"/>
      </return-value>
    </function>
    <function name="msole_inflate" c:identifier="gsf_msole_inflate">
      <doc xml:space="preserve"
           filename="gsf-msole-utils.c"
           line="2650">Decompresses an LZ compressed stream.</doc>
      <source-position filename="gsf-msole-utils.h" line="59"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gsf-msole-utils.c"
             line="2657">A GByteArray that the caller is responsible for freeing</doc>
        <array name="GLib.ByteArray" c:type="GByteArray*">
          <type name="guint8" c:type="guint8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="input" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="2652">stream to read from</doc>
          <type name="Input" c:type="GsfInput*"/>
        </parameter>
        <parameter name="offset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="2653">offset into it for start byte of compresse stream</doc>
          <type name="gsf_off_t" c:type="gsf_off_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="msole_language_for_lid"
              c:identifier="gsf_msole_language_for_lid">
      <source-position filename="gsf-msole-utils.h" line="49"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-msole-utils.c"
             line="2187">the xx_YY style string (can be just xx or
xxx) for the given LID.  If the LID is not found, is set to 0x0400,
or is set to 0x0000, will return "-none-"</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="lid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="2185">numerical language id</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="msole_lid_for_language"
              c:identifier="gsf_msole_lid_for_language">
      <source-position filename="gsf-msole-utils.h" line="45"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-msole-utils.c"
             line="2162">the LID (Language Identifier) for the input language.
	If lang is %NULL, return 0x0400 ("-none-"), and not 0x0000 ("no proofing")</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="lang"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="2160">Language id, i.e., locale name.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="msole_lid_to_codepage"
              c:identifier="gsf_msole_lid_to_codepage">
      <source-position filename="gsf-msole-utils.h" line="47"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-msole-utils.c"
             line="2253">our best guess at the codepage for the given language id</doc>
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="lid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="2251">numerical language id</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="msole_lid_to_codepage_str"
              c:identifier="gsf_msole_lid_to_codepage_str">
      <source-position filename="gsf-msole-utils.h" line="48"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gsf-msole-utils.c"
             line="2454">the Iconv codepage string for the given
LID.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="lid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-msole-utils.c"
               line="2452">numerical language id</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="odf_get_ns"
              c:identifier="gsf_odf_get_ns"
              version="1.14.24">
      <source-position filename="gsf-opendoc-utils.h" line="134"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-opendoc-utils.c"
             line="204">the used ODF namespace</doc>
        <type name="XMLInNS" c:type="const GsfXMLInNS*"/>
      </return-value>
    </function>
    <function name="odf_get_version"
              c:identifier="gsf_odf_get_version"
              version="1.14.24">
      <doc xml:space="preserve"
           filename="gsf-opendoc-utils.c"
           line="76">Gives the ODF version used by libgsf when writing Open Document files.</doc>
      <source-position filename="gsf-opendoc-utils.h" line="136"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-opendoc-utils.c"
             line="83">the ODF version: 102.</doc>
        <type name="gshort" c:type="short"/>
      </return-value>
    </function>
    <function name="odf_get_version_string"
              c:identifier="gsf_odf_get_version_string"
              version="1.14.24">
      <doc xml:space="preserve"
           filename="gsf-opendoc-utils.c"
           line="46">Gives the ODF version used by libgsf when writing Open Document files.</doc>
      <source-position filename="gsf-opendoc-utils.h" line="135"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-opendoc-utils.c"
             line="53">the ODF version as a string: "1.2".</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
    </function>
    <function name="open_pkg_error_id" c:identifier="gsf_open_pkg_error_id">
      <source-position filename="gsf-open-pkg-utils.h" line="91"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
    </function>
    <function name="open_pkg_foreach_rel"
              c:identifier="gsf_open_pkg_foreach_rel">
      <doc xml:space="preserve"
           filename="gsf-open-pkg-utils.c"
           line="338">New in 1.14.9

Walks each relationship associated with @opkg and calls @func with @user_data.</doc>
      <source-position filename="gsf-open-pkg-utils.h" line="42"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="opkg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="340">#GsfInput</doc>
          <type name="Input" c:type="GsfInput*"/>
        </parameter>
        <parameter name="func"
                   transfer-ownership="none"
                   scope="call"
                   closure="2">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="341">#GsfOpenPkgIter</doc>
          <type name="OpenPkgIter" c:type="GsfOpenPkgIter"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="342">gpointer</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="open_pkg_lookup_rel_by_id"
              c:identifier="gsf_open_pkg_lookup_rel_by_id"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-open-pkg-utils.c"
           line="304">New in 1.14.6

Finds @opkg's relation with @id

NOTE: skipping because gsf_open_pkg_rel_get_type() does not return a GType.</doc>
      <source-position filename="gsf-open-pkg-utils.h" line="41"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-open-pkg-utils.c"
             line="315">A #GsfOpenPkgRel or %NULL</doc>
        <type name="OpenPkgRel" c:type="GsfOpenPkgRel*"/>
      </return-value>
      <parameters>
        <parameter name="opkg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="306">#GsfInput</doc>
          <type name="Input" c:type="GsfInput*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="307">identifier.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="open_pkg_lookup_rel_by_type"
              c:identifier="gsf_open_pkg_lookup_rel_by_type"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-open-pkg-utils.c"
           line="284">New in 1.14.6

Finds _a_ relation of @opkg with @type (no order is guaranteed)

NOTE: skipping because gsf_open_pkg_rel_get_type() does not return a GType.</doc>
      <source-position filename="gsf-open-pkg-utils.h" line="40"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-open-pkg-utils.c"
             line="295">A #GsfOpenPkgRel or %NULL</doc>
        <type name="OpenPkgRel" c:type="GsfOpenPkgRel*"/>
      </return-value>
      <parameters>
        <parameter name="opkg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="286">#GsfInput</doc>
          <type name="Input" c:type="GsfInput*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="287">target</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="open_pkg_open_rel"
              c:identifier="gsf_open_pkg_open_rel"
              throws="1">
      <source-position filename="gsf-open-pkg-utils.h" line="45"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gsf-open-pkg-utils.c"
             line="216">a new #GsfInput which the called needs to unref, or %NULL and sets @err</doc>
        <type name="Input" c:type="GsfInput*"/>
      </return-value>
      <parameters>
        <parameter name="opkg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="212">#GsfInput</doc>
          <type name="Input" c:type="GsfInput*"/>
        </parameter>
        <parameter name="rel" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="213">#GsfOpenPkgRel</doc>
          <type name="OpenPkgRel" c:type="const GsfOpenPkgRel*"/>
        </parameter>
      </parameters>
    </function>
    <function name="open_pkg_open_rel_by_id"
              c:identifier="gsf_open_pkg_open_rel_by_id"
              throws="1">
      <doc xml:space="preserve"
           filename="gsf-open-pkg-utils.c"
           line="364">New in 1.14.7

Open @opkg's relation @id</doc>
      <source-position filename="gsf-open-pkg-utils.h" line="50"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gsf-open-pkg-utils.c"
             line="374">A new GsfInput or %NULL, and sets @err if possible.</doc>
        <type name="Input" c:type="GsfInput*"/>
      </return-value>
      <parameters>
        <parameter name="opkg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="366">#GsfInput</doc>
          <type name="Input" c:type="GsfInput*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="367">target id</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="open_pkg_open_rel_by_type"
              c:identifier="gsf_open_pkg_open_rel_by_type"
              throws="1">
      <doc xml:space="preserve"
           filename="gsf-open-pkg-utils.c"
           line="391">New in 1.14.9

Open one of @opkg's relationships with type=@type.</doc>
      <source-position filename="gsf-open-pkg-utils.h" line="48"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gsf-open-pkg-utils.c"
             line="401">A new GsfInput or %NULL, and sets @err if possible.</doc>
        <type name="Input" c:type="GsfInput*"/>
      </return-value>
      <parameters>
        <parameter name="opkg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="393">#GsfInput</doc>
          <type name="Input" c:type="GsfInput*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="394">target type</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="open_pkg_parse_rel_by_id"
              c:identifier="gsf_open_pkg_parse_rel_by_id">
      <doc xml:space="preserve"
           filename="gsf-open-pkg-utils.c"
           line="418">Convenience function to parse a related part.</doc>
      <source-position filename="gsf-open-pkg-utils.h" line="52"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gsf-open-pkg-utils.c"
             line="427">%NULL on success or a #GError on failure.</doc>
        <type name="GLib.Error" c:type="GError*"/>
      </return-value>
      <parameters>
        <parameter name="xin" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="420">#GsfXMLIn</doc>
          <type name="XMLIn" c:type="GsfXMLIn*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="421">target id</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="dtd" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="422">#GsfXMLInNode</doc>
          <type name="XMLInNode" c:type="const GsfXMLInNode*"/>
        </parameter>
        <parameter name="ns" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-open-pkg-utils.c"
               line="423">#GsfXMLInNS</doc>
          <type name="XMLInNS" c:type="const GsfXMLInNS*"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_settings_collect"
              c:identifier="gsf_property_settings_collect"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="783">This function builds a GParameter array suitable for g_object_newv.</doc>
      <source-position filename="gsf-utils.h" line="310"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="785">the #GType for which the properties are being set.</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="p_params"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="786">a pointer to the #GParameter array that holds the properties.</doc>
          <type name="GObject.Parameter" c:type="GParameter**"/>
        </parameter>
        <parameter name="p_n_params"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="787">a pointer to the number of properties collected.</doc>
          <type name="gsize" c:type="size_t*"/>
        </parameter>
        <parameter name="first_property_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="788">the name of the first property being set, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="789">the remainder of the property names and values, terminated by %NULL.</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="property_settings_collect_valist"
              c:identifier="gsf_property_settings_collect_valist"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="715">This function builds a GParameter array suitable for g_object_newv.</doc>
      <source-position filename="gsf-utils.h" line="304"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="717">the #GType for which the properties are being set.</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="p_params"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="718">a pointer to the #GParameter array that holds the properties.</doc>
          <type name="GObject.Parameter" c:type="GParameter**"/>
        </parameter>
        <parameter name="p_n_params"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="719">a pointer to the number of properties collected.</doc>
          <type name="gsize" c:type="size_t*"/>
        </parameter>
        <parameter name="first_property_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="720">the name of the first property being set, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="var_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="721">a va_list holding the remainder of the property names and
  values, terminated by a %NULL.</doc>
          <type name="va_list" c:type="va_list"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_settings_find"
              c:identifier="gsf_property_settings_find">
      <source-position filename="gsf-utils.h" line="316"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="gsf-utils.c"
             line="813">the #GParameter with @name in @params, or %NULL.</doc>
        <type name="GObject.Parameter" c:type="const GParameter*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="809">The name of the property to find.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="params" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="810">The #GParameter array to search.</doc>
          <array length="2" zero-terminated="0" c:type="const GParameter*">
            <type name="GObject.Parameter" c:type="GParameter"/>
          </array>
        </parameter>
        <parameter name="n_params" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="811">The number of parameters in the array.</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_settings_free"
              c:identifier="gsf_property_settings_free">
      <source-position filename="gsf-utils.h" line="320"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="params" transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="831">The #GParameter array to free.</doc>
          <array length="1" zero-terminated="0" c:type="GParameter*">
            <type name="GObject.Parameter" c:type="GParameter"/>
          </array>
        </parameter>
        <parameter name="n_params" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="832">The number of parameters in the array.</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="shutdown" c:identifier="gsf_shutdown">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="148">De-intializes the GSF library
Currently does nothing.</doc>
      <source-position filename="gsf-utils.h" line="250"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="shutdown_dynamic" c:identifier="gsf_shutdown_dynamic">
      <doc xml:space="preserve"
           filename="gsf-utils.c"
           line="229">De-intializes the GSF library from a type module.
Currently does nothing.</doc>
      <source-position filename="gsf-utils.h" line="252"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="module"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gsf-utils.c"
               line="231">#GTypeModule.</doc>
          <type name="GObject.TypeModule" c:type="GTypeModule*"/>
        </parameter>
      </parameters>
    </function>
    <function name="value_get_docprop_array"
              c:identifier="gsf_value_get_docprop_array">
      <doc xml:space="preserve"
           filename="gsf-docprop-vector.c"
           line="49">This function returns the array of values inside #GsfDocPropVector.
No additional references are created.</doc>
      <source-position filename="gsf-docprop-vector.h" line="47"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="gsf-docprop-vector.c"
             line="56">A #GArray
of #GValue</doc>
        <array name="GLib.Array" c:type="GArray*">
          <type name="GObject.Value"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-docprop-vector.c"
               line="51">A GValue of type #GsfDocPropVector.</doc>
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
      </parameters>
    </function>
    <function name="value_get_docprop_varray"
              c:identifier="gsf_value_get_docprop_varray">
      <source-position filename="gsf-docprop-vector.h" line="45"/>
      <return-value transfer-ownership="full">
        <type name="GObject.ValueArray" c:type="GValueArray*"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
      </parameters>
    </function>
    <function name="value_get_docprop_vector"
              c:identifier="gsf_value_get_docprop_vector">
      <doc xml:space="preserve"
           filename="gsf-docprop-vector.c"
           line="66">This function returns a pointer to the GsfDocPropVector structure in @value.
No additional references are created.</doc>
      <source-position filename="gsf-docprop-vector.h" line="42"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-docprop-vector.c"
             line="73">A pointer to the #GsfDocPropVector structure in @value</doc>
        <type name="DocPropVector" c:type="GsfDocPropVector*"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-docprop-vector.c"
               line="68">A GValue of type #GsfDocPropVector.</doc>
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
      </parameters>
    </function>
    <function name="vba_inflate" c:identifier="gsf_vba_inflate">
      <doc xml:space="preserve"
           filename="gsf-infile-msvba.c"
           line="51">Decompresses VBA stream.</doc>
      <source-position filename="gsf-infile-msvba.h" line="42"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-infile-msvba.c"
             line="60">A pointer to guint8 array</doc>
        <type name="guint8" c:type="guint8*"/>
      </return-value>
      <parameters>
        <parameter name="input" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-infile-msvba.c"
               line="53">stream to read from</doc>
          <type name="Input" c:type="GsfInput*"/>
        </parameter>
        <parameter name="offset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-infile-msvba.c"
               line="54">offset into it for start byte of compressed stream</doc>
          <type name="gsf_off_t" c:type="gsf_off_t"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-infile-msvba.c"
               line="55">size of the returned array</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="add_null_terminator" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-infile-msvba.c"
               line="56">whenever add or not null at the end of array</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="xmlDocFormatDump" c:identifier="gsf_xmlDocFormatDump">
      <doc xml:space="preserve"
           filename="gsf-libxml.c"
           line="377">Dumps the document @cur into @output.</doc>
      <source-position filename="gsf-libxml.h" line="38"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="386">status from xmlSaveFormatFileTo.</doc>
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="output" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="379">#GsfOutput</doc>
          <type name="Output" c:type="GsfOutput*"/>
        </parameter>
        <parameter name="cur" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="380">#xmlDocPtr</doc>
          <type name="libxml2.Doc" c:type="xmlDoc*"/>
        </parameter>
        <parameter name="encoding"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="381">The encoding to use.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="format" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="382">%TRUE to reformat the output.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="xml_gvalue_from_str"
              c:identifier="gsf_xml_gvalue_from_str">
      <doc xml:space="preserve"
           filename="gsf-libxml.c"
           line="186">Try to parse @str as a value of type @t into @res.</doc>
      <source-position filename="gsf-libxml.h" line="222"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="194">True when parsing of @str as a value of type @t was succesfull;
false otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="res" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="188">Result value</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="t" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="189">Type of data</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="190">Value string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xml_parser_context"
              c:identifier="gsf_xml_parser_context"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gsf-libxml.c"
           line="332">Create a libxml2 pull style parser context wrapper around gsf input @input.
This signature will probably change to supply a SAX structure.

&lt;note&gt;This adds a reference to @input.&lt;/note&gt;
&lt;note&gt;A simple wrapper around a cleaner implementation that will fold in
when we add other api changes.  Its not worth bumping just for this.&lt;/note&gt;

NOTE: skipped since xmlParserCtxt is not exported to introspection.</doc>
      <source-position filename="gsf-libxml.h" line="33"/>
      <return-value nullable="1">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="345">A parser context</doc>
        <type c:type="xmlParserCtxt*"/>
      </return-value>
      <parameters>
        <parameter name="input" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="334">#GsfInput</doc>
          <type name="Input" c:type="GsfInput*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xml_probe" c:identifier="gsf_xml_probe">
      <source-position filename="gsf-libxml.h" line="51"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gsf-libxml.c"
             line="464">TRUE on success.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="input" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="461">#GsfInput</doc>
          <type name="Input" c:type="GsfInput*"/>
        </parameter>
        <parameter name="func" transfer-ownership="none" scope="call">
          <doc xml:space="preserve"
               filename="gsf-libxml.c"
               line="462">#GsfXMLProbeFunc</doc>
          <type name="XMLProbeFunc" c:type="GsfXMLProbeFunc"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="zip">
      <doc xml:space="preserve"
           filename="gsf-zip-utils.c"
           line="29">#GsfInfile and #GsfOutfile support for zip files.</doc>
    </docsection>
  </namespace>
</repository>
