<?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"/>
  <package name="gmime-3.0"/>
  <c:include name="gmime/gmime.h"/>
  <doc:format name="unknown"/>
  <namespace name="GMime"
             version="3.0"
             shared-library="libgmime-3.0.so.0"
             c:identifier-prefixes="GMime"
             c:symbol-prefixes="g_mime,gmime">
    <function-macro name="APPLICATION_PKCS7_MIME"
                    c:identifier="GMIME_APPLICATION_PKCS7_MIME"
                    introspectable="0">
      <source-position filename="gmime-application-pkcs7-mime.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APPLICATION_PKCS7_MIME_CLASS"
                    c:identifier="GMIME_APPLICATION_PKCS7_MIME_CLASS"
                    introspectable="0">
      <source-position filename="gmime-application-pkcs7-mime.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APPLICATION_PKCS7_MIME_GET_CLASS"
                    c:identifier="GMIME_APPLICATION_PKCS7_MIME_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-application-pkcs7-mime.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="AUTOCRYPT_HEADER"
                    c:identifier="GMIME_AUTOCRYPT_HEADER"
                    introspectable="0">
      <source-position filename="gmime-autocrypt.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="AUTOCRYPT_HEADER_CLASS"
                    c:identifier="GMIME_AUTOCRYPT_HEADER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-autocrypt.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="AUTOCRYPT_HEADER_GET_CLASS"
                    c:identifier="GMIME_AUTOCRYPT_HEADER_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-autocrypt.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="AUTOCRYPT_HEADER_LIST"
                    c:identifier="GMIME_AUTOCRYPT_HEADER_LIST"
                    introspectable="0">
      <source-position filename="gmime-autocrypt.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="AUTOCRYPT_HEADER_LIST_CLASS"
                    c:identifier="GMIME_AUTOCRYPT_HEADER_LIST_CLASS"
                    introspectable="0">
      <source-position filename="gmime-autocrypt.h" line="42"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="AUTOCRYPT_HEADER_LIST_GET_CLASS"
                    c:identifier="GMIME_AUTOCRYPT_HEADER_LIST_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-autocrypt.h" line="45"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="AddressType" c:type="GMimeAddressType">
      <doc xml:space="preserve"
           filename="gmime-message.h"
           line="49">An address type.</doc>
      <source-position filename="gmime-message.h" line="67"/>
      <member name="sender" value="0" c:identifier="GMIME_ADDRESS_TYPE_SENDER">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="51">Represents the addresses in the Sender header.</doc>
      </member>
      <member name="from" value="1" c:identifier="GMIME_ADDRESS_TYPE_FROM">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="52">Represents the addresses in the From header.</doc>
      </member>
      <member name="reply_to"
              value="2"
              c:identifier="GMIME_ADDRESS_TYPE_REPLY_TO">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="53">Represents the addresses in the Reply-To header.</doc>
      </member>
      <member name="to" value="3" c:identifier="GMIME_ADDRESS_TYPE_TO">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="54">Represents the recipients in the To header.</doc>
      </member>
      <member name="cc" value="4" c:identifier="GMIME_ADDRESS_TYPE_CC">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="55">Represents the recipients in the Cc header.</doc>
      </member>
      <member name="bcc" value="5" c:identifier="GMIME_ADDRESS_TYPE_BCC">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="56">Represents the recipients in the Bcc header.</doc>
      </member>
    </enumeration>
    <class name="ApplicationPkcs7Mime"
           c:symbol-prefix="application_pkcs7_mime"
           c:type="GMimeApplicationPkcs7Mime"
           parent="Part"
           glib:type-name="GMimeApplicationPkcs7Mime"
           glib:get-type="g_mime_application_pkcs7_mime_get_type"
           glib:type-struct="ApplicationPkcs7MimeClass">
      <doc xml:space="preserve"
           filename="gmime-application-pkcs7-mime.h"
           line="60">An application/pkcs7-mime MIME part.</doc>
      <source-position filename="gmime-application-pkcs7-mime.h" line="76"/>
      <constructor name="new" c:identifier="g_mime_application_pkcs7_mime_new">
        <doc xml:space="preserve"
             filename="gmime-application-pkcs7-mime.c"
             line="135">Creates a new application/pkcs7-mime object.</doc>
        <source-position filename="gmime-application-pkcs7-mime.h" line="81"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-application-pkcs7-mime.c"
               line="141">an empty application/pkcs7-mime object.</doc>
          <type name="ApplicationPkcs7Mime"
                c:type="GMimeApplicationPkcs7Mime*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="137">The type of S/MIME data contained within the part.</doc>
            <type name="SecureMimeType" c:type="GMimeSecureMimeType"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="encrypt"
                c:identifier="g_mime_application_pkcs7_mime_encrypt"
                throws="1">
        <doc xml:space="preserve"
             filename="gmime-application-pkcs7-mime.c"
             line="325">Attempts to encrypt the @entity MIME part to the public keys of @recipients
using S/MIME. If successful, a new application/pkcs7-mime object is returned.</doc>
        <source-position filename="gmime-application-pkcs7-mime.h" line="88"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-application-pkcs7-mime.c"
               line="335">a new #GMimeApplicationPkcs7Mime object on success
or %NULL on fail. If encrypting fails, an exception will be set on @err to provide
information as to why the failure occurred.</doc>
          <type name="ApplicationPkcs7Mime"
                c:type="GMimeApplicationPkcs7Mime*"/>
        </return-value>
        <parameters>
          <parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="327">a #GMimeObject to encrypt</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="328">a #GMimeEncryptFlags</doc>
            <type name="EncryptFlags" c:type="GMimeEncryptFlags"/>
          </parameter>
          <parameter name="recipients" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="329">an array of recipients to encrypt to</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </function>
      <function name="sign"
                c:identifier="g_mime_application_pkcs7_mime_sign"
                throws="1">
        <doc xml:space="preserve"
             filename="gmime-application-pkcs7-mime.c"
             line="495">Attempts to sign the @entity MIME part with @userid's private key using
S/MIME. If successful, a new application/pkcs7-mime object is returned.</doc>
        <source-position filename="gmime-application-pkcs7-mime.h" line="95"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-application-pkcs7-mime.c"
               line="504">a new #GMimeApplicationPkcs7Mime object on success
or %NULL on fail. If signing fails, an exception will be set on @err to provide
information as to why the failure occurred.</doc>
          <type name="ApplicationPkcs7Mime"
                c:type="GMimeApplicationPkcs7Mime*"/>
        </return-value>
        <parameters>
          <parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="497">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
          <parameter name="userid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="498">the user id to sign with</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <method name="decrypt"
              c:identifier="g_mime_application_pkcs7_mime_decrypt"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-application-pkcs7-mime.c"
             line="393">Attempts to decrypt the encrypted application/pkcs7-mime part.

When non-%NULL, @session_key should be a %NULL-terminated string,
such as the one returned by g_mime_decrypt_result_get_session_key()
from a previous decryption. If the @session_key is not valid, decryption
will fail.

If @result is non-%NULL, then on a successful decrypt operation, it will be
updated to point to a newly-allocated #GMimeDecryptResult with signature
status information as well as a list of recipients that the part was
encrypted to.</doc>
        <source-position filename="gmime-application-pkcs7-mime.h" line="91"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-application-pkcs7-mime.c"
               line="413">the decrypted MIME part on success or
%NULL on fail. If the decryption fails, an exception will be set on
@err to provide information as to why the failure occurred.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkcs7_mime" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="395">a #GMimeApplicationPkcs7Mime</doc>
            <type name="ApplicationPkcs7Mime"
                  c:type="GMimeApplicationPkcs7Mime*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="396">a #GMimeDecryptFlags</doc>
            <type name="DecryptFlags" c:type="GMimeDecryptFlags"/>
          </parameter>
          <parameter name="session_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="397">session key to use or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="398">the decryption result</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_smime_type"
              c:identifier="g_mime_application_pkcs7_mime_get_smime_type">
        <doc xml:space="preserve"
             filename="gmime-application-pkcs7-mime.c"
             line="187">Gets the smime-type value of the Content-Type header.</doc>
        <source-position filename="gmime-application-pkcs7-mime.h" line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-application-pkcs7-mime.c"
               line="193">the smime-type value.</doc>
          <type name="SecureMimeType" c:type="GMimeSecureMimeType"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkcs7_mime" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="189">A #GMimeApplicationPkcs7Mime object</doc>
            <type name="ApplicationPkcs7Mime"
                  c:type="GMimeApplicationPkcs7Mime*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="verify"
              c:identifier="g_mime_application_pkcs7_mime_verify"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-application-pkcs7-mime.c"
             line="562">Attempts to verify the signed @pkcs7_mime part and extract the original
MIME entity.</doc>
        <source-position filename="gmime-application-pkcs7-mime.h" line="97"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-application-pkcs7-mime.c"
               line="572">a new #GMimeSignatureList object on
success or %NULL on fail. If the verification fails, an exception
will be set on @err to provide information as to why the failure
occurred.</doc>
          <type name="SignatureList" c:type="GMimeSignatureList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkcs7_mime" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="564">a #GMimeApplicationPkcs7Mime</doc>
            <type name="ApplicationPkcs7Mime"
                  c:type="GMimeApplicationPkcs7Mime*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="565">a #GMimeVerifyFlags</doc>
            <type name="VerifyFlags" c:type="GMimeVerifyFlags"/>
          </parameter>
          <parameter name="entity"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-application-pkcs7-mime.c"
                 line="566">the extracted entity</doc>
            <type name="Object" c:type="GMimeObject**"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-application-pkcs7-mime.h"
             line="62">parent #GMimePart object</doc>
        <type name="Part" c:type="GMimePart"/>
      </field>
      <field name="smime_type">
        <doc xml:space="preserve"
             filename="gmime-application-pkcs7-mime.h"
             line="63">The smime-type Content-Type parameter.</doc>
        <type name="SecureMimeType" c:type="GMimeSecureMimeType"/>
      </field>
    </class>
    <record name="ApplicationPkcs7MimeClass"
            c:type="GMimeApplicationPkcs7MimeClass"
            glib:is-gtype-struct-for="ApplicationPkcs7Mime">
      <source-position filename="gmime-application-pkcs7-mime.h" line="76"/>
      <field name="parent_class">
        <type name="PartClass" c:type="GMimePartClass"/>
      </field>
    </record>
    <class name="AutocryptHeader"
           c:symbol-prefix="autocrypt_header"
           c:type="GMimeAutocryptHeader"
           parent="GObject.Object"
           glib:type-name="GMimeAutocryptHeader"
           glib:get-type="g_mime_autocrypt_header_get_type"
           glib:type-struct="AutocryptHeaderClass">
      <doc xml:space="preserve"
           filename="gmime-autocrypt.h"
           line="65">An object containing Autocrypt information about a given e-mail
address, as derived from a message header.

See https://autocrypt.org/ for details and motivation.</doc>
      <source-position filename="gmime-autocrypt.h" line="89"/>
      <constructor name="new" c:identifier="g_mime_autocrypt_header_new">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="110">Creates a new #GMimeAutocryptHeader object.</doc>
        <source-position filename="gmime-autocrypt.h" line="93"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="115">a new #GMimeAutocryptHeader object.</doc>
          <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_string"
                   c:identifier="g_mime_autocrypt_header_new_from_string">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="124">Creates a new #GMimeAutocryptHeader object based on the value of an
Autocrypt: header.

Note that this will not have an @effective_date set, since the
@effective_date is derived from the Date: line in the same block of
e-mail headers, but cannot be extracted from the raw Autocrypt:
header itself.</doc>
        <source-position filename="gmime-autocrypt.h" line="94"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="136">a new #GMimeAutocryptHeader object, or
%NULL on error.</doc>
          <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
        </return-value>
        <parameters>
          <parameter name="string" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="126">The raw string value of an Autocrypt header</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="clone" c:identifier="g_mime_autocrypt_header_clone">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="554">If address and type already match between @src and @dst, copy
keydata, prefer_encrypt, effective_date from @src to @dst.</doc>
        <source-position filename="gmime-autocrypt.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dst" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="556">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
          <parameter name="src" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="557">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </parameter>
        </parameters>
      </method>
      <method name="compare" c:identifier="g_mime_autocrypt_header_compare">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="489">Compare two Autocrypt Headers.  This is useful for comparison, as well as for
sorting headers by:

 - address
 - effective_date
 - keydata
 - prefer_encrypt</doc>
        <source-position filename="gmime-autocrypt.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="502">-1, 0, or 1 when @ah1 is less than, equal to, or greater than @ah2.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="ah1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="491">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
          <parameter name="ah2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="492">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_address"
              c:identifier="g_mime_autocrypt_header_get_address">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="260">Gets the internal address of the Autocrypt header, or %NULL if not set.</doc>
        <source-position filename="gmime-autocrypt.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="266">the address associated with the Autocrypt header</doc>
          <type name="InternetAddressMailbox"
                c:type="InternetAddressMailbox*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ah" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="262">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_address_as_string"
              c:identifier="g_mime_autocrypt_header_get_address_as_string">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="277">Gets the internal address of the Autocrypt header as a C string, or %NULL if not set.</doc>
        <source-position filename="gmime-autocrypt.h" line="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="283">the address associated with the Autocrypt header</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ah" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="279">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_effective_date"
              c:identifier="g_mime_autocrypt_header_get_effective_date">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="388">Gets the effective date of the Autocrypt header, or %NULL if not set.</doc>
        <source-position filename="gmime-autocrypt.h" line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="394">the effective date associated with the Autocrypt header</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ah" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="390">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_keydata"
              c:identifier="g_mime_autocrypt_header_get_keydata">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="349">Gets the raw keydata of the Autocrypt header, or %NULL if not set.</doc>
        <source-position filename="gmime-autocrypt.h" line="105"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="355">the raw key data associated with the Autocrypt header</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ah" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="351">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_prefer_encrypt"
              c:identifier="g_mime_autocrypt_header_get_prefer_encrypt">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="310">Gets the encryption preference stated by the Autocrypt header.</doc>
        <source-position filename="gmime-autocrypt.h" line="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="316">the encryption preference associated with the Autocrypt header</doc>
          <type name="AutocryptPreferEncrypt"
                c:type="GMimeAutocryptPreferEncrypt"/>
        </return-value>
        <parameters>
          <instance-parameter name="ah" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="312">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_complete"
              c:identifier="g_mime_autocrypt_header_is_complete">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="405">When dealing with Autocrypt headers derived from a message, some
sender addresses will not have a legitimate/complete header
associated with them.  When a given sender address has no complete
header of a specific type, it should "reset" the state of the
associated address.</doc>
        <source-position filename="gmime-autocrypt.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="415">%TRUE if the header is complete, or %FALSE if it is incomplete.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ah" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="407">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_address"
              c:identifier="g_mime_autocrypt_header_set_address">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="240">Set the address associated with the autocrypt_header.</doc>
        <source-position filename="gmime-autocrypt.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ah" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="242">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
          <parameter name="address" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="243">a #InternetAddressMailbox value</doc>
            <type name="InternetAddressMailbox"
                  c:type="InternetAddressMailbox*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_address_from_string"
              c:identifier="g_mime_autocrypt_header_set_address_from_string">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="221">Set the address associated with the autocrypt_header.</doc>
        <source-position filename="gmime-autocrypt.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ah" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="223">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
          <parameter name="address" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="224">a %NULL-terminated string that is a raw e-mail address</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_effective_date"
              c:identifier="g_mime_autocrypt_header_set_effective_date">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="366">Set the effective date associated with the Autocrypt header.</doc>
        <source-position filename="gmime-autocrypt.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ah" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="368">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
          <parameter name="effective_date" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="369">a #GDateTime object</doc>
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_keydata"
              c:identifier="g_mime_autocrypt_header_set_keydata">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="327">Set the raw key data associated with the Autocrypt header.</doc>
        <source-position filename="gmime-autocrypt.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ah" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="329">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
          <parameter name="keydata" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="330">a #GBytes object</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_prefer_encrypt"
              c:identifier="g_mime_autocrypt_header_set_prefer_encrypt">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="294">Set the encryption preference associated with the Autocrypt header.</doc>
        <source-position filename="gmime-autocrypt.h" line="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ah" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="296">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
          <parameter name="pref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="297">a #GMimeAutocryptPreferEncrypt value</doc>
            <type name="AutocryptPreferEncrypt"
                  c:type="GMimeAutocryptPreferEncrypt"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string"
              c:identifier="g_mime_autocrypt_header_to_string">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="427">Gets the string representation of the Autocrypt header, or %NULL on
error.  For example, it might return:

    prefer-encrypt=mutual; addr=bob\@example.com; keydata=AAAB15BE...

If you are using this object to populate an Autocrypt-Gossip
header, you should set @gossip to %TRUE (this will suppress
inclusion of prefer-encrypt).</doc>
        <source-position filename="gmime-autocrypt.h" line="110"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="441">the string representation of the
Autocrypt header.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ah" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="429">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </instance-parameter>
          <parameter name="gossip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="430">a #gboolean, indicating whether this header is for use with gossip</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.h"
             line="67">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="address">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.h"
             line="68">the #InternetAddressMailbox associated with this Autocrypt header.</doc>
        <type name="InternetAddressMailbox" c:type="InternetAddressMailbox*"/>
      </field>
      <field name="prefer_encrypt">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.h"
             line="69">a #GMimeAutocryptPreferEncrypt value (defaults to @GMIME_AUTOCRYPT_PREFER_ENCRYPT_NONE).</doc>
        <type name="AutocryptPreferEncrypt"
              c:type="GMimeAutocryptPreferEncrypt"/>
      </field>
      <field name="keydata">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.h"
             line="70">the raw binary form of the encoded key.</doc>
        <type name="GLib.Bytes" c:type="GBytes*"/>
      </field>
      <field name="effective_date">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.h"
             line="71">the date associated with the Autocrypt header in this message.</doc>
        <type name="GLib.DateTime" c:type="GDateTime*"/>
      </field>
    </class>
    <record name="AutocryptHeaderClass"
            c:type="GMimeAutocryptHeaderClass"
            glib:is-gtype-struct-for="AutocryptHeader">
      <source-position filename="gmime-autocrypt.h" line="89"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="AutocryptHeaderList"
           c:symbol-prefix="autocrypt_header_list"
           c:type="GMimeAutocryptHeaderList"
           parent="GObject.Object"
           glib:type-name="GMimeAutocryptHeaderList"
           glib:get-type="g_mime_autocrypt_header_list_get_type"
           glib:type-struct="AutocryptHeaderListClass">
      <doc xml:space="preserve"
           filename="gmime-autocrypt.h"
           line="117">A list of Autocrypt headers, typically extracted from a GMimeMessage.</doc>
      <source-position filename="gmime-autocrypt.h" line="134"/>
      <constructor name="new" c:identifier="g_mime_autocrypt_header_list_new">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="656">Creates a new #GMimeAutocryptHeaderList object.</doc>
        <source-position filename="gmime-autocrypt.h" line="138"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="661">a new #GMimeAutocryptHeaderList object.</doc>
          <type name="AutocryptHeaderList" c:type="GMimeAutocryptHeaderList*"/>
        </return-value>
      </constructor>
      <method name="add" c:identifier="g_mime_autocrypt_header_list_add">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="714">Adds a the passed #GMimeAutocryptHeader to the list.</doc>
        <source-position filename="gmime-autocrypt.h" line="140"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="716">a #GMimeAutocryptHeaderList object</doc>
            <type name="AutocryptHeaderList"
                  c:type="GMimeAutocryptHeaderList*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="717">a #GMimeAutocryptHeader object</doc>
            <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_missing_addresses"
              c:identifier="g_mime_autocrypt_header_list_add_missing_addresses">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="670">Adds a new incomplete #GMimeAutocryptHeader object for each
InternetAddressMailbox found in #addresses.</doc>
        <source-position filename="gmime-autocrypt.h" line="139"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="678">the number of addresses added</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="672">a #GMimeAutocryptHeaderList object</doc>
            <type name="AutocryptHeaderList"
                  c:type="GMimeAutocryptHeaderList*"/>
          </instance-parameter>
          <parameter name="addresses" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="673">an #InternetAddressList object</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_count"
              c:identifier="g_mime_autocrypt_header_list_get_count">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="733">See how many Autocrypt headers are in the list.</doc>
        <source-position filename="gmime-autocrypt.h" line="142"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="739">the number of available Autocrypt headers</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="735">a #GMimeAutocryptHeaderList object</doc>
            <type name="AutocryptHeaderList"
                  c:type="GMimeAutocryptHeaderList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_header_at"
              c:identifier="g_mime_autocrypt_header_list_get_header_at">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="750">Get the Nth header in the list (returns %NULL on error, or if @index is out of bounds)</doc>
        <source-position filename="gmime-autocrypt.h" line="143"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="757">a pointer to the Nth header in the list.</doc>
          <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="752">a #GMimeAutocryptHeaderList object</doc>
            <type name="AutocryptHeaderList"
                  c:type="GMimeAutocryptHeaderList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="753">an index into the list</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_header_for_address"
              c:identifier="g_mime_autocrypt_header_list_get_header_for_address">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="771">Gets the Autocrypt header corresponding to the given @mailbox.</doc>
        <source-position filename="gmime-autocrypt.h" line="144"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-autocrypt.c"
               line="778">a pointer to the header in the list which
matches the requested address, or %NULL if no such header exists in
the list.</doc>
          <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="773">a #GMimeAutocryptHeaderList object</doc>
            <type name="AutocryptHeaderList"
                  c:type="GMimeAutocryptHeaderList*"/>
          </instance-parameter>
          <parameter name="mailbox" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="774">an #InternetAddressMailbox object</doc>
            <type name="InternetAddressMailbox"
                  c:type="InternetAddressMailbox*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_incomplete"
              c:identifier="g_mime_autocrypt_header_list_remove_incomplete">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.c"
             line="804">Remove all incomplete Autocrypt headers from the list.</doc>
        <source-position filename="gmime-autocrypt.h" line="145"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-autocrypt.c"
                 line="806">a #GMimeAutocryptHeaderList object</doc>
            <type name="AutocryptHeaderList"
                  c:type="GMimeAutocryptHeaderList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.h"
             line="119">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="array" readable="0" private="1">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.h"
             line="120">Array of #GMimeAutocryptHeader items.</doc>
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="AutocryptHeaderListClass"
            c:type="GMimeAutocryptHeaderListClass"
            glib:is-gtype-struct-for="AutocryptHeaderList">
      <source-position filename="gmime-autocrypt.h" line="134"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="AutocryptPreferEncrypt"
                 c:type="GMimeAutocryptPreferEncrypt">
      <doc xml:space="preserve"
           filename="gmime-autocrypt.h"
           line="53">A description of the user's preference for encrypted messaging.</doc>
      <source-position filename="gmime-autocrypt.h" line="63"/>
      <member name="none"
              value="0"
              c:identifier="GMIME_AUTOCRYPT_PREFER_ENCRYPT_NONE">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.h"
             line="55">No preference stated.</doc>
      </member>
      <member name="mutual"
              value="1"
              c:identifier="GMIME_AUTOCRYPT_PREFER_ENCRYPT_MUTUAL">
        <doc xml:space="preserve"
             filename="gmime-autocrypt.h"
             line="56">Please encrypt, if you also have this preference</doc>
      </member>
    </enumeration>
    <function-macro name="BASE64_ENCODE_LEN"
                    c:identifier="GMIME_BASE64_ENCODE_LEN"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-encodings.h"
           line="76">Calculates the maximum number of bytes needed to base64 encode the
full input buffer of length @x.</doc>
      <source-position filename="gmime-encodings.h" line="86"/>
      <parameters>
        <parameter name="x">
          <doc xml:space="preserve"
               filename="gmime-encodings.h"
               line="78">Length of the input data to encode</doc>
        </parameter>
      </parameters>
    </function-macro>
    <constant name="BINARY_AGE" value="215" c:type="GMIME_BINARY_AGE">
      <doc xml:space="preserve"
           filename="gmime-version.h"
           line="46">GMime's binary age.</doc>
      <source-position filename="gmime-version.h" line="51"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="CERTIFICATE"
                    c:identifier="GMIME_CERTIFICATE"
                    introspectable="0">
      <source-position filename="gmime-certificate.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CERTIFICATE_CLASS"
                    c:identifier="GMIME_CERTIFICATE_CLASS"
                    introspectable="0">
      <source-position filename="gmime-certificate.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CERTIFICATE_GET_CLASS"
                    c:identifier="GMIME_CERTIFICATE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-certificate.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CERTIFICATE_LIST"
                    c:identifier="GMIME_CERTIFICATE_LIST"
                    introspectable="0">
      <source-position filename="gmime-certificate.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CERTIFICATE_LIST_CLASS"
                    c:identifier="GMIME_CERTIFICATE_LIST_CLASS"
                    introspectable="0">
      <source-position filename="gmime-certificate.h" line="41"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CERTIFICATE_LIST_GET_CLASS"
                    c:identifier="GMIME_CERTIFICATE_LIST_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-certificate.h" line="44"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CHECK_VERSION"
                    c:identifier="GMIME_CHECK_VERSION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-version.h"
           line="61">Check whether a GMime version equal to or greater than
@major.@minor.@micro is present.</doc>
      <source-position filename="gmime-version.h" line="70"/>
      <parameters>
        <parameter name="major">
          <doc xml:space="preserve"
               filename="gmime-version.h"
               line="63">Minimum major version</doc>
        </parameter>
        <parameter name="minor">
          <doc xml:space="preserve"
               filename="gmime-version.h"
               line="64">Minimum minor version</doc>
        </parameter>
        <parameter name="micro">
          <doc xml:space="preserve"
               filename="gmime-version.h"
               line="65">Minimum micro version</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTENT_DISPOSITION"
                    c:identifier="GMIME_CONTENT_DISPOSITION"
                    introspectable="0">
      <source-position filename="gmime-disposition.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTENT_DISPOSITION_CLASS"
                    c:identifier="GMIME_CONTENT_DISPOSITION_CLASS"
                    introspectable="0">
      <source-position filename="gmime-disposition.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTENT_DISPOSITION_GET_CLASS"
                    c:identifier="GMIME_CONTENT_DISPOSITION_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-disposition.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTENT_TYPE"
                    c:identifier="GMIME_CONTENT_TYPE"
                    introspectable="0">
      <source-position filename="gmime-content-type.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTENT_TYPE_CLASS"
                    c:identifier="GMIME_CONTENT_TYPE_CLASS"
                    introspectable="0">
      <source-position filename="gmime-content-type.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTENT_TYPE_GET_CLASS"
                    c:identifier="GMIME_CONTENT_TYPE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-content-type.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CRYPTO_CONTEXT"
                    c:identifier="GMIME_CRYPTO_CONTEXT"
                    introspectable="0">
      <source-position filename="gmime-crypto-context.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CRYPTO_CONTEXT_CLASS"
                    c:identifier="GMIME_CRYPTO_CONTEXT_CLASS"
                    introspectable="0">
      <source-position filename="gmime-crypto-context.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CRYPTO_CONTEXT_GET_CLASS"
                    c:identifier="GMIME_CRYPTO_CONTEXT_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-crypto-context.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Certificate"
           c:symbol-prefix="certificate"
           c:type="GMimeCertificate"
           parent="GObject.Object"
           glib:type-name="GMimeCertificate"
           glib:get-type="g_mime_certificate_get_type"
           glib:type-struct="CertificateClass">
      <doc xml:space="preserve"
           filename="gmime-certificate.h"
           line="184">An object containing useful information about a certificate.</doc>
      <source-position filename="gmime-certificate.h" line="224"/>
      <constructor name="new" c:identifier="g_mime_certificate_new">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="118">Creates a new #GMimeCertificate object.</doc>
        <source-position filename="gmime-certificate.h" line="229"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="123">a new #GMimeCertificate object.</doc>
          <type name="Certificate" c:type="GMimeCertificate*"/>
        </return-value>
      </constructor>
      <method name="get_created" c:identifier="g_mime_certificate_get_created">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="542">Get the creation date of the certificate's key.</doc>
        <source-position filename="gmime-certificate.h" line="265"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="548">the creation date of the certificate's key or %-1 if unknown.</doc>
          <type name="time_t" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="544">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_created64"
              c:identifier="g_mime_certificate_get_created64">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="559">Get the creation date of the certificate's key in seconds since the
UNIX epoch, represented as a 64-bit signed integer.</doc>
        <source-position filename="gmime-certificate.h" line="266"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="566">the creation date of the certificate's key or %-1 if unknown.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="561">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_digest_algo"
              c:identifier="g_mime_certificate_get_digest_algo">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="215">Get the digest algorithm used by the certificate.</doc>
        <source-position filename="gmime-certificate.h" line="238"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="221">the digest algorithm used by the certificate or
#GMIME_DIGEST_ALGO_DEFAULT if unspecified.</doc>
          <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="217">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_email" c:identifier="g_mime_certificate_get_email">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="387">Get the email address associated with the certificate.  If the
certificate contains more than one email address with different
validities, the email address with the highest validity is
returned.  If more than one email address appears in the
certificate with the same (highest) validity, the first such email
address will be returned.</doc>
        <source-position filename="gmime-certificate.h" line="253"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="398">the relevant e-mail address, or %NULL if unspecified.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="389">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_expires" c:identifier="g_mime_certificate_get_expires">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="596">Get the expiration date of the certificate's key. A value of %0 means the certificate never expires.</doc>
        <source-position filename="gmime-certificate.h" line="269"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="602">the expiration date of the certificate's key or %-1 if unknown.</doc>
          <type name="time_t" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="598">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_expires64"
              c:identifier="g_mime_certificate_get_expires64">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="613">Get the expiration date of the certificate's key in seconds since
the UNIX epoch, represented as a 64-bit signed integer. A value of
%0 means the certificate never expires.</doc>
        <source-position filename="gmime-certificate.h" line="270"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="621">the expiration date of the certificate's key or %-1 if unknown.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="615">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fingerprint"
              c:identifier="g_mime_certificate_get_fingerprint">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="318">Get the certificate's key fingerprint.</doc>
        <source-position filename="gmime-certificate.h" line="247"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="324">the certificate's key fingerprint or %NULL if unspecified.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="320">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id_validity"
              c:identifier="g_mime_certificate_get_id_validity">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="507">Get the validity of the certificate's identity information.  This
validity applies to the name, email, and user_id fields associated
with the certificate.</doc>
        <source-position filename="gmime-certificate.h" line="262"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="515">the identity validity of the certificate.</doc>
          <type name="Validity" c:type="GMimeValidity"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="509">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_issuer_name"
              c:identifier="g_mime_certificate_get_issuer_name">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="284">Get the certificate's issuer name.</doc>
        <source-position filename="gmime-certificate.h" line="244"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="290">the certificate's issuer name or %NULL if unspecified.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="286">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_issuer_serial"
              c:identifier="g_mime_certificate_get_issuer_serial">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="250">Get the certificate's issuer serial.</doc>
        <source-position filename="gmime-certificate.h" line="241"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="256">the certificate's issuer serial or %NULL if unspecified.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="252">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_key_id" c:identifier="g_mime_certificate_get_key_id">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="352">Get the certificate's key id.</doc>
        <source-position filename="gmime-certificate.h" line="250"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="358">the certificate's key id or %NULL if unspecified.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="354">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="g_mime_certificate_get_name">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="428">Get the name associated with the certificate.  For email
certificates, this is usually the name of the person who controls
the certificate (encoded in UTF-8).  If the certificate contains
more than one name with different validities, the name with the
highest validity is returned.  If more than one name appears in the
certificate with the same (highest) validity, the first such name
will be returned.</doc>
        <source-position filename="gmime-certificate.h" line="256"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="440">the the relevant name or %NULL if unspecified.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="430">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pubkey_algo"
              c:identifier="g_mime_certificate_get_pubkey_algo">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="181">Get the public-key algorithm used by the certificate.</doc>
        <source-position filename="gmime-certificate.h" line="235"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="187">the public-key algorithm used by the certificate or
#GMIME_PUBKEY_ALGO_DEFAULT if unspecified.</doc>
          <type name="PubKeyAlgo" c:type="GMimePubKeyAlgo"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="183">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_trust" c:identifier="g_mime_certificate_get_trust">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="148">Get the certificate trust.</doc>
        <source-position filename="gmime-certificate.h" line="232"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="154">the certificate trust.</doc>
          <type name="Trust" c:type="GMimeTrust"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="150">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_id" c:identifier="g_mime_certificate_get_user_id">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="470">Get the certificate's full User ID.  If the certificate contains
more than one User ID with different validities, the User ID with
the highest validity is returned.  If more than one User ID appears
in the certificate with the same (highest) validity, the first such
User ID will be returned.</doc>
        <source-position filename="gmime-certificate.h" line="259"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="480">the relevant User ID or %NULL if unspecified.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="472">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_created" c:identifier="g_mime_certificate_set_created">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="526">Set the creation date of the certificate's key.</doc>
        <source-position filename="gmime-certificate.h" line="264"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="528">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
          <parameter name="created" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="529">creation date</doc>
            <type name="time_t" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_digest_algo"
              c:identifier="g_mime_certificate_set_digest_algo">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="199">Set the digest algorithm used by the certificate.</doc>
        <source-position filename="gmime-certificate.h" line="237"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="201">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
          <parameter name="algo" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="202">a #GMimeDigestAlgo</doc>
            <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_email" c:identifier="g_mime_certificate_set_email">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="369">Set the email address associated with the
certificate. (e.g. "jane\@example.org")</doc>
        <source-position filename="gmime-certificate.h" line="252"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="371">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
          <parameter name="email" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="372">certificate's email</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_expires" c:identifier="g_mime_certificate_set_expires">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="580">Set the expiration date of the certificate's key. A value of %0 means the certificate never expires.</doc>
        <source-position filename="gmime-certificate.h" line="268"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="582">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
          <parameter name="expires" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="583">expiration date</doc>
            <type name="time_t" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fingerprint"
              c:identifier="g_mime_certificate_set_fingerprint">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="301">Set the certificate's key fingerprint.</doc>
        <source-position filename="gmime-certificate.h" line="246"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="303">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
          <parameter name="fingerprint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="304">fingerprint string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id_validity"
              c:identifier="g_mime_certificate_set_id_validity">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="491">Set the validity associated with the certificate's name, email, and user_id.</doc>
        <source-position filename="gmime-certificate.h" line="261"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="493">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
          <parameter name="validity" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="494">a #GMimeValidity representing the validity of the certificate's identity information.</doc>
            <type name="Validity" c:type="GMimeValidity"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_issuer_name"
              c:identifier="g_mime_certificate_set_issuer_name">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="267">Set the certificate's issuer name.</doc>
        <source-position filename="gmime-certificate.h" line="243"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="269">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
          <parameter name="issuer_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="270">certificate's issuer name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_issuer_serial"
              c:identifier="g_mime_certificate_set_issuer_serial">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="233">Set the certificate's issuer serial.</doc>
        <source-position filename="gmime-certificate.h" line="240"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="235">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
          <parameter name="issuer_serial" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="236">certificate's issuer serial</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_key_id" c:identifier="g_mime_certificate_set_key_id">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="335">Set the certificate's key id.</doc>
        <source-position filename="gmime-certificate.h" line="249"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="337">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
          <parameter name="key_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="338">key id</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="g_mime_certificate_set_name">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="409">Set the name associated with the certificate.  For email
certificates, this is usually the name of the person who controls
the certificate (encoded in UTF-8). (e.g. "Jane Doe")</doc>
        <source-position filename="gmime-certificate.h" line="255"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="411">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="412">certificate's name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pubkey_algo"
              c:identifier="g_mime_certificate_set_pubkey_algo">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="165">Set the public-key algorithm used by the certificate.</doc>
        <source-position filename="gmime-certificate.h" line="234"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="167">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
          <parameter name="algo" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="168">a #GMimePubKeyAlgo</doc>
            <type name="PubKeyAlgo" c:type="GMimePubKeyAlgo"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_trust" c:identifier="g_mime_certificate_set_trust">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="132">Set the certificate trust.</doc>
        <source-position filename="gmime-certificate.h" line="231"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="134">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
          <parameter name="trust" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="135">a #GMimeTrust value</doc>
            <type name="Trust" c:type="GMimeTrust"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_user_id" c:identifier="g_mime_certificate_set_user_id">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="451">Set the certificate's full User ID.  By convention, this is usually
a mail name-addr as described in RFC 5322.  (e.g. "Jane Doe
&amp;lt;jane\@example.org&amp;gt;")</doc>
        <source-position filename="gmime-certificate.h" line="258"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="453">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </instance-parameter>
          <parameter name="user_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="454">the full User ID for a certificate</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="186">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="pubkey_algo">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="187">The public-key algorithm used by the certificate, if known.</doc>
        <type name="PubKeyAlgo" c:type="GMimePubKeyAlgo"/>
      </field>
      <field name="digest_algo">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="188">The digest algorithm used by the certificate, if known.</doc>
        <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
      </field>
      <field name="trust">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="189">The level of trust assigned to this certificate.</doc>
        <type name="Trust" c:type="GMimeTrust"/>
      </field>
      <field name="issuer_serial">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="190">The issuer of the certificate, if known.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="issuer_name">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="191">The issuer of the certificate, if known.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="fingerprint">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="192">A hex string representing the certificate's fingerprint.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="created">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="193">The creation date of the certificate.</doc>
        <type name="time_t" c:type="time_t"/>
      </field>
      <field name="expires">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="194">The expiration date of the certificate.</doc>
        <type name="time_t" c:type="time_t"/>
      </field>
      <field name="keyid">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="195">The certificate's key id.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="email">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="196">The email address of the person or entity.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="name">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="197">The name of the person or entity.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="user_id">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="198">The full User ID of the certificate.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="id_validity">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="199">the validity of the email address, name, and User ID.</doc>
        <type name="Validity" c:type="GMimeValidity"/>
      </field>
    </class>
    <record name="CertificateClass"
            c:type="GMimeCertificateClass"
            glib:is-gtype-struct-for="Certificate">
      <source-position filename="gmime-certificate.h" line="224"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="CertificateList"
           c:symbol-prefix="certificate_list"
           c:type="GMimeCertificateList"
           parent="GObject.Object"
           glib:type-name="GMimeCertificateList"
           glib:get-type="g_mime_certificate_list_get_type"
           glib:type-struct="CertificateListClass">
      <doc xml:space="preserve"
           filename="gmime-certificate.h"
           line="273">A collection of #GMimeCertificate objects.</doc>
      <source-position filename="gmime-certificate.h" line="288"/>
      <constructor name="new" c:identifier="g_mime_certificate_list_new">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="699">Creates a new #GMimeCertificateList.</doc>
        <source-position filename="gmime-certificate.h" line="293"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="704">a new #GMimeCertificateList.</doc>
          <type name="CertificateList" c:type="GMimeCertificateList*"/>
        </return-value>
      </constructor>
      <method name="add" c:identifier="g_mime_certificate_list_add">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="753">Adds a #GMimeCertificate to the #GMimeCertificateList.</doc>
        <source-position filename="gmime-certificate.h" line="299"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="760">the index of the added #GMimeCertificate.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="755">a #GMimeCertificateList</doc>
            <type name="CertificateList" c:type="GMimeCertificateList*"/>
          </instance-parameter>
          <parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="756">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="g_mime_certificate_list_clear">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="730">Clears the list of certificates.</doc>
        <source-position filename="gmime-certificate.h" line="297"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="732">a #GMimeCertificateList</doc>
            <type name="CertificateList" c:type="GMimeCertificateList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="contains" c:identifier="g_mime_certificate_list_contains">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="869">Checks whether or not the specified #GMimeCertificate is contained within
the #GMimeCertificateList.</doc>
        <source-position filename="gmime-certificate.h" line="304"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="877">%TRUE if the specified #GMimeCertificate is contained within the
specified #GMimeCertificateList or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="871">a #GMimeCertificateList</doc>
            <type name="CertificateList" c:type="GMimeCertificateList*"/>
          </instance-parameter>
          <parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="872">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_certificate"
              c:identifier="g_mime_certificate_list_get_certificate">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="916">Gets the #GMimeCertificate at the specified index.</doc>
        <source-position filename="gmime-certificate.h" line="307"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="923">the #GMimeCertificate at the specified
index or %NULL if the index is out of range.</doc>
          <type name="Certificate" c:type="GMimeCertificate*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="918">a #GMimeCertificateList</doc>
            <type name="CertificateList" c:type="GMimeCertificateList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="919">index of #GMimeCertificate to get</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="index_of" c:identifier="g_mime_certificate_list_index_of">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="887">Gets the index of the specified #GMimeCertificate inside the
#GMimeCertificateList.</doc>
        <source-position filename="gmime-certificate.h" line="305"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="895">the index of the requested #GMimeCertificate within the
#GMimeCertificateList or %-1 if it is not contained within the
#GMimeCertificateList.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="889">a #GMimeCertificateList</doc>
            <type name="CertificateList" c:type="GMimeCertificateList*"/>
          </instance-parameter>
          <parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="890">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="g_mime_certificate_list_insert">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="778">Inserts a #GMimeCertificate into the #GMimeCertificateList at the specified
index.</doc>
        <source-position filename="gmime-certificate.h" line="300"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="780">a #GMimeCertificateList</doc>
            <type name="CertificateList" c:type="GMimeCertificateList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="781">index to insert at</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="782">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </parameter>
        </parameters>
      </method>
      <method name="length" c:identifier="g_mime_certificate_list_length">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="713">Gets the length of the list.</doc>
        <source-position filename="gmime-certificate.h" line="295"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="719">the number of #GMimeCertificate objects in the list.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="715">a #GMimeCertificateList</doc>
            <type name="CertificateList" c:type="GMimeCertificateList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="g_mime_certificate_list_remove">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="815">Removes a #GMimeCertificate from the #GMimeCertificateList.</doc>
        <source-position filename="gmime-certificate.h" line="301"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="822">%TRUE if the specified #GMimeCertificate was removed or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="817">a #GMimeCertificateList</doc>
            <type name="CertificateList" c:type="GMimeCertificateList*"/>
          </instance-parameter>
          <parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="818">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_at"
              c:identifier="g_mime_certificate_list_remove_at">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="840">Removes a #GMimeCertificate from the #GMimeCertificateList at the specified
index.</doc>
        <source-position filename="gmime-certificate.h" line="302"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="848">%TRUE if a #GMimeCertificate was removed or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="842">a #GMimeCertificateList</doc>
            <type name="CertificateList" c:type="GMimeCertificateList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="843">index of the certificate to remove</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_certificate"
              c:identifier="g_mime_certificate_list_set_certificate">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="939">Sets the #GMimeCertificate at the specified index to @cert.</doc>
        <source-position filename="gmime-certificate.h" line="308"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="941">a #GMimeCertificateList</doc>
            <type name="CertificateList" c:type="GMimeCertificateList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="942">index of #GMimeCertificate to set</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="943">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="275">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="array">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="276">An array of #GMimeCertificate objects.</doc>
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="CertificateListClass"
            c:type="GMimeCertificateListClass"
            glib:is-gtype-struct-for="CertificateList">
      <source-position filename="gmime-certificate.h" line="288"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="Charset" c:type="GMimeCharset">
      <doc xml:space="preserve"
           filename="gmime-charset.h"
           line="50">State used by g_mime_charset_best() and g_mime_charset_best_name().</doc>
      <source-position filename="gmime-charset.h" line="60"/>
      <field name="mask" writable="1">
        <doc xml:space="preserve"
             filename="gmime-charset.h"
             line="52">charset mask</doc>
        <type name="guint" c:type="unsigned int"/>
      </field>
      <field name="level" writable="1">
        <doc xml:space="preserve"
             filename="gmime-charset.h"
             line="53">charset level</doc>
        <type name="guint" c:type="unsigned int"/>
      </field>
      <method name="best_name" c:identifier="g_mime_charset_best_name">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="802">Gets the best charset name based on the charset mask @charset.</doc>
        <source-position filename="gmime-charset.h" line="64"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="808">the charset name that best represents the charset
mask @charset or %NULL for us-ascii.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="804">charset mask</doc>
            <type name="Charset" c:type="GMimeCharset*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="can_encode" c:identifier="g_mime_charset_can_encode">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="845">Check to see if the UTF-8 @text will fit safely within @charset.</doc>
        <source-position filename="gmime-charset.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="854">%TRUE if it is safe to encode @text into @charset or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mask" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="847">a #GMimeCharset mask</doc>
            <type name="Charset" c:type="GMimeCharset*"/>
          </instance-parameter>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="848">a charset</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="849">utf-8 text to check</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="850">length of @text</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="g_mime_charset_init">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="718">Initializes a charset mask structure.</doc>
        <source-position filename="gmime-charset.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="720">charset mask</doc>
            <type name="Charset" c:type="GMimeCharset*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="step" c:identifier="g_mime_charset_step">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="732">Steps through the input buffer 1 unicode character (glyph) at a
time (ie, not necessarily 1 byte at a time). Bitwise 'and' our
@charset-&gt;mask with the mask for each glyph. This has the effect of
limiting what charsets our @charset-&gt;mask can match.</doc>
        <source-position filename="gmime-charset.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="734">charset structure</doc>
            <type name="Charset" c:type="GMimeCharset*"/>
          </instance-parameter>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="735">input text buffer (must be in UTF-8)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="736">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </method>
      <function name="best" c:identifier="g_mime_charset_best">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="823">Computes the best charset to use to encode this text buffer.</doc>
        <source-position filename="gmime-charset.h" line="66"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="830">the charset name best suited for the input text
or %NULL if it is ascii-safe.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="825">a UTF-8 text buffer</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="826">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </function>
      <function name="canon_name" c:identifier="g_mime_charset_canon_name">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="568">Attempts to find a canonical charset name for @charset.

Note: Will normally return the same value as
g_mime_charset_iconv_name() unless the system iconv does not use
the canonical ISO charset names (such as using ISO8859-1 rather
than the canonical form ISO-8859-1).</doc>
        <source-position filename="gmime-charset.h" line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="579">a canonical charset name for @charset.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="570">charset name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="iconv_name" c:identifier="g_mime_charset_iconv_name">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="441">Attempts to find an iconv-friendly charset name for @charset.</doc>
        <source-position filename="gmime-charset.h" line="39"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="447">an iconv-friendly charset name for @charset.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="443">charset name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="iso_to_windows"
                c:identifier="g_mime_charset_iso_to_windows">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="657">Maps the ISO-8859-# charset to the equivalent Windows-CP125#
charset.</doc>
        <source-position filename="gmime-charset.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="664">equivalent Windows charset.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <parameter name="isocharset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="659">ISO-8859-# charset</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="language" c:identifier="g_mime_charset_language">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="387">Attempts to find a specific language code that is specific to
@charset. Currently only handles CJK and Russian/Ukranian
charset-&gt;lang mapping. Everything else will return %NULL.</doc>
        <source-position filename="gmime-charset.h" line="36"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="395">a language code that is specific to @charset,
or %NULL on fail.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="389">charset name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="locale_name" c:identifier="g_mime_charset_locale_name">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="640">Gets the user's locale charset (or iso-8859-1 by default).

Note: This function is deprecated. Use g_mime_locale_charset()
instead.</doc>
        <source-position filename="gmime-charset.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="648">the user's locale charset (or iso-8859-1 by default).</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </function>
      <function name="map_init" c:identifier="g_mime_charset_map_init">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="258">Initializes character set maps.

Note: g_mime_init() calls this routine for you.</doc>
        <source-position filename="gmime-charset.h" line="30"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="map_shutdown" c:identifier="g_mime_charset_map_shutdown">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="184">Frees internal lookup tables created in g_mime_charset_map_init().</doc>
        <source-position filename="gmime-charset.h" line="31"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="name" c:identifier="g_mime_charset_name">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="622">Attempts to find an iconv-friendly charset name for @charset.

Note: This function is deprecated. Use g_mime_charset_iconv_name()
instead.</doc>
        <source-position filename="gmime-charset.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="631">an iconv-friendly charset name for @charset.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-charset.c"
                 line="624">charset name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <enumeration name="CipherAlgo" c:type="GMimeCipherAlgo">
      <doc xml:space="preserve"
           filename="gmime-crypto-context.h"
           line="230">A cipher algorithm.</doc>
      <source-position filename="gmime-crypto-context.h" line="260"/>
      <member name="default"
              value="0"
              c:identifier="GMIME_CIPHER_ALGO_DEFAULT">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="232">The default (or unknown) cipher.</doc>
      </member>
      <member name="idea" value="1" c:identifier="GMIME_CIPHER_ALGO_IDEA">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="233">The IDEA cipher.</doc>
      </member>
      <member name="3des" value="2" c:identifier="GMIME_CIPHER_ALGO_3DES">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="234">The 3DES cipher.</doc>
      </member>
      <member name="cast5" value="3" c:identifier="GMIME_CIPHER_ALGO_CAST5">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="235">The CAST5 cipher.</doc>
      </member>
      <member name="blowfish"
              value="4"
              c:identifier="GMIME_CIPHER_ALGO_BLOWFISH">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="236">The Blowfish cipher.</doc>
      </member>
      <member name="aes" value="7" c:identifier="GMIME_CIPHER_ALGO_AES">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="237">The AES (aka RIJANDALE) cipher.</doc>
      </member>
      <member name="aes192" value="8" c:identifier="GMIME_CIPHER_ALGO_AES192">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="238">The AES-192 cipher.</doc>
      </member>
      <member name="aes256" value="9" c:identifier="GMIME_CIPHER_ALGO_AES256">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="239">The AES-256 cipher.</doc>
      </member>
      <member name="twofish"
              value="10"
              c:identifier="GMIME_CIPHER_ALGO_TWOFISH">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="240">The Twofish cipher.</doc>
      </member>
      <member name="camellia128"
              value="11"
              c:identifier="GMIME_CIPHER_ALGO_CAMELLIA128">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="241">The Camellia-128 cipher.</doc>
      </member>
      <member name="camellia192"
              value="12"
              c:identifier="GMIME_CIPHER_ALGO_CAMELLIA192">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="242">The Camellia-192 cipher.</doc>
      </member>
      <member name="camellia256"
              value="13"
              c:identifier="GMIME_CIPHER_ALGO_CAMELLIA256">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="243">The Camellia-256 cipher.</doc>
      </member>
    </enumeration>
    <class name="ContentDisposition"
           c:symbol-prefix="content_disposition"
           c:type="GMimeContentDisposition"
           parent="GObject.Object"
           glib:type-name="GMimeContentDisposition"
           glib:get-type="g_mime_content_disposition_get_type"
           glib:type-struct="ContentDispositionClass">
      <doc xml:space="preserve"
           filename="gmime-disposition.h"
           line="58">A data structure representing a Content-Disposition.</doc>
      <source-position filename="gmime-disposition.h" line="79"/>
      <constructor name="new" c:identifier="g_mime_content_disposition_new">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="121">Creates a new #GMimeContentDisposition object.</doc>
        <source-position filename="gmime-disposition.h" line="84"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="126">a new #GMimeContentDisposition object.</doc>
          <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
        </return-value>
      </constructor>
      <function name="parse" c:identifier="g_mime_content_disposition_parse">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="140">Parses the input string into a #GMimeContentDisposition object.</doc>
        <source-position filename="gmime-disposition.h" line="85"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="147">a new #GMimeContentDisposition object.</doc>
          <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
        </return-value>
        <parameters>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="142">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="143">Content-Disposition field value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <method name="encode" c:identifier="g_mime_content_disposition_encode">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="311">Encodes the Content-Disposition header.</doc>
        <source-position filename="gmime-disposition.h" line="99"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="318">a new string containing the encoded header value.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="disposition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="313">a #GMimeContentDisposition object</doc>
            <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="314">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_disposition"
              c:identifier="g_mime_content_disposition_get_disposition">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="214">Gets the disposition or %NULL on fail.</doc>
        <source-position filename="gmime-disposition.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="220">the disposition string which is probably one of
#GMIME_DISPOSITION_ATTACHMENT or #GMIME_DISPOSITION_INLINE.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="disposition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="216">a #GMimeContentDisposition object</doc>
            <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parameter"
              c:identifier="g_mime_content_disposition_get_parameter">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="269">Gets the parameter value specified by @name if it's available.</doc>
        <source-position filename="gmime-disposition.h" line="94"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="276">the value of the requested parameter or %NULL if the
parameter is not set. If the parameter is set, the returned string
will be in UTF-8.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="disposition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="271">a #GMimeContentDisposition object</doc>
            <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="272">parameter name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_parameters"
              c:identifier="g_mime_content_disposition_get_parameters">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="232">Gets the Content-Disposition parameter list.</doc>
        <source-position filename="gmime-disposition.h" line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="238">the Content-Disposition's parameter list.</doc>
          <type name="ParamList" c:type="GMimeParamList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="disposition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="234">a #GMimeContentDisposition object</doc>
            <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_attachment"
              c:identifier="g_mime_content_disposition_is_attachment">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="294">Determines if a Content-Disposition has a value of "attachment".</doc>
        <source-position filename="gmime-disposition.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="300">%TRUE if the value matches "attachment", otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="disposition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="296">a #GMimeContentDisposition object</doc>
            <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_disposition"
              c:identifier="g_mime_content_disposition_set_disposition">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="188">Sets the disposition to @value which may be one of
#GMIME_DISPOSITION_ATTACHMENT or #GMIME_DISPOSITION_INLINE or, by
your choice, any other string which would indicate how the MIME
part should be displayed by the MUA.</doc>
        <source-position filename="gmime-disposition.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="disposition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="190">a #GMimeContentDisposition object</doc>
            <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="191">disposition value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_parameter"
              c:identifier="g_mime_content_disposition_set_parameter">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="249">Sets a parameter on the Content-Disposition.

Note: The @name should be in US-ASCII while the @value should be in
UTF-8.</doc>
        <source-position filename="gmime-disposition.h" line="92"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="disposition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="251">a #GMimeContentDisposition object</doc>
            <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="252">parameter name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="253">parameter value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-disposition.h"
             line="60">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="disposition">
        <doc xml:space="preserve"
             filename="gmime-disposition.h"
             line="61">disposition</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="params">
        <doc xml:space="preserve"
             filename="gmime-disposition.h"
             line="62">a #GMimeParam list</doc>
        <type name="ParamList" c:type="GMimeParamList*"/>
      </field>
      <field name="changed" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </class>
    <record name="ContentDispositionClass"
            c:type="GMimeContentDispositionClass"
            glib:is-gtype-struct-for="ContentDisposition">
      <source-position filename="gmime-disposition.h" line="79"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="ContentEncoding" c:type="GMimeContentEncoding">
      <doc xml:space="preserve"
           filename="gmime-encodings.h"
           line="31">A Content-Transfer-Encoding enumeration.</doc>
      <source-position filename="gmime-encodings.h" line="51"/>
      <member name="default"
              value="0"
              c:identifier="GMIME_CONTENT_ENCODING_DEFAULT">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="33">Default transfer encoding.</doc>
      </member>
      <member name="7bit" value="1" c:identifier="GMIME_CONTENT_ENCODING_7BIT">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="34">7bit text transfer encoding.</doc>
      </member>
      <member name="8bit" value="2" c:identifier="GMIME_CONTENT_ENCODING_8BIT">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="35">8bit text transfer encoding.</doc>
      </member>
      <member name="binary"
              value="3"
              c:identifier="GMIME_CONTENT_ENCODING_BINARY">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="36">Binary transfer encoding.</doc>
      </member>
      <member name="base64"
              value="4"
              c:identifier="GMIME_CONTENT_ENCODING_BASE64">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="37">Base64 transfer encoding.</doc>
      </member>
      <member name="quotedprintable"
              value="5"
              c:identifier="GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="38">Quoted-printable transfer encoding.</doc>
      </member>
      <member name="uuencode"
              value="6"
              c:identifier="GMIME_CONTENT_ENCODING_UUENCODE">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="39">Uuencode transfer encoding.</doc>
      </member>
    </enumeration>
    <class name="ContentType"
           c:symbol-prefix="content_type"
           c:type="GMimeContentType"
           parent="GObject.Object"
           glib:type-name="GMimeContentType"
           glib:get-type="g_mime_content_type_get_type"
           glib:type-struct="ContentTypeClass">
      <doc xml:space="preserve"
           filename="gmime-content-type.h"
           line="42">A data structure representing a Content-Type.</doc>
      <source-position filename="gmime-content-type.h" line="64"/>
      <constructor name="new" c:identifier="g_mime_content_type_new">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="134">Creates a Content-Type object with type @type and subtype @subtype.</doc>
        <source-position filename="gmime-content-type.h" line="68"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="141">a new #GMimeContentType object.</doc>
          <type name="ContentType" c:type="GMimeContentType*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="136">the MIME type or %NULL for the default value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="subtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="137">the MIME subtype or %NULL for the default value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="parse" c:identifier="g_mime_content_type_parse">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="179">Parses the input string into a #GMimeContentType object.</doc>
        <source-position filename="gmime-content-type.h" line="69"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="186">a new #GMimeContentType object.</doc>
          <type name="ContentType" c:type="GMimeContentType*"/>
        </return-value>
        <parameters>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="181">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="182">input string containing a content-type (and params)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <method name="encode" c:identifier="g_mime_content_type_encode">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="253">Encodes the Content-Disposition header.</doc>
        <source-position filename="gmime-content-type.h" line="73"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="260">a new string containing the encoded header value.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="255">a #GMimeContentType</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="256">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_media_subtype"
              c:identifier="g_mime_content_type_get_media_subtype">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="389">Gets the Content-Type's media sub-type.</doc>
        <source-position filename="gmime-content-type.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="395">the Content-Type's media sub-type.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="391">a #GMimeContentType</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media_type"
              c:identifier="g_mime_content_type_get_media_type">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="349">Gets the Content-Type's media type.</doc>
        <source-position filename="gmime-content-type.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="355">the Content-Type's media type.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="351">a #GMimeContentType</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mime_type"
              c:identifier="g_mime_content_type_get_mime_type">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="228">Allocates a string buffer containing the type and subtype defined
by the @content_type.</doc>
        <source-position filename="gmime-content-type.h" line="71"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="235">an allocated string containing the type and subtype of the
content-type in the format: type/subtype.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="230">a #GMimeContentType</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parameter"
              c:identifier="g_mime_content_type_get_parameter">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="443">Gets the parameter value specified by @name if it's available.</doc>
        <source-position filename="gmime-content-type.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="450">the value of the requested parameter or %NULL if the
parameter is not set. If the parameter is set, the returned string
will be in UTF-8.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="445">a #GMimeContentType</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="446">parameter name (aka attribute)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_parameters"
              c:identifier="g_mime_content_type_get_parameters">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="406">Gets the Content-Type's parameter list.</doc>
        <source-position filename="gmime-content-type.h" line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="412">the Content-Type's parameter list.</doc>
          <type name="ParamList" c:type="GMimeParamList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="408">a #GMimeContentType</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_type" c:identifier="g_mime_content_type_is_type">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="291">Compares the given type and subtype with that of the given mime
type object.</doc>
        <source-position filename="gmime-content-type.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="300">%TRUE if the MIME types match or %FALSE otherwise. You may
use "*" in place of @type and/or @subtype as a wilcard.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="293">a #GMimeContentType</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="294">MIME type to compare against</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="subtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="295">MIME subtype to compare against</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_media_subtype"
              c:identifier="g_mime_content_type_set_media_subtype">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="366">Sets the Content-Type's media subtype.</doc>
        <source-position filename="gmime-content-type.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="368">a #GMimeContentType</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </instance-parameter>
          <parameter name="subtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="369">media subtype</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_media_type"
              c:identifier="g_mime_content_type_set_media_type">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="326">Sets the Content-Type's media type.</doc>
        <source-position filename="gmime-content-type.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="328">a #GMimeContentType</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="329">media type</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_parameter"
              c:identifier="g_mime_content_type_set_parameter">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="423">Sets a parameter on the Content-Type.

Note: The @name should be in US-ASCII while the @value should be in
UTF-8.</doc>
        <source-position filename="gmime-content-type.h" line="85"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="425">a #GMimeContentType</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="426">parameter name (aka attribute)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="427">parameter value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-content-type.h"
             line="44">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="type">
        <doc xml:space="preserve"
             filename="gmime-content-type.h"
             line="45">media type</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="subtype">
        <doc xml:space="preserve"
             filename="gmime-content-type.h"
             line="46">media subtype</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="params">
        <doc xml:space="preserve"
             filename="gmime-content-type.h"
             line="47">a #GMimeParam list</doc>
        <type name="ParamList" c:type="GMimeParamList*"/>
      </field>
      <field name="changed" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </class>
    <record name="ContentTypeClass"
            c:type="GMimeContentTypeClass"
            glib:is-gtype-struct-for="ContentType">
      <source-position filename="gmime-content-type.h" line="64"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="CryptoContext"
           c:symbol-prefix="crypto_context"
           c:type="GMimeCryptoContext"
           parent="GObject.Object"
           glib:type-name="GMimeCryptoContext"
           glib:get-type="g_mime_crypto_context_get_type"
           glib:type-struct="CryptoContextClass">
      <doc xml:space="preserve"
           filename="gmime-crypto-context.h"
           line="134">A crypto context for use with MIME.</doc>
      <source-position filename="gmime-crypto-context.h" line="187"/>
      <constructor name="new" c:identifier="g_mime_crypto_context_new">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="171">Creates a new crypto context for the specified @protocol.</doc>
        <source-position filename="gmime-crypto-context.h" line="193"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="177">a newly allocated #GMimeCryptoContext.</doc>
          <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
        </return-value>
        <parameters>
          <parameter name="protocol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="173">the crypto protocol</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="register"
                c:identifier="g_mime_crypto_context_register"
                introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="154">Registers the callback for the specified @protocol.</doc>
        <source-position filename="gmime-crypto-context.h" line="192"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="protocol" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="156">crypto protocol</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="157">a #GMimeCryptoContextNewFunc</doc>
            <type name="CryptoContextNewFunc"
                  c:type="GMimeCryptoContextNewFunc"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="decrypt" invoker="decrypt" throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="477">Decrypts the ciphertext input stream and writes the resulting cleartext
to the output stream.

When non-%NULL, @session_key should be a %NULL-terminated string,
such as the one returned by g_mime_decrypt_result_get_session_key()
from a previous decryption. If the @session_key is not valid, decryption
will fail.

If the encrypted input stream was also signed, the returned
#GMimeDecryptResult will have a non-%NULL list of signatures, each with a
#GMimeSignatureStatus (among other details about each signature).

On success, the returned #GMimeDecryptResult will contain a list of
certificates, one for each recipient, that the original encrypted stream
was encrypted to.

Note: It *may* be possible to maliciously design an encrypted stream such
that recursively decrypting it will result in an endless loop, causing
a denial of service attack on your application.</doc>
        <source-position filename="gmime-crypto-context.h" line="170"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="506">a #GMimeDecryptResult on success or %NULL
on error.</doc>
          <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="479">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="480">a set of #GMimeDecryptFlags</doc>
            <type name="DecryptFlags" c:type="GMimeDecryptFlags"/>
          </parameter>
          <parameter name="session_key"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="481">the session key to use or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="482">input/ciphertext stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="ostream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="483">output/cleartext stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="digest_id" invoker="digest_id">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="235">Gets the digest id based on the digest name.</doc>
        <source-position filename="gmime-crypto-context.h" line="150"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="242">the equivalent digest id or #GMIME_DIGEST_ALGO_DEFAULT on fail.</doc>
          <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="237">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="238">digest name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="digest_name" invoker="digest_name">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="261">Gets the digest name based on the digest id @digest.</doc>
        <source-position filename="gmime-crypto-context.h" line="151"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="268">the equivalent digest name or %NULL on fail.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="263">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="digest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="264">digest id</doc>
            <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="encrypt" invoker="encrypt" throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="438">Encrypts (and optionally signs) the cleartext input stream and
writes the resulting ciphertext to the output stream.</doc>
        <source-position filename="gmime-crypto-context.h" line="165"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="452">%0 on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="440">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="sign" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="441">sign as well as encrypt</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="userid"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="442">the key id (or email address) to use when signing (assuming @sign is %TRUE)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="443">a set of #GMimeEncryptFlags</doc>
            <type name="EncryptFlags" c:type="GMimeEncryptFlags"/>
          </parameter>
          <parameter name="recipients" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="444">an array of recipient key ids and/or email addresses</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="utf8"/>
            </array>
          </parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="445">cleartext input stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="ostream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="446">ciphertext output stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="export_keys" invoker="export_keys" throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="563">Exports the keys/certificates in @keys to the stream @ostream from
the key/certificate database controlled by @ctx.

If @keys is %NULL or contains only a %NULL element, then all keys
will be exported.</doc>
        <source-position filename="gmime-crypto-context.h" line="177"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="576">%0 on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="565">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="566">an array of key ids, terminated by a %NULL element</doc>
            <array c:type="const char**">
              <type name="utf8" c:type="char*"/>
            </array>
          </parameter>
          <parameter name="ostream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="567">output stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_encryption_protocol"
                      invoker="get_encryption_protocol">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="310">Gets the encryption protocol for the crypto context.</doc>
        <source-position filename="gmime-crypto-context.h" line="154"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="316">the encryption protocol or %NULL if not supported.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="312">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_key_exchange_protocol"
                      invoker="get_key_exchange_protocol">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="334">Gets the key exchange protocol for the crypto context.</doc>
        <source-position filename="gmime-crypto-context.h" line="155"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="340">the key exchange protocol or %NULL if not supported.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="336">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_signature_protocol"
                      invoker="get_signature_protocol">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="286">Gets the signature protocol for the crypto context.</doc>
        <source-position filename="gmime-crypto-context.h" line="153"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="292">the signature protocol or %NULL if not supported.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="288">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="import_keys" invoker="import_keys" throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="531">Imports a stream of keys/certificates contained within @istream
into the key/certificate database controlled by @ctx.</doc>
        <source-position filename="gmime-crypto-context.h" line="174"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="540">the total number of keys imported on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="533">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="534">input stream (containing keys)</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="sign" invoker="sign" throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="362">Signs the input stream and writes the resulting signature to the output stream.</doc>
        <source-position filename="gmime-crypto-context.h" line="157"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="373">the #GMimeDigestAlgo used on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="364">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="detach" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="365">%TRUE if @ostream should be the detached signature; otherwise, %FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="userid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="366">private key to use to sign the stream</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="367">input stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="ostream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="368">output stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="verify" invoker="verify" throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="398">Verifies the signature. If @istream is a clearsigned stream, you
should pass %NULL as the @sigstream parameter and may wish to
provide an @ostream argument for GMime to output the original
plaintext into. Otherwise @sigstream is assumed to be the signature
stream and is used to verify the integirity of the @istream.</doc>
        <source-position filename="gmime-crypto-context.h" line="161"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="413">a #GMimeSignatureList object containing
the status of each signature or %NULL on error.</doc>
          <type name="SignatureList" c:type="GMimeSignatureList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="400">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="401">a #GMimeVerifyFlags</doc>
            <type name="VerifyFlags" c:type="GMimeVerifyFlags"/>
          </parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="402">input stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="sigstream"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="403">detached-signature stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="ostream"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="404">output stream for use with encapsulated signature input streams</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="decrypt"
              c:identifier="g_mime_crypto_context_decrypt"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="477">Decrypts the ciphertext input stream and writes the resulting cleartext
to the output stream.

When non-%NULL, @session_key should be a %NULL-terminated string,
such as the one returned by g_mime_decrypt_result_get_session_key()
from a previous decryption. If the @session_key is not valid, decryption
will fail.

If the encrypted input stream was also signed, the returned
#GMimeDecryptResult will have a non-%NULL list of signatures, each with a
#GMimeSignatureStatus (among other details about each signature).

On success, the returned #GMimeDecryptResult will contain a list of
certificates, one for each recipient, that the original encrypted stream
was encrypted to.

Note: It *may* be possible to maliciously design an encrypted stream such
that recursively decrypting it will result in an endless loop, causing
a denial of service attack on your application.</doc>
        <source-position filename="gmime-crypto-context.h" line="219"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="506">a #GMimeDecryptResult on success or %NULL
on error.</doc>
          <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="479">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="480">a set of #GMimeDecryptFlags</doc>
            <type name="DecryptFlags" c:type="GMimeDecryptFlags"/>
          </parameter>
          <parameter name="session_key"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="481">the session key to use or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="482">input/ciphertext stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="ostream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="483">output/cleartext stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="digest_id" c:identifier="g_mime_crypto_context_digest_id">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="235">Gets the digest id based on the digest name.</doc>
        <source-position filename="gmime-crypto-context.h" line="198"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="242">the equivalent digest id or #GMIME_DIGEST_ALGO_DEFAULT on fail.</doc>
          <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="237">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="238">digest name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="digest_name"
              c:identifier="g_mime_crypto_context_digest_name">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="261">Gets the digest name based on the digest id @digest.</doc>
        <source-position filename="gmime-crypto-context.h" line="199"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="268">the equivalent digest name or %NULL on fail.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="263">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="digest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="264">digest id</doc>
            <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
          </parameter>
        </parameters>
      </method>
      <method name="encrypt"
              c:identifier="g_mime_crypto_context_encrypt"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="438">Encrypts (and optionally signs) the cleartext input stream and
writes the resulting ciphertext to the output stream.</doc>
        <source-position filename="gmime-crypto-context.h" line="214"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="452">%0 on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="440">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="sign" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="441">sign as well as encrypt</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="userid"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="442">the key id (or email address) to use when signing (assuming @sign is %TRUE)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="443">a set of #GMimeEncryptFlags</doc>
            <type name="EncryptFlags" c:type="GMimeEncryptFlags"/>
          </parameter>
          <parameter name="recipients" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="444">an array of recipient key ids and/or email addresses</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="utf8"/>
            </array>
          </parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="445">cleartext input stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="ostream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="446">ciphertext output stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="export_keys"
              c:identifier="g_mime_crypto_context_export_keys"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="563">Exports the keys/certificates in @keys to the stream @ostream from
the key/certificate database controlled by @ctx.

If @keys is %NULL or contains only a %NULL element, then all keys
will be exported.</doc>
        <source-position filename="gmime-crypto-context.h" line="226"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="576">%0 on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="565">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="566">an array of key ids, terminated by a %NULL element</doc>
            <array c:type="const char**">
              <type name="utf8" c:type="char*"/>
            </array>
          </parameter>
          <parameter name="ostream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="567">output stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_encryption_protocol"
              c:identifier="g_mime_crypto_context_get_encryption_protocol">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="310">Gets the encryption protocol for the crypto context.</doc>
        <source-position filename="gmime-crypto-context.h" line="203"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="316">the encryption protocol or %NULL if not supported.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="312">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_key_exchange_protocol"
              c:identifier="g_mime_crypto_context_get_key_exchange_protocol">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="334">Gets the key exchange protocol for the crypto context.</doc>
        <source-position filename="gmime-crypto-context.h" line="204"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="340">the key exchange protocol or %NULL if not supported.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="336">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_signature_protocol"
              c:identifier="g_mime_crypto_context_get_signature_protocol">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="286">Gets the signature protocol for the crypto context.</doc>
        <source-position filename="gmime-crypto-context.h" line="202"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="292">the signature protocol or %NULL if not supported.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="288">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="import_keys"
              c:identifier="g_mime_crypto_context_import_keys"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="531">Imports a stream of keys/certificates contained within @istream
into the key/certificate database controlled by @ctx.</doc>
        <source-position filename="gmime-crypto-context.h" line="224"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="540">the total number of keys imported on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="533">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="534">input stream (containing keys)</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_request_password"
              c:identifier="g_mime_crypto_context_set_request_password"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="193">Sets the function used by the @ctx for requesting a password from
the user.</doc>
        <source-position filename="gmime-crypto-context.h" line="195"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="195">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="request_passwd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="196">a callback function for requesting a password</doc>
            <type name="PasswordRequestFunc"
                  c:type="GMimePasswordRequestFunc"/>
          </parameter>
        </parameters>
      </method>
      <method name="sign" c:identifier="g_mime_crypto_context_sign" throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="362">Signs the input stream and writes the resulting signature to the output stream.</doc>
        <source-position filename="gmime-crypto-context.h" line="207"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="373">the #GMimeDigestAlgo used on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="364">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="detach" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="365">%TRUE if @ostream should be the detached signature; otherwise, %FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="userid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="366">private key to use to sign the stream</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="367">input stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="ostream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="368">output stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="verify"
              c:identifier="g_mime_crypto_context_verify"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="398">Verifies the signature. If @istream is a clearsigned stream, you
should pass %NULL as the @sigstream parameter and may wish to
provide an @ostream argument for GMime to output the original
plaintext into. Otherwise @sigstream is assumed to be the signature
stream and is used to verify the integirity of the @istream.</doc>
        <source-position filename="gmime-crypto-context.h" line="210"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="413">a #GMimeSignatureList object containing
the status of each signature or %NULL on error.</doc>
          <type name="SignatureList" c:type="GMimeSignatureList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="400">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="401">a #GMimeVerifyFlags</doc>
            <type name="VerifyFlags" c:type="GMimeVerifyFlags"/>
          </parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="402">input stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="sigstream"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="403">detached-signature stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="ostream"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="404">output stream for use with encapsulated signature input streams</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="136">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="request_passwd">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="137">a callback for requesting a password</doc>
        <type name="PasswordRequestFunc" c:type="GMimePasswordRequestFunc"/>
      </field>
    </class>
    <record name="CryptoContextClass"
            c:type="GMimeCryptoContextClass"
            glib:is-gtype-struct-for="CryptoContext">
      <source-position filename="gmime-crypto-context.h" line="187"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="digest_id">
        <callback name="digest_id">
          <source-position filename="gmime-crypto-context.h" line="150"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="242">the equivalent digest id or #GMIME_DIGEST_ALGO_DEFAULT on fail.</doc>
            <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="237">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="238">digest name</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="digest_name">
        <callback name="digest_name">
          <source-position filename="gmime-crypto-context.h" line="151"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="268">the equivalent digest name or %NULL on fail.</doc>
            <type name="utf8" c:type="const char*"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="263">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
            <parameter name="digest" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="264">digest id</doc>
              <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_signature_protocol">
        <callback name="get_signature_protocol">
          <source-position filename="gmime-crypto-context.h" line="153"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="292">the signature protocol or %NULL if not supported.</doc>
            <type name="utf8" c:type="const char*"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="288">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_encryption_protocol">
        <callback name="get_encryption_protocol">
          <source-position filename="gmime-crypto-context.h" line="154"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="316">the encryption protocol or %NULL if not supported.</doc>
            <type name="utf8" c:type="const char*"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="312">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_key_exchange_protocol">
        <callback name="get_key_exchange_protocol">
          <source-position filename="gmime-crypto-context.h" line="155"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="340">the key exchange protocol or %NULL if not supported.</doc>
            <type name="utf8" c:type="const char*"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="336">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="sign">
        <callback name="sign" throws="1">
          <source-position filename="gmime-crypto-context.h" line="157"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="373">the #GMimeDigestAlgo used on success or %-1 on fail.</doc>
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="364">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
            <parameter name="detach" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="365">%TRUE if @ostream should be the detached signature; otherwise, %FALSE</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="userid" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="366">private key to use to sign the stream</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="istream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="367">input stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
            <parameter name="ostream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="368">output stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="verify">
        <callback name="verify" throws="1">
          <source-position filename="gmime-crypto-context.h" line="161"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="413">a #GMimeSignatureList object containing
the status of each signature or %NULL on error.</doc>
            <type name="SignatureList" c:type="GMimeSignatureList*"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="400">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
            <parameter name="flags" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="401">a #GMimeVerifyFlags</doc>
              <type name="VerifyFlags" c:type="GMimeVerifyFlags"/>
            </parameter>
            <parameter name="istream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="402">input stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
            <parameter name="sigstream"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="403">detached-signature stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
            <parameter name="ostream"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="404">output stream for use with encapsulated signature input streams</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="encrypt">
        <callback name="encrypt" throws="1">
          <source-position filename="gmime-crypto-context.h" line="165"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="452">%0 on success or %-1 on fail.</doc>
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="440">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
            <parameter name="sign" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="441">sign as well as encrypt</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="userid"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="442">the key id (or email address) to use when signing (assuming @sign is %TRUE)</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="flags" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="443">a set of #GMimeEncryptFlags</doc>
              <type name="EncryptFlags" c:type="GMimeEncryptFlags"/>
            </parameter>
            <parameter name="recipients" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="444">an array of recipient key ids and/or email addresses</doc>
              <array name="GLib.PtrArray" c:type="GPtrArray*">
                <type name="utf8"/>
              </array>
            </parameter>
            <parameter name="istream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="445">cleartext input stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
            <parameter name="ostream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="446">ciphertext output stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="decrypt">
        <callback name="decrypt" throws="1">
          <source-position filename="gmime-crypto-context.h" line="170"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="506">a #GMimeDecryptResult on success or %NULL
on error.</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="479">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
            <parameter name="flags" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="480">a set of #GMimeDecryptFlags</doc>
              <type name="DecryptFlags" c:type="GMimeDecryptFlags"/>
            </parameter>
            <parameter name="session_key"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="481">the session key to use or %NULL</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="istream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="482">input/ciphertext stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
            <parameter name="ostream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="483">output/cleartext stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="import_keys">
        <callback name="import_keys" throws="1">
          <source-position filename="gmime-crypto-context.h" line="174"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="540">the total number of keys imported on success or %-1 on fail.</doc>
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="533">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
            <parameter name="istream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="534">input stream (containing keys)</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="export_keys">
        <callback name="export_keys" throws="1">
          <source-position filename="gmime-crypto-context.h" line="177"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="576">%0 on success or %-1 on fail.</doc>
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="565">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
            <parameter name="keys" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="566">an array of key ids, terminated by a %NULL element</doc>
              <array c:type="const char**">
                <type name="utf8" c:type="char*"/>
              </array>
            </parameter>
            <parameter name="ostream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="567">output stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="CryptoContextNewFunc"
              c:type="GMimeCryptoContextNewFunc"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-crypto-context.h"
           line="69">A callback used to create a new instance of a #GMimeCryptoContext subclass.</doc>
      <source-position filename="gmime-crypto-context.h" line="76"/>
      <return-value>
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="74">a new #GMimeCryptoContext instance.</doc>
        <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
      </return-value>
    </callback>
    <function-macro name="DATA_WRAPPER"
                    c:identifier="GMIME_DATA_WRAPPER"
                    introspectable="0">
      <source-position filename="gmime-data-wrapper.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DATA_WRAPPER_CLASS"
                    c:identifier="GMIME_DATA_WRAPPER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-data-wrapper.h" line="37"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DATA_WRAPPER_GET_CLASS"
                    c:identifier="GMIME_DATA_WRAPPER_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-data-wrapper.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DECRYPT_RESULT"
                    c:identifier="GMIME_DECRYPT_RESULT"
                    introspectable="0">
      <source-position filename="gmime-crypto-context.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DECRYPT_RESULT_CLASS"
                    c:identifier="GMIME_DECRYPT_RESULT_CLASS"
                    introspectable="0">
      <source-position filename="gmime-crypto-context.h" line="39"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DECRYPT_RESULT_GET_CLASS"
                    c:identifier="GMIME_DECRYPT_RESULT_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-crypto-context.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="DISPOSITION_ATTACHMENT"
              value="attachment"
              c:type="GMIME_DISPOSITION_ATTACHMENT">
      <doc xml:space="preserve"
           filename="gmime-disposition.h"
           line="42">Standard attachment disposition.</doc>
      <source-position filename="gmime-disposition.h" line="47"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DISPOSITION_INLINE"
              value="inline"
              c:type="GMIME_DISPOSITION_INLINE">
      <doc xml:space="preserve"
           filename="gmime-disposition.h"
           line="50">Standard inline disposition.</doc>
      <source-position filename="gmime-disposition.h" line="55"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="DataWrapper"
           c:symbol-prefix="data_wrapper"
           c:type="GMimeDataWrapper"
           parent="GObject.Object"
           glib:type-name="GMimeDataWrapper"
           glib:get-type="g_mime_data_wrapper_get_type"
           glib:type-struct="DataWrapperClass">
      <doc xml:space="preserve"
           filename="gmime-data-wrapper.h"
           line="46">A wrapper for a stream which may be encoded.</doc>
      <source-position filename="gmime-data-wrapper.h" line="65"/>
      <constructor name="new" c:identifier="g_mime_data_wrapper_new">
        <doc xml:space="preserve"
             filename="gmime-data-wrapper.c"
             line="110">Creates a new #GMimeDataWrapper object.</doc>
        <source-position filename="gmime-data-wrapper.h" line="70"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-data-wrapper.c"
               line="115">a new data wrapper object.</doc>
          <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_stream"
                   c:identifier="g_mime_data_wrapper_new_with_stream">
        <doc xml:space="preserve"
             filename="gmime-data-wrapper.c"
             line="124">Creates a new #GMimeDataWrapper object around @stream.</doc>
        <source-position filename="gmime-data-wrapper.h" line="71"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-data-wrapper.c"
               line="131">a data wrapper around @stream. Since the wrapper owns its
own reference on the stream, caller is responsible for unrefing
its own copy.</doc>
          <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-data-wrapper.c"
                 line="126">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="encoding" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-data-wrapper.c"
                 line="127">stream's encoding</doc>
            <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="write_to_stream" invoker="write_to_stream">
        <doc xml:space="preserve"
             filename="gmime-data-wrapper.c"
             line="264">Writes the raw (decoded) data to the output stream.</doc>
        <source-position filename="gmime-data-wrapper.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-data-wrapper.c"
               line="271">the number of bytes written or %-1 on failure.</doc>
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="wrapper" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-data-wrapper.c"
                 line="266">a #GMimeDataWrapper</doc>
            <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-data-wrapper.c"
                 line="267">output stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_encoding"
              c:identifier="g_mime_data_wrapper_get_encoding">
        <doc xml:space="preserve"
             filename="gmime-data-wrapper.c"
             line="214">Gets the encoding type of the stream wrapped by @wrapper.</doc>
        <source-position filename="gmime-data-wrapper.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-data-wrapper.c"
               line="220">the encoding type of the internal stream.</doc>
          <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
        </return-value>
        <parameters>
          <instance-parameter name="wrapper" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-data-wrapper.c"
                 line="216">a #GMimeDataWrapper</doc>
            <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stream" c:identifier="g_mime_data_wrapper_get_stream">
        <doc xml:space="preserve"
             filename="gmime-data-wrapper.c"
             line="181">Gets a reference to the stream wrapped by @wrapper.</doc>
        <source-position filename="gmime-data-wrapper.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-data-wrapper.c"
               line="187">a reference to the internal stream.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="wrapper" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-data-wrapper.c"
                 line="183">a #GMimeDataWrapper</doc>
            <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_encoding"
              c:identifier="g_mime_data_wrapper_set_encoding">
        <doc xml:space="preserve"
             filename="gmime-data-wrapper.c"
             line="198">Sets the encoding type of the internal stream.</doc>
        <source-position filename="gmime-data-wrapper.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="wrapper" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-data-wrapper.c"
                 line="200">a #GMimeDataWrapper</doc>
            <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
          </instance-parameter>
          <parameter name="encoding" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-data-wrapper.c"
                 line="201">encoding</doc>
            <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stream" c:identifier="g_mime_data_wrapper_set_stream">
        <doc xml:space="preserve"
             filename="gmime-data-wrapper.c"
             line="153">Replaces the wrapper's internal stream with @stream. Don't forget,
if @stream is not of the same encoding as the old stream, you'll
want to call g_mime_data_wrapper_set_encoding() as well.

Note: caller is responsible for its own reference on
@stream.</doc>
        <source-position filename="gmime-data-wrapper.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="wrapper" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-data-wrapper.c"
                 line="155">a #GMimeDataWrapper</doc>
            <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-data-wrapper.c"
                 line="156">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_to_stream"
              c:identifier="g_mime_data_wrapper_write_to_stream">
        <doc xml:space="preserve"
             filename="gmime-data-wrapper.c"
             line="264">Writes the raw (decoded) data to the output stream.</doc>
        <source-position filename="gmime-data-wrapper.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-data-wrapper.c"
               line="271">the number of bytes written or %-1 on failure.</doc>
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="wrapper" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-data-wrapper.c"
                 line="266">a #GMimeDataWrapper</doc>
            <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-data-wrapper.c"
                 line="267">output stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-data-wrapper.h"
             line="48">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="encoding">
        <doc xml:space="preserve"
             filename="gmime-data-wrapper.h"
             line="49">the encoding of the content</doc>
        <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
      </field>
      <field name="stream">
        <doc xml:space="preserve"
             filename="gmime-data-wrapper.h"
             line="50">content stream</doc>
        <type name="Stream" c:type="GMimeStream*"/>
      </field>
    </class>
    <record name="DataWrapperClass"
            c:type="GMimeDataWrapperClass"
            glib:is-gtype-struct-for="DataWrapper">
      <source-position filename="gmime-data-wrapper.h" line="65"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="write_to_stream">
        <callback name="write_to_stream">
          <source-position filename="gmime-data-wrapper.h" line="64"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-data-wrapper.c"
                 line="271">the number of bytes written or %-1 on failure.</doc>
            <type name="gssize" c:type="ssize_t"/>
          </return-value>
          <parameters>
            <parameter name="wrapper" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-data-wrapper.c"
                   line="266">a #GMimeDataWrapper</doc>
              <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
            </parameter>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-data-wrapper.c"
                   line="267">output stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <bitfield name="DecryptFlags" c:type="GMimeDecryptFlags">
      <doc xml:space="preserve"
           filename="gmime-crypto-context.h"
           line="79">Decryption flags.</doc>
      <source-position filename="gmime-crypto-context.h" line="97"/>
      <member name="none" value="0" c:identifier="GMIME_DECRYPT_NONE">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="81">No flags specified.</doc>
      </member>
      <member name="export_session_key"
              value="1"
              c:identifier="GMIME_DECRYPT_EXPORT_SESSION_KEY">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="82">Export the decryption session-key.</doc>
      </member>
      <member name="no_verify"
              value="2"
              c:identifier="GMIME_DECRYPT_NO_VERIFY">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="83">Disable signature verification.</doc>
      </member>
      <member name="enable_keyserver_lookups"
              value="32768"
              c:identifier="GMIME_DECRYPT_ENABLE_KEYSERVER_LOOKUPS">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="84">Enable OpenPGP keyserver lookups.</doc>
      </member>
      <member name="enable_online_certificate_checks"
              value="32768"
              c:identifier="GMIME_DECRYPT_ENABLE_ONLINE_CERTIFICATE_CHECKS">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="85">Enable CRL and OCSP checks that require network lookups.</doc>
      </member>
    </bitfield>
    <class name="DecryptResult"
           c:symbol-prefix="decrypt_result"
           c:type="GMimeDecryptResult"
           parent="GObject.Object"
           glib:type-name="GMimeDecryptResult"
           glib:get-type="g_mime_decrypt_result_get_type"
           glib:type-struct="DecryptResultClass">
      <doc xml:space="preserve"
           filename="gmime-crypto-context.h"
           line="262">An object containing the results from decrypting an encrypted stream.</doc>
      <source-position filename="gmime-crypto-context.h" line="286"/>
      <constructor name="new" c:identifier="g_mime_decrypt_result_new">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="661">Creates a new #GMimeDecryptResult object.</doc>
        <source-position filename="gmime-crypto-context.h" line="290"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="666">a new #GMimeDecryptResult object.</doc>
          <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
        </return-value>
      </constructor>
      <method name="get_cipher"
              c:identifier="g_mime_decrypt_result_get_cipher">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="778">Get the cipher algorithm used.</doc>
        <source-position filename="gmime-crypto-context.h" line="299"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="784">the cipher algorithm used.</doc>
          <type name="CipherAlgo" c:type="GMimeCipherAlgo"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="780">a #GMimeDecryptResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mdc" c:identifier="g_mime_decrypt_result_get_mdc">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="811">Get the mdc digest algorithm used.</doc>
        <source-position filename="gmime-crypto-context.h" line="302"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="817">the mdc digest algorithm used.</doc>
          <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="813">a #GMimeDecryptResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_recipients"
              c:identifier="g_mime_decrypt_result_get_recipients">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="701">Gets the list of certificates that the stream had been encrypted to.</doc>
        <source-position filename="gmime-crypto-context.h" line="293"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="707">a #GMimeCertificateList.</doc>
          <type name="CertificateList" c:type="GMimeCertificateList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="703">A #GMimeDecryptResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_session_key"
              c:identifier="g_mime_decrypt_result_get_session_key">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="849">Get the session key used for this decryption.</doc>
        <source-position filename="gmime-crypto-context.h" line="305"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="855">the session key digest algorithm used, or %NULL if no
session key was requested or found.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="851">a #GMimeDecryptResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_signatures"
              c:identifier="g_mime_decrypt_result_get_signatures">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="744">Gets a list of signatures if the encrypted stream had also been signed.</doc>
        <source-position filename="gmime-crypto-context.h" line="296"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="750">a #GMimeSignatureList or %NULL if the
stream was not signed.</doc>
          <type name="SignatureList" c:type="GMimeSignatureList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="746">A #GMimeDecryptResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_cipher"
              c:identifier="g_mime_decrypt_result_set_cipher">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="762">Set the cipher algorithm used.</doc>
        <source-position filename="gmime-crypto-context.h" line="298"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="764">a #GMimeDecryptResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
          </instance-parameter>
          <parameter name="cipher" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="765">a #GMimeCipherAlgo</doc>
            <type name="CipherAlgo" c:type="GMimeCipherAlgo"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mdc" c:identifier="g_mime_decrypt_result_set_mdc">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="795">Set the mdc digest algorithm used.</doc>
        <source-position filename="gmime-crypto-context.h" line="301"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="797">a #GMimeDecryptResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
          </instance-parameter>
          <parameter name="mdc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="798">a #GMimeDigestAlgo</doc>
            <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_recipients"
              c:identifier="g_mime_decrypt_result_set_recipients">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="675">Sets the list of certificates that the stream had been encrypted to.</doc>
        <source-position filename="gmime-crypto-context.h" line="292"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="677">A #GMimeDecryptResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
          </instance-parameter>
          <parameter name="recipients" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="678">A #GMimeCertificateList</doc>
            <type name="CertificateList" c:type="GMimeCertificateList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_session_key"
              c:identifier="g_mime_decrypt_result_set_session_key">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="828">Set the session key to be returned by this decryption result.</doc>
        <source-position filename="gmime-crypto-context.h" line="304"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="830">a #GMimeDecryptResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
          </instance-parameter>
          <parameter name="session_key"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="831">a string representing the session key or %NULL to unset the key</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_signatures"
              c:identifier="g_mime_decrypt_result_set_signatures">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="718">Sets the list of signatures.</doc>
        <source-position filename="gmime-crypto-context.h" line="295"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="720">A #GMimeDecryptResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
          </instance-parameter>
          <parameter name="signatures" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="721">A #GMimeSignatureList</doc>
            <type name="SignatureList" c:type="GMimeSignatureList*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="264">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="recipients">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="265">A #GMimeCertificateList</doc>
        <type name="CertificateList" c:type="GMimeCertificateList*"/>
      </field>
      <field name="signatures">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="266">A #GMimeSignatureList if signed or %NULL otherwise.</doc>
        <type name="SignatureList" c:type="GMimeSignatureList*"/>
      </field>
      <field name="cipher">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="267">The cipher algorithm used to encrypt the stream.</doc>
        <type name="CipherAlgo" c:type="GMimeCipherAlgo"/>
      </field>
      <field name="mdc">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="268">The MDC digest algorithm used, if any.</doc>
        <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
      </field>
      <field name="session_key">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="269">The session key if requested or %NULL otherwise.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
    </class>
    <record name="DecryptResultClass"
            c:type="GMimeDecryptResultClass"
            glib:is-gtype-struct-for="DecryptResult">
      <source-position filename="gmime-crypto-context.h" line="286"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="DigestAlgo" c:type="GMimeDigestAlgo">
      <doc xml:space="preserve"
           filename="gmime-certificate.h"
           line="54">A hash algorithm.</doc>
      <source-position filename="gmime-certificate.h" line="90"/>
      <member name="default"
              value="0"
              c:identifier="GMIME_DIGEST_ALGO_DEFAULT">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="56">The default hash algorithm.</doc>
      </member>
      <member name="md5" value="1" c:identifier="GMIME_DIGEST_ALGO_MD5">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="57">The MD5 hash algorithm.</doc>
      </member>
      <member name="sha1" value="2" c:identifier="GMIME_DIGEST_ALGO_SHA1">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="58">The SHA-1 hash algorithm.</doc>
      </member>
      <member name="ripemd160"
              value="3"
              c:identifier="GMIME_DIGEST_ALGO_RIPEMD160">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="59">The RIPEMD-160 hash algorithm.</doc>
      </member>
      <member name="md2" value="5" c:identifier="GMIME_DIGEST_ALGO_MD2">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="60">The MD2 hash algorithm.</doc>
      </member>
      <member name="tiger192"
              value="6"
              c:identifier="GMIME_DIGEST_ALGO_TIGER192">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="61">The TIGER-192 hash algorithm.</doc>
      </member>
      <member name="haval5160"
              value="7"
              c:identifier="GMIME_DIGEST_ALGO_HAVAL5160">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="62">The HAVAL-5-160 hash algorithm.</doc>
      </member>
      <member name="sha256" value="8" c:identifier="GMIME_DIGEST_ALGO_SHA256">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="63">The SHA-256 hash algorithm.</doc>
      </member>
      <member name="sha384" value="9" c:identifier="GMIME_DIGEST_ALGO_SHA384">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="64">The SHA-384 hash algorithm.</doc>
      </member>
      <member name="sha512" value="10" c:identifier="GMIME_DIGEST_ALGO_SHA512">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="65">The SHA-512 hash algorithm.</doc>
      </member>
      <member name="sha224" value="11" c:identifier="GMIME_DIGEST_ALGO_SHA224">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="66">The SHA-224 hash algorithm.</doc>
      </member>
      <member name="md4" value="301" c:identifier="GMIME_DIGEST_ALGO_MD4">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="67">The MD4 hash algorithm.</doc>
      </member>
      <member name="crc32" value="302" c:identifier="GMIME_DIGEST_ALGO_CRC32">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="68">The CRC32 hash algorithm.</doc>
      </member>
      <member name="crc32_rfc1510"
              value="303"
              c:identifier="GMIME_DIGEST_ALGO_CRC32_RFC1510">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="69">The rfc1510 CRC32 hash algorithm.</doc>
      </member>
      <member name="crc32_rfc2440"
              value="304"
              c:identifier="GMIME_DIGEST_ALGO_CRC32_RFC2440">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="70">The rfc2440 CRC32 hash algorithm.</doc>
      </member>
    </enumeration>
    <function-macro name="ERROR_IS_SYSTEM"
                    c:identifier="GMIME_ERROR_IS_SYSTEM"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-error.h"
           line="38">Decides if an error is a system error (aka errno value) vs. a GMime
error.

Meant to be used with #GError::code</doc>
      <source-position filename="gmime-error.h" line="47"/>
      <parameters>
        <parameter name="error">
          <doc xml:space="preserve"
               filename="gmime-error.h"
               line="40">integer error value</doc>
        </parameter>
      </parameters>
    </function-macro>
    <record name="Encoding" c:type="GMimeEncoding">
      <doc xml:space="preserve"
           filename="gmime-encodings.h"
           line="143">A context used for encoding or decoding data.</doc>
      <source-position filename="gmime-encodings.h" line="159"/>
      <field name="encoding" writable="1">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="145">the type of encoding</doc>
        <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
      </field>
      <field name="uubuf" writable="1">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="146">a temporary buffer needed when uuencoding data</doc>
        <array zero-terminated="0" fixed-size="60">
          <type name="guint8" c:type="unsigned char"/>
        </array>
      </field>
      <field name="encode" writable="1">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="147">%TRUE if encoding or %FALSE if decoding</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="save" writable="1">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="148">saved bytes from the previous step</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="state" writable="1">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="149">current encder/decoder state</doc>
        <type name="gint" c:type="int"/>
      </field>
      <method name="flush" c:identifier="g_mime_encoding_flush">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="327">Completes the incremental encode or decode of the input stream (see
g_mime_encoding_step() for details).</doc>
        <source-position filename="gmime-encodings.h" line="169"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="337">the number of bytes written to @outbuf.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="329">a #GMimeEncoding</doc>
            <type name="Encoding" c:type="GMimeEncoding*"/>
          </instance-parameter>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="330">an input buffer to encode or decode</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="331">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="332">an output buffer</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="init_decode" c:identifier="g_mime_encoding_init_decode">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="206">Initializes a #GMimeEncoding state machine for decoding from
@encoding.</doc>
        <source-position filename="gmime-encodings.h" line="163"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="208">a #GMimeEncoding to initialize</doc>
            <type name="Encoding" c:type="GMimeEncoding*"/>
          </instance-parameter>
          <parameter name="encoding" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="209">a #GMimeContentEncoding to use</doc>
            <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
          </parameter>
        </parameters>
      </method>
      <method name="init_encode" c:identifier="g_mime_encoding_init_encode">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="188">Initializes a #GMimeEncoding state machine for encoding to
@encoding.</doc>
        <source-position filename="gmime-encodings.h" line="162"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="190">a #GMimeEncoding to initialize</doc>
            <type name="Encoding" c:type="GMimeEncoding*"/>
          </instance-parameter>
          <parameter name="encoding" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="191">a #GMimeContentEncoding to use</doc>
            <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
          </parameter>
        </parameters>
      </method>
      <method name="outlen" c:identifier="g_mime_encoding_outlen">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="246">Given the input length, @inlen, calculate the needed output length
to perform an encoding or decoding step.</doc>
        <source-position filename="gmime-encodings.h" line="166"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="254">the maximum number of bytes needed to encode or decode a
buffer of @inlen bytes.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="248">a #GMimeEncoding</doc>
            <type name="Encoding" c:type="GMimeEncoding*"/>
          </instance-parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="249">an input length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="g_mime_encoding_reset">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="224">Resets the state of the #GMimeEncoding.</doc>
        <source-position filename="gmime-encodings.h" line="164"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="226">a #GMimeEncoding to reset</doc>
            <type name="Encoding" c:type="GMimeEncoding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="step" c:identifier="g_mime_encoding_step">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="282">Incrementally encodes or decodes (depending on @state) an input
stream by 'stepping' through a block of input at a time.

You should make sure @outbuf is large enough by calling
g_mime_encoding_outlen() to find out how large @outbuf might need
to be.</doc>
        <source-position filename="gmime-encodings.h" line="168"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="296">the number of bytes written to @outbuf.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="284">a #GMimeEncoding</doc>
            <type name="Encoding" c:type="GMimeEncoding*"/>
          </instance-parameter>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="285">an input buffer to encode or decode</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="286">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="287">an output buffer</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <function name="base64_decode_step"
                c:identifier="g_mime_encoding_base64_decode_step">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="510">Decodes a chunk of base64 encoded data.</doc>
        <source-position filename="gmime-encodings.h" line="173"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="520">the number of bytes decoded (which have been dumped in
@outbuf).</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="512">input buffer</doc>
            <type name="guint8" c:type="const unsigned char*"/>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="513">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="514">output buffer</doc>
            <type name="guint8" c:type="unsigned char*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="515">holds the number of bits that are stored in @save</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="save" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="516">leftover bits that have not yet been decoded</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </function>
      <function name="base64_encode_close"
                c:identifier="g_mime_encoding_base64_encode_close">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="368">Base64 encodes the input stream to the output stream. Call this
when finished encoding data with g_mime_encoding_base64_encode_step()
to flush off the last little bit.</doc>
        <source-position filename="gmime-encodings.h" line="175"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="380">the number of bytes encoded.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="370">input buffer</doc>
            <type name="guint8" c:type="const unsigned char*"/>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="371">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="372">output buffer</doc>
            <type name="guint8" c:type="unsigned char*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="373">holds the number of bits that are stored in @save</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="save" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="374">leftover bits that have not yet been encoded</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </function>
      <function name="base64_encode_step"
                c:identifier="g_mime_encoding_base64_encode_step">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="419">Base64 encodes a chunk of data. Performs an 'encode step', only
encodes blocks of 3 characters to the output at a time, saves
left-over state in state and save (initialise to 0 on first
invocation).</doc>
        <source-position filename="gmime-encodings.h" line="174"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="432">the number of bytes encoded.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="421">input buffer</doc>
            <type name="guint8" c:type="const unsigned char*"/>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="422">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="423">output buffer</doc>
            <type name="guint8" c:type="unsigned char*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="424">holds the number of bits that are stored in @save</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="save" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="425">leftover bits that have not yet been encoded</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </function>
      <function name="quoted_decode_step"
                c:identifier="g_mime_encoding_quoted_decode_step">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="1016">Decodes a block of quoted-printable encoded data. Performs a
'decode step' on a chunk of QP encoded data.</doc>
        <source-position filename="gmime-encodings.h" line="183"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="1027">the number of bytes decoded.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="1018">input buffer</doc>
            <type name="guint8" c:type="const unsigned char*"/>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="1019">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="1020">output buffer</doc>
            <type name="guint8" c:type="unsigned char*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="1021">holds the number of bits that are stored in @save</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="save" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="1022">leftover bits that have not yet been decoded</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </function>
      <function name="quoted_encode_close"
                c:identifier="g_mime_encoding_quoted_encode_close">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="875">Quoted-printable encodes a block of text. Call this when finished
encoding data with g_mime_encoding_quoted_encode_step() to flush off
the last little bit.</doc>
        <source-position filename="gmime-encodings.h" line="185"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="887">the number of bytes encoded.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="877">input buffer</doc>
            <type name="guint8" c:type="const unsigned char*"/>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="878">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="879">output buffer</doc>
            <type name="guint8" c:type="unsigned char*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="880">holds the number of bits that are stored in @save</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="save" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="881">leftover bits that have not yet been encoded</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </function>
      <function name="quoted_encode_step"
                c:identifier="g_mime_encoding_quoted_encode_step">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="922">Quoted-printable encodes a block of text. Performs an 'encode
step', saves left-over state in state and save (initialise to -1 on
first invocation).</doc>
        <source-position filename="gmime-encodings.h" line="184"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="934">the number of bytes encoded.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="924">input buffer</doc>
            <type name="guint8" c:type="const unsigned char*"/>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="925">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="926">output buffer</doc>
            <type name="guint8" c:type="unsigned char*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="927">holds the number of bits that are stored in @save</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="save" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="928">leftover bits that have not yet been encoded</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </function>
      <function name="uudecode_step"
                c:identifier="g_mime_encoding_uudecode_step">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="771">Uudecodes a chunk of data. Performs a 'decode step' on a chunk of
uuencoded data. Assumes the "begin mode filename" line has
been stripped off.</doc>
        <source-position filename="gmime-encodings.h" line="178"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="783">the number of bytes decoded.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="773">input buffer</doc>
            <type name="guint8" c:type="const unsigned char*"/>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="774">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="775">output buffer</doc>
            <type name="guint8" c:type="unsigned char*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="776">holds the number of bits that are stored in @save</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="save" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="777">leftover bits that have not yet been decoded</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </function>
      <function name="uuencode_close"
                c:identifier="g_mime_encoding_uuencode_close">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="576">Uuencodes a chunk of data. Call this when finished encoding data
with g_mime_encoding_uuencode_step() to flush off the last little bit.</doc>
        <source-position filename="gmime-encodings.h" line="180"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="588">the number of bytes encoded.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="578">input buffer</doc>
            <type name="guint8" c:type="const unsigned char*"/>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="579">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="580">output buffer</doc>
            <type name="guint8" c:type="unsigned char*"/>
          </parameter>
          <parameter name="uubuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="581">temporary buffer of 60 bytes</doc>
            <type name="guint8" c:type="unsigned char*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="582">holds the number of bits that are stored in @save</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="save" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="583">leftover bits that have not yet been encoded</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </function>
      <function name="uuencode_step"
                c:identifier="g_mime_encoding_uuencode_step">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="654">Uuencodes a chunk of data. Performs an 'encode step', only encodes
blocks of 45 characters to the output at a time, saves left-over
state in @uubuf, @state and @save (initialize to 0 on first
invocation).</doc>
        <source-position filename="gmime-encodings.h" line="179"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="668">the number of bytes encoded.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="656">input buffer</doc>
            <type name="guint8" c:type="const unsigned char*"/>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="657">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="658">output stream</doc>
            <type name="guint8" c:type="unsigned char*"/>
          </parameter>
          <parameter name="uubuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="659">temporary buffer of 60 bytes</doc>
            <type name="guint8" c:type="unsigned char*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="660">holds the number of bits that are stored in @save</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="save" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-encodings.c"
                 line="661">leftover bits that have not yet been encoded</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <enumeration name="EncodingConstraint" c:type="GMimeEncodingConstraint">
      <doc xml:space="preserve"
           filename="gmime-encodings.h"
           line="54">Used with functions like g_mime_filter_best_encoding() and
g_mime_object_encode() as the 'constraint' argument. These values
provide a means of letting the filter know what the encoding
constraints are for the stream.</doc>
      <source-position filename="gmime-encodings.h" line="69"/>
      <member name="7bit"
              value="0"
              c:identifier="GMIME_ENCODING_CONSTRAINT_7BIT">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="56">The stream data must fit within the 7bit ASCII range.</doc>
      </member>
      <member name="8bit"
              value="1"
              c:identifier="GMIME_ENCODING_CONSTRAINT_8BIT">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="57">The stream data may have bytes with the high bit set, but no null bytes.</doc>
      </member>
      <member name="binary"
              value="2"
              c:identifier="GMIME_ENCODING_CONSTRAINT_BINARY">
        <doc xml:space="preserve"
             filename="gmime-encodings.h"
             line="58">The stream may contain any binary data.</doc>
      </member>
    </enumeration>
    <bitfield name="EncryptFlags" c:type="GMimeEncryptFlags">
      <doc xml:space="preserve"
           filename="gmime-crypto-context.h"
           line="100">Encryption flags.</doc>
      <source-position filename="gmime-crypto-context.h" line="116"/>
      <member name="none" value="0" c:identifier="GMIME_ENCRYPT_NONE">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="102">No flags specified.</doc>
      </member>
      <member name="always_trust"
              value="1"
              c:identifier="GMIME_ENCRYPT_ALWAYS_TRUST">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="103">Always trust the specified keys.</doc>
      </member>
      <member name="no_compress"
              value="16"
              c:identifier="GMIME_ENCRYPT_NO_COMPRESS">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="104">Don't compress the plaintext before encrypting.</doc>
      </member>
      <member name="symmetric"
              value="32"
              c:identifier="GMIME_ENCRYPT_SYMMETRIC">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="105">Encrypt symmetrically.</doc>
      </member>
      <member name="throw_keyids"
              value="64"
              c:identifier="GMIME_ENCRYPT_THROW_KEYIDS">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="106">Do not include the key ids in the ciphertext.</doc>
      </member>
    </bitfield>
    <function-macro name="FILTER"
                    c:identifier="GMIME_FILTER"
                    introspectable="0">
      <source-position filename="gmime-filter.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_BASIC"
                    c:identifier="GMIME_FILTER_BASIC"
                    introspectable="0">
      <source-position filename="gmime-filter-basic.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_BASIC_CLASS"
                    c:identifier="GMIME_FILTER_BASIC_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-basic.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_BASIC_GET_CLASS"
                    c:identifier="GMIME_FILTER_BASIC_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-basic.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_BEST"
                    c:identifier="GMIME_FILTER_BEST"
                    introspectable="0">
      <source-position filename="gmime-filter-best.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_BEST_CLASS"
                    c:identifier="GMIME_FILTER_BEST_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-best.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_BEST_GET_CLASS"
                    c:identifier="GMIME_FILTER_BEST_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-best.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_CHARSET"
                    c:identifier="GMIME_FILTER_CHARSET"
                    introspectable="0">
      <source-position filename="gmime-filter-charset.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_CHARSET_CLASS"
                    c:identifier="GMIME_FILTER_CHARSET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-charset.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_CHARSET_GET_CLASS"
                    c:identifier="GMIME_FILTER_CHARSET_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-charset.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_CHECKSUM"
                    c:identifier="GMIME_FILTER_CHECKSUM"
                    introspectable="0">
      <source-position filename="gmime-filter-checksum.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_CHECKSUM_CLASS"
                    c:identifier="GMIME_FILTER_CHECKSUM_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-checksum.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_CHECKSUM_GET_CLASS"
                    c:identifier="GMIME_FILTER_CHECKSUM_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-checksum.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_CLASS"
                    c:identifier="GMIME_FILTER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_DOS2UNIX"
                    c:identifier="GMIME_FILTER_DOS2UNIX"
                    introspectable="0">
      <source-position filename="gmime-filter-dos2unix.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_DOS2UNIX_CLASS"
                    c:identifier="GMIME_FILTER_DOS2UNIX_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-dos2unix.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_DOS2UNIX_GET_CLASS"
                    c:identifier="GMIME_FILTER_DOS2UNIX_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-dos2unix.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_ENRICHED"
                    c:identifier="GMIME_FILTER_ENRICHED"
                    introspectable="0">
      <source-position filename="gmime-filter-enriched.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_ENRICHED_CLASS"
                    c:identifier="GMIME_FILTER_ENRICHED_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-enriched.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_ENRICHED_GET_CLASS"
                    c:identifier="GMIME_FILTER_ENRICHED_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-enriched.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="FILTER_ENRICHED_IS_RICHTEXT"
              value="1"
              c:type="GMIME_FILTER_ENRICHED_IS_RICHTEXT">
      <doc xml:space="preserve"
           filename="gmime-filter-enriched.h"
           line="40">A bit flag for g_mime_filter_enriched_new() which signifies that
the filter should expect Rich Text (aka RTF).</doc>
      <source-position filename="gmime-filter-enriched.h" line="46"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="FILTER_FROM"
                    c:identifier="GMIME_FILTER_FROM"
                    introspectable="0">
      <source-position filename="gmime-filter-from.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_FROM_CLASS"
                    c:identifier="GMIME_FILTER_FROM_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-from.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_FROM_GET_CLASS"
                    c:identifier="GMIME_FILTER_FROM_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-from.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_GET_CLASS"
                    c:identifier="GMIME_FILTER_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_GZIP"
                    c:identifier="GMIME_FILTER_GZIP"
                    introspectable="0">
      <source-position filename="gmime-filter-gzip.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_GZIP_CLASS"
                    c:identifier="GMIME_FILTER_GZIP_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-gzip.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_GZIP_GET_CLASS"
                    c:identifier="GMIME_FILTER_GZIP_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-gzip.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_HTML"
                    c:identifier="GMIME_FILTER_HTML"
                    introspectable="0">
      <source-position filename="gmime-filter-html.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="FILTER_HTML_BLOCKQUOTE_CITATION"
              value="256"
              c:type="GMIME_FILTER_HTML_BLOCKQUOTE_CITATION">
      <doc xml:space="preserve"
           filename="gmime-filter-html.h"
           line="105">Enclose citation text in blockquotes.</doc>
      <source-position filename="gmime-filter-html.h" line="110"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="FILTER_HTML_CITE"
              value="128"
              c:type="GMIME_FILTER_HTML_CITE">
      <doc xml:space="preserve"
           filename="gmime-filter-html.h"
           line="98">Cites text by prepending "&amp;gt; " to each cited line.</doc>
      <source-position filename="gmime-filter-html.h" line="103"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="FILTER_HTML_CLASS"
                    c:identifier="GMIME_FILTER_HTML_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-html.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="FILTER_HTML_CONVERT_ADDRESSES"
              value="32"
              c:type="GMIME_FILTER_HTML_CONVERT_ADDRESSES">
      <doc xml:space="preserve"
           filename="gmime-filter-html.h"
           line="82">Wrap email addresses in "mailto:" href tags.</doc>
      <source-position filename="gmime-filter-html.h" line="87"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="FILTER_HTML_CONVERT_NL"
              value="2"
              c:type="GMIME_FILTER_HTML_CONVERT_NL">
      <doc xml:space="preserve"
           filename="gmime-filter-html.h"
           line="49">Convert new-lines ('\n') into &amp;lt;br&amp;gt; tags.</doc>
      <source-position filename="gmime-filter-html.h" line="54"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="FILTER_HTML_CONVERT_SPACES"
              value="4"
              c:type="GMIME_FILTER_HTML_CONVERT_SPACES">
      <doc xml:space="preserve"
           filename="gmime-filter-html.h"
           line="57">Preserve whitespace by converting spaces into their appropriate
html entities.</doc>
      <source-position filename="gmime-filter-html.h" line="63"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="FILTER_HTML_CONVERT_URLS"
              value="8"
              c:type="GMIME_FILTER_HTML_CONVERT_URLS">
      <doc xml:space="preserve"
           filename="gmime-filter-html.h"
           line="66">Wrap detected URLs in &amp;lt;a href=...&amp;gt; tags.</doc>
      <source-position filename="gmime-filter-html.h" line="71"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="FILTER_HTML_ESCAPE_8BIT"
              value="64"
              c:type="GMIME_FILTER_HTML_ESCAPE_8BIT">
      <doc xml:space="preserve"
           filename="gmime-filter-html.h"
           line="90">Converts 8bit characters to '?'.</doc>
      <source-position filename="gmime-filter-html.h" line="95"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="FILTER_HTML_GET_CLASS"
                    c:identifier="GMIME_FILTER_HTML_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-html.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="FILTER_HTML_MARK_CITATION"
              value="16"
              c:type="GMIME_FILTER_HTML_MARK_CITATION">
      <doc xml:space="preserve"
           filename="gmime-filter-html.h"
           line="74">Change the colour of citation text.</doc>
      <source-position filename="gmime-filter-html.h" line="79"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="FILTER_HTML_PRE" value="1" c:type="GMIME_FILTER_HTML_PRE">
      <doc xml:space="preserve"
           filename="gmime-filter-html.h"
           line="41">Wrap stream in &amp;lt;pre&amp;gt; and &amp;lt;/pre&amp;gt; tags.</doc>
      <source-position filename="gmime-filter-html.h" line="46"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="FILTER_OPENPGP"
                    c:identifier="GMIME_FILTER_OPENPGP"
                    introspectable="0">
      <source-position filename="gmime-filter-openpgp.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_OPENPGP_CLASS"
                    c:identifier="GMIME_FILTER_OPENPGP_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-openpgp.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_OPENPGP_GET_CLASS"
                    c:identifier="GMIME_FILTER_OPENPGP_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-openpgp.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_SMTP_DATA"
                    c:identifier="GMIME_FILTER_SMTP_DATA"
                    introspectable="0">
      <source-position filename="gmime-filter-smtp-data.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_SMTP_DATA_CLASS"
                    c:identifier="GMIME_FILTER_SMTP_DATA_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-smtp-data.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_SMTP_DATA_GET_CLASS"
                    c:identifier="GMIME_FILTER_SMTP_DATA_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-smtp-data.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_STRIP"
                    c:identifier="GMIME_FILTER_STRIP"
                    introspectable="0">
      <source-position filename="gmime-filter-strip.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_STRIP_CLASS"
                    c:identifier="GMIME_FILTER_STRIP_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-strip.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_STRIP_GET_CLASS"
                    c:identifier="GMIME_FILTER_STRIP_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-strip.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_UNIX2DOS"
                    c:identifier="GMIME_FILTER_UNIX2DOS"
                    introspectable="0">
      <source-position filename="gmime-filter-unix2dos.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_UNIX2DOS_CLASS"
                    c:identifier="GMIME_FILTER_UNIX2DOS_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-unix2dos.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_UNIX2DOS_GET_CLASS"
                    c:identifier="GMIME_FILTER_UNIX2DOS_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-unix2dos.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_WINDOWS"
                    c:identifier="GMIME_FILTER_WINDOWS"
                    introspectable="0">
      <source-position filename="gmime-filter-windows.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_WINDOWS_CLASS"
                    c:identifier="GMIME_FILTER_WINDOWS_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-windows.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_WINDOWS_GET_CLASS"
                    c:identifier="GMIME_FILTER_WINDOWS_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-windows.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_YENC"
                    c:identifier="GMIME_FILTER_YENC"
                    introspectable="0">
      <source-position filename="gmime-filter-yenc.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_YENC_CLASS"
                    c:identifier="GMIME_FILTER_YENC_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-yenc.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_YENC_GET_CLASS"
                    c:identifier="GMIME_FILTER_YENC_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-yenc.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Filter"
           c:symbol-prefix="filter"
           c:type="GMimeFilter"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="GMimeFilter"
           glib:get-type="g_mime_filter_get_type"
           glib:type-struct="FilterClass">
      <doc xml:space="preserve"
           filename="gmime-filter.h"
           line="41">Base class for filters used by #GMimeStreamFilter.</doc>
      <source-position filename="gmime-filter.h" line="78"/>
      <virtual-method name="complete" invoker="complete">
        <doc xml:space="preserve"
             filename="gmime-filter.c"
             line="238">Completes the filtering.</doc>
        <source-position filename="gmime-filter.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="240">filter</doc>
            <type name="Filter" c:type="GMimeFilter*"/>
          </instance-parameter>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="241">input buffer</doc>
            <array length="1" zero-terminated="0" c:type="char*">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="242">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="prespace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="243">prespace buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="244">
  pointer to output buffer</doc>
            <array length="4" zero-terminated="0" c:type="char**">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="outlen"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="246">pointer to output length</doc>
            <type name="gsize" c:type="size_t*"/>
          </parameter>
          <parameter name="outprespace"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="247">pointer to output prespace buffer length</doc>
            <type name="gsize" c:type="size_t*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="copy" invoker="copy">
        <doc xml:space="preserve"
             filename="gmime-filter.c"
             line="142">Copies @filter into a new #GMimeFilter object.</doc>
        <source-position filename="gmime-filter.h" line="69"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter.c"
               line="148">a duplicate of @filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="144">filter</doc>
            <type name="Filter" c:type="GMimeFilter*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="filter" invoker="filter">
        <doc xml:space="preserve"
             filename="gmime-filter.c"
             line="206">Filters the input data and writes it to @out.</doc>
        <source-position filename="gmime-filter.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="208">filter</doc>
            <type name="Filter" c:type="GMimeFilter*"/>
          </instance-parameter>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="209">input buffer</doc>
            <array length="1" zero-terminated="0" c:type="char*">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="210">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="prespace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="211">prespace buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="212">
  pointer to output buffer</doc>
            <array length="4" zero-terminated="0" c:type="char**">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="outlen"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="214">pointer to output length</doc>
            <type name="gsize" c:type="size_t*"/>
          </parameter>
          <parameter name="outprespace"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="215">pointer to output prespace buffer length</doc>
            <type name="gsize" c:type="size_t*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="reset" invoker="reset">
        <doc xml:space="preserve"
             filename="gmime-filter.c"
             line="270">Resets the filter.</doc>
        <source-position filename="gmime-filter.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="272">a #GMimeFilter object</doc>
            <type name="Filter" c:type="GMimeFilter*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="backup" c:identifier="g_mime_filter_backup">
        <doc xml:space="preserve"
             filename="gmime-filter.c"
             line="288">Sets number of bytes backed up on the input, new calls replace
previous ones</doc>
        <source-position filename="gmime-filter.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="290">filter</doc>
            <type name="Filter" c:type="GMimeFilter*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="291">data to backup</doc>
            <array length="1" zero-terminated="0" c:type="const char*">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="292">length of @data</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="complete" c:identifier="g_mime_filter_complete">
        <doc xml:space="preserve"
             filename="gmime-filter.c"
             line="238">Completes the filtering.</doc>
        <source-position filename="gmime-filter.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="240">filter</doc>
            <type name="Filter" c:type="GMimeFilter*"/>
          </instance-parameter>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="241">input buffer</doc>
            <array length="1" zero-terminated="0" c:type="char*">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="242">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="prespace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="243">prespace buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="244">
  pointer to output buffer</doc>
            <array length="4" zero-terminated="0" c:type="char**">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="outlen"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="246">pointer to output length</doc>
            <type name="gsize" c:type="size_t*"/>
          </parameter>
          <parameter name="outprespace"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="247">pointer to output prespace buffer length</doc>
            <type name="gsize" c:type="size_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="g_mime_filter_copy">
        <doc xml:space="preserve"
             filename="gmime-filter.c"
             line="142">Copies @filter into a new #GMimeFilter object.</doc>
        <source-position filename="gmime-filter.h" line="84"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter.c"
               line="148">a duplicate of @filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="144">filter</doc>
            <type name="Filter" c:type="GMimeFilter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="filter" c:identifier="g_mime_filter_filter">
        <doc xml:space="preserve"
             filename="gmime-filter.c"
             line="206">Filters the input data and writes it to @out.</doc>
        <source-position filename="gmime-filter.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="208">filter</doc>
            <type name="Filter" c:type="GMimeFilter*"/>
          </instance-parameter>
          <parameter name="inbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="209">input buffer</doc>
            <array length="1" zero-terminated="0" c:type="char*">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="inlen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="210">input buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="prespace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="211">prespace buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="outbuf"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="212">
  pointer to output buffer</doc>
            <array length="4" zero-terminated="0" c:type="char**">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="outlen"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="214">pointer to output length</doc>
            <type name="gsize" c:type="size_t*"/>
          </parameter>
          <parameter name="outprespace"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="215">pointer to output prespace buffer length</doc>
            <type name="gsize" c:type="size_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="g_mime_filter_reset">
        <doc xml:space="preserve"
             filename="gmime-filter.c"
             line="270">Resets the filter.</doc>
        <source-position filename="gmime-filter.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="272">a #GMimeFilter object</doc>
            <type name="Filter" c:type="GMimeFilter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_size" c:identifier="g_mime_filter_set_size">
        <doc xml:space="preserve"
             filename="gmime-filter.c"
             line="314">Ensure this much size is available for filter output (if required)</doc>
        <source-position filename="gmime-filter.h" line="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="316">filter</doc>
            <type name="Filter" c:type="GMimeFilter*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="317">requested size for the output buffer</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="keep" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="318">%TRUE if existing data in the output buffer should be kept</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter.h"
             line="43">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <doc xml:space="preserve"
             filename="gmime-filter.h"
             line="44">private state data</doc>
        <type name="gpointer" c:type="_GMimeFilterPrivate*"/>
      </field>
      <field name="outreal">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="outbuf">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="outptr">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="outsize">
        <type name="gsize" c:type="size_t"/>
      </field>
      <field name="outpre">
        <type name="gsize" c:type="size_t"/>
      </field>
      <field name="backbuf">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="backsize">
        <type name="gsize" c:type="size_t"/>
      </field>
      <field name="backlen">
        <type name="gsize" c:type="size_t"/>
      </field>
    </class>
    <class name="FilterBasic"
           c:symbol-prefix="filter_basic"
           c:type="GMimeFilterBasic"
           parent="Filter"
           glib:type-name="GMimeFilterBasic"
           glib:get-type="g_mime_filter_basic_get_type"
           glib:type-struct="FilterBasicClass">
      <doc xml:space="preserve"
           filename="gmime-filter-basic.h"
           line="40">A basic encoder/decoder filter for the MIME encodings.</doc>
      <source-position filename="gmime-filter-basic.h" line="55"/>
      <constructor name="new" c:identifier="g_mime_filter_basic_new">
        <doc xml:space="preserve"
             filename="gmime-filter-basic.c"
             line="236">Creates a new basic filter for @encoding.</doc>
        <source-position filename="gmime-filter-basic.h" line="60"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-basic.c"
               line="243">a new basic encoder filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <parameter name="encoding" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-basic.c"
                 line="238">a #GMimeContentEncoding</doc>
            <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
          </parameter>
          <parameter name="encode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-basic.c"
                 line="239">%TRUE to encode or %FALSE to decode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-basic.h"
             line="42">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="encoder">
        <doc xml:space="preserve"
             filename="gmime-filter-basic.h"
             line="43">#GMimeEncoding state</doc>
        <type name="Encoding" c:type="GMimeEncoding"/>
      </field>
    </class>
    <record name="FilterBasicClass"
            c:type="GMimeFilterBasicClass"
            glib:is-gtype-struct-for="FilterBasic">
      <source-position filename="gmime-filter-basic.h" line="55"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <class name="FilterBest"
           c:symbol-prefix="filter_best"
           c:type="GMimeFilterBest"
           parent="Filter"
           glib:type-name="GMimeFilterBest"
           glib:get-type="g_mime_filter_best_get_type"
           glib:type-struct="FilterBestClass">
      <doc xml:space="preserve"
           filename="gmime-filter-best.h"
           line="57">A filter for calculating the best encoding and/or charset to encode
the data passed through it.</doc>
      <source-position filename="gmime-filter-best.h" line="103"/>
      <constructor name="new" c:identifier="g_mime_filter_best_new">
        <doc xml:space="preserve"
             filename="gmime-filter-best.c"
             line="226">Creates a new GMimeFilterBest filter. @flags are used to determine
which information to keep statistics of. If the
#GMIME_FILTER_BEST_CHARSET bit is set, the filter will be able to
compute the best charset for encoding the stream of data
filtered. If the #GMIME_FILTER_BEST_ENCODING bit is set, the filter
will be able to compute the best Content-Transfer-Encoding for use
with the stream being filtered.

Note: In order for the g_mime_filter_best_charset() function to
work, the stream being filtered MUST already be encoded in UTF-8.</doc>
        <source-position filename="gmime-filter-best.h" line="108"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-best.c"
               line="241">a new best filter with flags @flags.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-best.c"
                 line="228">filter flags</doc>
            <type name="FilterBestFlags" c:type="GMimeFilterBestFlags"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="charset" c:identifier="g_mime_filter_best_charset">
        <doc xml:space="preserve"
             filename="gmime-filter-best.c"
             line="256">Calculates the best charset for encoding the content filtered
through the @best filter.</doc>
        <source-position filename="gmime-filter-best.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-best.c"
               line="263">the name of the charset most suitable for encoding
the content that has been passed through the filter or %NULL
if the filter was not configured to detect this.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="best" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-best.c"
                 line="258">a #GMimeFilterBest</doc>
            <type name="FilterBest" c:type="GMimeFilterBest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="encoding" c:identifier="g_mime_filter_best_encoding">
        <doc xml:space="preserve"
             filename="gmime-filter-best.c"
             line="283">Calculates the most efficient Content-Transfer-Encoding for the
content filtered through @best that fits within the encoding
@constraint.</doc>
        <source-position filename="gmime-filter-best.h" line="112"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-best.c"
               line="292">the best encoding for the content filtered by @best.</doc>
          <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
        </return-value>
        <parameters>
          <instance-parameter name="best" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-best.c"
                 line="285">a #GMimeFilterBest</doc>
            <type name="FilterBest" c:type="GMimeFilterBest*"/>
          </instance-parameter>
          <parameter name="constraint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-best.c"
                 line="286">a #GMimeEncodingConstraint</doc>
            <type name="EncodingConstraint" c:type="GMimeEncodingConstraint"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="59">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="flags">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="60">#GMimeFilterBestFlags</doc>
        <type name="FilterBestFlags" c:type="GMimeFilterBestFlags"/>
      </field>
      <field name="charset">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="61">#GMimeCharset state</doc>
        <type name="Charset" c:type="GMimeCharset"/>
      </field>
      <field name="count0">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="62">count of nul-bytes passed through the filter</doc>
        <type name="guint" c:type="unsigned int"/>
      </field>
      <field name="count8">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="63">count of 8bit bytes passed through the filter</doc>
        <type name="guint" c:type="unsigned int"/>
      </field>
      <field name="total">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="64">total number of bytes passed through the filter</doc>
        <type name="guint" c:type="unsigned int"/>
      </field>
      <field name="maxline">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="65">the length of the longest line passed through the filter</doc>
        <type name="guint" c:type="unsigned int"/>
      </field>
      <field name="linelen">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="66">current line length</doc>
        <type name="guint" c:type="unsigned int"/>
      </field>
      <field name="frombuf">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="67">buffer for checking From_ lines</doc>
        <array zero-terminated="0" fixed-size="6">
          <type name="guint8" c:type="unsigned char"/>
        </array>
      </field>
      <field name="fromlen" bits="4">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="68">length of bytes in @frombuf</doc>
        <type name="guint" c:type="unsigned int"/>
      </field>
      <field name="hadfrom" bits="1">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="69">%TRUE if any line started with "From "</doc>
        <type name="guint" c:type="unsigned int"/>
      </field>
      <field name="startline" bits="1">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="70">start line state</doc>
        <type name="guint" c:type="unsigned int"/>
      </field>
      <field name="midline" bits="1">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="71">mid-line state</doc>
        <type name="guint" c:type="unsigned int"/>
      </field>
    </class>
    <record name="FilterBestClass"
            c:type="GMimeFilterBestClass"
            glib:is-gtype-struct-for="FilterBest">
      <source-position filename="gmime-filter-best.h" line="103"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <bitfield name="FilterBestFlags" c:type="GMimeFilterBestFlags">
      <doc xml:space="preserve"
           filename="gmime-filter-best.h"
           line="42">Bit flags to enable charset and/or encoding scanning to make
educated guesses as to what the best charset and/or encodings to
use for the content passed through the filter.</doc>
      <source-position filename="gmime-filter-best.h" line="54"/>
      <member name="charset"
              value="1"
              c:identifier="GMIME_FILTER_BEST_CHARSET">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="44">Enable best-charset detection.</doc>
      </member>
      <member name="encoding"
              value="2"
              c:identifier="GMIME_FILTER_BEST_ENCODING">
        <doc xml:space="preserve"
             filename="gmime-filter-best.h"
             line="45">Enable best-encoding detection.</doc>
      </member>
    </bitfield>
    <class name="FilterCharset"
           c:symbol-prefix="filter_charset"
           c:type="GMimeFilterCharset"
           parent="Filter"
           glib:type-name="GMimeFilterCharset"
           glib:get-type="g_mime_filter_charset_get_type"
           glib:type-struct="FilterCharsetClass">
      <doc xml:space="preserve"
           filename="gmime-filter-charset.h"
           line="40">A filter to convert between charsets.</doc>
      <source-position filename="gmime-filter-charset.h" line="60"/>
      <constructor name="new" c:identifier="g_mime_filter_charset_new">
        <doc xml:space="preserve"
             filename="gmime-filter-charset.c"
             line="294">Creates a new #GMimeFilterCharset filter.</doc>
        <source-position filename="gmime-filter-charset.h" line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-charset.c"
               line="301">a new charset filter or %NULL if the charset conversion is
not possible.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <parameter name="from_charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-charset.c"
                 line="296">charset to convert from</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="to_charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-charset.c"
                 line="297">charset to convert to</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-charset.h"
             line="42">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="from_charset">
        <doc xml:space="preserve"
             filename="gmime-filter-charset.h"
             line="43">charset that the filter is converting from</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="to_charset">
        <doc xml:space="preserve"
             filename="gmime-filter-charset.h"
             line="44">charset the filter is converting to</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="cd">
        <doc xml:space="preserve"
             filename="gmime-filter-charset.h"
             line="45">charset conversion state</doc>
        <type name="gpointer"/>
      </field>
    </class>
    <record name="FilterCharsetClass"
            c:type="GMimeFilterCharsetClass"
            glib:is-gtype-struct-for="FilterCharset">
      <source-position filename="gmime-filter-charset.h" line="60"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <class name="FilterChecksum"
           c:symbol-prefix="filter_checksum"
           c:type="GMimeFilterChecksum"
           parent="Filter"
           glib:type-name="GMimeFilterChecksum"
           glib:get-type="g_mime_filter_checksum_get_type"
           glib:type-struct="FilterChecksumClass">
      <doc xml:space="preserve"
           filename="gmime-filter-checksum.h"
           line="39">A filter for calculating the checksum of a stream.</doc>
      <source-position filename="gmime-filter-checksum.h" line="55"/>
      <constructor name="new" c:identifier="g_mime_filter_checksum_new">
        <doc xml:space="preserve"
             filename="gmime-filter-checksum.c"
             line="154">Creates a new checksum filter.</doc>
        <source-position filename="gmime-filter-checksum.h" line="60"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-checksum.c"
               line="160">a new #GMimeFilterChecksum filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-checksum.c"
                 line="156">the type of checksum</doc>
            <type name="GLib.ChecksumType" c:type="GChecksumType"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_digest"
              c:identifier="g_mime_filter_checksum_get_digest">
        <doc xml:space="preserve"
             filename="gmime-filter-checksum.c"
             line="174">Outputs the checksum digest into @digest.</doc>
        <source-position filename="gmime-filter-checksum.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-checksum.c"
               line="182">the number of bytes used of the @digest buffer.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-checksum.c"
                 line="176">checksum filter object</doc>
            <type name="FilterChecksum" c:type="GMimeFilterChecksum*"/>
          </instance-parameter>
          <parameter name="digest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-checksum.c"
                 line="177">the digest buffer</doc>
            <array length="1" zero-terminated="0" c:type="unsigned char*">
              <type name="guint8" c:type="unsigned char"/>
            </array>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-checksum.c"
                 line="178">the length of the digest buffer</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_string"
              c:identifier="g_mime_filter_checksum_get_string">
        <doc xml:space="preserve"
             filename="gmime-filter-checksum.c"
             line="195">Outputs the checksum digest as a newly allocated hexadecimal string.</doc>
        <source-position filename="gmime-filter-checksum.h" line="63"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-checksum.c"
               line="201">the hexadecimal representation of the checksum. The returned string should be freed with g_free() when no longer needed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="checksum" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-checksum.c"
                 line="197">checksum filter object</doc>
            <type name="FilterChecksum" c:type="GMimeFilterChecksum*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-checksum.h"
             line="41">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="checksum">
        <doc xml:space="preserve"
             filename="gmime-filter-checksum.h"
             line="42">The checksum context</doc>
        <type name="GLib.Checksum" c:type="GChecksum*"/>
      </field>
    </class>
    <record name="FilterChecksumClass"
            c:type="GMimeFilterChecksumClass"
            glib:is-gtype-struct-for="FilterChecksum">
      <source-position filename="gmime-filter-checksum.h" line="55"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <record name="FilterClass"
            c:type="GMimeFilterClass"
            glib:is-gtype-struct-for="Filter">
      <source-position filename="gmime-filter.h" line="78"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="copy">
        <callback name="copy">
          <source-position filename="gmime-filter.h" line="69"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-filter.c"
                 line="148">a duplicate of @filter.</doc>
            <type name="Filter" c:type="GMimeFilter*"/>
          </return-value>
          <parameters>
            <parameter name="filter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="144">filter</doc>
              <type name="Filter" c:type="GMimeFilter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="filter">
        <callback name="filter">
          <source-position filename="gmime-filter.h" line="71"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="filter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="208">filter</doc>
              <type name="Filter" c:type="GMimeFilter*"/>
            </parameter>
            <parameter name="inbuf" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="209">input buffer</doc>
              <array length="2" zero-terminated="0" c:type="char*">
                <type name="guint8"/>
              </array>
            </parameter>
            <parameter name="inlen" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="210">input buffer length</doc>
              <type name="gsize" c:type="size_t"/>
            </parameter>
            <parameter name="prespace" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="211">prespace buffer length</doc>
              <type name="gsize" c:type="size_t"/>
            </parameter>
            <parameter name="outbuf"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="212">
  pointer to output buffer</doc>
              <array length="5" zero-terminated="0" c:type="char**">
                <type name="guint8"/>
              </array>
            </parameter>
            <parameter name="outlen"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="214">pointer to output length</doc>
              <type name="gsize" c:type="size_t*"/>
            </parameter>
            <parameter name="outprespace"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="215">pointer to output prespace buffer length</doc>
              <type name="gsize" c:type="size_t*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="complete">
        <callback name="complete">
          <source-position filename="gmime-filter.h" line="74"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="filter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="240">filter</doc>
              <type name="Filter" c:type="GMimeFilter*"/>
            </parameter>
            <parameter name="inbuf" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="241">input buffer</doc>
              <array length="2" zero-terminated="0" c:type="char*">
                <type name="guint8"/>
              </array>
            </parameter>
            <parameter name="inlen" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="242">input buffer length</doc>
              <type name="gsize" c:type="size_t"/>
            </parameter>
            <parameter name="prespace" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="243">prespace buffer length</doc>
              <type name="gsize" c:type="size_t"/>
            </parameter>
            <parameter name="outbuf"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="244">
  pointer to output buffer</doc>
              <array length="5" zero-terminated="0" c:type="char**">
                <type name="guint8"/>
              </array>
            </parameter>
            <parameter name="outlen"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="246">pointer to output length</doc>
              <type name="gsize" c:type="size_t*"/>
            </parameter>
            <parameter name="outprespace"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="247">pointer to output prespace buffer length</doc>
              <type name="gsize" c:type="size_t*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="reset">
        <callback name="reset">
          <source-position filename="gmime-filter.h" line="77"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="filter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-filter.c"
                   line="272">a #GMimeFilter object</doc>
              <type name="Filter" c:type="GMimeFilter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="FilterDos2Unix"
           c:symbol-prefix="filter_dos2unix"
           c:type="GMimeFilterDos2Unix"
           parent="Filter"
           glib:type-name="GMimeFilterDos2Unix"
           glib:get-type="g_mime_filter_dos2unix_get_type"
           glib:type-struct="FilterDos2UnixClass">
      <doc xml:space="preserve"
           filename="gmime-filter-dos2unix.h"
           line="39">A filter to convert a stream from Windows/DOS line endings to Unix line endings.</doc>
      <source-position filename="gmime-filter-dos2unix.h" line="57"/>
      <constructor name="new" c:identifier="g_mime_filter_dos2unix_new">
        <doc xml:space="preserve"
             filename="gmime-filter-dos2unix.c"
             line="170">Creates a new #GMimeFilterDos2Unix filter.</doc>
        <source-position filename="gmime-filter-dos2unix.h" line="62"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-dos2unix.c"
               line="176">a new #GMimeFilterDos2Unix filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <parameter name="ensure_newline" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-dos2unix.c"
                 line="172">%TRUE if the filter should ensure that the stream ends in a new line</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-dos2unix.h"
             line="41">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="ensure_newline">
        <doc xml:space="preserve"
             filename="gmime-filter-dos2unix.h"
             line="42">%TRUE if the filter should ensure that the stream ends with a new line</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="pc">
        <doc xml:space="preserve"
             filename="gmime-filter-dos2unix.h"
             line="43">the previous character encountered</doc>
        <type name="gchar" c:type="char"/>
      </field>
    </class>
    <record name="FilterDos2UnixClass"
            c:type="GMimeFilterDos2UnixClass"
            glib:is-gtype-struct-for="FilterDos2Unix">
      <source-position filename="gmime-filter-dos2unix.h" line="57"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <class name="FilterEnriched"
           c:symbol-prefix="filter_enriched"
           c:type="GMimeFilterEnriched"
           parent="Filter"
           glib:type-name="GMimeFilterEnriched"
           glib:get-type="g_mime_filter_enriched_get_type"
           glib:type-struct="FilterEnrichedClass">
      <doc xml:space="preserve"
           filename="gmime-filter-enriched.h"
           line="48">A filter for converting text/enriched or text/richtext textual
streams into text/html.</doc>
      <source-position filename="gmime-filter-enriched.h" line="67"/>
      <constructor name="new" c:identifier="g_mime_filter_enriched_new">
        <doc xml:space="preserve"
             filename="gmime-filter-enriched.c"
             line="637">Creates a new GMimeFilterEnriched object.</doc>
        <source-position filename="gmime-filter-enriched.h" line="72"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-enriched.c"
               line="643">a new GMimeFilter object.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-enriched.c"
                 line="639">flags</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-enriched.h"
             line="50">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="flags">
        <doc xml:space="preserve"
             filename="gmime-filter-enriched.h"
             line="51">bit flags</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="nofill">
        <doc xml:space="preserve"
             filename="gmime-filter-enriched.h"
             line="52">nofill tag state</doc>
        <type name="gint" c:type="int"/>
      </field>
    </class>
    <record name="FilterEnrichedClass"
            c:type="GMimeFilterEnrichedClass"
            glib:is-gtype-struct-for="FilterEnriched">
      <source-position filename="gmime-filter-enriched.h" line="67"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <class name="FilterFrom"
           c:symbol-prefix="filter_from"
           c:type="GMimeFilterFrom"
           parent="Filter"
           glib:type-name="GMimeFilterFrom"
           glib:get-type="g_mime_filter_from_get_type"
           glib:type-struct="FilterFromClass">
      <doc xml:space="preserve"
           filename="gmime-filter-from.h"
           line="55">A filter for armoring or escaping lines beginning with "From ".</doc>
      <source-position filename="gmime-filter-from.h" line="73"/>
      <constructor name="new" c:identifier="g_mime_filter_from_new">
        <doc xml:space="preserve"
             filename="gmime-filter-from.c"
             line="233">Creates a new GMimeFilterFrom filter. If @mode is
#GMIME_FILTER_FROM_MODE_ARMOR, the from-filter will encode from
lines using the quoted-printable encoding resulting in "=46rom ".
Using the #GMIME_FILTER_FROM_MODE_DEFAULT or
#GMIME_FILTER_FROM_MODE_ESCAPE mode (they are the same), from lines
will be escaped to "&gt;From ".

Note: If you plan on using a from-filter in mode ARMOR, you should
remember to also use a #GMimeFilterBasic filter with an encoding of
#GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE.</doc>
        <source-position filename="gmime-filter-from.h" line="78"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-from.c"
               line="248">a new from filter with mode @mode.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-from.c"
                 line="235">filter mode</doc>
            <type name="FilterFromMode" c:type="GMimeFilterFromMode"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-from.h"
             line="57">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="mode">
        <doc xml:space="preserve"
             filename="gmime-filter-from.h"
             line="58">#GMimeFilterFromMode</doc>
        <type name="FilterFromMode" c:type="GMimeFilterFromMode"/>
      </field>
      <field name="midline">
        <doc xml:space="preserve"
             filename="gmime-filter-from.h"
             line="59">%TRUE if in the middle of a line</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="FilterFromClass"
            c:type="GMimeFilterFromClass"
            glib:is-gtype-struct-for="FilterFrom">
      <source-position filename="gmime-filter-from.h" line="73"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <enumeration name="FilterFromMode" c:type="GMimeFilterFromMode">
      <doc xml:space="preserve"
           filename="gmime-filter-from.h"
           line="40">The mode for a #GMimeFilterFrom filter.</doc>
      <source-position filename="gmime-filter-from.h" line="52"/>
      <member name="default"
              value="0"
              c:identifier="GMIME_FILTER_FROM_MODE_DEFAULT">
        <doc xml:space="preserve"
             filename="gmime-filter-from.h"
             line="42">Default mode.</doc>
      </member>
      <member name="escape"
              value="0"
              c:identifier="GMIME_FILTER_FROM_MODE_ESCAPE">
        <doc xml:space="preserve"
             filename="gmime-filter-from.h"
             line="43">Escape 'From ' lines with a '&gt;'</doc>
      </member>
      <member name="armor"
              value="1"
              c:identifier="GMIME_FILTER_FROM_MODE_ARMOR">
        <doc xml:space="preserve"
             filename="gmime-filter-from.h"
             line="44">QP-Encode 'From ' lines</doc>
      </member>
    </enumeration>
    <class name="FilterGZip"
           c:symbol-prefix="filter_gzip"
           c:type="GMimeFilterGZip"
           parent="Filter"
           glib:type-name="GMimeFilterGZip"
           glib:get-type="g_mime_filter_gzip_get_type"
           glib:type-struct="FilterGZipClass">
      <doc xml:space="preserve"
           filename="gmime-filter-gzip.h"
           line="53">A filter for compresing or decompressing a gzip stream.</doc>
      <source-position filename="gmime-filter-gzip.h" line="74"/>
      <constructor name="new" c:identifier="g_mime_filter_gzip_new">
        <doc xml:space="preserve"
             filename="gmime-filter-gzip.c"
             line="583">Creates a new gzip (or gunzip) filter.</doc>
        <source-position filename="gmime-filter-gzip.h" line="79"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-gzip.c"
               line="590">a new gzip (or gunzip) filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-gzip.c"
                 line="585">zip or unzip</doc>
            <type name="FilterGZipMode" c:type="GMimeFilterGZipMode"/>
          </parameter>
          <parameter name="level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-gzip.c"
                 line="586">compression level</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_comment"
              c:identifier="g_mime_filter_gzip_get_comment"
              version="3.2">
        <doc xml:space="preserve"
             filename="gmime-filter-gzip.c"
             line="657">Gets the comment that was either previously set or retrieved when decoding a gzip stream.</doc>
        <source-position filename="gmime-filter-gzip.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-gzip.c"
               line="663">a string containing the comment.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="gzip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-gzip.c"
                 line="659">A #GMimeFilterGZip filter</doc>
            <type name="FilterGZip" c:type="GMimeFilterGZip*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filename"
              c:identifier="g_mime_filter_gzip_get_filename"
              version="3.2">
        <doc xml:space="preserve"
             filename="gmime-filter-gzip.c"
             line="616">Gets the filename that was either previously set or retrieved when decoding a gzip stream.</doc>
        <source-position filename="gmime-filter-gzip.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-gzip.c"
               line="622">a string containing th ename of the file.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="gzip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-gzip.c"
                 line="618">A #GMimeFilterGZip filter</doc>
            <type name="FilterGZip" c:type="GMimeFilterGZip*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_comment"
              c:identifier="g_mime_filter_gzip_set_comment"
              version="3.2">
        <doc xml:space="preserve"
             filename="gmime-filter-gzip.c"
             line="676">Sets the comment that should be used when generating the gzip header.</doc>
        <source-position filename="gmime-filter-gzip.h" line="85"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="gzip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-gzip.c"
                 line="678">A #GMimeFilterGZip filter</doc>
            <type name="FilterGZip" c:type="GMimeFilterGZip*"/>
          </instance-parameter>
          <parameter name="comment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-gzip.c"
                 line="679">The comment</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filename"
              c:identifier="g_mime_filter_gzip_set_filename"
              version="3.2">
        <doc xml:space="preserve"
             filename="gmime-filter-gzip.c"
             line="635">Sets the filename that should be used when generating the gzip header.</doc>
        <source-position filename="gmime-filter-gzip.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="gzip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-gzip.c"
                 line="637">A #GMimeFilterGZip filter</doc>
            <type name="FilterGZip" c:type="GMimeFilterGZip*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-gzip.c"
                 line="638">The name of the file</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-gzip.h"
             line="55">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="priv">
        <doc xml:space="preserve"
             filename="gmime-filter-gzip.h"
             line="56">private state data</doc>
        <type name="gpointer" c:type="_GMimeFilterGZipPrivate*"/>
      </field>
      <field name="mode">
        <doc xml:space="preserve"
             filename="gmime-filter-gzip.h"
             line="57">#GMimeFilterGZipMode</doc>
        <type name="FilterGZipMode" c:type="GMimeFilterGZipMode"/>
      </field>
      <field name="level">
        <doc xml:space="preserve"
             filename="gmime-filter-gzip.h"
             line="58">compression level</doc>
        <type name="gint" c:type="int"/>
      </field>
    </class>
    <record name="FilterGZipClass"
            c:type="GMimeFilterGZipClass"
            glib:is-gtype-struct-for="FilterGZip">
      <source-position filename="gmime-filter-gzip.h" line="74"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <enumeration name="FilterGZipMode" c:type="GMimeFilterGZipMode">
      <doc xml:space="preserve"
           filename="gmime-filter-gzip.h"
           line="40">The mode for the #GMimeFilterGZip filter.</doc>
      <source-position filename="gmime-filter-gzip.h" line="50"/>
      <member name="zip" value="0" c:identifier="GMIME_FILTER_GZIP_MODE_ZIP">
        <doc xml:space="preserve"
             filename="gmime-filter-gzip.h"
             line="42">Compress (zip) mode.</doc>
      </member>
      <member name="unzip"
              value="1"
              c:identifier="GMIME_FILTER_GZIP_MODE_UNZIP">
        <doc xml:space="preserve"
             filename="gmime-filter-gzip.h"
             line="43">Uncompress (unzip) mode.</doc>
      </member>
    </enumeration>
    <class name="FilterHTML"
           c:symbol-prefix="filter_html"
           c:type="GMimeFilterHTML"
           parent="Filter"
           glib:type-name="GMimeFilterHTML"
           glib:get-type="g_mime_filter_html_get_type"
           glib:type-struct="FilterHTMLClass">
      <doc xml:space="preserve"
           filename="gmime-filter-html.h"
           line="113">A filter for converting text/plain into text/html.</doc>
      <source-position filename="gmime-filter-html.h" line="142"/>
      <constructor name="new" c:identifier="g_mime_filter_html_new">
        <doc xml:space="preserve"
             filename="gmime-filter-html.c"
             line="557">Creates a new GMimeFilterHTML filter which can be used to convert a
plain UTF-8 text stream into an html stream.</doc>
        <source-position filename="gmime-filter-html.h" line="147"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-html.c"
               line="565">a new html filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-html.c"
                 line="559">html flags</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="colour" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-html.c"
                 line="560">citation colour</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-html.h"
             line="115">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="scanner">
        <doc xml:space="preserve"
             filename="gmime-filter-html.h"
             line="116">URL scanner state</doc>
        <type name="gpointer" c:type="_UrlScanner*"/>
      </field>
      <field name="flags">
        <doc xml:space="preserve"
             filename="gmime-filter-html.h"
             line="117">flags specifying HTML conversion rules</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="colour">
        <doc xml:space="preserve"
             filename="gmime-filter-html.h"
             line="118">cite colour</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="column" bits="31">
        <doc xml:space="preserve"
             filename="gmime-filter-html.h"
             line="119">current column</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="pre_open" bits="1">
        <doc xml:space="preserve"
             filename="gmime-filter-html.h"
             line="120">currently inside of a 'pre' tag.</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="citation_depth">
        <doc xml:space="preserve"
             filename="gmime-filter-html.h"
             line="121">current citation depth level.</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
    </class>
    <record name="FilterHTMLClass"
            c:type="GMimeFilterHTMLClass"
            glib:is-gtype-struct-for="FilterHTML">
      <source-position filename="gmime-filter-html.h" line="142"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <class name="FilterOpenPGP"
           c:symbol-prefix="filter_openpgp"
           c:type="GMimeFilterOpenPGP"
           version="3.2"
           parent="Filter"
           glib:type-name="GMimeFilterOpenPGP"
           glib:get-type="g_mime_filter_openpgp_get_type"
           glib:type-struct="FilterOpenPGPClass">
      <doc xml:space="preserve"
           filename="gmime-filter-openpgp.h"
           line="111">A filter to detect OpenPGP markers.</doc>
      <source-position filename="gmime-filter-openpgp.h" line="135"/>
      <constructor name="new"
                   c:identifier="g_mime_filter_openpgp_new"
                   version="3.2">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.c"
             line="347">Creates a new #GMimeFilterOpenPGP filter.</doc>
        <source-position filename="gmime-filter-openpgp.h" line="140"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-openpgp.c"
               line="352">a new #GMimeFilterOpenPGP filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
      </constructor>
      <method name="get_begin_offset"
              c:identifier="g_mime_filter_openpgp_get_begin_offset"
              version="3.2">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.c"
             line="388">Gets the stream offset of the beginning of the OpenPGP data block, if any have been found.</doc>
        <source-position filename="gmime-filter-openpgp.h" line="143"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-openpgp.c"
               line="394">The stream offset or %-1 if no OpenPGP block was found.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="openpgp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-openpgp.c"
                 line="390">A #GMimeFilterOpenPGP filter</doc>
            <type name="FilterOpenPGP" c:type="GMimeFilterOpenPGP*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_data_type"
              c:identifier="g_mime_filter_openpgp_get_data_type"
              version="3.2">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.c"
             line="363">Gets the type of OpenPGP data that has been detected.</doc>
        <source-position filename="gmime-filter-openpgp.h" line="142"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-openpgp.c"
               line="369">a #GMimeOpenPGPData value.</doc>
          <type name="OpenPGPData" c:type="GMimeOpenPGPData"/>
        </return-value>
        <parameters>
          <instance-parameter name="openpgp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-openpgp.c"
                 line="365">A #GMimeFilterOpenPGP filter</doc>
            <type name="FilterOpenPGP" c:type="GMimeFilterOpenPGP*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_end_offset"
              c:identifier="g_mime_filter_openpgp_get_end_offset"
              version="3.2">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.c"
             line="407">Gets the stream offset of the end of the OpenPGP data block, if any have been found.</doc>
        <source-position filename="gmime-filter-openpgp.h" line="144"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-openpgp.c"
               line="413">The stream offset or %-1 if no OpenPGP block was found.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="openpgp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-openpgp.c"
                 line="409">A #GMimeFilterOpenPGP filter</doc>
            <type name="FilterOpenPGP" c:type="GMimeFilterOpenPGP*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="113">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="state" readable="0" private="1">
        <type name="OpenPGPState" c:type="GMimeOpenPGPState"/>
      </field>
      <field name="seen_end_marker" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="midline" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="begin_offset" readable="0" private="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="end_offset" readable="0" private="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="position" readable="0" private="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="next" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
    </class>
    <record name="FilterOpenPGPClass"
            c:type="GMimeFilterOpenPGPClass"
            glib:is-gtype-struct-for="FilterOpenPGP">
      <source-position filename="gmime-filter-openpgp.h" line="135"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <class name="FilterSmtpData"
           c:symbol-prefix="filter_smtp_data"
           c:type="GMimeFilterSmtpData"
           parent="Filter"
           glib:type-name="GMimeFilterSmtpData"
           glib:get-type="g_mime_filter_smtp_data_get_type"
           glib:type-struct="FilterSmtpDataClass">
      <doc xml:space="preserve"
           filename="gmime-filter-smtp-data.h"
           line="39">A filter to byte-stuff SMTP DATA.</doc>
      <source-position filename="gmime-filter-smtp-data.h" line="55"/>
      <constructor name="new" c:identifier="g_mime_filter_smtp_data_new">
        <doc xml:space="preserve"
             filename="gmime-filter-smtp-data.c"
             line="153">Creates a new #GMimeFilterSmtpData filter.</doc>
        <source-position filename="gmime-filter-smtp-data.h" line="60"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-smtp-data.c"
               line="158">a new #GMimeFilterSmtpData filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
      </constructor>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-smtp-data.h"
             line="41">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="bol">
        <doc xml:space="preserve"
             filename="gmime-filter-smtp-data.h"
             line="42">beginning-of-line state.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="FilterSmtpDataClass"
            c:type="GMimeFilterSmtpDataClass"
            glib:is-gtype-struct-for="FilterSmtpData">
      <source-position filename="gmime-filter-smtp-data.h" line="55"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <class name="FilterStrip"
           c:symbol-prefix="filter_strip"
           c:type="GMimeFilterStrip"
           parent="Filter"
           glib:type-name="GMimeFilterStrip"
           glib:get-type="g_mime_filter_strip_get_type"
           glib:type-struct="FilterStripClass">
      <doc xml:space="preserve"
           filename="gmime-filter-strip.h"
           line="39">A filter for stripping whitespace from the end of lines.</doc>
      <source-position filename="gmime-filter-strip.h" line="55"/>
      <constructor name="new" c:identifier="g_mime_filter_strip_new">
        <doc xml:space="preserve"
             filename="gmime-filter-strip.c"
             line="205">Creates a new #GMimeFilterStrip filter which will strip trailing
whitespace from every line of input passed through the filter.</doc>
        <source-position filename="gmime-filter-strip.h" line="60"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-strip.c"
               line="211">a new strip filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
      </constructor>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-strip.h"
             line="41">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="lwsp" readable="0" private="1">
        <type name="gpointer" c:type="void*"/>
      </field>
    </class>
    <record name="FilterStripClass"
            c:type="GMimeFilterStripClass"
            glib:is-gtype-struct-for="FilterStrip">
      <source-position filename="gmime-filter-strip.h" line="55"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <class name="FilterUnix2Dos"
           c:symbol-prefix="filter_unix2dos"
           c:type="GMimeFilterUnix2Dos"
           parent="Filter"
           glib:type-name="GMimeFilterUnix2Dos"
           glib:get-type="g_mime_filter_unix2dos_get_type"
           glib:type-struct="FilterUnix2DosClass">
      <doc xml:space="preserve"
           filename="gmime-filter-unix2dos.h"
           line="39">A filter to convert a stream from Windows/DOS line endings to Unix line endings.</doc>
      <source-position filename="gmime-filter-unix2dos.h" line="57"/>
      <constructor name="new" c:identifier="g_mime_filter_unix2dos_new">
        <doc xml:space="preserve"
             filename="gmime-filter-unix2dos.c"
             line="170">Creates a new #GMimeFilterUnix2Dos filter.</doc>
        <source-position filename="gmime-filter-unix2dos.h" line="62"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-unix2dos.c"
               line="176">a new #GMimeFilterUnix2Dos filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <parameter name="ensure_newline" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-unix2dos.c"
                 line="172">%TRUE if the filter should ensure that the stream ends in a new line</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-unix2dos.h"
             line="41">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="ensure_newline">
        <doc xml:space="preserve"
             filename="gmime-filter-unix2dos.h"
             line="42">%TRUE if the filter should ensure that the stream ends with a new line</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="pc">
        <doc xml:space="preserve"
             filename="gmime-filter-unix2dos.h"
             line="43">the previous character encountered</doc>
        <type name="gchar" c:type="char"/>
      </field>
    </class>
    <record name="FilterUnix2DosClass"
            c:type="GMimeFilterUnix2DosClass"
            glib:is-gtype-struct-for="FilterUnix2Dos">
      <source-position filename="gmime-filter-unix2dos.h" line="57"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <class name="FilterWindows"
           c:symbol-prefix="filter_windows"
           c:type="GMimeFilterWindows"
           parent="Filter"
           glib:type-name="GMimeFilterWindows"
           glib:get-type="g_mime_filter_windows_get_type"
           glib:type-struct="FilterWindowsClass">
      <doc xml:space="preserve"
           filename="gmime-filter-windows.h"
           line="39">A filter for detecting whether or not a text stream claimed to be
iso-8859-X is really that charset or if it is really a
Windows-CP125x charset.</doc>
      <source-position filename="gmime-filter-windows.h" line="59"/>
      <constructor name="new" c:identifier="g_mime_filter_windows_new">
        <doc xml:space="preserve"
             filename="gmime-filter-windows.c"
             line="171">Creates a new GMimeFilterWindows filter. When a stream of text has
been filtered, it can be determined whether or not said text stream
was in @claimed_charset or the equivalent Windows-CP125# charset.</doc>
        <source-position filename="gmime-filter-windows.h" line="64"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-windows.c"
               line="179">a new windows filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <parameter name="claimed_charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-windows.c"
                 line="173">charset that a text stream claims to be</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="is_windows_charset"
              c:identifier="g_mime_filter_windows_is_windows_charset">
        <doc xml:space="preserve"
             filename="gmime-filter-windows.c"
             line="195">Determines whether or not a Windows-CP125# charset has been
detected so far.</doc>
        <source-position filename="gmime-filter-windows.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-windows.c"
               line="202">%TRUE if the filtered stream has been detected to contain
Windows-CP125# characters or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-windows.c"
                 line="197">windows filter object</doc>
            <type name="FilterWindows" c:type="GMimeFilterWindows*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="real_charset"
              c:identifier="g_mime_filter_windows_real_charset">
        <doc xml:space="preserve"
             filename="gmime-filter-windows.c"
             line="214">Figures out the real charset that the text is encoded in based on whether or not Windows-CP125# characters were found.</doc>
        <source-position filename="gmime-filter-windows.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-windows.c"
               line="220">a const string pointer to the claimed charset if filtered
text stream was found not to contain any Windows-CP125# characters
or the proper Windows-CP125# charset.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-windows.c"
                 line="216">windows filter object</doc>
            <type name="FilterWindows" c:type="GMimeFilterWindows*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-windows.h"
             line="41">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="is_windows">
        <doc xml:space="preserve"
             filename="gmime-filter-windows.h"
             line="42">%TRUE if the stream is detected to be a windows-cp125x charset</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="claimed_charset">
        <doc xml:space="preserve"
             filename="gmime-filter-windows.h"
             line="43">charset the text stream is claimed to be</doc>
        <type name="utf8" c:type="char*"/>
      </field>
    </class>
    <record name="FilterWindowsClass"
            c:type="GMimeFilterWindowsClass"
            glib:is-gtype-struct-for="FilterWindows">
      <source-position filename="gmime-filter-windows.h" line="59"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <class name="FilterYenc"
           c:symbol-prefix="filter_yenc"
           c:type="GMimeFilterYenc"
           parent="Filter"
           glib:type-name="GMimeFilterYenc"
           glib:get-type="g_mime_filter_yenc_get_type"
           glib:type-struct="FilterYencClass">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.h"
           line="124">A filter for yEncoding or yDecoding a stream.</doc>
      <source-position filename="gmime-filter-yenc.h" line="150"/>
      <constructor name="new" c:identifier="g_mime_filter_yenc_new">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.c"
             line="272">Creates a new yEnc filter.</doc>
        <source-position filename="gmime-filter-yenc.h" line="155"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="278">a new yEnc filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <parameter name="encode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-yenc.c"
                 line="274">encode vs decode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_crc" c:identifier="g_mime_filter_yenc_get_crc">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.c"
             line="369">Get the computed crc or (guint32) -1 on fail.</doc>
        <source-position filename="gmime-filter-yenc.h" line="162"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="375">the computed crc or (guint32) -1 on fail.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="yenc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-yenc.c"
                 line="371">yEnc filter</doc>
            <type name="FilterYenc" c:type="GMimeFilterYenc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pcrc" c:identifier="g_mime_filter_yenc_get_pcrc">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.c"
             line="352">Get the computed part crc or (guint32) -1 on fail.</doc>
        <source-position filename="gmime-filter-yenc.h" line="161"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="358">the computed part crc or (guint32) -1 on fail.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="yenc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-yenc.c"
                 line="354">yEnc filter</doc>
            <type name="FilterYenc" c:type="GMimeFilterYenc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_crc" c:identifier="g_mime_filter_yenc_set_crc">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.c"
             line="313">Sets the current crc32 value on the yEnc filter @yenc to @crc.</doc>
        <source-position filename="gmime-filter-yenc.h" line="158"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="yenc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-yenc.c"
                 line="315">yEnc filter</doc>
            <type name="FilterYenc" c:type="GMimeFilterYenc*"/>
          </instance-parameter>
          <parameter name="crc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-yenc.c"
                 line="316">crc32</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_state" c:identifier="g_mime_filter_yenc_set_state">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.c"
             line="297">Sets the current state of the yencoder/ydecoder</doc>
        <source-position filename="gmime-filter-yenc.h" line="157"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="yenc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-yenc.c"
                 line="299">yEnc filter</doc>
            <type name="FilterYenc" c:type="GMimeFilterYenc*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-yenc.c"
                 line="300">encode/decode state</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.h"
             line="126">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="encode">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.h"
             line="127">encode vs decode</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="part">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.h"
             line="128">part id</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="state">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.h"
             line="129">encode/decode state</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="pcrc">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.h"
             line="130">part crc</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="crc">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.h"
             line="131">full crc</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
    </class>
    <record name="FilterYencClass"
            c:type="GMimeFilterYencClass"
            glib:is-gtype-struct-for="FilterYenc">
      <source-position filename="gmime-filter-yenc.h" line="150"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <enumeration name="Format" c:type="GMimeFormat">
      <doc xml:space="preserve"
           filename="gmime-parser.h"
           line="48">An enum of formats.</doc>
      <source-position filename="gmime-parser.h" line="60"/>
      <member name="message" value="0" c:identifier="GMIME_FORMAT_MESSAGE">
        <doc xml:space="preserve"
             filename="gmime-parser.h"
             line="50">The stream contains a single message.</doc>
      </member>
      <member name="mbox" value="1" c:identifier="GMIME_FORMAT_MBOX">
        <doc xml:space="preserve"
             filename="gmime-parser.h"
             line="51">The stream is in the UNIX mbox format.</doc>
      </member>
      <member name="mmdf" value="2" c:identifier="GMIME_FORMAT_MMDF">
        <doc xml:space="preserve"
             filename="gmime-parser.h"
             line="52">The stream is in the MMDF format.</doc>
      </member>
    </enumeration>
    <record name="FormatOptions"
            c:type="GMimeFormatOptions"
            opaque="1"
            glib:type-name="GMimeFormatOptions"
            glib:get-type="g_mime_format_options_get_type"
            c:symbol-prefix="format_options">
      <doc xml:space="preserve"
           filename="gmime-format-options.h"
           line="67">Format options for serializing various GMime objects.</doc>
      <source-position filename="gmime-format-options.h" line="72"/>
      <constructor name="new" c:identifier="g_mime_format_options_new">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="94">Creates a new set of #GMimeFormatOptions.</doc>
        <source-position filename="gmime-format-options.h" line="78"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-format-options.c"
               line="99">a newly allocated set of #GMimeFormatOptions with the default values.</doc>
          <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
        </return-value>
      </constructor>
      <method name="add_hidden_header"
              c:identifier="g_mime_format_options_add_hidden_header">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="429">Adds the given header to the list of headers that should be hidden.</doc>
        <source-position filename="gmime-format-options.h" line="102"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="431">a #GMimeFormatOptions</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="432">a header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_hidden_headers"
              c:identifier="g_mime_format_options_clear_hidden_headers">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="470">Clears the list of headers that should be hidden.</doc>
        <source-position filename="gmime-format-options.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="472">a #GMimeFormatOptions</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="clone" c:identifier="g_mime_format_options_clone">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="154">Clones a #GMimeFormatOptions.</doc>
        <source-position filename="gmime-format-options.h" line="81"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-format-options.c"
               line="160">a newly allocated #GMimeFormatOptions.</doc>
          <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="156">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_newline_filter"
              c:identifier="g_mime_format_options_create_newline_filter">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="281">Creates a #GMimeFilter suitable for converting line-endings to the
currently set new-line format.</doc>
        <source-position filename="gmime-format-options.h" line="90"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-format-options.c"
               line="289">a #GMimeFilter to convert to the specified new-line format.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="283">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </instance-parameter>
          <parameter name="ensure_newline" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="284">%TRUE if the output must *always* end with a new line</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="g_mime_format_options_free">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="169">Frees a set of #GMimeFormatOptions.</doc>
        <source-position filename="gmime-format-options.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="171">a #GMimeFormatOptions</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_newline"
              c:identifier="g_mime_format_options_get_newline">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="260">Gets a string representing the currently set new-line format.</doc>
        <source-position filename="gmime-format-options.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-format-options.c"
               line="266">a new-line character sequence.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="262">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_newline_format"
              c:identifier="g_mime_format_options_get_newline_format">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="228">Gets the new-line format to use when writing out messages and headers.</doc>
        <source-position filename="gmime-format-options.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-format-options.c"
               line="234">the new-line format that is currently set.</doc>
          <type name="NewLineFormat" c:type="GMimeNewLineFormat"/>
        </return-value>
        <parameters>
          <instance-parameter name="options"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="230">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_param_encoding_method"
              c:identifier="g_mime_format_options_get_param_encoding_method">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="192">Gets the parameter encoding method to use for #GMimeParam parameters that do not
already have an encoding method specified.</doc>
        <source-position filename="gmime-format-options.h" line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-format-options.c"
               line="199">the encoding method that is currently set.</doc>
          <type name="ParamEncodingMethod" c:type="GMimeParamEncodingMethod"/>
        </return-value>
        <parameters>
          <instance-parameter name="options"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="194">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_hidden_header"
              c:identifier="g_mime_format_options_is_hidden_header">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="401">Gets whether or not the specified header should be hidden.</doc>
        <source-position filename="gmime-format-options.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-format-options.c"
               line="408">%TRUE if the header should be hidden or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="403">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="404">the name of a header</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_hidden_header"
              c:identifier="g_mime_format_options_remove_hidden_header">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="446">Removes the given header from the list of headers that should be hidden.</doc>
        <source-position filename="gmime-format-options.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="448">a #GMimeFormatOptions</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="449">a header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_newline_format"
              c:identifier="g_mime_format_options_set_newline_format">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="243">Sets the new-line format that should be used when writing headers and messages.</doc>
        <source-position filename="gmime-format-options.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="245">a #GMimeFormatOptions</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </instance-parameter>
          <parameter name="newline" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="246">a #GMimeNewLineFormat</doc>
            <type name="NewLineFormat" c:type="GMimeNewLineFormat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_param_encoding_method"
              c:identifier="g_mime_format_options_set_param_encoding_method">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="208">Sets the parameter encoding method to use when encoding parameters which
do not have an encoding method specified.

Note: #GMIME_PARAM_ENCODING_METHOD_DEFAULT is not allowed.</doc>
        <source-position filename="gmime-format-options.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="210">a #GMimeFormatOptions</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </instance-parameter>
          <parameter name="method" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-format-options.c"
                 line="211">a #GMimeParamEncodingMethod</doc>
            <type name="ParamEncodingMethod"
                  c:type="GMimeParamEncodingMethod"/>
          </parameter>
        </parameters>
      </method>
      <function name="get_default"
                c:identifier="g_mime_format_options_get_default">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="80">Gets the default format options.</doc>
        <source-position filename="gmime-format-options.h" line="76"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-format-options.c"
               line="85">the default format options.</doc>
          <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
        </return-value>
      </function>
    </record>
    <function-macro name="GPG_CONTEXT"
                    c:identifier="GMIME_GPG_CONTEXT"
                    introspectable="0">
      <source-position filename="gmime-gpg-context.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="GPG_CONTEXT_CLASS"
                    c:identifier="GMIME_GPG_CONTEXT_CLASS"
                    introspectable="0">
      <source-position filename="gmime-gpg-context.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="GPG_CONTEXT_GET_CLASS"
                    c:identifier="GMIME_GPG_CONTEXT_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-gpg-context.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="GpgContext"
           c:symbol-prefix="gpg_context"
           c:type="GMimeGpgContext"
           parent="CryptoContext"
           glib:type-name="GMimeGpgContext"
           glib:get-type="g_mime_gpg_context_get_type"
           glib:type-struct="GpgContextClass">
      <doc xml:space="preserve"
           filename="gmime-gpg-context.c"
           line="61">A GnuPG crypto context.</doc>
      <source-position filename="gmime-gpg-context.h" line="37"/>
      <constructor name="new" c:identifier="g_mime_gpg_context_new">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.c"
             line="388">Creates a new gpg crypto context object.</doc>
        <source-position filename="gmime-gpg-context.h" line="42"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-gpg-context.c"
               line="393">a new gpg crypto context object.</doc>
          <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
        </return-value>
      </constructor>
    </class>
    <record name="GpgContextClass"
            c:type="GMimeGpgContextClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="GpgContext">
      <source-position filename="gmime-gpg-context.h" line="37"/>
    </record>
    <function-macro name="HEADER"
                    c:identifier="GMIME_HEADER"
                    introspectable="0">
      <source-position filename="gmime-header.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="HEADER_CLASS"
                    c:identifier="GMIME_HEADER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-header.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="HEADER_GET_CLASS"
                    c:identifier="GMIME_HEADER_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-header.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="HEADER_LIST"
                    c:identifier="GMIME_HEADER_LIST"
                    introspectable="0">
      <source-position filename="gmime-header.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="HEADER_LIST_CLASS"
                    c:identifier="GMIME_HEADER_LIST_CLASS"
                    introspectable="0">
      <source-position filename="gmime-header.h" line="41"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="HEADER_LIST_GET_CLASS"
                    c:identifier="GMIME_HEADER_LIST_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-header.h" line="44"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Header"
           c:symbol-prefix="header"
           c:type="GMimeHeader"
           parent="GObject.Object"
           glib:type-name="GMimeHeader"
           glib:get-type="g_mime_header_get_type"
           glib:type-struct="HeaderClass">
      <doc xml:space="preserve"
           filename="gmime-header.h"
           line="77">A message or mime-part header.</doc>
      <source-position filename="gmime-header.h" line="104"/>
      <method name="format_addrlist"
              c:identifier="g_mime_header_format_addrlist">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="584">Parses the @value and then re-formats it to conform to the formatting options,
folding the value if necessary.</doc>
        <source-position filename="gmime-header.h" line="71"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="594">a newly allocated string containing the reformatted value.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="586">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="587">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="588">a Sender, From, Reply-To, To, Cc, or Bcc header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="589">a charset (note: unused)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="format_content_disposition"
              c:identifier="g_mime_header_format_content_disposition">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="426">Parses the @value and then re-formats it to conform to the formatting options,
folding the value if necessary.</doc>
        <source-position filename="gmime-header.h" line="67"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="436">a newly allocated string containing the reformatted value.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="428">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="429">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="430">a Content-Disposition header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="431">a charset (note: unused)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="format_content_type"
              c:identifier="g_mime_header_format_content_type">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="463">Parses the @value and then re-formats it to conform to the formatting options,
folding the value if necessary.</doc>
        <source-position filename="gmime-header.h" line="68"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="473">a newly allocated string containing the reformatted value.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="465">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="466">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="467">a Content-Type header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="468">a charset (note: unused)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="format_default"
              c:identifier="g_mime_header_format_default">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="953">Parses the @value and then re-formats it to conform to the formatting options,
folding the value if necessary.</doc>
        <source-position filename="gmime-header.h" line="74"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="963">a newly allocated string containing the reformatted value.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="955">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="956">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="957">a header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="958">a charset to use when encoding the @value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="format_message_id"
              c:identifier="g_mime_header_format_message_id">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="502">Parses the @value and then re-formats it to conform to the formatting options,
folding the value if necessary.</doc>
        <source-position filename="gmime-header.h" line="69"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="512">a newly allocated string containing the reformatted value.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="504">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="505">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="506">a Message-Id or Content-Id header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="507">a charset (note: unused)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="format_newsgroups"
              c:identifier="g_mime_header_format_newsgroups">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="909">Parses the @value and then re-formats it to conform to the formatting options,
folding the value if necessary.</doc>
        <source-position filename="gmime-header.h" line="73"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="919">a newly allocated string containing the reformatted value.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="911">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="912">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="913">a Newsgroups header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="914">a charset (note: unused)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="format_received"
              c:identifier="g_mime_header_format_received">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="779">Parses the @value and then re-formats it to conform to the formatting options,
folding the value if necessary.</doc>
        <source-position filename="gmime-header.h" line="72"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="789">a newly allocated string containing the reformatted value.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="781">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="782">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="783">a Received header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="784">a charset (note: unused)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="format_references"
              c:identifier="g_mime_header_format_references">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="523">Parses the @value and then re-formats it to conform to the formatting options,
folding the value if necessary.</doc>
        <source-position filename="gmime-header.h" line="70"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="533">a newly allocated string containing the reformatted value.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="525">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="526">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="527">a References or In-Reply-To header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="528">a charset (note: unused)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="g_mime_header_get_name">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="201">Gets the header's name.</doc>
        <source-position filename="gmime-header.h" line="109"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="207">the header name or %NULL if invalid.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="203">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_offset" c:identifier="g_mime_header_get_offset">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="356">Gets the header's stream offset if known.</doc>
        <source-position filename="gmime-header.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="362">the header offset or %-1 if unknown.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="358">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_raw_name" c:identifier="g_mime_header_get_raw_name">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="276">Gets the header's raw name. The raw header name is the complete string up to
(but not including) the ':' separating the header's name from its value. This
string may be different from the value returned by g_mime_header_get_name()
if the parsed message's header contained trailing whitespace after the header
name, such as: "Subject : this is the subject\r\n".</doc>
        <source-position filename="gmime-header.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="286">the raw header name.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="278">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_raw_value" c:identifier="g_mime_header_get_raw_value">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="297">Gets the header's raw (folded) value.</doc>
        <source-position filename="gmime-header.h" line="115"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="303">the header value or %NULL if invalid.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="299">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value" c:identifier="g_mime_header_get_value">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="218">Gets the header's unfolded value.</doc>
        <source-position filename="gmime-header.h" line="112"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="224">the header's decoded value or %NULL if invalid.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="220">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_raw_value" c:identifier="g_mime_header_set_raw_value">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="329">Sets the header's raw value.</doc>
        <source-position filename="gmime-header.h" line="116"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="331">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
          <parameter name="raw_value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="332">the raw value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value" c:identifier="g_mime_header_set_value">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="243">Sets the header's decoded value.</doc>
        <source-position filename="gmime-header.h" line="113"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="245">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="246">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="247">the new header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="248">a charset</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_to_stream"
              c:identifier="g_mime_header_write_to_stream">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="380">Write the header to the specified stream.</doc>
        <source-position filename="gmime-header.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="388">the number of bytes written, or %-1 on fail.</doc>
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="382">a #GMimeHeader</doc>
            <type name="Header" c:type="GMimeHeader*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="383">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="384">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="name" readable="0" private="1">
        <doc xml:space="preserve"
             filename="gmime-header.h"
             line="79">the name of the header</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="value" readable="0" private="1">
        <doc xml:space="preserve"
             filename="gmime-header.h"
             line="80">the unfolded value of the header</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="formatter" readable="0" private="1">
        <type name="HeaderRawValueFormatter"
              c:type="GMimeHeaderRawValueFormatter"/>
      </field>
      <field name="options" readable="0" private="1">
        <type name="ParserOptions" c:type="GMimeParserOptions*"/>
      </field>
      <field name="reformat" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="changed" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="raw_value" readable="0" private="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="raw_name" readable="0" private="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="charset" readable="0" private="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="offset" readable="0" private="1">
        <type name="gint64" c:type="gint64"/>
      </field>
    </class>
    <record name="HeaderClass"
            c:type="GMimeHeaderClass"
            glib:is-gtype-struct-for="Header">
      <source-position filename="gmime-header.h" line="104"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="HeaderList"
           c:symbol-prefix="header_list"
           c:type="GMimeHeaderList"
           parent="GObject.Object"
           glib:type-name="GMimeHeaderList"
           glib:get-type="g_mime_header_list_get_type"
           glib:type-struct="HeaderListClass">
      <doc xml:space="preserve"
           filename="gmime-header.h"
           line="123">A list of message or mime-part headers.</doc>
      <source-position filename="gmime-header.h" line="141"/>
      <constructor name="new" c:identifier="g_mime_header_list_new">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1065">Creates a new #GMimeHeaderList object.</doc>
        <source-position filename="gmime-header.h" line="146"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="1071">a new header list object.</doc>
          <type name="HeaderList" c:type="GMimeHeaderList*"/>
        </return-value>
        <parameters>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1067">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="append" c:identifier="g_mime_header_list_append">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1240">Appends a header. If @value is %NULL, a space will be set aside for it
(useful for setting the order of headers before values can be
obtained for them) otherwise the header will be unset.</doc>
        <source-position filename="gmime-header.h" line="152"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1242">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1243">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1244">header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1245">a charset</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="g_mime_header_list_clear">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1085">Removes all of the headers from the #GMimeHeaderList.</doc>
        <source-position filename="gmime-header.h" line="148"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1087">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="contains" c:identifier="g_mime_header_list_contains">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1148">Checks whether or not a header exists.</doc>
        <source-position filename="gmime-header.h" line="150"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="1155">%TRUE if the specified header exists or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1150">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1151">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_count" c:identifier="g_mime_header_list_get_count">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1131">Gets the number of headers contained within the header list.</doc>
        <source-position filename="gmime-header.h" line="149"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="1137">the number of headers in the header list.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1133">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_header" c:identifier="g_mime_header_list_get_header">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1274">Gets the first header with the specified name.</doc>
        <source-position filename="gmime-header.h" line="154"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="1281">a #GMimeHeader for the specified @name.</doc>
          <type name="Header" c:type="GMimeHeader*"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1276">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1277">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_header_at"
              c:identifier="g_mime_header_list_get_header_at">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1383">Gets the header at the specified @index within the list.</doc>
        <source-position filename="gmime-header.h" line="155"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="1390">the header at position @index.</doc>
          <type name="Header" c:type="GMimeHeader*"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1385">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1386">the 0-based index of the header</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="prepend" c:identifier="g_mime_header_list_prepend">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1172">Prepends a header. If @value is %NULL, a space will be set aside
for it (useful for setting the order of headers before values can
be obtained for them) otherwise the header will be unset.</doc>
        <source-position filename="gmime-header.h" line="151"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1174">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1175">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1176">header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1177">a charset</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="g_mime_header_list_remove">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1405">Remove the first instance of the specified header.</doc>
        <source-position filename="gmime-header.h" line="156"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="1412">%TRUE if the header was successfully removed or %FALSE if
the specified header could not be found.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1407">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1408">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_at" c:identifier="g_mime_header_list_remove_at">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1461">Removes the header at the specified @index from @headers.</doc>
        <source-position filename="gmime-header.h" line="157"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1463">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1464">the 0-based index of the header to remove</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="g_mime_header_list_set">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1330">Set the value of the specified header. If @value is %NULL and the
header, @name, had not been previously set, a space will be set
aside for it (useful for setting the order of headers before values
can be obtained for them) otherwise the header will be unset.

Note: If there are multiple headers with the specified field name,
the first instance of the header will be replaced and further
instances will be removed.</doc>
        <source-position filename="gmime-header.h" line="153"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1332">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1333">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1334">header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1335">a charset</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="g_mime_header_list_to_string">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1553">Allocates a string buffer containing the raw rfc822 headers
contained in @headers.</doc>
        <source-position filename="gmime-header.h" line="160"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="1561">a string containing the header block.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1555">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1556">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_to_stream"
              c:identifier="g_mime_header_list_write_to_stream">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1508">Write the headers to a stream.</doc>
        <source-position filename="gmime-header.h" line="159"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="1516">the number of bytes written or %-1 on fail.</doc>
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1510">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1511">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1512">output stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="options" readable="0" private="1">
        <type name="ParserOptions" c:type="GMimeParserOptions*"/>
      </field>
      <field name="changed" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="hash" readable="0" private="1">
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer" c:type="gpointer"/>
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="array" readable="0" private="1">
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="HeaderListClass"
            c:type="GMimeHeaderListClass"
            glib:is-gtype-struct-for="HeaderList">
      <source-position filename="gmime-header.h" line="141"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="HeaderRawValueFormatter"
              c:type="GMimeHeaderRawValueFormatter">
      <doc xml:space="preserve"
           filename="gmime-header.h"
           line="53">Function callback for encoding and formatting a header value.</doc>
      <source-position filename="gmime-header.h" line="64"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-header.h"
             line="62">the encoded and formatted raw header value.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="header" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.h"
               line="55">a #GMimeHeader</doc>
          <type name="Header" c:type="GMimeHeader*"/>
        </parameter>
        <parameter name="options" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.h"
               line="56">a #GMimeFormatOptions</doc>
          <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.h"
               line="57">an unencoded header value</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="charset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.h"
               line="58">a charset</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </callback>
    <constant name="INTERFACE_AGE" value="1" c:type="GMIME_INTERFACE_AGE">
      <doc xml:space="preserve"
           filename="gmime-version.h"
           line="53">GMime's interface age.</doc>
      <source-position filename="gmime-version.h" line="58"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="INTERNET_ADDRESS"
                    c:identifier="INTERNET_ADDRESS"
                    introspectable="0">
      <source-position filename="internet-address.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INTERNET_ADDRESS_CLASS"
                    c:identifier="INTERNET_ADDRESS_CLASS"
                    introspectable="0">
      <source-position filename="internet-address.h" line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INTERNET_ADDRESS_GET_CLASS"
                    c:identifier="INTERNET_ADDRESS_GET_CLASS"
                    introspectable="0">
      <source-position filename="internet-address.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INTERNET_ADDRESS_GROUP"
                    c:identifier="INTERNET_ADDRESS_GROUP"
                    introspectable="0">
      <source-position filename="internet-address.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INTERNET_ADDRESS_GROUP_CLASS"
                    c:identifier="INTERNET_ADDRESS_GROUP_CLASS"
                    introspectable="0">
      <source-position filename="internet-address.h" line="42"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INTERNET_ADDRESS_IS_GROUP"
                    c:identifier="INTERNET_ADDRESS_IS_GROUP"
                    introspectable="0">
      <source-position filename="internet-address.h" line="43"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INTERNET_ADDRESS_IS_GROUP_CLASS"
                    c:identifier="INTERNET_ADDRESS_IS_GROUP_CLASS"
                    introspectable="0">
      <source-position filename="internet-address.h" line="44"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INTERNET_ADDRESS_IS_MAILBOX"
                    c:identifier="INTERNET_ADDRESS_IS_MAILBOX"
                    introspectable="0">
      <source-position filename="internet-address.h" line="49"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INTERNET_ADDRESS_IS_MAILBOX_CLASS"
                    c:identifier="INTERNET_ADDRESS_IS_MAILBOX_CLASS"
                    introspectable="0">
      <source-position filename="internet-address.h" line="50"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INTERNET_ADDRESS_LIST"
                    c:identifier="INTERNET_ADDRESS_LIST"
                    introspectable="0">
      <source-position filename="internet-address.h" line="53"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INTERNET_ADDRESS_LIST_CLASS"
                    c:identifier="INTERNET_ADDRESS_LIST_CLASS"
                    introspectable="0">
      <source-position filename="internet-address.h" line="54"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INTERNET_ADDRESS_MAILBOX"
                    c:identifier="INTERNET_ADDRESS_MAILBOX"
                    introspectable="0">
      <source-position filename="internet-address.h" line="47"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INTERNET_ADDRESS_MAILBOX_CLASS"
                    c:identifier="INTERNET_ADDRESS_MAILBOX_CLASS"
                    introspectable="0">
      <source-position filename="internet-address.h" line="48"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_APPLICATION_PKCS7_MIME"
                    c:identifier="GMIME_IS_APPLICATION_PKCS7_MIME"
                    introspectable="0">
      <source-position filename="gmime-application-pkcs7-mime.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_APPLICATION_PKCS7_MIME_CLASS"
                    c:identifier="GMIME_IS_APPLICATION_PKCS7_MIME_CLASS"
                    introspectable="0">
      <source-position filename="gmime-application-pkcs7-mime.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_AUTOCRYPT_HEADER"
                    c:identifier="GMIME_IS_AUTOCRYPT_HEADER"
                    introspectable="0">
      <source-position filename="gmime-autocrypt.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_AUTOCRYPT_HEADER_CLASS"
                    c:identifier="GMIME_IS_AUTOCRYPT_HEADER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-autocrypt.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_AUTOCRYPT_HEADER_LIST"
                    c:identifier="GMIME_IS_AUTOCRYPT_HEADER_LIST"
                    introspectable="0">
      <source-position filename="gmime-autocrypt.h" line="43"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_AUTOCRYPT_HEADER_LIST_CLASS"
                    c:identifier="GMIME_IS_AUTOCRYPT_HEADER_LIST_CLASS"
                    introspectable="0">
      <source-position filename="gmime-autocrypt.h" line="44"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CERTIFICATE"
                    c:identifier="GMIME_IS_CERTIFICATE"
                    introspectable="0">
      <source-position filename="gmime-certificate.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CERTIFICATE_CLASS"
                    c:identifier="GMIME_IS_CERTIFICATE_CLASS"
                    introspectable="0">
      <source-position filename="gmime-certificate.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CERTIFICATE_LIST"
                    c:identifier="GMIME_IS_CERTIFICATE_LIST"
                    introspectable="0">
      <source-position filename="gmime-certificate.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CERTIFICATE_LIST_CLASS"
                    c:identifier="GMIME_IS_CERTIFICATE_LIST_CLASS"
                    introspectable="0">
      <source-position filename="gmime-certificate.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTENT_DISPOSITION"
                    c:identifier="GMIME_IS_CONTENT_DISPOSITION"
                    introspectable="0">
      <source-position filename="gmime-disposition.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTENT_DISPOSITION_CLASS"
                    c:identifier="GMIME_IS_CONTENT_DISPOSITION_CLASS"
                    introspectable="0">
      <source-position filename="gmime-disposition.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTENT_TYPE"
                    c:identifier="GMIME_IS_CONTENT_TYPE"
                    introspectable="0">
      <source-position filename="gmime-content-type.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTENT_TYPE_CLASS"
                    c:identifier="GMIME_IS_CONTENT_TYPE_CLASS"
                    introspectable="0">
      <source-position filename="gmime-content-type.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CRYPTO_CONTEXT"
                    c:identifier="GMIME_IS_CRYPTO_CONTEXT"
                    introspectable="0">
      <source-position filename="gmime-crypto-context.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CRYPTO_CONTEXT_CLASS"
                    c:identifier="GMIME_IS_CRYPTO_CONTEXT_CLASS"
                    introspectable="0">
      <source-position filename="gmime-crypto-context.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_DATA_WRAPPER"
                    c:identifier="GMIME_IS_DATA_WRAPPER"
                    introspectable="0">
      <source-position filename="gmime-data-wrapper.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_DATA_WRAPPER_CLASS"
                    c:identifier="GMIME_IS_DATA_WRAPPER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-data-wrapper.h" line="39"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_DECRYPT_RESULT"
                    c:identifier="GMIME_IS_DECRYPT_RESULT"
                    introspectable="0">
      <source-position filename="gmime-crypto-context.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_DECRYPT_RESULT_CLASS"
                    c:identifier="GMIME_IS_DECRYPT_RESULT_CLASS"
                    introspectable="0">
      <source-position filename="gmime-crypto-context.h" line="41"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER"
                    c:identifier="GMIME_IS_FILTER"
                    introspectable="0">
      <source-position filename="gmime-filter.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_BASIC"
                    c:identifier="GMIME_IS_FILTER_BASIC"
                    introspectable="0">
      <source-position filename="gmime-filter-basic.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_BASIC_CLASS"
                    c:identifier="GMIME_IS_FILTER_BASIC_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-basic.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_BEST"
                    c:identifier="GMIME_IS_FILTER_BEST"
                    introspectable="0">
      <source-position filename="gmime-filter-best.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_BEST_CLASS"
                    c:identifier="GMIME_IS_FILTER_BEST_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-best.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_CHARSET"
                    c:identifier="GMIME_IS_FILTER_CHARSET"
                    introspectable="0">
      <source-position filename="gmime-filter-charset.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_CHARSET_CLASS"
                    c:identifier="GMIME_IS_FILTER_CHARSET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-charset.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_CHECKSUM"
                    c:identifier="GMIME_IS_FILTER_CHECKSUM"
                    introspectable="0">
      <source-position filename="gmime-filter-checksum.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_CHECKSUM_CLASS"
                    c:identifier="GMIME_IS_FILTER_CHECKSUM_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-checksum.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_CLASS"
                    c:identifier="GMIME_IS_FILTER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter.h" line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_DOS2UNIX"
                    c:identifier="GMIME_IS_FILTER_DOS2UNIX"
                    introspectable="0">
      <source-position filename="gmime-filter-dos2unix.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_DOS2UNIX_CLASS"
                    c:identifier="GMIME_IS_FILTER_DOS2UNIX_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-dos2unix.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_ENRICHED"
                    c:identifier="GMIME_IS_FILTER_ENRICHED"
                    introspectable="0">
      <source-position filename="gmime-filter-enriched.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_ENRICHED_CLASS"
                    c:identifier="GMIME_IS_FILTER_ENRICHED_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-enriched.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_FROM"
                    c:identifier="GMIME_IS_FILTER_FROM"
                    introspectable="0">
      <source-position filename="gmime-filter-from.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_FROM_CLASS"
                    c:identifier="GMIME_IS_FILTER_FROM_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-from.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_GZIP"
                    c:identifier="GMIME_IS_FILTER_GZIP"
                    introspectable="0">
      <source-position filename="gmime-filter-gzip.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_GZIP_CLASS"
                    c:identifier="GMIME_IS_FILTER_GZIP_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-gzip.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_HTML"
                    c:identifier="GMIME_IS_FILTER_HTML"
                    introspectable="0">
      <source-position filename="gmime-filter-html.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_HTML_CLASS"
                    c:identifier="GMIME_IS_FILTER_HTML_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-html.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_OPENPGP"
                    c:identifier="GMIME_IS_FILTER_OPENPGP"
                    introspectable="0">
      <source-position filename="gmime-filter-openpgp.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_OPENPGP_CLASS"
                    c:identifier="GMIME_IS_FILTER_OPENPGP_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-openpgp.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_SMTP_DATA"
                    c:identifier="GMIME_IS_FILTER_SMTP_DATA"
                    introspectable="0">
      <source-position filename="gmime-filter-smtp-data.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_SMTP_DATA_CLASS"
                    c:identifier="GMIME_IS_FILTER_SMTP_DATA_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-smtp-data.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_STRIP"
                    c:identifier="GMIME_IS_FILTER_STRIP"
                    introspectable="0">
      <source-position filename="gmime-filter-strip.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_STRIP_CLASS"
                    c:identifier="GMIME_IS_FILTER_STRIP_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-strip.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_UNIX2DOS"
                    c:identifier="GMIME_IS_FILTER_UNIX2DOS"
                    introspectable="0">
      <source-position filename="gmime-filter-unix2dos.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_UNIX2DOS_CLASS"
                    c:identifier="GMIME_IS_FILTER_UNIX2DOS_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-unix2dos.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_WINDOWS"
                    c:identifier="GMIME_IS_FILTER_WINDOWS"
                    introspectable="0">
      <source-position filename="gmime-filter-windows.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_WINDOWS_CLASS"
                    c:identifier="GMIME_IS_FILTER_WINDOWS_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-windows.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_YENC"
                    c:identifier="GMIME_IS_FILTER_YENC"
                    introspectable="0">
      <source-position filename="gmime-filter-yenc.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_YENC_CLASS"
                    c:identifier="GMIME_IS_FILTER_YENC_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-yenc.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_GPG_CONTEXT"
                    c:identifier="GMIME_IS_GPG_CONTEXT"
                    introspectable="0">
      <source-position filename="gmime-gpg-context.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_GPG_CONTEXT_CLASS"
                    c:identifier="GMIME_IS_GPG_CONTEXT_CLASS"
                    introspectable="0">
      <source-position filename="gmime-gpg-context.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_HEADER"
                    c:identifier="GMIME_IS_HEADER"
                    introspectable="0">
      <source-position filename="gmime-header.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_HEADER_CLASS"
                    c:identifier="GMIME_IS_HEADER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-header.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_HEADER_LIST"
                    c:identifier="GMIME_IS_HEADER_LIST"
                    introspectable="0">
      <source-position filename="gmime-header.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_HEADER_LIST_CLASS"
                    c:identifier="GMIME_IS_HEADER_LIST_CLASS"
                    introspectable="0">
      <source-position filename="gmime-header.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INTERNET_ADDRESS"
                    c:identifier="IS_INTERNET_ADDRESS"
                    introspectable="0">
      <source-position filename="internet-address.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INTERNET_ADDRESS_CLASS"
                    c:identifier="IS_INTERNET_ADDRESS_CLASS"
                    introspectable="0">
      <source-position filename="internet-address.h" line="37"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INTERNET_ADDRESS_LIST"
                    c:identifier="IS_INTERNET_ADDRESS_LIST"
                    introspectable="0">
      <source-position filename="internet-address.h" line="55"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INTERNET_ADDRESS_LIST_CLASS"
                    c:identifier="IS_INTERNET_ADDRESS_LIST_CLASS"
                    introspectable="0">
      <source-position filename="internet-address.h" line="56"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MESSAGE"
                    c:identifier="GMIME_IS_MESSAGE"
                    introspectable="0">
      <source-position filename="gmime-message.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MESSAGE_CLASS"
                    c:identifier="GMIME_IS_MESSAGE_CLASS"
                    introspectable="0">
      <source-position filename="gmime-message.h" line="42"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MESSAGE_PART"
                    c:identifier="GMIME_IS_MESSAGE_PART"
                    introspectable="0">
      <source-position filename="gmime-message-part.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MESSAGE_PARTIAL"
                    c:identifier="GMIME_IS_MESSAGE_PARTIAL"
                    introspectable="0">
      <source-position filename="gmime-message-partial.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MESSAGE_PARTIAL_CLASS"
                    c:identifier="GMIME_IS_MESSAGE_PARTIAL_CLASS"
                    introspectable="0">
      <source-position filename="gmime-message-partial.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MESSAGE_PART_CLASS"
                    c:identifier="GMIME_IS_MESSAGE_PART_CLASS"
                    introspectable="0">
      <source-position filename="gmime-message-part.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MULTIPART"
                    c:identifier="GMIME_IS_MULTIPART"
                    introspectable="0">
      <source-position filename="gmime-multipart.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MULTIPART_CLASS"
                    c:identifier="GMIME_IS_MULTIPART_CLASS"
                    introspectable="0">
      <source-position filename="gmime-multipart.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MULTIPART_ENCRYPTED"
                    c:identifier="GMIME_IS_MULTIPART_ENCRYPTED"
                    introspectable="0">
      <source-position filename="gmime-multipart-encrypted.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MULTIPART_ENCRYPTED_CLASS"
                    c:identifier="GMIME_IS_MULTIPART_ENCRYPTED_CLASS"
                    introspectable="0">
      <source-position filename="gmime-multipart-encrypted.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MULTIPART_SIGNED"
                    c:identifier="GMIME_IS_MULTIPART_SIGNED"
                    introspectable="0">
      <source-position filename="gmime-multipart-signed.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MULTIPART_SIGNED_CLASS"
                    c:identifier="GMIME_IS_MULTIPART_SIGNED_CLASS"
                    introspectable="0">
      <source-position filename="gmime-multipart-signed.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OBJECT"
                    c:identifier="GMIME_IS_OBJECT"
                    introspectable="0">
      <source-position filename="gmime-object.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OBJECT_CLASS"
                    c:identifier="GMIME_IS_OBJECT_CLASS"
                    introspectable="0">
      <source-position filename="gmime-object.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PARAM"
                    c:identifier="GMIME_IS_PARAM"
                    introspectable="0">
      <source-position filename="gmime-param.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PARAM_CLASS"
                    c:identifier="GMIME_IS_PARAM_CLASS"
                    introspectable="0">
      <source-position filename="gmime-param.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PARAM_LIST"
                    c:identifier="GMIME_IS_PARAM_LIST"
                    introspectable="0">
      <source-position filename="gmime-param.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PARAM_LIST_CLASS"
                    c:identifier="GMIME_IS_PARAM_LIST_CLASS"
                    introspectable="0">
      <source-position filename="gmime-param.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PARSER"
                    c:identifier="GMIME_IS_PARSER"
                    introspectable="0">
      <source-position filename="gmime-parser.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PARSER_CLASS"
                    c:identifier="GMIME_IS_PARSER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-parser.h" line="41"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PART"
                    c:identifier="GMIME_IS_PART"
                    introspectable="0">
      <source-position filename="gmime-part.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PART_CLASS"
                    c:identifier="GMIME_IS_PART_CLASS"
                    introspectable="0">
      <source-position filename="gmime-part.h" line="41"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PKCS7_CONTEXT"
                    c:identifier="GMIME_IS_PKCS7_CONTEXT"
                    introspectable="0">
      <source-position filename="gmime-pkcs7-context.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PKCS7_CONTEXT_CLASS"
                    c:identifier="GMIME_IS_PKCS7_CONTEXT_CLASS"
                    introspectable="0">
      <source-position filename="gmime-pkcs7-context.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SIGNATURE"
                    c:identifier="GMIME_IS_SIGNATURE"
                    introspectable="0">
      <source-position filename="gmime-signature.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SIGNATURE_CLASS"
                    c:identifier="GMIME_IS_SIGNATURE_CLASS"
                    introspectable="0">
      <source-position filename="gmime-signature.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SIGNATURE_LIST"
                    c:identifier="GMIME_IS_SIGNATURE_LIST"
                    introspectable="0">
      <source-position filename="gmime-signature.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SIGNATURE_LIST_CLASS"
                    c:identifier="GMIME_IS_SIGNATURE_LIST_CLASS"
                    introspectable="0">
      <source-position filename="gmime-signature.h" line="40"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM"
                    c:identifier="GMIME_IS_STREAM"
                    introspectable="0">
      <source-position filename="gmime-stream.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_BUFFER"
                    c:identifier="GMIME_IS_STREAM_BUFFER"
                    introspectable="0">
      <source-position filename="gmime-stream-buffer.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_BUFFER_CLASS"
                    c:identifier="GMIME_IS_STREAM_BUFFER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-buffer.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_CAT"
                    c:identifier="GMIME_IS_STREAM_CAT"
                    introspectable="0">
      <source-position filename="gmime-stream-cat.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_CAT_CLASS"
                    c:identifier="GMIME_IS_STREAM_CAT_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-cat.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_CLASS"
                    c:identifier="GMIME_IS_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream.h" line="38"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_FILE"
                    c:identifier="GMIME_IS_STREAM_FILE"
                    introspectable="0">
      <source-position filename="gmime-stream-file.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_FILE_CLASS"
                    c:identifier="GMIME_IS_STREAM_FILE_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-file.h" line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_FILTER"
                    c:identifier="GMIME_IS_STREAM_FILTER"
                    introspectable="0">
      <source-position filename="gmime-stream-filter.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_FILTER_CLASS"
                    c:identifier="GMIME_IS_STREAM_FILTER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-filter.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_FS"
                    c:identifier="GMIME_IS_STREAM_FS"
                    introspectable="0">
      <source-position filename="gmime-stream-fs.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_FS_CLASS"
                    c:identifier="GMIME_IS_STREAM_FS_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-fs.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_GIO"
                    c:identifier="GMIME_IS_STREAM_GIO"
                    introspectable="0">
      <source-position filename="gmime-stream-gio.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_GIO_CLASS"
                    c:identifier="GMIME_IS_STREAM_GIO_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-gio.h" line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_MEM"
                    c:identifier="GMIME_IS_STREAM_MEM"
                    introspectable="0">
      <source-position filename="gmime-stream-mem.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_MEM_CLASS"
                    c:identifier="GMIME_IS_STREAM_MEM_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-mem.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_MMAP"
                    c:identifier="GMIME_IS_STREAM_MMAP"
                    introspectable="0">
      <source-position filename="gmime-stream-mmap.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_MMAP_CLASS"
                    c:identifier="GMIME_IS_STREAM_MMAP_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-mmap.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_NULL"
                    c:identifier="GMIME_IS_STREAM_NULL"
                    introspectable="0">
      <source-position filename="gmime-stream-null.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_NULL_CLASS"
                    c:identifier="GMIME_IS_STREAM_NULL_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-null.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_PIPE"
                    c:identifier="GMIME_IS_STREAM_PIPE"
                    introspectable="0">
      <source-position filename="gmime-stream-pipe.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STREAM_PIPE_CLASS"
                    c:identifier="GMIME_IS_STREAM_PIPE_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-pipe.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TEXT_PART"
                    c:identifier="GMIME_IS_TEXT_PART"
                    introspectable="0">
      <source-position filename="gmime-text-part.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TEXT_PART_CLASS"
                    c:identifier="GMIME_IS_TEXT_PART_CLASS"
                    introspectable="0">
      <source-position filename="gmime-text-part.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <class name="InternetAddress"
           c:symbol-prefix="internet_address"
           c:type="InternetAddress"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="InternetAddress"
           glib:get-type="internet_address_get_type"
           glib:type-struct="InternetAddressClass">
      <doc xml:space="preserve"
           filename="internet-address.h"
           line="72">An RFC 2822 Address object.</doc>
      <source-position filename="internet-address.h" line="96"/>
      <virtual-method name="to_string">
        <source-position filename="internet-address.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ia" transfer-ownership="none">
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </instance-parameter>
          <parameter name="options" transfer-ownership="none">
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="linelen" transfer-ownership="none">
            <type name="gsize" c:type="size_t*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <type name="GLib.String" c:type="GString*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_charset" c:identifier="internet_address_get_charset">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="242">Gets the charset to be used when encoding the name of the mailbox or group.</doc>
        <source-position filename="internet-address.h" line="105"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="248">the charset to be used when encoding the name of the
mailbox or group if available or %NULL otherwise.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ia" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="244">a #InternetAddress</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="internet_address_get_name">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="201">Gets the display name of the #InternetAddress.</doc>
        <source-position filename="internet-address.h" line="102"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="207">the name of the mailbox or group in a form suitable
for display if available or %NULL otherwise. If the name is available,
the returned string will be in UTF-8.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ia" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="203">a #InternetAddress</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_charset" c:identifier="internet_address_set_charset">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="220">Set the charset to use for encoding the name of the mailbox or group.</doc>
        <source-position filename="internet-address.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ia" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="222">a #InternetAddress</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </instance-parameter>
          <parameter name="charset"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="223">the charset to use when encoding the name or %NULL to use the defaults</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="internet_address_set_name">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="181">Set the display name of the #InternetAddress.

Note: The @name string should be in UTF-8.</doc>
        <source-position filename="internet-address.h" line="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ia" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="183">a #InternetAddress</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="184">the display name for the address group or mailbox</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="internet_address_to_string">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="260">Allocates a string containing the contents of the #InternetAddress
object.</doc>
        <source-position filename="internet-address.h" line="107"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="269">the #InternetAddress object as an allocated string in
rfc822 format.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ia" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="262">Internet Address object</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="263">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="encode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="264">%TRUE if the address should be rfc2047 encoded</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="74">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="charset">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="75">the charset used for encoding the name</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="name">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="76">display name</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="changed" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </class>
    <record name="InternetAddressClass"
            c:type="InternetAddressClass"
            glib:is-gtype-struct-for="InternetAddress">
      <source-position filename="internet-address.h" line="96"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="to_string">
        <callback name="to_string">
          <source-position filename="internet-address.h" line="94"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ia" transfer-ownership="none">
              <type name="InternetAddress" c:type="InternetAddress*"/>
            </parameter>
            <parameter name="options" transfer-ownership="none">
              <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
            </parameter>
            <parameter name="flags" transfer-ownership="none">
              <type name="guint32" c:type="guint32"/>
            </parameter>
            <parameter name="linelen" transfer-ownership="none">
              <type name="gsize" c:type="size_t*"/>
            </parameter>
            <parameter name="str" transfer-ownership="none">
              <type name="GLib.String" c:type="GString*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="InternetAddressGroup"
           c:symbol-prefix="internet_address_group"
           c:type="InternetAddressGroup"
           parent="InternetAddress"
           glib:type-name="InternetAddressGroup"
           glib:get-type="internet_address_group_get_type"
           glib:type-struct="InternetAddressGroupClass">
      <doc xml:space="preserve"
           filename="internet-address.h"
           line="141">An RFC 2822 Group address.</doc>
      <source-position filename="internet-address.h" line="157"/>
      <constructor name="new" c:identifier="internet_address_group_new">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="567">Creates a new #InternetAddressGroup object with the specified
@name.</doc>
        <source-position filename="internet-address.h" line="162"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="574">a new #InternetAddressGroup object.

Note: The @name string should be in UTF-8.</doc>
          <type name="InternetAddress" c:type="InternetAddress*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="569">group name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_member"
              c:identifier="internet_address_group_add_member">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="643">Add a contact to the internet address group.</doc>
        <source-position filename="internet-address.h" line="167"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="650">the index of the newly added member.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="645">a #InternetAddressGroup</doc>
            <type name="InternetAddressGroup" c:type="InternetAddressGroup*"/>
          </instance-parameter>
          <parameter name="member" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="646">a #InternetAddress</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_members"
              c:identifier="internet_address_group_get_members">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="622">Gets the #InternetAddressList containing the group members of an
rfc822 group address.</doc>
        <source-position filename="internet-address.h" line="165"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="629">a #InternetAddressList containing the
members of @group.</doc>
          <type name="InternetAddressList" c:type="InternetAddressList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="624">a #InternetAddressGroup</doc>
            <type name="InternetAddressGroup" c:type="InternetAddressGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_members"
              c:identifier="internet_address_group_set_members">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="590">Set the members of the internet address group.</doc>
        <source-position filename="internet-address.h" line="164"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="592">a #InternetAddressGroup</doc>
            <type name="InternetAddressGroup" c:type="InternetAddressGroup*"/>
          </instance-parameter>
          <parameter name="members" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="593">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="143">parent #InternetAddress</doc>
        <type name="InternetAddress" c:type="InternetAddress"/>
      </field>
      <field name="members">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="144">a #InternetAddressList of group members</doc>
        <type name="InternetAddressList" c:type="InternetAddressList*"/>
      </field>
    </class>
    <record name="InternetAddressGroupClass"
            c:type="InternetAddressGroupClass"
            glib:is-gtype-struct-for="InternetAddressGroup">
      <source-position filename="internet-address.h" line="157"/>
      <field name="parent_class">
        <type name="InternetAddressClass" c:type="InternetAddressClass"/>
      </field>
    </record>
    <class name="InternetAddressList"
           c:symbol-prefix="internet_address_list"
           c:type="InternetAddressList"
           parent="GObject.Object"
           glib:type-name="InternetAddressList"
           glib:get-type="internet_address_list_get_type"
           glib:type-struct="InternetAddressListClass">
      <doc xml:space="preserve"
           filename="internet-address.h"
           line="170">A collection of #InternetAddress objects.</doc>
      <source-position filename="internet-address.h" line="189"/>
      <constructor name="new" c:identifier="internet_address_list_new">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="739">Creates a new #InternetAddressList.</doc>
        <source-position filename="internet-address.h" line="194"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="744">a new #InternetAddressList.</doc>
          <type name="InternetAddressList" c:type="InternetAddressList*"/>
        </return-value>
      </constructor>
      <function name="parse" c:identifier="internet_address_list_parse">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="2142">Construct a list of internet addresses from the given string.</doc>
        <source-position filename="internet-address.h" line="216"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="2149">a #InternetAddressList or %NULL if the
input string does not contain any addresses.</doc>
          <type name="InternetAddressList" c:type="InternetAddressList*"/>
        </return-value>
        <parameters>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="2144">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="2145">a string containing internet addresses</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <method name="add" c:identifier="internet_address_list_add">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="810">Adds an #InternetAddress to the #InternetAddressList.</doc>
        <source-position filename="internet-address.h" line="200"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="817">the index of the added #InternetAddress.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="812">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="ia" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="813">a #InternetAddress</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </parameter>
        </parameters>
      </method>
      <method name="append" c:identifier="internet_address_list_append">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="875">Adds all of the addresses in @append to @list.</doc>
        <source-position filename="internet-address.h" line="202"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="877">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="append" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="878">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="append_parse"
              c:identifier="internet_address_list_append_parse">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="2189">Adds all of the addresses in @str to @list.</doc>
        <source-position filename="internet-address.h" line="217"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="2191">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="2192">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="2193">a string containing internet addresses</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="internet_address_list_clear">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="770">Clears the list of addresses.</doc>
        <source-position filename="internet-address.h" line="198"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="772">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="contains" c:identifier="internet_address_list_contains">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="1006">Checks whether or not the specified #InternetAddress is contained
within the #InternetAddressList.</doc>
        <source-position filename="internet-address.h" line="207"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="1014">%TRUE if the specified #InternetAddress is contained
within the specified #InternetAddressList or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1008">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="ia" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1009">a #InternetAddress</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </parameter>
        </parameters>
      </method>
      <method name="encode" c:identifier="internet_address_list_encode">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="1349">Writes the rfc2047-encoded rfc822 formatted addresses in @list to
@str, folding appropriately.</doc>
        <source-position filename="internet-address.h" line="214"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1351">list of internet addresses</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1352">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1353">string to write to</doc>
            <type name="GLib.String" c:type="GString*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_address"
              c:identifier="internet_address_list_get_address">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="1053">Gets the #InternetAddress at the specified index.</doc>
        <source-position filename="internet-address.h" line="210"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="1060">the #InternetAddress at the specified
index or %NULL if the index is out of range.</doc>
          <type name="InternetAddress" c:type="InternetAddress*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1055">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1056">index of #InternetAddress to get</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="index_of" c:identifier="internet_address_list_index_of">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="1024">Gets the index of the specified #InternetAddress inside the
#InternetAddressList.</doc>
        <source-position filename="internet-address.h" line="208"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="1032">the index of the requested #InternetAddress within the
#InternetAddressList or %-1 if it is not contained within the
#InternetAddressList.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1026">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="ia" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1027">a #InternetAddress</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="internet_address_list_insert">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="905">Inserts an #InternetAddress into the #InternetAddressList at the
specified index.</doc>
        <source-position filename="internet-address.h" line="203"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="907">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="908">index to insert at</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="ia" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="909">a #InternetAddress</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </parameter>
        </parameters>
      </method>
      <method name="length" c:identifier="internet_address_list_length">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="753">Gets the length of the list.</doc>
        <source-position filename="internet-address.h" line="196"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="759">the number of #InternetAddress objects in the list.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="755">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prepend" c:identifier="internet_address_list_prepend">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="836">Inserts all of the addresses in @prepend to the beginning of @list.</doc>
        <source-position filename="internet-address.h" line="201"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="838">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="prepend" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="839">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="internet_address_list_remove">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="945">Removes an #InternetAddress from the #InternetAddressList.</doc>
        <source-position filename="internet-address.h" line="204"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="952">%TRUE if the specified #InternetAddress was removed or
%FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="947">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="ia" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="948">a #InternetAddress</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_at" c:identifier="internet_address_list_remove_at">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="972">Removes an #InternetAddress from the #InternetAddressList at the
specified index.</doc>
        <source-position filename="internet-address.h" line="205"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="980">%TRUE if an #InternetAddress was removed or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="974">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="975">index to remove</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_address"
              c:identifier="internet_address_list_set_address">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="1076">Sets the #InternetAddress at the specified index to @ia.</doc>
        <source-position filename="internet-address.h" line="211"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1078">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1079">index of #InternetAddress to set</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="ia" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1080">a #InternetAddress</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="internet_address_list_to_string">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="1318">Allocates a string buffer containing the rfc822 formatted addresses
in @list.</doc>
        <source-position filename="internet-address.h" line="213"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="1327">a string containing the list of addresses in rfc822
format or %NULL if no addresses are contained in the list.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1320">list of internet addresses</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1321">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="encode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1322">%TRUE if the address should be rfc2047 encoded</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="172">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="array">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="173">The array of #InternetAddress objects.</doc>
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="changed" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </class>
    <record name="InternetAddressListClass"
            c:type="InternetAddressListClass"
            glib:is-gtype-struct-for="InternetAddressList">
      <source-position filename="internet-address.h" line="189"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="InternetAddressMailbox"
           c:symbol-prefix="internet_address_mailbox"
           c:type="InternetAddressMailbox"
           parent="InternetAddress"
           glib:type-name="InternetAddressMailbox"
           glib:get-type="internet_address_mailbox_get_type"
           glib:type-struct="InternetAddressMailboxClass">
      <doc xml:space="preserve"
           filename="internet-address.h"
           line="110">An RFC 2822 Mailbox address.</doc>
      <source-position filename="internet-address.h" line="130"/>
      <constructor name="new" c:identifier="internet_address_mailbox_new">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="372">Creates a new #InternetAddress object with the specified @name and
@addr.</doc>
        <source-position filename="internet-address.h" line="135"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="380">a new #InternetAddressMailbox object.

Note: The @name string should be in UTF-8.</doc>
          <type name="InternetAddress" c:type="InternetAddress*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="374">person's name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="addr" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="375">person's address</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_addr" c:identifier="internet_address_mailbox_get_addr">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="432">Gets the addr-spec of the internet address mailbox.</doc>
        <source-position filename="internet-address.h" line="138"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="438">the addr-spec string.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mailbox" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="434">a #InternetAddressMailbox</doc>
            <type name="InternetAddressMailbox"
                  c:type="InternetAddressMailbox*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_idn_addr"
              c:identifier="internet_address_mailbox_get_idn_addr">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="449">Gets the IDN ascii-encoded addr-spec.</doc>
        <source-position filename="internet-address.h" line="139"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="455">the encoded addr-spec string.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mailbox" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="451">a #InternetAddressMailbox</doc>
            <type name="InternetAddressMailbox"
                  c:type="InternetAddressMailbox*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_addr" c:identifier="internet_address_mailbox_set_addr">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="403">Set the mailbox address.</doc>
        <source-position filename="internet-address.h" line="137"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mailbox" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="405">a #InternetAddressMailbox</doc>
            <type name="InternetAddressMailbox"
                  c:type="InternetAddressMailbox*"/>
          </instance-parameter>
          <parameter name="addr" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="406">contact's email address</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="112">parent #InternetAddress</doc>
        <type name="InternetAddress" c:type="InternetAddress"/>
      </field>
      <field name="idn_addr">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="113">the ascii-encoded version of @addr</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="addr">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="114">the address string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="at">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="115">the index of the '@' character</doc>
        <type name="gint" c:type="int"/>
      </field>
    </class>
    <record name="InternetAddressMailboxClass"
            c:type="InternetAddressMailboxClass"
            glib:is-gtype-struct-for="InternetAddressMailbox">
      <source-position filename="internet-address.h" line="130"/>
      <field name="parent_class">
        <type name="InternetAddressClass" c:type="InternetAddressClass"/>
      </field>
    </record>
    <constant name="MAJOR_VERSION" value="3" c:type="GMIME_MAJOR_VERSION">
      <doc xml:space="preserve"
           filename="gmime-version.h"
           line="25">GMime's major version.</doc>
      <source-position filename="gmime-version.h" line="30"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="MESSAGE"
                    c:identifier="GMIME_MESSAGE"
                    introspectable="0">
      <source-position filename="gmime-message.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MESSAGE_CLASS"
                    c:identifier="GMIME_MESSAGE_CLASS"
                    introspectable="0">
      <source-position filename="gmime-message.h" line="40"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MESSAGE_GET_CLASS"
                    c:identifier="GMIME_MESSAGE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-message.h" line="43"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MESSAGE_PART"
                    c:identifier="GMIME_MESSAGE_PART"
                    introspectable="0">
      <source-position filename="gmime-message-part.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MESSAGE_PARTIAL"
                    c:identifier="GMIME_MESSAGE_PARTIAL"
                    introspectable="0">
      <source-position filename="gmime-message-partial.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MESSAGE_PARTIAL_CLASS"
                    c:identifier="GMIME_MESSAGE_PARTIAL_CLASS"
                    introspectable="0">
      <source-position filename="gmime-message-partial.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MESSAGE_PARTIAL_GET_CLASS"
                    c:identifier="GMIME_MESSAGE_PARTIAL_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-message-partial.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MESSAGE_PART_CLASS"
                    c:identifier="GMIME_MESSAGE_PART_CLASS"
                    introspectable="0">
      <source-position filename="gmime-message-part.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MESSAGE_PART_GET_CLASS"
                    c:identifier="GMIME_MESSAGE_PART_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-message-part.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="MICRO_VERSION" value="15" c:type="GMIME_MICRO_VERSION">
      <doc xml:space="preserve"
           filename="gmime-version.h"
           line="39">GMime's micro version.</doc>
      <source-position filename="gmime-version.h" line="44"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="2" c:type="GMIME_MINOR_VERSION">
      <doc xml:space="preserve"
           filename="gmime-version.h"
           line="32">GMime's minor version.</doc>
      <source-position filename="gmime-version.h" line="37"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="MULTIPART"
                    c:identifier="GMIME_MULTIPART"
                    introspectable="0">
      <source-position filename="gmime-multipart.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MULTIPART_CLASS"
                    c:identifier="GMIME_MULTIPART_CLASS"
                    introspectable="0">
      <source-position filename="gmime-multipart.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MULTIPART_ENCRYPTED"
                    c:identifier="GMIME_MULTIPART_ENCRYPTED"
                    introspectable="0">
      <source-position filename="gmime-multipart-encrypted.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MULTIPART_ENCRYPTED_CLASS"
                    c:identifier="GMIME_MULTIPART_ENCRYPTED_CLASS"
                    introspectable="0">
      <source-position filename="gmime-multipart-encrypted.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MULTIPART_ENCRYPTED_GET_CLASS"
                    c:identifier="GMIME_MULTIPART_ENCRYPTED_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-multipart-encrypted.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MULTIPART_GET_CLASS"
                    c:identifier="GMIME_MULTIPART_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-multipart.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MULTIPART_SIGNED"
                    c:identifier="GMIME_MULTIPART_SIGNED"
                    introspectable="0">
      <source-position filename="gmime-multipart-signed.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MULTIPART_SIGNED_CLASS"
                    c:identifier="GMIME_MULTIPART_SIGNED_CLASS"
                    introspectable="0">
      <source-position filename="gmime-multipart-signed.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MULTIPART_SIGNED_GET_CLASS"
                    c:identifier="GMIME_MULTIPART_SIGNED_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-multipart-signed.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Message"
           c:symbol-prefix="message"
           c:type="GMimeMessage"
           parent="Object"
           glib:type-name="GMimeMessage"
           glib:get-type="g_mime_message_get_type"
           glib:type-struct="MessageClass">
      <doc xml:space="preserve"
           filename="gmime-message.h"
           line="70">A MIME Message object.</doc>
      <source-position filename="gmime-message.h" line="97"/>
      <constructor name="new" c:identifier="g_mime_message_new">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="656">If @pretty_headers is %TRUE, then the standard rfc822 headers are
initialized so as to put headers in a nice friendly order. This is
strictly a cosmetic thing, so if you are unsure, it is safe to say
no (%FALSE).</doc>
        <source-position filename="gmime-message.h" line="102"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="665">an empty #GMimeMessage object.</doc>
          <type name="Message" c:type="GMimeMessage*"/>
        </return-value>
        <parameters>
          <parameter name="pretty_headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="658">make pretty headers</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_mailbox" c:identifier="g_mime_message_add_mailbox">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="859">Add a mailbox of a chosen type to the MIME message.

Note: The @name (and @addr) strings should be in UTF-8.</doc>
        <source-position filename="gmime-message.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="861">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="862">A #GMimeAddressType</doc>
            <type name="AddressType" c:type="GMimeAddressType"/>
          </parameter>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="863">The name of the mailbox (or %NULL)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="addr" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="864">The address of the mailbox</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach" c:identifier="g_mime_message_foreach">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1116">Recursively calls @callback on each of the mime parts in the mime message.</doc>
        <source-position filename="gmime-message.h" line="133"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1118">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1119">function to call on each of the mime parts
  contained by the mime message</doc>
            <type name="ObjectForeachFunc" c:type="GMimeObjectForeachFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1121">user-supplied callback data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_addresses" c:identifier="g_mime_message_get_addresses">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="887">Gets a list of addresses of the specified @type from the @message.</doc>
        <source-position filename="gmime-message.h" line="112"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="894">a list of addresses of the specified
@type from the @message.</doc>
          <type name="InternetAddressList" c:type="InternetAddressList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="889">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="890">A #GMimeAddressType</doc>
            <type name="AddressType" c:type="GMimeAddressType"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_all_recipients"
              c:identifier="g_mime_message_get_all_recipients">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="907">Gets the complete list of recipients for @message.</doc>
        <source-position filename="gmime-message.h" line="113"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="913">a newly allocated #InternetAddressList
containing all recipients of the message or %NULL if no recipients
are set.</doc>
          <type name="InternetAddressList" c:type="InternetAddressList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="909">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_autocrypt_gossip_headers"
              c:identifier="g_mime_message_get_autocrypt_gossip_headers"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1364">Creates a new #GMimeAutocryptHeaderList of relevant headers of the
given type based on the recipient(s) of an e-mail message.

Returns the same object as
#g_mime_message_get_autocrypt_gossip_headers_with_inner_part , but
handles decryption and cleanup automatically.

@flags and @session_key are passed through to
#g_mime_multipart_encrypted_decrypt, as needed.

If the message is not actually an encrypted message, returns %NULL:
it should be ignored for purposes of evaluating gossip.

If decryption fails, returns %NULL.  In this case, an exception
will be set on @err to provide information about the decryption
failure.</doc>
        <source-position filename="gmime-message.h" line="128"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1389">a new #GMimeAutocryptHeaderList object,
or %NULL on error.</doc>
          <type name="AutocryptHeaderList" c:type="GMimeAutocryptHeaderList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1366">a #GMimeMessage object, which is expected to be encrypted.</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="now"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1367">a #GDateTime object, or %NULL</doc>
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1368">a #GMimeDecryptFlags, to be used during decryption</doc>
            <type name="DecryptFlags" c:type="GMimeDecryptFlags"/>
          </parameter>
          <parameter name="session_key"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1369">session key to use or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_autocrypt_gossip_headers_from_inner_part"
              c:identifier="g_mime_message_get_autocrypt_gossip_headers_from_inner_part">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1291">Creates a new #GMimeAutocryptHeaderList of relevant headers of the
given type based on the recipient(s) of an e-mail message.

You must pass the decrypted inner part of the message to this
function, since Autocrypt-Gossip headers are only stored within the
encrypted layer.

If you don't already have the decrypted inner part available to
you, you probably want to use
#g_mime_message_get_autocrypt_gossip_headers instead.

Each header in the returned list will:

 - have a valid address
 - be of the type requested
 - be complete

If no Autocrypt header is found for a recipient, no
#GMimeAutocryptHeader will be in the list associated with that e-mail address.

Note that the following types of Autocrypt headers will not be
returned by this function:

 - headers of an unrequested type
 - headers that do not match an address in "From:"
 - unparseable headers
 - headers with unknown critical attributes
 - duplicate valid headers for a given address

On error (e.g. if this version of GMime cannot handle the requested
Autocrypt type, or if a parameter is missing or malformed), returns
%NULL

The returned Autocrypt headers will have their effective_date set
to the earliest of either:

- the Date: header of the message or
- @now (or the current time, if @now is %NULL)</doc>
        <source-position filename="gmime-message.h" line="129"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1336">a new #GMimeAutocryptHeaderList object,
or %NULL on error.</doc>
          <type name="AutocryptHeaderList" c:type="GMimeAutocryptHeaderList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1293">a #GMimeMessage object.</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="now"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1294">a #GDateTime object, or %NULL</doc>
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
          <parameter name="inner_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1295">a #GMimeObject which is the cleartext part of the inner message</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_autocrypt_header"
              c:identifier="g_mime_message_get_autocrypt_header">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1224">Creates a new #GMimeAutocryptHeader based on the relevant Autocrypt
header associated with the sender of an e-mail message.

If the message has no sender in the From: field, or has more than
one sender, then this function will return %NULL.  Autocrypt should
ignore the message entirely.

If there is one sender, but no single Autocrypt header is found
that matches that e-mail address, a #GMimeAutocryptHeader will be
returned for the sender, but it will be incomplete (see
#g_mime_autocrypt_header_is_complete).

Note that the following types of Autocrypt headers will not be
returned by this function:

 - headers that do not match an address in "From:"
 - unparseable headers
 - headers with unknown critical attributes
 - duplicate valid headers for the sender's address

The returned Autocrypt header will have its effective_date set to
the earliest of either:

- the Date: header of the message or
- @now (or the current time, if @now is %NULL)</doc>
        <source-position filename="gmime-message.h" line="127"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1255">a new #GMimeAutocryptHeader object,
or %NULL if the message should be ignored for purposes of
Autocrypt.</doc>
          <type name="AutocryptHeader" c:type="GMimeAutocryptHeader*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1226">a #GMimeMessage object.</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="now"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1227">a #GDateTime object, or %NULL</doc>
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bcc" c:identifier="g_mime_message_get_bcc">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="775">Gets combined list of parsed addresses in the Bcc header(s).</doc>
        <source-position filename="gmime-message.h" line="109"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="781">the parsed list of addresses in the Bcc header(s).</doc>
          <type name="InternetAddressList" c:type="InternetAddressList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="777">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_body" c:identifier="g_mime_message_get_body">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1190">Attempts to identify the MIME part containing the body of the
message.</doc>
        <source-position filename="gmime-message.h" line="136"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1197">a #GMimeObject containing the textual
content that appears to be the main body of the message, or %NULL if no
body part has been set.

Note: This function is NOT guaranteed to always work as it
makes some assumptions that are not necessarily true. It is
recommended that you traverse the MIME structure yourself.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1192">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cc" c:identifier="g_mime_message_get_cc">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="758">Gets combined list of parsed addresses in the Cc header(s).</doc>
        <source-position filename="gmime-message.h" line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="764">the parsed list of addresses in the Cc header(s).</doc>
          <type name="InternetAddressList" c:type="InternetAddressList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="760">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_date" c:identifier="g_mime_message_get_date">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1000">Gets the parsed date and time value from the Date header.</doc>
        <source-position filename="gmime-message.h" line="119"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1006">a #GDateTime on success or %NULL if
the date could not be parsed.</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1002">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_from" c:identifier="g_mime_message_get_from">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="707">Gets the parsed list of addresses in the From header.</doc>
        <source-position filename="gmime-message.h" line="104"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="713">the parsed list of addresses in the From header.</doc>
          <type name="InternetAddressList" c:type="InternetAddressList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="709">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_message_id"
              c:identifier="g_mime_message_get_message_id">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1039">Gets the Message-Id header of @message.</doc>
        <source-position filename="gmime-message.h" line="122"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1045">the Message-Id of a message, or %NULL if not specified.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1041">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mime_part" c:identifier="g_mime_message_get_mime_part">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1056">Gets the toplevel MIME part contained within @message.</doc>
        <source-position filename="gmime-message.h" line="124"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1062">the toplevel MIME part of @message, or
%NULL if none is present.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1058">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reply_to" c:identifier="g_mime_message_get_reply_to">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="724">Gets the parsed list of addresses in the Reply-To header.</doc>
        <source-position filename="gmime-message.h" line="106"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="730">the parsed list of addresses in the Reply-To header.</doc>
          <type name="InternetAddressList" c:type="InternetAddressList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="726">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sender" c:identifier="g_mime_message_get_sender">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="690">Gets the parsed list of addresses in the Sender header.</doc>
        <source-position filename="gmime-message.h" line="105"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="696">the parsed list of addresses in the Sender header.</doc>
          <type name="InternetAddressList" c:type="InternetAddressList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="692">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subject" c:identifier="g_mime_message_get_subject">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="961">Gets the subject of the @message.</doc>
        <source-position filename="gmime-message.h" line="116"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="967">the subject of the @message in a form suitable for
display or %NULL if no subject is set. If not %NULL, the returned string
will be in UTF-8.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="963">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_to" c:identifier="g_mime_message_get_to">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="741">Gets combined list of parsed addresses in the To header(s).</doc>
        <source-position filename="gmime-message.h" line="107"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="747">the parsed list of addresses in the To header(s).</doc>
          <type name="InternetAddressList" c:type="InternetAddressList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="743">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="partial_split_message"
              c:identifier="g_mime_message_partial_split_message">
        <doc xml:space="preserve"
             filename="gmime-message-partial.c"
             line="351">Splits @message into an array of #GMimeMessage objects each
containing a single #GMimeMessagePartial object containing
@max_size bytes or fewer. @nparts is set to the number of
#GMimeMessagePartial objects created.</doc>
        <source-position filename="gmime-message-partial.h" line="77"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-message-partial.c"
               line="362">an array of #GMimeMessage objects and
sets @nparts to the number of messages returned or %NULL on fail.</doc>
          <array length="1" zero-terminated="0" c:type="GMimeMessage**">
            <type name="Message" c:type="GMimeMessage*"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="353">message object</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="max_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="354">max size</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="nparts"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="355">number of parts</doc>
            <type name="gsize" c:type="size_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_date" c:identifier="g_mime_message_set_date">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="980">Sets the Date header on a MIME Message.</doc>
        <source-position filename="gmime-message.h" line="118"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="982">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="date" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="983">a date to be used in the Date header</doc>
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_message_id"
              c:identifier="g_mime_message_set_message_id">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1018">Set the Message-Id on a message.</doc>
        <source-position filename="gmime-message.h" line="121"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1020">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="message_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1021">message-id (addr-spec portion)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mime_part" c:identifier="g_mime_message_set_mime_part">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1077">Set the root-level MIME part of the message.</doc>
        <source-position filename="gmime-message.h" line="125"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1079">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1080">The root-level MIME Part</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_subject" c:identifier="g_mime_message_set_subject">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="941">Set the subject of a @message.

Note: The @subject string should be in UTF-8.</doc>
        <source-position filename="gmime-message.h" line="115"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="943">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="subject" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="944">Subject string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="945">The charset to use for encoding the subject or %NULL to use the default</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="72">parent #GMimeObject</doc>
        <type name="Object" c:type="GMimeObject"/>
      </field>
      <field name="addrlists">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="73">a table of address lists</doc>
        <type name="InternetAddressList" c:type="InternetAddressList**"/>
      </field>
      <field name="mime_part">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="74">toplevel MIME part</doc>
        <type name="Object" c:type="GMimeObject*"/>
      </field>
      <field name="message_id">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="75">Message-Id string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="date">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="76">Date value</doc>
        <type name="GLib.DateTime" c:type="GDateTime*"/>
      </field>
      <field name="subject">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="77">Subject string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="marker" readable="0" private="1">
        <type name="utf8" c:type="char*"/>
      </field>
    </class>
    <record name="MessageClass"
            c:type="GMimeMessageClass"
            glib:is-gtype-struct-for="Message">
      <source-position filename="gmime-message.h" line="97"/>
      <field name="parent_class">
        <type name="ObjectClass" c:type="GMimeObjectClass"/>
      </field>
    </record>
    <class name="MessagePart"
           c:symbol-prefix="message_part"
           c:type="GMimeMessagePart"
           parent="Object"
           glib:type-name="GMimeMessagePart"
           glib:get-type="g_mime_message_part_get_type"
           glib:type-struct="MessagePartClass">
      <doc xml:space="preserve"
           filename="gmime-message-part.h"
           line="40">A message/rfc822 or message/news MIME part.</doc>
      <source-position filename="gmime-message-part.h" line="56"/>
      <constructor name="new" c:identifier="g_mime_message_part_new">
        <doc xml:space="preserve"
             filename="gmime-message-part.c"
             line="177">Creates a new MIME message part object with a default content-type
of message/@subtype.</doc>
        <source-position filename="gmime-message-part.h" line="61"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-message-part.c"
               line="184">an empty MIME message part object with a default
content-type of message/@subtype.</doc>
          <type name="MessagePart" c:type="GMimeMessagePart*"/>
        </return-value>
        <parameters>
          <parameter name="subtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-part.c"
                 line="179">message subtype or %NULL for "rfc822"</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_message"
                   c:identifier="g_mime_message_part_new_with_message">
        <doc xml:space="preserve"
             filename="gmime-message-part.c"
             line="203">Creates a new MIME message part object with a default content-type
of message/@subtype containing @message.</doc>
        <source-position filename="gmime-message-part.h" line="63"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-message-part.c"
               line="211">a MIME message part object with a default content-type of
message/@subtype containing @message.</doc>
          <type name="MessagePart" c:type="GMimeMessagePart*"/>
        </return-value>
        <parameters>
          <parameter name="subtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-part.c"
                 line="205">message subtype or %NULL for "rfc822"</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-part.c"
                 line="206">message</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_message"
              c:identifier="g_mime_message_part_get_message">
        <doc xml:space="preserve"
             filename="gmime-message-part.c"
             line="249">Gets the message object on the message part object @part.</doc>
        <source-position filename="gmime-message-part.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message-part.c"
               line="255">the message part contained within @part.</doc>
          <type name="Message" c:type="GMimeMessage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-part.c"
                 line="251">message part</doc>
            <type name="MessagePart" c:type="GMimeMessagePart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_message"
              c:identifier="g_mime_message_part_set_message">
        <doc xml:space="preserve"
             filename="gmime-message-part.c"
             line="227">Sets the @message object on the message part object @part.</doc>
        <source-position filename="gmime-message-part.h" line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-part.c"
                 line="229">message part</doc>
            <type name="MessagePart" c:type="GMimeMessagePart*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-part.c"
                 line="230">message</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-message-part.h"
             line="42">parent #GMimeObject</doc>
        <type name="Object" c:type="GMimeObject"/>
      </field>
      <field name="message">
        <doc xml:space="preserve"
             filename="gmime-message-part.h"
             line="43">child #GMimeMessage</doc>
        <type name="Message" c:type="GMimeMessage*"/>
      </field>
    </class>
    <record name="MessagePartClass"
            c:type="GMimeMessagePartClass"
            glib:is-gtype-struct-for="MessagePart">
      <source-position filename="gmime-message-part.h" line="56"/>
      <field name="parent_class">
        <type name="ObjectClass" c:type="GMimeObjectClass"/>
      </field>
    </record>
    <class name="MessagePartial"
           c:symbol-prefix="message_partial"
           c:type="GMimeMessagePartial"
           parent="Part"
           glib:type-name="GMimeMessagePartial"
           glib:get-type="g_mime_message_partial_get_type"
           glib:type-struct="MessagePartialClass">
      <doc xml:space="preserve"
           filename="gmime-message-partial.h"
           line="42">A message/partial MIME part.</doc>
      <source-position filename="gmime-message-partial.h" line="62"/>
      <constructor name="new" c:identifier="g_mime_message_partial_new">
        <doc xml:space="preserve"
             filename="gmime-message-partial.c"
             line="134">Creates a new MIME message/partial object.</doc>
        <source-position filename="gmime-message-partial.h" line="67"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-message-partial.c"
               line="142">an empty MIME message/partial object.</doc>
          <type name="MessagePartial" c:type="GMimeMessagePartial*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="136">message/partial part id</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="number" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="137">message/partial part number</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="total" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="138">total number of message/partial parts</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="reconstruct_message"
                c:identifier="g_mime_message_partial_reconstruct_message">
        <doc xml:space="preserve"
             filename="gmime-message-partial.c"
             line="242">Reconstructs the GMimeMessage from the given message/partial parts
in @partials.</doc>
        <source-position filename="gmime-message-partial.h" line="75"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-message-partial.c"
               line="250">a GMimeMessage object on success or %NULL
on fail.</doc>
          <type name="Message" c:type="GMimeMessage*"/>
        </return-value>
        <parameters>
          <parameter name="partials" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="244">an array of message/partial mime parts</doc>
            <array length="1"
                   zero-terminated="0"
                   c:type="GMimeMessagePartial**">
              <type name="MessagePartial"/>
            </array>
          </parameter>
          <parameter name="num" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="245">the number of elements in @partials</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_id" c:identifier="g_mime_message_partial_get_id">
        <doc xml:space="preserve"
             filename="gmime-message-partial.c"
             line="175">Gets the message/partial id parameter value.</doc>
        <source-position filename="gmime-message-partial.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message-partial.c"
               line="181">the message/partial id or %NULL on fail.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="partial" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="177">message/partial object</doc>
            <type name="MessagePartial" c:type="GMimeMessagePartial*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_number"
              c:identifier="g_mime_message_partial_get_number">
        <doc xml:space="preserve"
             filename="gmime-message-partial.c"
             line="192">Gets the message/partial part number.</doc>
        <source-position filename="gmime-message-partial.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message-partial.c"
               line="198">the message/partial part number or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="partial" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="194">message/partial object</doc>
            <type name="MessagePartial" c:type="GMimeMessagePartial*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_total" c:identifier="g_mime_message_partial_get_total">
        <doc xml:space="preserve"
             filename="gmime-message-partial.c"
             line="209">Gets the total number of message/partial parts needed to
reconstruct the original message.</doc>
        <source-position filename="gmime-message-partial.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message-partial.c"
               line="216">the total number of message/partial parts needed to
reconstruct the original message or -1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="partial" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="211">message/partial object</doc>
            <type name="MessagePartial" c:type="GMimeMessagePartial*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-message-partial.h"
             line="44">parent #GMimePart object</doc>
        <type name="Part" c:type="GMimePart"/>
      </field>
      <field name="number">
        <doc xml:space="preserve"
             filename="gmime-message-partial.h"
             line="45">the part number</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="total">
        <doc xml:space="preserve"
             filename="gmime-message-partial.h"
             line="46">the total number of message/partials that make up the whole message/rfc822</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="id">
        <doc xml:space="preserve"
             filename="gmime-message-partial.h"
             line="47">message/partial id</doc>
        <type name="utf8" c:type="char*"/>
      </field>
    </class>
    <record name="MessagePartialClass"
            c:type="GMimeMessagePartialClass"
            glib:is-gtype-struct-for="MessagePartial">
      <source-position filename="gmime-message-partial.h" line="62"/>
      <field name="parent_class">
        <type name="PartClass" c:type="GMimePartClass"/>
      </field>
    </record>
    <class name="Multipart"
           c:symbol-prefix="multipart"
           c:type="GMimeMultipart"
           parent="Object"
           glib:type-name="GMimeMultipart"
           glib:get-type="g_mime_multipart_get_type"
           glib:type-struct="MultipartClass">
      <doc xml:space="preserve"
           filename="gmime-multipart.h"
           line="42">A base MIME multipart object.</doc>
      <source-position filename="gmime-multipart.h" line="81"/>
      <constructor name="new" c:identifier="g_mime_multipart_new">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="267">Creates a new MIME multipart object with a default content-type of
multipart/mixed.</doc>
        <source-position filename="gmime-multipart.h" line="86"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="273">an empty MIME multipart object with a default content-type of
multipart/mixed.</doc>
          <type name="Multipart" c:type="GMimeMultipart*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_subtype"
                   c:identifier="g_mime_multipart_new_with_subtype">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="283">Creates a new MIME multipart object with a content-type of
multipart/@subtype.</doc>
        <source-position filename="gmime-multipart.h" line="88"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="290">an empty MIME multipart object with a content-type of
multipart/@subtype.</doc>
          <type name="Multipart" c:type="GMimeMultipart*"/>
        </return-value>
        <parameters>
          <parameter name="subtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="285">content-type subtype</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="add" invoker="add">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="414">Appends a mime part to @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="416">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="417">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="clear" invoker="clear">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="391">Removes all subparts from @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="393">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="contains" invoker="contains">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="626">Checks if @part is contained within @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="633">%TRUE if @part is a subpart of @multipart or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="628">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="629">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_boundary" invoker="get_boundary">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="760">Gets the boundary on the multipart. If the internal boundary is
%NULL, then an auto-generated boundary will be set on the multipart
and returned.</doc>
        <source-position filename="gmime-multipart.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="768">the boundary on the multipart.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="762">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_count" invoker="get_count">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="686">Gets the number of parts contained within @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="692">the number of parts contained within @multipart.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="688">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_part" invoker="get_part">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="593">Gets the part at the specified @index within the multipart.</doc>
        <source-position filename="gmime-multipart.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="600">the part at position @index.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="595">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="596">the 0-based index of the part</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="index_of" invoker="index_of">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="660">Gets the 0-based index of @part within @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="667">the 0-based index of @part within @multipart or %-1 if not found.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="662">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="663">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="insert" invoker="insert">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="461">Inserts @part into @multipart at the specified @index.</doc>
        <source-position filename="gmime-multipart.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="463">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="465">the 0-based index to insert the part</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="464">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove" invoker="remove">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="492">Removes the specified @part from @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="499">%TRUE if the part was removed or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="494">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="495">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_at" invoker="remove_at">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="527">Removes the part at the specified @index from @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="71"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="534">the mime part that was removed or %NULL
if the part was not contained within the multipart.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="529">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="530">the 0-based index of the part to remove</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_boundary" invoker="set_boundary">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="728">Sets @boundary as the boundary on the multipart. If @boundary is
%NULL, then a boundary will be auto-generated for you.</doc>
        <source-position filename="gmime-multipart.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="730">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="boundary" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="731">boundary or %NULL to autogenerate one</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add" c:identifier="g_mime_multipart_add">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="414">Appends a mime part to @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="416">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="417">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="g_mime_multipart_clear">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="391">Removes all subparts from @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="393">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="contains" c:identifier="g_mime_multipart_contains">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="626">Checks if @part is contained within @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="105"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="633">%TRUE if @part is a subpart of @multipart or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="628">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="629">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach" c:identifier="g_mime_multipart_foreach">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="783">Recursively calls @callback on each of @multipart's subparts.</doc>
        <source-position filename="gmime-multipart.h" line="115"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="785">a #GMimeMultipart</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="786">function to call for each of @multipart's
  subparts.</doc>
            <type name="ObjectForeachFunc" c:type="GMimeObjectForeachFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="788">user-supplied callback data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_boundary" c:identifier="g_mime_multipart_get_boundary">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="760">Gets the boundary on the multipart. If the internal boundary is
%NULL, then an auto-generated boundary will be set on the multipart
and returned.</doc>
        <source-position filename="gmime-multipart.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="768">the boundary on the multipart.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="762">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_count" c:identifier="g_mime_multipart_get_count">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="686">Gets the number of parts contained within @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="692">the number of parts contained within @multipart.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="688">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_epilogue" c:identifier="g_mime_multipart_get_epilogue">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="362">Gets the epilogue on the multipart.</doc>
        <source-position filename="gmime-multipart.h" line="94"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="368">a pointer to the epilogue string on the multipart.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="364">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_part" c:identifier="g_mime_multipart_get_part">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="593">Gets the part at the specified @index within the multipart.</doc>
        <source-position filename="gmime-multipart.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="600">the part at position @index.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="595">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="596">the 0-based index of the part</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_prologue" c:identifier="g_mime_multipart_get_prologue">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="328">Gets the prologue on the multipart.</doc>
        <source-position filename="gmime-multipart.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="334">a pointer to the prologue string on the multipart.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="330">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subpart_from_content_id"
              c:identifier="g_mime_multipart_get_subpart_from_content_id">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="837">Gets the mime part with the content-id @content_id from the
multipart @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="845">the #GMimeObject whose content-id matches
the search string, or %NULL if a match cannot be found.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="839">a multipart</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="content_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="840">the content id of the part to look for</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="index_of" c:identifier="g_mime_multipart_index_of">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="660">Gets the 0-based index of @part within @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="106"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="667">the 0-based index of @part within @multipart or %-1 if not found.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="662">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="663">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="g_mime_multipart_insert">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="461">Inserts @part into @multipart at the specified @index.</doc>
        <source-position filename="gmime-multipart.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="463">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="465">the 0-based index to insert the part</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="464">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="g_mime_multipart_remove">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="492">Removes the specified @part from @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="499">%TRUE if the part was removed or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="494">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="495">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_at" c:identifier="g_mime_multipart_remove_at">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="527">Removes the part at the specified @index from @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="101"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="534">the mime part that was removed or %NULL
if the part was not contained within the multipart.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="529">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="530">the 0-based index of the part to remove</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace" c:identifier="g_mime_multipart_replace">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="547">Replaces the part at the specified @index within @multipart with
@replacement.</doc>
        <source-position filename="gmime-multipart.h" line="102"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="556">the part that was replaced or %NULL
if the part was not contained within the multipart.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="549">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="550">the 0-based index of the part to replace</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="replacement" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="551">a #GMimeObject to use as the replacement</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_boundary" c:identifier="g_mime_multipart_set_boundary">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="728">Sets @boundary as the boundary on the multipart. If @boundary is
%NULL, then a boundary will be auto-generated for you.</doc>
        <source-position filename="gmime-multipart.h" line="110"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="730">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="boundary" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="731">boundary or %NULL to autogenerate one</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_epilogue" c:identifier="g_mime_multipart_set_epilogue">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="345">Sets the epilogue on the multipart.</doc>
        <source-position filename="gmime-multipart.h" line="93"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="347">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="epilogue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="348">epilogue</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_prologue" c:identifier="g_mime_multipart_set_prologue">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="311">Sets the prologue on the multipart.</doc>
        <source-position filename="gmime-multipart.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="multipart" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="313">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="prologue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="314">prologue</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-multipart.h"
             line="44">parent #GMimeObject</doc>
        <type name="Object" c:type="GMimeObject"/>
      </field>
      <field name="children">
        <doc xml:space="preserve"
             filename="gmime-multipart.h"
             line="45">array of MIME sub-parts</doc>
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="boundary">
        <doc xml:space="preserve"
             filename="gmime-multipart.h"
             line="46">MIME boundary</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="prologue">
        <doc xml:space="preserve"
             filename="gmime-multipart.h"
             line="47">multipart prologue</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="epilogue">
        <doc xml:space="preserve"
             filename="gmime-multipart.h"
             line="48">multipart epilogue</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="write_end_boundary" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="MultipartClass"
            c:type="GMimeMultipartClass"
            glib:is-gtype-struct-for="Multipart">
      <source-position filename="gmime-multipart.h" line="81"/>
      <field name="parent_class">
        <type name="ObjectClass" c:type="GMimeObjectClass"/>
      </field>
      <field name="clear">
        <callback name="clear">
          <source-position filename="gmime-multipart.h" line="67"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="multipart" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="393">a #GMimeMultipart object</doc>
              <type name="Multipart" c:type="GMimeMultipart*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add">
        <callback name="add">
          <source-position filename="gmime-multipart.h" line="68"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="multipart" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="416">a #GMimeMultipart object</doc>
              <type name="Multipart" c:type="GMimeMultipart*"/>
            </parameter>
            <parameter name="part" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="417">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="insert">
        <callback name="insert">
          <source-position filename="gmime-multipart.h" line="69"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="multipart" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="463">a #GMimeMultipart object</doc>
              <type name="Multipart" c:type="GMimeMultipart*"/>
            </parameter>
            <parameter name="index" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="465">the 0-based index to insert the part</doc>
              <type name="gint" c:type="int"/>
            </parameter>
            <parameter name="part" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="464">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove">
        <callback name="remove">
          <source-position filename="gmime-multipart.h" line="70"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="499">%TRUE if the part was removed or %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="multipart" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="494">a #GMimeMultipart object</doc>
              <type name="Multipart" c:type="GMimeMultipart*"/>
            </parameter>
            <parameter name="part" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="495">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_at">
        <callback name="remove_at">
          <source-position filename="gmime-multipart.h" line="71"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="534">the mime part that was removed or %NULL
if the part was not contained within the multipart.</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </return-value>
          <parameters>
            <parameter name="multipart" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="529">a #GMimeMultipart object</doc>
              <type name="Multipart" c:type="GMimeMultipart*"/>
            </parameter>
            <parameter name="index" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="530">the 0-based index of the part to remove</doc>
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_part">
        <callback name="get_part">
          <source-position filename="gmime-multipart.h" line="72"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="600">the part at position @index.</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </return-value>
          <parameters>
            <parameter name="multipart" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="595">a #GMimeMultipart object</doc>
              <type name="Multipart" c:type="GMimeMultipart*"/>
            </parameter>
            <parameter name="index" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="596">the 0-based index of the part</doc>
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="contains">
        <callback name="contains">
          <source-position filename="gmime-multipart.h" line="74"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="633">%TRUE if @part is a subpart of @multipart or %FALSE
otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="multipart" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="628">a #GMimeMultipart object</doc>
              <type name="Multipart" c:type="GMimeMultipart*"/>
            </parameter>
            <parameter name="part" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="629">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="index_of">
        <callback name="index_of">
          <source-position filename="gmime-multipart.h" line="75"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="667">the 0-based index of @part within @multipart or %-1 if not found.</doc>
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="multipart" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="662">a #GMimeMultipart object</doc>
              <type name="Multipart" c:type="GMimeMultipart*"/>
            </parameter>
            <parameter name="part" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="663">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_count">
        <callback name="get_count">
          <source-position filename="gmime-multipart.h" line="77"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="692">the number of parts contained within @multipart.</doc>
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="multipart" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="688">a #GMimeMultipart object</doc>
              <type name="Multipart" c:type="GMimeMultipart*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_boundary">
        <callback name="set_boundary">
          <source-position filename="gmime-multipart.h" line="79"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="multipart" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="730">a #GMimeMultipart object</doc>
              <type name="Multipart" c:type="GMimeMultipart*"/>
            </parameter>
            <parameter name="boundary" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="731">boundary or %NULL to autogenerate one</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_boundary">
        <callback name="get_boundary">
          <source-position filename="gmime-multipart.h" line="80"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="768">the boundary on the multipart.</doc>
            <type name="utf8" c:type="const char*"/>
          </return-value>
          <parameters>
            <parameter name="multipart" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-multipart.c"
                   line="762">a #GMimeMultipart object</doc>
              <type name="Multipart" c:type="GMimeMultipart*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="MultipartEncrypted"
           c:symbol-prefix="multipart_encrypted"
           c:type="GMimeMultipartEncrypted"
           parent="Multipart"
           glib:type-name="GMimeMultipartEncrypted"
           glib:get-type="g_mime_multipart_encrypted_get_type"
           glib:type-struct="MultipartEncryptedClass">
      <doc xml:space="preserve"
           filename="gmime-multipart-encrypted.h"
           line="46">A multipart/encrypted MIME part.</doc>
      <source-position filename="gmime-multipart-encrypted.h" line="60"/>
      <constructor name="new" c:identifier="g_mime_multipart_encrypted_new">
        <doc xml:space="preserve"
             filename="gmime-multipart-encrypted.c"
             line="117">Creates a new MIME multipart/encrypted object.</doc>
        <source-position filename="gmime-multipart-encrypted.h" line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart-encrypted.c"
               line="122">an empty MIME multipart/encrypted object.</doc>
          <type name="MultipartEncrypted" c:type="GMimeMultipartEncrypted*"/>
        </return-value>
      </constructor>
      <function name="encrypt"
                c:identifier="g_mime_multipart_encrypted_encrypt"
                throws="1">
        <doc xml:space="preserve"
             filename="gmime-multipart-encrypted.c"
             line="140">Attempts to encrypt (and conditionally sign) the @entity MIME part
to the public keys of @recipients using the @ctx encryption
context. If successful, a new multipart/encrypted object is returned.</doc>
        <source-position filename="gmime-multipart-encrypted.h" line="67"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-multipart-encrypted.c"
               line="154">a new #GMimeMultipartEncrypted object on success
or %NULL on fail. If encrypting fails, an exception will be set on @err to provide
information as to why the failure occurred.</doc>
          <type name="MultipartEncrypted" c:type="GMimeMultipartEncrypted*"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="142">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </parameter>
          <parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="143">MIME part to encrypt</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
          <parameter name="sign" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="144">%TRUE if the content should also be signed or %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="userid"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="145">user id to use for signing (only used if @sign is %TRUE)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="146">a #GMimeEncryptFlags</doc>
            <type name="EncryptFlags" c:type="GMimeEncryptFlags"/>
          </parameter>
          <parameter name="recipients" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="147">an array of recipients to encrypt to</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </function>
      <method name="decrypt"
              c:identifier="g_mime_multipart_encrypted_decrypt"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-multipart-encrypted.c"
             line="235">Attempts to decrypt the encrypted MIME part contained within the
multipart/encrypted object @encrypted.

When non-%NULL, @session_key should be a %NULL-terminated string,
such as the one returned by g_mime_decrypt_result_get_session_key()
from a previous decryption. If the @session_key is not valid, decryption
will fail.

If @result is non-%NULL, then on a successful decrypt operation, it will be
updated to point to a newly-allocated #GMimeDecryptResult with signature
status information as well as a list of recipients that the part was
encrypted to.</doc>
        <source-position filename="gmime-multipart-encrypted.h" line="72"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-multipart-encrypted.c"
               line="256">the decrypted MIME part on success or
%NULL on fail. If the decryption fails, an exception will be set on
@err to provide information as to why the failure occurred.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="encrypted" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="237">a #GMimeMultipartEncrypted</doc>
            <type name="MultipartEncrypted" c:type="GMimeMultipartEncrypted*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="238">a #GMimeDecryptFlags</doc>
            <type name="DecryptFlags" c:type="GMimeDecryptFlags"/>
          </parameter>
          <parameter name="session_key"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="239">session key to use or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="result"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="240">a #GMimeDecryptResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult**"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-multipart-encrypted.h"
             line="48">parent #GMimeMultipart</doc>
        <type name="Multipart" c:type="GMimeMultipart"/>
      </field>
    </class>
    <record name="MultipartEncryptedClass"
            c:type="GMimeMultipartEncryptedClass"
            glib:is-gtype-struct-for="MultipartEncrypted">
      <source-position filename="gmime-multipart-encrypted.h" line="60"/>
      <field name="parent_class">
        <type name="MultipartClass" c:type="GMimeMultipartClass"/>
      </field>
    </record>
    <class name="MultipartSigned"
           c:symbol-prefix="multipart_signed"
           c:type="GMimeMultipartSigned"
           parent="Multipart"
           glib:type-name="GMimeMultipartSigned"
           glib:get-type="g_mime_multipart_signed_get_type"
           glib:type-struct="MultipartSignedClass">
      <doc xml:space="preserve"
           filename="gmime-multipart-signed.h"
           line="46">A multipart/signed MIME part.</doc>
      <source-position filename="gmime-multipart-signed.h" line="60"/>
      <constructor name="new" c:identifier="g_mime_multipart_signed_new">
        <doc xml:space="preserve"
             filename="gmime-multipart-signed.c"
             line="131">Creates a new MIME multipart/signed object.</doc>
        <source-position filename="gmime-multipart-signed.h" line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart-signed.c"
               line="136">an empty MIME multipart/signed object.</doc>
          <type name="MultipartSigned" c:type="GMimeMultipartSigned*"/>
        </return-value>
      </constructor>
      <function name="sign"
                c:identifier="g_mime_multipart_signed_sign"
                throws="1">
        <doc xml:space="preserve"
             filename="gmime-multipart-signed.c"
             line="196">Attempts to sign the @content MIME part with @userid's private key
using the @ctx signing context. If successful, a new multipart/signed
object is returned.</doc>
        <source-position filename="gmime-multipart-signed.h" line="67"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-multipart-signed.c"
               line="207">a new #GMimeMultipartSigned object on success
or %NULL on fail. If signing fails, an exception will be set on @err to provide
information as to why the failure occurred.</doc>
          <type name="MultipartSigned" c:type="GMimeMultipartSigned*"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-signed.c"
                 line="198">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </parameter>
          <parameter name="entity" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-signed.c"
                 line="199">MIME part to sign</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
          <parameter name="userid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-signed.c"
                 line="200">user id to sign with</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <method name="verify"
              c:identifier="g_mime_multipart_signed_verify"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-multipart-signed.c"
             line="355">Attempts to verify the signed MIME part contained within the
multipart/signed object @mps.</doc>
        <source-position filename="gmime-multipart-signed.h" line="70"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-multipart-signed.c"
               line="364">a new #GMimeSignatureList object on
success or %NULL on fail. If the verification fails, an exception
will be set on @err to provide information as to why the failure
occurred.</doc>
          <type name="SignatureList" c:type="GMimeSignatureList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mps" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-signed.c"
                 line="357">a #GMimeMultipartSigned</doc>
            <type name="MultipartSigned" c:type="GMimeMultipartSigned*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-signed.c"
                 line="358">a #GMimeVerifyFlags</doc>
            <type name="VerifyFlags" c:type="GMimeVerifyFlags"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-multipart-signed.h"
             line="48">parent #GMimeMultipart</doc>
        <type name="Multipart" c:type="GMimeMultipart"/>
      </field>
    </class>
    <record name="MultipartSignedClass"
            c:type="GMimeMultipartSignedClass"
            glib:is-gtype-struct-for="MultipartSigned">
      <source-position filename="gmime-multipart-signed.h" line="60"/>
      <field name="parent_class">
        <type name="MultipartClass" c:type="GMimeMultipartClass"/>
      </field>
    </record>
    <enumeration name="NewLineFormat" c:type="GMimeNewLineFormat">
      <doc xml:space="preserve"
           filename="gmime-format-options.h"
           line="31">There are two commonly used line-endings used by modern Operating Systems.
Unix-based systems such as Linux and Mac OS use a single character ('\n' aka LF)
to represent the end of line where-as Windows (or DOS) uses a sequence of two
characters ("\r\n" aka CRLF). Most text-based network protocols such as SMTP,
POP3, and IMAP use the CRLF sequence as well.</doc>
      <source-position filename="gmime-format-options.h" line="45"/>
      <member name="unix" value="0" c:identifier="GMIME_NEWLINE_FORMAT_UNIX">
        <doc xml:space="preserve"
             filename="gmime-format-options.h"
             line="33">The Unix New-Line format ("\n").</doc>
      </member>
      <member name="dos" value="1" c:identifier="GMIME_NEWLINE_FORMAT_DOS">
        <doc xml:space="preserve"
             filename="gmime-format-options.h"
             line="34">The DOS New-Line format ("\r\n").</doc>
      </member>
    </enumeration>
    <function-macro name="OBJECT"
                    c:identifier="GMIME_OBJECT"
                    introspectable="0">
      <source-position filename="gmime-object.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OBJECT_CLASS"
                    c:identifier="GMIME_OBJECT_CLASS"
                    introspectable="0">
      <source-position filename="gmime-object.h" line="41"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OBJECT_GET_CLASS"
                    c:identifier="GMIME_OBJECT_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-object.h" line="44"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Object"
           c:symbol-prefix="object"
           c:type="GMimeObject"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="GMimeObject"
           glib:get-type="g_mime_object_get_type"
           glib:type-struct="ObjectClass">
      <doc xml:space="preserve"
           filename="gmime-object.h"
           line="49">Base class for all MIME parts.</doc>
      <source-position filename="gmime-object.h" line="87"/>
      <constructor name="new" c:identifier="g_mime_object_new">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="393">Performs a lookup of registered #GMimeObject subclasses, registered
using g_mime_object_register_type(), to find an appropriate class
capable of handling MIME parts of the specified Content-Type. If no
class has been registered to handle that type, it looks for a
registered class that can handle @content_type's media type. If
that also fails, then it will use the generic part class,
#GMimePart.</doc>
        <source-position filename="gmime-object.h" line="106"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="406">an appropriate #GMimeObject registered to handle MIME
parts appropriate for @content_type.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="395">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </parameter>
          <parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="396">a #GMimeContentType object</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_type" c:identifier="g_mime_object_new_type">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="449">Performs a lookup of registered #GMimeObject subclasses, registered
using g_mime_object_register_type(), to find an appropriate class
capable of handling MIME parts of type @type/@subtype. If no class
has been registered to handle that type, it looks for a registered
class that can handle @type. If that also fails, then it will use
the generic part class, #GMimePart.</doc>
        <source-position filename="gmime-object.h" line="107"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="462">an appropriate #GMimeObject registered to handle mime-types
of @type/@subtype.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="451">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="452">mime type</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="subtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="453">mime subtype</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="register_type"
                c:identifier="g_mime_object_register_type">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="356">Registers the object type @object_type for use with the
g_mime_object_new_type() convenience function.

Note: You may use the wildcard "*" to match any type and/or
subtype.</doc>
        <source-position filename="gmime-object.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="358">mime type</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="subtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="359">mime subtype</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="object_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="360">object type</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </function>
      <function name="type_registry_init"
                c:identifier="g_mime_object_type_registry_init">
        <source-position filename="gmime-object.h" line="143"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="type_registry_shutdown"
                c:identifier="g_mime_object_type_registry_shutdown">
        <source-position filename="gmime-object.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <virtual-method name="encode" invoker="encode">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="1020">Calculates and sets the most efficient Content-Transfer-Encoding
for this #GMimeObject and all child parts based on the @constraint
provided.</doc>
        <source-position filename="gmime-object.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="1022">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="constraint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="1023">a #GMimeEncodingConstraint</doc>
            <type name="EncodingConstraint" c:type="GMimeEncodingConstraint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_headers" invoker="get_headers">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="946">Allocates a string buffer containing all of the MIME object's raw
headers.</doc>
        <source-position filename="gmime-object.h" line="81"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="954">an allocated string containing all of the raw MIME headers.

Note: The returned string will not be suitable for display.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="948">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="949">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="header_added">
        <source-position filename="gmime-object.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <type name="Header" c:type="GMimeHeader*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="header_changed">
        <source-position filename="gmime-object.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <type name="Header" c:type="GMimeHeader*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="header_removed">
        <source-position filename="gmime-object.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <type name="Header" c:type="GMimeHeader*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="headers_cleared">
        <source-position filename="gmime-object.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_content_type" invoker="set_content_type">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="534">Sets the content-type for the specified MIME object and then
serializes it to the Content-Type header field.</doc>
        <source-position filename="gmime-object.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="536">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="537">a #GMimeContentType object</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="write_to_stream">
        <source-position filename="gmime-object.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="options" transfer-ownership="none">
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="content_only" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="stream" transfer-ownership="none">
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="append_header" c:identifier="g_mime_object_append_header">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="858">Appends a new header to the header list.</doc>
        <source-position filename="gmime-object.h" line="127"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="860">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="861">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="862">header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="863">a charset</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="encode" c:identifier="g_mime_object_encode">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="1020">Calculates and sets the most efficient Content-Transfer-Encoding
for this #GMimeObject and all child parts based on the @constraint
provided.</doc>
        <source-position filename="gmime-object.h" line="140"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="1022">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="constraint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="1023">a #GMimeEncodingConstraint</doc>
            <type name="EncodingConstraint" c:type="GMimeEncodingConstraint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_autocrypt_headers"
              c:identifier="g_mime_object_get_autocrypt_headers">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="1132">Creates a new #GMimeAutocryptHeaderList of relevant headers of the
given type based on the @addresses of an @mime_part.

Each header in the returned list will:

 - have a valid address
 - be of the type requested
 - be complete

If no Autocrypt header is found for an address, no
#GMimeAutocryptHeader will be in the list associated with that e-mail address.

Note that the following types of Autocrypt headers will not be
returned by this function:

 - headers of an unrequested type
 - headers that do not match an address in "From:"
 - unparseable headers
 - headers with unknown critical attributes
 - duplicate valid headers for a given address

On error (e.g. if this version of GMime cannot handle the requested
Autocrypt type, or if a parameter is missing or malformed), returns
%NULL

The returned Autocrypt headers will have it effective_date set to
@effective_date

if @keep_incomplete isn't set, incompletes are removed</doc>
        <source-position filename="gmime-object.h" line="146"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="1170">a new #GMimeAutocryptHeaderList object,
or %NULL on error.</doc>
          <type name="AutocryptHeaderList" c:type="GMimeAutocryptHeaderList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="1134">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="effective_date" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="1135">a #GDateTime object</doc>
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
          <parameter name="matchheader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="1136">the header we want to match</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="addresses" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="1137">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </parameter>
          <parameter name="keep_incomplete" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="1138">%TRUE if the we should include incompletes</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_content_disposition"
              c:identifier="g_mime_object_get_content_disposition">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="619">Gets the #GMimeContentDisposition for the specified MIME object.</doc>
        <source-position filename="gmime-object.h" line="115"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="625">the #GMimeContentDisposition set on the
MIME object.</doc>
          <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="621">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_disposition_parameter"
              c:identifier="g_mime_object_get_content_disposition_parameter">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="764">Gets the value of the Content-Disposition parameter specified by
@name, or %NULL if the parameter does not exist.</doc>
        <source-position filename="gmime-object.h" line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="772">the value of the requested content-disposition param or
%NULL if the param doesn't exist. If the param is set, the returned
string will be in UTF-8.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="766">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="767">parameter name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_content_id"
              c:identifier="g_mime_object_get_content_id">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="814">Gets the Content-Id of the MIME object or NULL if one is not set.</doc>
        <source-position filename="gmime-object.h" line="124"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="820">a const pointer to the Content-Id header.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="816">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_type"
              c:identifier="g_mime_object_get_content_type">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="557">Gets the #GMimeContentType object for the given MIME object or
%NULL on fail.</doc>
        <source-position filename="gmime-object.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="564">the content-type object for the specified
MIME object.</doc>
          <type name="ContentType" c:type="GMimeContentType*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="559">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_type_parameter"
              c:identifier="g_mime_object_get_content_type_parameter">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="597">Gets the value of the content-type param @name set on the MIME part
@object.</doc>
        <source-position filename="gmime-object.h" line="112"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="605">the value of the requested content-type param or %NULL if
the param doesn't exist. If the param is set, the returned string
will be in UTF-8.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="599">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="600">param name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_disposition"
              c:identifier="g_mime_object_get_disposition">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="714">Gets the MIME object's disposition if set or %NULL otherwise.</doc>
        <source-position filename="gmime-object.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="720">the disposition string which is probably one of
#GMIME_DISPOSITION_ATTACHMENT or #GMIME_DISPOSITION_INLINE.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="716">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_header" c:identifier="g_mime_object_get_header">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="896">Gets the value of the first header with the specified name.</doc>
        <source-position filename="gmime-object.h" line="129"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="903">the value of the requested header if it
exists or %NULL otherwise.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="898">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="899">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_header_list"
              c:identifier="g_mime_object_get_header_list">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="1072">Get the header list for @object.</doc>
        <source-position filename="gmime-object.h" line="132"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="1078">the #GMimeHeaderList for @object. Do not
free this pointer when you are done with it.</doc>
          <type name="HeaderList" c:type="GMimeHeaderList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="1074">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_headers" c:identifier="g_mime_object_get_headers">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="946">Allocates a string buffer containing all of the MIME object's raw
headers.</doc>
        <source-position filename="gmime-object.h" line="134"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="954">an allocated string containing all of the raw MIME headers.

Note: The returned string will not be suitable for display.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="948">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="949">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="prepend_header"
              c:identifier="g_mime_object_prepend_header">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="831">Prepends a new header to the header list.</doc>
        <source-position filename="gmime-object.h" line="126"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="833">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="834">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="835">header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="836">a charset</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_header" c:identifier="g_mime_object_remove_header">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="920">Removed the specified header if it exists.</doc>
        <source-position filename="gmime-object.h" line="130"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="927">%TRUE if the header was removed or %FALSE if it could not
be found.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="922">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="923">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_disposition"
              c:identifier="g_mime_object_set_content_disposition">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="661">Set the content disposition for the specified mime part and then
serializes it to the Content-Disposition header field.</doc>
        <source-position filename="gmime-object.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="663">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="disposition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="664">a #GMimeContentDisposition object</doc>
            <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_disposition_parameter"
              c:identifier="g_mime_object_set_content_disposition_parameter">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="735">Add a content-disposition parameter to the specified mime part.

Note: The @name string should be in US-ASCII while the @value
string should be in UTF-8.</doc>
        <source-position filename="gmime-object.h" line="120"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="737">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="738">parameter name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="739">parameter value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_id"
              c:identifier="g_mime_object_set_content_id">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="789">Sets the Content-Id of the MIME object.</doc>
        <source-position filename="gmime-object.h" line="123"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="791">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="content_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="792">content-id (addr-spec portion)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_type"
              c:identifier="g_mime_object_set_content_type">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="534">Sets the content-type for the specified MIME object and then
serializes it to the Content-Type header field.</doc>
        <source-position filename="gmime-object.h" line="109"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="536">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="537">a #GMimeContentType object</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_type_parameter"
              c:identifier="g_mime_object_set_content_type_parameter">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="576">Sets the content-type param @name to the value @value.

Note: The @name string should be in US-ASCII while the @value
string should be in UTF-8.</doc>
        <source-position filename="gmime-object.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="578">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="579">param name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="580">param value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_disposition"
              c:identifier="g_mime_object_set_disposition">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="684">Sets the disposition to @disposition which may be one of
#GMIME_DISPOSITION_ATTACHMENT or #GMIME_DISPOSITION_INLINE or, by
your choice, any other string which would indicate how the MIME
part should be displayed by the MUA.</doc>
        <source-position filename="gmime-object.h" line="117"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="686">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="disposition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="687">disposition ("attachment" or "inline")</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_header" c:identifier="g_mime_object_set_header">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="877">Sets a header to the specified value.</doc>
        <source-position filename="gmime-object.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="879">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="header" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="880">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="881">header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="charset"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="882">a charset</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="g_mime_object_to_string">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="1038">Allocates a string buffer containing the contents of @object.</doc>
        <source-position filename="gmime-object.h" line="138"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="1045">an allocated string containing the contents of the mime
object.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="1040">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="1041">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_content_to_stream"
              c:identifier="g_mime_object_write_content_to_stream">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="994">Write only the content of the MIME object to @stream.</doc>
        <source-position filename="gmime-object.h" line="137"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="1002">the number of bytes written or %-1 on fail.</doc>
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="996">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="997">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="998">stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_to_stream"
              c:identifier="g_mime_object_write_to_stream">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="974">Write the headers and content of the MIME object to @stream.</doc>
        <source-position filename="gmime-object.h" line="136"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="982">the number of bytes written or %-1 on fail.</doc>
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="976">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="977">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="978">stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-object.h"
             line="51">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="disposition">
        <doc xml:space="preserve"
             filename="gmime-object.h"
             line="52">a #GMimeContentDisposition</doc>
        <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
      </field>
      <field name="content_type">
        <doc xml:space="preserve"
             filename="gmime-object.h"
             line="53">a #GMimeContentType</doc>
        <type name="ContentType" c:type="GMimeContentType*"/>
      </field>
      <field name="headers">
        <doc xml:space="preserve"
             filename="gmime-object.h"
             line="55">a #GMimeHeaderList</doc>
        <type name="HeaderList" c:type="GMimeHeaderList*"/>
      </field>
      <field name="content_id">
        <doc xml:space="preserve"
             filename="gmime-object.h"
             line="54">a Content-Id</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="ensure_newline" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="ObjectClass"
            c:type="GMimeObjectClass"
            glib:is-gtype-struct-for="Object">
      <source-position filename="gmime-object.h" line="87"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="header_added">
        <callback name="header_added">
          <source-position filename="gmime-object.h" line="74"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
            <parameter name="header" transfer-ownership="none">
              <type name="Header" c:type="GMimeHeader*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="header_changed">
        <callback name="header_changed">
          <source-position filename="gmime-object.h" line="75"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
            <parameter name="header" transfer-ownership="none">
              <type name="Header" c:type="GMimeHeader*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="header_removed">
        <callback name="header_removed">
          <source-position filename="gmime-object.h" line="76"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
            <parameter name="header" transfer-ownership="none">
              <type name="Header" c:type="GMimeHeader*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="headers_cleared">
        <callback name="headers_cleared">
          <source-position filename="gmime-object.h" line="77"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_content_type">
        <callback name="set_content_type">
          <source-position filename="gmime-object.h" line="79"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="536">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
            <parameter name="content_type" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="537">a #GMimeContentType object</doc>
              <type name="ContentType" c:type="GMimeContentType*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_headers">
        <callback name="get_headers">
          <source-position filename="gmime-object.h" line="81"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="954">an allocated string containing all of the raw MIME headers.

Note: The returned string will not be suitable for display.</doc>
            <type name="utf8" c:type="char*"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="948">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
            <parameter name="options"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="949">a #GMimeFormatOptions or %NULL</doc>
              <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="write_to_stream">
        <callback name="write_to_stream">
          <source-position filename="gmime-object.h" line="83"/>
          <return-value transfer-ownership="none">
            <type name="gssize" c:type="ssize_t"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
            <parameter name="options" transfer-ownership="none">
              <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
            </parameter>
            <parameter name="content_only" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="stream" transfer-ownership="none">
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="encode">
        <callback name="encode">
          <source-position filename="gmime-object.h" line="86"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="1022">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
            <parameter name="constraint" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="1023">a #GMimeEncodingConstraint</doc>
              <type name="EncodingConstraint"
                    c:type="GMimeEncodingConstraint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="ObjectForeachFunc" c:type="GMimeObjectForeachFunc">
      <doc xml:space="preserve"
           filename="gmime-object.h"
           line="90">The function signature for a callback to g_mime_message_foreach()
and g_mime_multipart_foreach().</doc>
      <source-position filename="gmime-object.h" line="99"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.h"
               line="92">parent #GMimeObject</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </parameter>
        <parameter name="part" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.h"
               line="93">a #GMimeObject</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="gmime-object.h"
               line="94">User-supplied callback data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="OpenPGPData" c:type="GMimeOpenPGPData">
      <doc xml:space="preserve"
           filename="gmime-filter-openpgp.h"
           line="40">The type of OpenPGP data found, if any.</doc>
      <source-position filename="gmime-filter-openpgp.h" line="56"/>
      <member name="none" value="0" c:identifier="GMIME_OPENPGP_DATA_NONE">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="42">No OpenPGP data found.</doc>
      </member>
      <member name="encrypted"
              value="1"
              c:identifier="GMIME_OPENPGP_DATA_ENCRYPTED">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="43">The content contains OpenPGP encrypted data.</doc>
      </member>
      <member name="signed" value="2" c:identifier="GMIME_OPENPGP_DATA_SIGNED">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="44">The content contains OpenPGP signed data.</doc>
      </member>
      <member name="public_key"
              value="3"
              c:identifier="GMIME_OPENPGP_DATA_PUBLIC_KEY">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="45">The content contains OpenPGP public key data.</doc>
      </member>
      <member name="private_key"
              value="4"
              c:identifier="GMIME_OPENPGP_DATA_PRIVATE_KEY">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="46">The content contains OpenPGP private key data.</doc>
      </member>
    </enumeration>
    <record name="OpenPGPMarker" c:type="GMimeOpenPGPMarker" version="3.2">
      <doc xml:space="preserve"
           filename="gmime-filter-openpgp.h"
           line="90">An OpenPGP marker for use with GMime's internal state machines used for detecting OpenPGP blocks.</doc>
      <source-position filename="gmime-filter-openpgp.h" line="108"/>
      <field name="marker" writable="1">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="92">The OpenPGP marker.</doc>
        <type name="utf8" c:type="const char*"/>
      </field>
      <field name="len" writable="1">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="93">The length of the OpenPGP marker.</doc>
        <type name="gsize" c:type="size_t"/>
      </field>
      <field name="before" writable="1">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="94">The #GMimeOpenPGPState that the state machine must be in before encountering this marker.</doc>
        <type name="OpenPGPState" c:type="GMimeOpenPGPState"/>
      </field>
      <field name="after" writable="1">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="95">The #GMimeOpenPGPState that the state machine will transition into once this marker is found.</doc>
        <type name="OpenPGPState" c:type="GMimeOpenPGPState"/>
      </field>
      <field name="is_end_marker" writable="1">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="96">%TRUE if the marker is an end marker; otherwise, %FALSE.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </record>
    <bitfield name="OpenPGPState" version="3.2" c:type="GMimeOpenPGPState">
      <doc xml:space="preserve"
           filename="gmime-filter-openpgp.h"
           line="59">The current state of the #GMimeFilterOpenPGP filter.</doc>
      <source-position filename="gmime-filter-openpgp.h" line="87"/>
      <member name="none" value="0" c:identifier="GMIME_OPENPGP_NONE">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="61">No OpenPGP markers have been found (yet).</doc>
      </member>
      <member name="begin_pgp_message"
              value="1"
              c:identifier="GMIME_OPENPGP_BEGIN_PGP_MESSAGE">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="62">The "-----BEGIN PGP MESSAGE-----" marker has been found.</doc>
      </member>
      <member name="end_pgp_message"
              value="3"
              c:identifier="GMIME_OPENPGP_END_PGP_MESSAGE">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="63">The "-----END PGP MESSAGE-----" marker has been found.</doc>
      </member>
      <member name="begin_pgp_signed_message"
              value="4"
              c:identifier="GMIME_OPENPGP_BEGIN_PGP_SIGNED_MESSAGE">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="64">The "-----BEGIN PGP SIGNED MESSAGE-----" marker has been found.</doc>
      </member>
      <member name="begin_pgp_signature"
              value="12"
              c:identifier="GMIME_OPENPGP_BEGIN_PGP_SIGNATURE">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="65">The "-----BEGIN PGP SIGNATURE-----" marker has been found.</doc>
      </member>
      <member name="end_pgp_signature"
              value="28"
              c:identifier="GMIME_OPENPGP_END_PGP_SIGNATURE">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="66">The "-----END PGP SIGNATURE-----" marker has been found.</doc>
      </member>
      <member name="begin_pgp_public_key_block"
              value="32"
              c:identifier="GMIME_OPENPGP_BEGIN_PGP_PUBLIC_KEY_BLOCK">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="67">The "-----BEGIN PGP PUBLIC KEY BLOCK-----" marker has been found.</doc>
      </member>
      <member name="end_pgp_public_key_block"
              value="96"
              c:identifier="GMIME_OPENPGP_END_PGP_PUBLIC_KEY_BLOCK">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="68">The "-----END PGP PUBLIC KEY BLOCK-----" marker has been found.</doc>
      </member>
      <member name="begin_pgp_private_key_block"
              value="128"
              c:identifier="GMIME_OPENPGP_BEGIN_PGP_PRIVATE_KEY_BLOCK">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="69">The "-----BEGIN PGP PRIVATE KEY BLOCK-----" marker has been found.</doc>
      </member>
      <member name="end_pgp_private_key_block"
              value="384"
              c:identifier="GMIME_OPENPGP_END_PGP_PRIVATE_KEY_BLOCK">
        <doc xml:space="preserve"
             filename="gmime-filter-openpgp.h"
             line="70">The "-----END PGP PRIVATE KEY BLOCK-----" marker has been found.</doc>
      </member>
    </bitfield>
    <function-macro name="PARAM" c:identifier="GMIME_PARAM" introspectable="0">
      <source-position filename="gmime-param.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PARAM_CLASS"
                    c:identifier="GMIME_PARAM_CLASS"
                    introspectable="0">
      <source-position filename="gmime-param.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PARAM_GET_CLASS"
                    c:identifier="GMIME_PARAM_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-param.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PARAM_LIST"
                    c:identifier="GMIME_PARAM_LIST"
                    introspectable="0">
      <source-position filename="gmime-param.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PARAM_LIST_CLASS"
                    c:identifier="GMIME_PARAM_LIST_CLASS"
                    introspectable="0">
      <source-position filename="gmime-param.h" line="41"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PARAM_LIST_GET_CLASS"
                    c:identifier="GMIME_PARAM_LIST_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-param.h" line="44"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PARSER"
                    c:identifier="GMIME_PARSER"
                    introspectable="0">
      <source-position filename="gmime-parser.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PARSER_CLASS"
                    c:identifier="GMIME_PARSER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-parser.h" line="39"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PARSER_GET_CLASS"
                    c:identifier="GMIME_PARSER_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-parser.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PART" c:identifier="GMIME_PART" introspectable="0">
      <source-position filename="gmime-part.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PART_CLASS"
                    c:identifier="GMIME_PART_CLASS"
                    introspectable="0">
      <source-position filename="gmime-part.h" line="39"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PART_GET_CLASS"
                    c:identifier="GMIME_PART_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-part.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PKCS7_CONTEXT"
                    c:identifier="GMIME_PKCS7_CONTEXT"
                    introspectable="0">
      <source-position filename="gmime-pkcs7-context.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PKCS7_CONTEXT_CLASS"
                    c:identifier="GMIME_PKCS7_CONTEXT_CLASS"
                    introspectable="0">
      <source-position filename="gmime-pkcs7-context.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PKCS7_CONTEXT_GET_CLASS"
                    c:identifier="GMIME_PKCS7_CONTEXT_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-pkcs7-context.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Param"
           c:symbol-prefix="param"
           c:type="GMimeParam"
           parent="GObject.Object"
           glib:type-name="GMimeParam"
           glib:get-type="g_mime_param_get_type"
           glib:type-struct="ParamClass">
      <doc xml:space="preserve"
           filename="gmime-param.h"
           line="53">A parameter name/value pair as used in the Content-Type and Content-Disposition headers.</doc>
      <source-position filename="gmime-param.h" line="77"/>
      <method name="get_charset" c:identifier="g_mime_param_get_charset">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="203">Gets the charset used for encoding the parameter.</doc>
        <source-position filename="gmime-param.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="209">the charset used for encoding the parameter.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="205">a #GMimeParam</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_encoding_method"
              c:identifier="g_mime_param_get_encoding_method">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="275">Gets the encoding method used for encoding the parameter.</doc>
        <source-position filename="gmime-param.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="281">the encoding method used for encoding the parameter.</doc>
          <type name="ParamEncodingMethod" c:type="GMimeParamEncodingMethod"/>
        </return-value>
        <parameters>
          <instance-parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="277">a #GMimeParam</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_lang" c:identifier="g_mime_param_get_lang">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="239">Gets the language specifier used for encoding the parameter.</doc>
        <source-position filename="gmime-param.h" line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="245">the language specifier used for encoding the parameter.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="241">a #GMimeParam</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="g_mime_param_get_name">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="149">Gets the name of the parameter.</doc>
        <source-position filename="gmime-param.h" line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="155">the name of the parameter.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="151">a #GMimeParam</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value" c:identifier="g_mime_param_get_value">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="166">Gets the value of the parameter.</doc>
        <source-position filename="gmime-param.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="172">the value of the parameter.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="168">a #GMimeParam</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_charset" c:identifier="g_mime_param_set_charset">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="220">Sets the parameter charset used for encoding the value.</doc>
        <source-position filename="gmime-param.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="222">a #GMimeParam</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </instance-parameter>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="223">the charset or %NULL to use the default</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_encoding_method"
              c:identifier="g_mime_param_set_encoding_method">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="292">Sets the encoding method used for encoding the value.</doc>
        <source-position filename="gmime-param.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="294">a #GMimeParam</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </instance-parameter>
          <parameter name="method" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="295">a #GMimeParamEncodingMethod</doc>
            <type name="ParamEncodingMethod"
                  c:type="GMimeParamEncodingMethod"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_lang" c:identifier="g_mime_param_set_lang">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="256">Sets the parameter language specifier used for encoding the value.</doc>
        <source-position filename="gmime-param.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="258">a #GMimeParam</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </instance-parameter>
          <parameter name="lang" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="259">the language specifier</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value" c:identifier="g_mime_param_set_value">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="183">Sets the parameter value to @value.</doc>
        <source-position filename="gmime-param.h" line="85"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="185">a #GMimeParam</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="186">the new parameter value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="method">
        <doc xml:space="preserve"
             filename="gmime-param.h"
             line="55">The encoding method used for the parameter value.</doc>
        <type name="ParamEncodingMethod" c:type="GMimeParamEncodingMethod"/>
      </field>
      <field name="charset">
        <doc xml:space="preserve"
             filename="gmime-param.h"
             line="56">The charset to use when encoding the parameter value.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="lang">
        <doc xml:space="preserve"
             filename="gmime-param.h"
             line="57">the language specifier to use when encoding the value.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="name">
        <doc xml:space="preserve"
             filename="gmime-param.h"
             line="58">The parameter name.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="value">
        <doc xml:space="preserve"
             filename="gmime-param.h"
             line="59">The parameter value.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="changed" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </class>
    <record name="ParamClass"
            c:type="GMimeParamClass"
            glib:is-gtype-struct-for="Param">
      <source-position filename="gmime-param.h" line="77"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="ParamEncodingMethod" c:type="GMimeParamEncodingMethod">
      <doc xml:space="preserve"
           filename="gmime-format-options.h"
           line="48">The MIME specifications specify that the proper method for encoding Content-Type and
Content-Disposition parameter values is the method described in
&lt;ulink url="https://tools.ietf.org/html/rfc2231"&gt;rfc2231&lt;/ulink&gt;. However, it is common for
some older email clients to improperly encode using the method described in
&lt;ulink url="https://tools.ietf.org/html/rfc2047"&gt;rfc2047&lt;/ulink&gt; instead.</doc>
      <source-position filename="gmime-format-options.h" line="64"/>
      <member name="default"
              value="0"
              c:identifier="GMIME_PARAM_ENCODING_METHOD_DEFAULT">
        <doc xml:space="preserve"
             filename="gmime-format-options.h"
             line="50">Use the default encoding method set on the #GMimeFormatOptions.</doc>
      </member>
      <member name="rfc2231"
              value="1"
              c:identifier="GMIME_PARAM_ENCODING_METHOD_RFC2231">
        <doc xml:space="preserve"
             filename="gmime-format-options.h"
             line="51">Use the encoding method described in rfc2231.</doc>
      </member>
      <member name="rfc2047"
              value="2"
              c:identifier="GMIME_PARAM_ENCODING_METHOD_RFC2047">
        <doc xml:space="preserve"
             filename="gmime-format-options.h"
             line="52">Use the encoding method described in rfc2047.</doc>
      </member>
    </enumeration>
    <class name="ParamList"
           c:symbol-prefix="param_list"
           c:type="GMimeParamList"
           parent="GObject.Object"
           glib:type-name="GMimeParamList"
           glib:get-type="g_mime_param_list_get_type"
           glib:type-struct="ParamListClass">
      <doc xml:space="preserve"
           filename="gmime-param.h"
           line="97">A list of Content-Type or Content-Disposition parameters.</doc>
      <source-position filename="gmime-param.h" line="112"/>
      <constructor name="new" c:identifier="g_mime_param_list_new">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="387">Creates a new Content-Type or Content-Disposition parameter list.</doc>
        <source-position filename="gmime-param.h" line="117"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="392">a new #GMimeParamList.</doc>
          <type name="ParamList" c:type="GMimeParamList*"/>
        </return-value>
      </constructor>
      <function name="parse" c:identifier="g_mime_param_list_parse">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="1447">Parses the input string into a parameter list.</doc>
        <source-position filename="gmime-param.h" line="118"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="1454">a new #GMimeParamList.</doc>
          <type name="ParamList" c:type="GMimeParamList*"/>
        </return-value>
        <parameters>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="1449">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="1450">a string to parse</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <method name="clear" c:identifier="g_mime_param_list_clear">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="418">Clears the list of parameters.</doc>
        <source-position filename="gmime-param.h" line="122"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="420">a #GMimeParamList</doc>
            <type name="ParamList" c:type="GMimeParamList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="encode" c:identifier="g_mime_param_list_encode">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="718">Encodes the parameter list into @str, folding lines if required.</doc>
        <source-position filename="gmime-param.h" line="131"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="720">a #GMimeParamList</doc>
            <type name="ParamList" c:type="GMimeParamList*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="721">a #GMimeFormatOptions or %NULL</doc>
            <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
          </parameter>
          <parameter name="fold" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="722">%TRUE if the parameter list should be folded; otherwise, %FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="str"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="723">the output string buffer</doc>
            <type name="GLib.String" c:type="GString*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_parameter"
              c:identifier="g_mime_param_list_get_parameter">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="498">Gets the #GMimeParam with the given @name.</doc>
        <source-position filename="gmime-param.h" line="125"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="505">the requested #GMimeParam.</doc>
          <type name="Param" c:type="GMimeParam*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="500">list: a #GMimeParamList</doc>
            <type name="ParamList" c:type="GMimeParamList*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="501">the name of the parameter</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_parameter_at"
              c:identifier="g_mime_param_list_get_parameter_at">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="527">Gets the #GMimeParam at the specified @index.</doc>
        <source-position filename="gmime-param.h" line="126"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="534">the #GMimeParam at the specified index.</doc>
          <type name="Param" c:type="GMimeParam*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="529">a #GMimeParamList</doc>
            <type name="ParamList" c:type="GMimeParamList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="530">the index of the requested parameter</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="length" c:identifier="g_mime_param_list_length">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="401">Gets the length of the list.</doc>
        <source-position filename="gmime-param.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="407">the number of #GMimeParam items in the list.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="403">a #GMimeParamList</doc>
            <type name="ParamList" c:type="GMimeParamList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="g_mime_param_list_remove">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="549">Removes a parameter from the #GMimeParamList.</doc>
        <source-position filename="gmime-param.h" line="128"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="556">%TRUE if the specified parameter was removed or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="551">a #GMimeParamList</doc>
            <type name="ParamList" c:type="GMimeParamList*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="552">the name of the parameter</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_at" c:identifier="g_mime_param_list_remove_at">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="582">Removes a #GMimeParam from the #GMimeParamList at the specified index.</doc>
        <source-position filename="gmime-param.h" line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="589">%TRUE if a #GMimeParam was removed or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="584">a #GMimeParamList</doc>
            <type name="ParamList" c:type="GMimeParamList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="585">index of the param to remove</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_parameter"
              c:identifier="g_mime_param_list_set_parameter">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="461">Sets the specified parameter to @value.</doc>
        <source-position filename="gmime-param.h" line="124"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="463">a #GMimeParamList</doc>
            <type name="ParamList" c:type="GMimeParamList*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="464">The name of the parameter</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="465">The parameter value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="array" readable="0" private="1">
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="changed" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </class>
    <record name="ParamListClass"
            c:type="GMimeParamListClass"
            glib:is-gtype-struct-for="ParamList">
      <source-position filename="gmime-param.h" line="112"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Parser"
           c:symbol-prefix="parser"
           c:type="GMimeParser"
           parent="GObject.Object"
           glib:type-name="GMimeParser"
           glib:get-type="g_mime_parser_get_type"
           glib:type-struct="ParserClass">
      <doc xml:space="preserve"
           filename="gmime-parser.h"
           line="63">A MIME parser context.</doc>
      <source-position filename="gmime-parser.h" line="79"/>
      <constructor name="new" c:identifier="g_mime_parser_new">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="415">Creates a new parser object.</doc>
        <source-position filename="gmime-parser.h" line="100"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="420">a new parser object.</doc>
          <type name="Parser" c:type="GMimeParser*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_stream"
                   c:identifier="g_mime_parser_new_with_stream">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="429">Creates a new parser object preset to parse @stream.</doc>
        <source-position filename="gmime-parser.h" line="101"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="435">a new parser object.</doc>
          <type name="Parser" c:type="GMimeParser*"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="431">raw message or part stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="construct_message"
              c:identifier="g_mime_parser_construct_message">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="2254">Constructs a MIME message from @parser.</doc>
        <source-position filename="gmime-parser.h" line="119"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="2261">a MIME message or %NULL on fail.</doc>
          <type name="Message" c:type="GMimeMessage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="2256">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="2257">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="construct_part"
              c:identifier="g_mime_parser_construct_part">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="2151">Constructs a MIME part from @parser.</doc>
        <source-position filename="gmime-parser.h" line="118"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="2158">a MIME part based on @parser or %NULL on
fail.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="2153">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="2154">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="eos" c:identifier="g_mime_parser_eos">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="723">Tests the end-of-stream indicator for @parser's internal stream.</doc>
        <source-position filename="gmime-parser.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="729">%TRUE on EOS or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="725">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_format" c:identifier="g_mime_parser_get_format">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="528">Gets the format that the parser is set to parse.</doc>
        <source-position filename="gmime-parser.h" line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="534">the format that the parser is set to parse.</doc>
          <type name="Format" c:type="GMimeFormat"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="530">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_headers_begin"
              c:identifier="g_mime_parser_get_headers_begin">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="2325">Gets the stream offset of the beginning of the headers of the most
recently parsed message.</doc>
        <source-position filename="gmime-parser.h" line="128"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="2332">the offset of the beginning of the headers of the most
recently parsed message or %-1 on error.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="2327">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_headers_end"
              c:identifier="g_mime_parser_get_headers_end">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="2344">Gets the stream offset of the end of the headers of the most
recently parsed message.</doc>
        <source-position filename="gmime-parser.h" line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="2351">the offset of the end of the headers of the most recently
parsed message or %-1 on error.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="2346">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mbox_marker"
              c:identifier="g_mime_parser_get_mbox_marker">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="2272">Gets the mbox-style From-line of the most recently parsed message
(gotten from g_mime_parser_construct_message()).</doc>
        <source-position filename="gmime-parser.h" line="125"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="2279">the mbox-style From-line of the most recently parsed
message or %NULL on error.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="2274">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mbox_marker_offset"
              c:identifier="g_mime_parser_get_mbox_marker_offset">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="2300">Gets the offset of the most recently parsed mbox-style From-line
(gotten from g_mime_parser_construct_message()).</doc>
        <source-position filename="gmime-parser.h" line="126"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="2307">the offset of the most recently parsed mbox-style From-line
or %-1 on error.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="2302">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_persist_stream"
              c:identifier="g_mime_parser_get_persist_stream">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="481">Gets whether or not the underlying stream is persistent.</doc>
        <source-position filename="gmime-parser.h" line="105"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="487">%TRUE if the @parser will leave the content on disk or
%FALSE if it will load the content into memory.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="483">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_respect_content_length"
              c:identifier="g_mime_parser_get_respect_content_length">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="561">Gets whether or not @parser is set to use Content-Length for
determining the offset of the end of the message.</doc>
        <source-position filename="gmime-parser.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="568">whether or not @parser is set to use Content-Length for
determining the offset of the end of the message.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="563">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="init_with_stream"
              c:identifier="g_mime_parser_init_with_stream">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="449">Initializes @parser to use @stream.

WARNING: Initializing a parser with a stream is comparable to
selling your soul (@stream) to the devil (@parser). You are
basically giving the parser complete control of the stream, this
means that you had better not touch the stream so long as the
parser is still using it. This means no reading, writing, seeking,
or resetting of the stream. Anything that will/could change the
current stream's offset is PROHIBITED.

It is also recommended that you not use g_mime_stream_tell()
because it will not necessarily give you the current @parser offset
since @parser handles its own internal read-ahead buffer. Instead,
it is recommended that you use g_mime_parser_tell() if you have a
reason to need the current offset of the @parser.</doc>
        <source-position filename="gmime-parser.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="451">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="452">raw message or part stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_format" c:identifier="g_mime_parser_set_format">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="545">Sets the format that the parser should expect the stream to be in.</doc>
        <source-position filename="gmime-parser.h" line="109"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="547">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="548">a #GMimeFormat</doc>
            <type name="Format" c:type="GMimeFormat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_header_regex"
              c:identifier="g_mime_parser_set_header_regex"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="603">Sets the regular expression pattern @regex on @parser. Whenever a
header matching the pattern @regex is parsed, @header_cb is called
with @user_data as the user_data argument.

If @regex is %NULL, then the previously registered regex callback
is unregistered and no new callback is set.</doc>
        <source-position filename="gmime-parser.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="605">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
          <parameter name="regex" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="606">regular expression</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="header_cb" transfer-ownership="none" closure="2">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="607">callback function</doc>
            <type name="ParserHeaderRegexFunc"
                  c:type="GMimeParserHeaderRegexFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="608">user data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_persist_stream"
              c:identifier="g_mime_parser_set_persist_stream">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="499">Sets whether or not the @parser's underlying stream is persistent.

If @persist is %TRUE, the @parser will attempt to construct
messages/parts whose content will remain on disk rather than being
loaded into memory so as to reduce memory usage. This is the default.

If @persist is %FALSE, the @parser will always load message content
into memory.

Note: This attribute only serves as a hint to the @parser. If the
underlying stream does not support seeking, then this attribute
will be ignored.

By default, this feature is enabled if the underlying stream is seekable.</doc>
        <source-position filename="gmime-parser.h" line="106"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="501">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
          <parameter name="persist" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="502">persist attribute</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_respect_content_length"
              c:identifier="g_mime_parser_set_respect_content_length">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="580">Sets whether or not @parser should respect Content-Length headers
when deciding where to look for the start of the next message. Only
used when the parser is also set to scan for From-lines.

Most notably useful when parsing broken Solaris mbox files (See
http://www.jwz.org/doc/content-length.html for details).

By default, this feature is disabled.</doc>
        <source-position filename="gmime-parser.h" line="112"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="582">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
          <parameter name="respect_content_length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="583">%TRUE if the parser should use Content-Length headers or %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="tell" c:identifier="g_mime_parser_tell">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="704">Gets the current stream offset from the parser's internal stream.</doc>
        <source-position filename="gmime-parser.h" line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="710">the current stream offset from the parser's internal stream
or %-1 on error.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="706">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-parser.h"
             line="65">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <doc xml:space="preserve"
             filename="gmime-parser.h"
             line="66">private parser state</doc>
        <type name="gpointer" c:type="_GMimeParserPrivate*"/>
      </field>
    </class>
    <record name="ParserClass"
            c:type="GMimeParserClass"
            glib:is-gtype-struct-for="Parser">
      <source-position filename="gmime-parser.h" line="79"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="ParserHeaderRegexFunc" c:type="GMimeParserHeaderRegexFunc">
      <doc xml:space="preserve"
           filename="gmime-parser.h"
           line="82">Function signature for the callback to
g_mime_parser_set_header_regex().</doc>
      <source-position filename="gmime-parser.h" line="93"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="parser" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.h"
               line="84">The #GMimeParser object.</doc>
          <type name="Parser" c:type="GMimeParser*"/>
        </parameter>
        <parameter name="header" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.h"
               line="85">The header field matched.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.h"
               line="86">The header field value.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="offset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.h"
               line="87">The header field offset.</doc>
          <type name="gint64" c:type="gint64"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="4">
          <doc xml:space="preserve"
               filename="gmime-parser.h"
               line="88">The user-supplied callback data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="ParserOptions"
            c:type="GMimeParserOptions"
            opaque="1"
            glib:type-name="GMimeParserOptions"
            glib:get-type="g_mime_parser_options_get_type"
            c:symbol-prefix="parser_options">
      <doc xml:space="preserve"
           filename="gmime-parser-options.h"
           line="87">A set of parser options used by #GMimeParser and various other parsing functions.</doc>
      <source-position filename="gmime-parser-options.h" line="92"/>
      <constructor name="new" c:identifier="g_mime_parser_options_new">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="113">Creates a new set of #GMimeParserOptions.</doc>
        <source-position filename="gmime-parser-options.h" line="110"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-parser-options.c"
               line="118">a newly allocated set of #GMimeParserOptions with the default values.</doc>
          <type name="ParserOptions" c:type="GMimeParserOptions*"/>
        </return-value>
      </constructor>
      <method name="clone" c:identifier="g_mime_parser_options_clone">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="144">Clones a #GMimeParserOptions.</doc>
        <source-position filename="gmime-parser-options.h" line="113"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-parser-options.c"
               line="150">a newly allocated #GMimeParserOptions.</doc>
          <type name="ParserOptions" c:type="GMimeParserOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="146">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="g_mime_parser_options_free">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="184">Frees a set of #GMimeParserOptions.</doc>
        <source-position filename="gmime-parser-options.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="186">a #GMimeParserOptions</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_address_compliance_mode"
              c:identifier="g_mime_parser_options_get_address_compliance_mode">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="205">Gets the compliance mode that should be used when parsing rfc822 addresses.

Note: Even in #GMIME_RFC_COMPLIANCE_STRICT mode, the address parser is fairly liberal in
what it accepts. Setting it to #GMIME_RFC_COMPLIANCE_LOOSE just makes it try harder to
deal with garbage input.</doc>
        <source-position filename="gmime-parser-options.h" line="115"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser-options.c"
               line="215">the compliance mode that is currently set.</doc>
          <type name="RfcComplianceMode" c:type="GMimeRfcComplianceMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="options"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="207">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_allow_addresses_without_domain"
              c:identifier="g_mime_parser_options_get_allow_addresses_without_domain">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="248">Gets whether or not the rfc822 address parser should allow addresses without a domain.

In general, you'll probably want this value to be %FALSE (the default) as it allows
maximum interoperability with existing (broken) mail clients and other mail software
such as sloppily written perl scripts (aka spambots) that do not properly quote the
name when it contains a comma.

This option exists in order to allow parsing of mailbox addresses that do not have a
domain component. These types of addresses are rare and were typically only used when
sending mail to other users on the same UNIX system.</doc>
        <source-position filename="gmime-parser-options.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser-options.c"
               line="263">%TRUE if the address parser should allow addresses without a domain.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="250">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fallback_charsets"
              c:identifier="g_mime_parser_options_get_fallback_charsets">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="385">Gets the fallback charsets to try when decoding 8-bit headers.</doc>
        <source-position filename="gmime-parser-options.h" line="127"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser-options.c"
               line="391">a %NULL-terminated list of charsets to try when
decoding 8-bit headers.</doc>
          <array c:type="const char**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="options"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="387">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parameter_compliance_mode"
              c:identifier="g_mime_parser_options_get_parameter_compliance_mode">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="297">Gets the compliance mode that should be used when parsing Content-Type and
Content-Disposition parameters.

Note: Even in #GMIME_RFC_COMPLIANCE_STRICT mode, the parameter parser is fairly liberal
in what it accepts. Setting it to #GMIME_RFC_COMPLIANCE_LOOSE just makes it try harder
to deal with garbage input.</doc>
        <source-position filename="gmime-parser-options.h" line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser-options.c"
               line="308">the compliance mode that is currently set.</doc>
          <type name="RfcComplianceMode" c:type="GMimeRfcComplianceMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="options"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="299">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rfc2047_compliance_mode"
              c:identifier="g_mime_parser_options_get_rfc2047_compliance_mode">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="342">Gets the compliance mode that should be used when parsing rfc2047 encoded words.

Note: Even in #GMIME_RFC_COMPLIANCE_STRICT mode, the rfc2047 parser is fairly liberal
in what it accepts. Setting it to #GMIME_RFC_COMPLIANCE_LOOSE just makes it try harder
to deal with garbage input.</doc>
        <source-position filename="gmime-parser-options.h" line="124"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser-options.c"
               line="352">the compliance mode that is currently set.</doc>
          <type name="RfcComplianceMode" c:type="GMimeRfcComplianceMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="options"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="344">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_warning_callback"
              c:identifier="g_mime_parser_options_get_warning_callback"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="433">Gets callback function which is called if the parser detects any issues.</doc>
        <source-position filename="gmime-parser-options.h" line="130"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gmime-parser-options.c"
               line="439">the currently registered warning callback function</doc>
          <type name="ParserWarningFunc" c:type="GMimeParserWarningFunc"/>
        </return-value>
        <parameters>
          <instance-parameter name="options"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="435">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_address_compliance_mode"
              c:identifier="g_mime_parser_options_set_address_compliance_mode">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="224">Sets the compliance mode that should be used when parsing rfc822 addresses.

In general, you'll probably want this value to be #GMIME_RFC_COMPLIANCE_LOOSE
(the default) as it allows maximum interoperability with existing (broken) mail clients
and other mail software such as sloppily written perl scripts (aka spambots).

Note: Even in #GMIME_RFC_COMPLIANCE_STRICT mode, the address parser is fairly liberal in
what it accepts. Setting it to #GMIME_RFC_COMPLIANCE_LOOSE just makes it try harder to
deal with garbage input.</doc>
        <source-position filename="gmime-parser-options.h" line="116"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="226">a #GMimeParserOptions</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="227">a #GMimeRfcComplianceMode</doc>
            <type name="RfcComplianceMode" c:type="GMimeRfcComplianceMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_allow_addresses_without_domain"
              c:identifier="g_mime_parser_options_set_allow_addresses_without_domain">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="272">Sets whether the rfc822 address parser should allow addresses without a domain.

In general, you'll probably want this value to be %FALSE (the default) as it allows
maximum interoperability with existing (broken) mail clients and other mail software
such as sloppily written perl scripts (aka spambots) that do not properly quote the
name when it contains a comma.

This option exists in order to allow parsing of mailbox addresses that do not have a
domain component. These types of addresses are rare and were typically only used when
sending mail to other users on the same UNIX system.</doc>
        <source-position filename="gmime-parser-options.h" line="119"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="274">a #GMimeParserOptions</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
          <parameter name="allow" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="275">%TRUE if the parser should allow addresses without a domain or %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fallback_charsets"
              c:identifier="g_mime_parser_options_set_fallback_charsets">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="401">Sets the fallback charsets to try when decoding 8-bit headers.

Note: It is recommended that the list of charsets start with utf-8
and end with iso-8859-1.</doc>
        <source-position filename="gmime-parser-options.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="403">a #GMimeParserOptions</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
          <parameter name="charsets" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="404">a %NULL-terminated list of charsets or %NULL for the default list</doc>
            <type name="utf8" c:type="const char**"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_parameter_compliance_mode"
              c:identifier="g_mime_parser_options_set_parameter_compliance_mode">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="317">Sets the compliance mode that should be used when parsing Content-Type and
Content-Disposition parameters.

In general, you'll probably want this value to be #GMIME_RFC_COMPLIANCE_LOOSE
(the default) as it allows maximum interoperability with existing (broken) mail clients
and other mail software such as sloppily written perl scripts (aka spambots).

Note: Even in #GMIME_RFC_COMPLIANCE_STRICT mode, the parameter parser is fairly liberal
in what it accepts. Setting it to #GMIME_RFC_COMPLIANCE_LOOSE just makes it try harder
to deal with garbage input.</doc>
        <source-position filename="gmime-parser-options.h" line="122"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="319">a #GMimeParserOptions</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="320">a #GMimeRfcComplianceMode</doc>
            <type name="RfcComplianceMode" c:type="GMimeRfcComplianceMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rfc2047_compliance_mode"
              c:identifier="g_mime_parser_options_set_rfc2047_compliance_mode">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="361">Sets the compliance mode that should be used when parsing rfc2047 encoded words.

In general, you'll probably want this value to be #GMIME_RFC_COMPLIANCE_LOOSE
(the default) as it allows maximum interoperability with existing (broken) mail clients
and other mail software such as sloppily written perl scripts (aka spambots).

Note: Even in #GMIME_RFC_COMPLIANCE_STRICT mode, the parameter parser is fairly liberal
in what it accepts. Setting it to #GMIME_RFC_COMPLIANCE_LOOSE just makes it try harder
to deal with garbage input.</doc>
        <source-position filename="gmime-parser-options.h" line="125"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="363">a #GMimeParserOptions</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="364">a #GMimeRfcComplianceMode</doc>
            <type name="RfcComplianceMode" c:type="GMimeRfcComplianceMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_warning_callback"
              c:identifier="g_mime_parser_options_set_warning_callback">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="448">Registers the callback function being called if the parser detects any issues.</doc>
        <source-position filename="gmime-parser-options.h" line="131"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="450">a #GMimeParserOptions</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </instance-parameter>
          <parameter name="warning_cb"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="451">a #GMimeParserWarningFunc or %NULL to clear the callback</doc>
            <type name="ParserWarningFunc" c:type="GMimeParserWarningFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="452">data passed to the warning callback function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="gmime-parser-options.c"
                 line="453">callback function ran on destruction</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <function name="get_default"
                c:identifier="g_mime_parser_options_get_default">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="99">Gets the default parser options.</doc>
        <source-position filename="gmime-parser-options.h" line="108"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-parser-options.c"
               line="104">the default parser options.</doc>
          <type name="ParserOptions" c:type="GMimeParserOptions*"/>
        </return-value>
      </function>
    </record>
    <enumeration name="ParserWarning" c:type="GMimeParserWarning">
      <doc xml:space="preserve"
           filename="gmime-parser-options.h"
           line="44">Issues the @GMimeParser detects. Note that the `GMIME_CRIT_*` issues indicate that some parts of the @GMimeParser input may
be ignored or will be interpreted differently by other software products.</doc>
      <source-position filename="gmime-parser-options.h" line="85"/>
      <member name="warn_duplicated_header"
              value="1"
              c:identifier="GMIME_WARN_DUPLICATED_HEADER">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="46">Repeated exactly the same header which should exist only once.</doc>
      </member>
      <member name="warn_duplicated_parameter"
              value="2"
              c:identifier="GMIME_WARN_DUPLICATED_PARAMETER">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="47">Repeated exactly the same header parameter.</doc>
      </member>
      <member name="warn_unencoded_8bit_header"
              value="3"
              c:identifier="GMIME_WARN_UNENCODED_8BIT_HEADER">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="48">A header contains unencoded 8-bit characters.</doc>
      </member>
      <member name="warn_invalid_content_type"
              value="4"
              c:identifier="GMIME_WARN_INVALID_CONTENT_TYPE">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="49">Invalid content type, assuming `application/octet-stream`.</doc>
      </member>
      <member name="warn_invalid_rfc2047_header_value"
              value="5"
              c:identifier="GMIME_WARN_INVALID_RFC2047_HEADER_VALUE">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="50">Invalid RFC 2047 encoded header value.</doc>
      </member>
      <member name="warn_malformed_multipart"
              value="6"
              c:identifier="GMIME_WARN_MALFORMED_MULTIPART">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="52">No child parts detected within a multipart.</doc>
      </member>
      <member name="warn_truncated_message"
              value="7"
              c:identifier="GMIME_WARN_TRUNCATED_MESSAGE">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="53">The message is truncated.</doc>
      </member>
      <member name="warn_malformed_message"
              value="8"
              c:identifier="GMIME_WARN_MALFORMED_MESSAGE">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="54">The message is malformed.</doc>
      </member>
      <member name="crit_invalid_header_name"
              value="9"
              c:identifier="GMIME_CRIT_INVALID_HEADER_NAME">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="56">Invalid header name, the parser may skip the message or parts of it.</doc>
      </member>
      <member name="crit_conflicting_header"
              value="10"
              c:identifier="GMIME_CRIT_CONFLICTING_HEADER">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="57">Conflicting header.</doc>
      </member>
      <member name="crit_conflicting_parameter"
              value="11"
              c:identifier="GMIME_CRIT_CONFLICTING_PARAMETER">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="58">Conflicting header parameter.</doc>
      </member>
      <member name="crit_multipart_without_boundary"
              value="12"
              c:identifier="GMIME_CRIT_MULTIPART_WITHOUT_BOUNDARY">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="59">A multipart lacks the required boundary parameter.</doc>
      </member>
      <member name="warn_invalid_parameter"
              value="13"
              c:identifier="GMIME_WARN_INVALID_PARAMETER">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="51">Invalid header parameter.</doc>
      </member>
      <member name="warn_invalid_address_list"
              value="14"
              c:identifier="GMIME_WARN_INVALID_ADDRESS_LIST">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="55">Invalid address list.</doc>
      </member>
      <member name="crit_nesting_overflow"
              value="15"
              c:identifier="GMIME_CRIT_NESTING_OVERFLOW">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="60">The maximum MIME nesting level has been exceeded. This is very likely to be an attempt to exploit the MIME parser.</doc>
      </member>
      <member name="warn_part_without_content"
              value="16"
              c:identifier="GMIME_WARN_PART_WITHOUT_CONTENT">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="61">A MIME part's headers were terminated by a boundary marker.</doc>
      </member>
      <member name="crit_part_without_headers_or_content"
              value="17"
              c:identifier="GMIME_CRIT_PART_WITHOUT_HEADERS_OR_CONTENT">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="62">A MIME part was encountered without any headers -or- content. This is very likely to be an attempt to exploit the MIME parser.</doc>
      </member>
    </enumeration>
    <callback name="ParserWarningFunc" c:type="GMimeParserWarningFunc">
      <doc xml:space="preserve"
           filename="gmime-parser-options.h"
           line="94">The function signature for a callback to g_mime_parser_options_set_warning_callback().</doc>
      <source-position filename="gmime-parser-options.h" line="103"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="offset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser-options.h"
               line="96">parser offset where the issue has been detected, or -1 if it is unknown</doc>
          <type name="gint64" c:type="gint64"/>
        </parameter>
        <parameter name="errcode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser-options.h"
               line="97">a #GMimeParserWarning</doc>
          <type name="ParserWarning" c:type="GMimeParserWarning"/>
        </parameter>
        <parameter name="item" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser-options.h"
               line="98">a NUL-terminated string containing the value causing the issue, may be %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <doc xml:space="preserve"
               filename="gmime-parser-options.h"
               line="99">User-supplied callback data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Part"
           c:symbol-prefix="part"
           c:type="GMimePart"
           parent="Object"
           glib:type-name="GMimePart"
           glib:get-type="g_mime_part_get_type"
           glib:type-struct="PartClass">
      <doc xml:space="preserve"
           filename="gmime-part.h"
           line="47">A leaf-node MIME part object.</doc>
      <source-position filename="gmime-part.h" line="75"/>
      <constructor name="new" c:identifier="g_mime_part_new">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="467">Creates a new MIME Part object with a default content-type of
application/octet-stream.</doc>
        <source-position filename="gmime-part.h" line="81"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="473">an empty MIME Part object with a default content-type of
application/octet-stream.</doc>
          <type name="Part" c:type="GMimePart*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_type"
                   c:identifier="g_mime_part_new_with_type">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="483">Creates a new MIME Part with a sepcified type.</doc>
        <source-position filename="gmime-part.h" line="82"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="490">an empty MIME Part object with the specified content-type.</doc>
          <type name="Part" c:type="GMimePart*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="485">content-type string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="subtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="486">content-subtype string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="set_content" invoker="set_content">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="931">Sets the content on the mime part.</doc>
        <source-position filename="gmime-part.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="933">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="content" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="934">a #GMimeDataWrapper content object</doc>
            <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_best_content_encoding"
              c:identifier="g_mime_part_get_best_content_encoding">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="808">Calculates the most efficient content encoding for the @mime_part
given the @constraint.</doc>
        <source-position filename="gmime-part.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="816">the best content encoding for the specified mime part.</doc>
          <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="810">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="constraint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="811">a #GMimeEncodingConstraint</doc>
            <type name="EncodingConstraint" c:type="GMimeEncodingConstraint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_content" c:identifier="g_mime_part_get_content">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="950">Gets the internal data-wrapper of the specified mime part, or %NULL
on error.</doc>
        <source-position filename="gmime-part.h" line="109"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="957">the data-wrapper for the mime part's
contents.</doc>
          <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="952">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_description"
              c:identifier="g_mime_part_get_content_description">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="534">Gets the value of the Content-Description for the specified mime
part if it exists or %NULL otherwise.</doc>
        <source-position filename="gmime-part.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="541">the content description for the specified mime part.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="536">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_encoding"
              c:identifier="g_mime_part_get_content_encoding">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="791">Gets the content encoding of the mime part.</doc>
        <source-position filename="gmime-part.h" line="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="797">the content encoding for the specified mime part.</doc>
          <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="793">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_id" c:identifier="g_mime_part_get_content_id">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="568">Gets the content-id of the specified mime part if it exists, or
%NULL otherwise.</doc>
        <source-position filename="gmime-part.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="575">the content id for the specified mime part.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="570">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_location"
              c:identifier="g_mime_part_get_content_location">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="746">Gets the value of the Content-Location header if it exists, or
%NULL otherwise.</doc>
        <source-position filename="gmime-part.h" line="96"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="753">the content location for the specified mime part.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="748">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_md5"
              c:identifier="g_mime_part_get_content_md5">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="702">Gets the md5sum contained in the Content-Md5 header of the
specified mime part if it exists, or %NULL otherwise.</doc>
        <source-position filename="gmime-part.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="709">the content md5 for the specified mime part.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="704">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filename" c:identifier="g_mime_part_get_filename">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="891">Gets the filename of the specificed mime part, or %NULL if the
@mime_part does not have the filename or name parameter set.</doc>
        <source-position filename="gmime-part.h" line="106"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="898">the filename of the specified @mime_part or %NULL if
neither of the parameters is set. If a file name is set, the
returned string will be in UTF-8.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="893">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_openpgp_data"
              c:identifier="g_mime_part_get_openpgp_data">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="986">Gets whether or not (and what type) of OpenPGP data is contained
within the #GMimePart.</doc>
        <source-position filename="gmime-part.h" line="112"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="993">a #GMimeOpenPGPData.</doc>
          <type name="OpenPGPData" c:type="GMimeOpenPGPData"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="988">a #GMimePart</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_attachment" c:identifier="g_mime_part_is_attachment">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="847">Determines whether or not the part is an attachment based on the
value of the Content-Disposition header.</doc>
        <source-position filename="gmime-part.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="854">%TRUE if the part is an attachment, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="849">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="openpgp_decrypt"
              c:identifier="g_mime_part_openpgp_decrypt"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="1087">Decrypts the content of the @mime_part and then replaces the content with
the new, decrypted, content.</doc>
        <source-position filename="gmime-part.h" line="116"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="1097">a #GMimeDecryptResult on success or %NULL on error.</doc>
          <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="1089">a #GMimePart</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="1090">a set of #GMimeDecryptFlags</doc>
            <type name="DecryptFlags" c:type="GMimeDecryptFlags"/>
          </parameter>
          <parameter name="session_key"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="1091">the session key to use or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="openpgp_encrypt"
              c:identifier="g_mime_part_openpgp_encrypt"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="1025">Encrypts (and optionally signs) the content of the @mime_part and then replaces
the content with the new, encrypted, content.</doc>
        <source-position filename="gmime-part.h" line="114"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="1037">%TRUE on success or %FALSE on error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="1027">a #GMimePart</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="sign" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="1028">%TRUE if the content should also be signed; otherwise, %FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="userid"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="1029">the key id (or email address) to use when signing (assuming @sign is %TRUE)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="1030">a set of #GMimeEncryptFlags</doc>
            <type name="EncryptFlags" c:type="GMimeEncryptFlags"/>
          </parameter>
          <parameter name="recipients" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="1031">an array of recipient key ids and/or email addresses</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="openpgp_sign"
              c:identifier="g_mime_part_openpgp_sign"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="1145">Signs the content of the @mime_part and then replaces the content with
the new, signed, content.</doc>
        <source-position filename="gmime-part.h" line="119"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="1154">%TRUE on success or %FALSE on error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="1147">a #GMimePart</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="userid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="1148">the key id (or email address) to use for signing</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="openpgp_verify"
              c:identifier="g_mime_part_openpgp_verify"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="1203">Verifies the OpenPGP signature of the @mime_part and then replaces the content
with the original, raw, content.</doc>
        <source-position filename="gmime-part.h" line="120"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="1212">a #GMimeSignatureList on success or %NULL on error.</doc>
          <type name="SignatureList" c:type="GMimeSignatureList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="1205">a #GMimePart</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="1206">a set of #GMimeVerifyFlags</doc>
            <type name="VerifyFlags" c:type="GMimeVerifyFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content" c:identifier="g_mime_part_set_content">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="931">Sets the content on the mime part.</doc>
        <source-position filename="gmime-part.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="933">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="content" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="934">a #GMimeDataWrapper content object</doc>
            <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_description"
              c:identifier="g_mime_part_set_content_description">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="508">Set the content description for the specified mime part.</doc>
        <source-position filename="gmime-part.h" line="85"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="510">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="511">content description</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_encoding"
              c:identifier="g_mime_part_set_content_encoding">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="764">Set the content encoding for the specified mime part.</doc>
        <source-position filename="gmime-part.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="766">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="encoding" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="767">a #GMimeContentEncoding</doc>
            <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_id" c:identifier="g_mime_part_set_content_id">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="552">Set the content id for the specified mime part.</doc>
        <source-position filename="gmime-part.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="554">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="content_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="555">content id</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_location"
              c:identifier="g_mime_part_set_content_location">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="720">Set the content location for the specified mime part.</doc>
        <source-position filename="gmime-part.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="722">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="content_location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="723">content location</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_md5"
              c:identifier="g_mime_part_set_content_md5">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="586">Set the content md5 for the specified mime part.</doc>
        <source-position filename="gmime-part.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="588">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="content_md5" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="589">content md5 or %NULL to generate the md5 digest.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filename" c:identifier="g_mime_part_set_filename">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="869">Sets the "filename" parameter on the Content-Disposition and also sets the
"name" parameter on the Content-Type.

Note: The @filename string should be in UTF-8.</doc>
        <source-position filename="gmime-part.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="871">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="872">the file name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_openpgp_data"
              c:identifier="g_mime_part_set_openpgp_data">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="969">Sets whether or not (and what type) of OpenPGP data is contained
within the #GMimePart.</doc>
        <source-position filename="gmime-part.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="971">a #GMimePart</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="972">a #GMimeOpenPGPData</doc>
            <type name="OpenPGPData" c:type="GMimeOpenPGPData"/>
          </parameter>
        </parameters>
      </method>
      <method name="verify_content_md5"
              c:identifier="g_mime_part_verify_content_md5">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="647">Verify the content md5 for the specified mime part.</doc>
        <source-position filename="gmime-part.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="653">%TRUE if the md5 is valid or %FALSE otherwise. Note: will
return %FALSE if the mime part does not contain a Content-MD5.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part.c"
                 line="649">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-part.h"
             line="49">parent #GMimeObject</doc>
        <type name="Object" c:type="GMimeObject"/>
      </field>
      <field name="encoding">
        <doc xml:space="preserve"
             filename="gmime-part.h"
             line="50">a #GMimeContentEncoding</doc>
        <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
      </field>
      <field name="openpgp">
        <doc xml:space="preserve"
             filename="gmime-part.h"
             line="51">a #GMimeOpenPGPData</doc>
        <type name="OpenPGPData" c:type="GMimeOpenPGPData"/>
      </field>
      <field name="content_description">
        <doc xml:space="preserve"
             filename="gmime-part.h"
             line="52">Content-Description string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="content_location">
        <doc xml:space="preserve"
             filename="gmime-part.h"
             line="53">Content-Location string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="content_md5">
        <doc xml:space="preserve"
             filename="gmime-part.h"
             line="54">Content-MD5 string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="content">
        <doc xml:space="preserve"
             filename="gmime-part.h"
             line="55">a #GMimeDataWrapper representing the MIME part's content</doc>
        <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
      </field>
    </class>
    <record name="PartClass"
            c:type="GMimePartClass"
            glib:is-gtype-struct-for="Part">
      <source-position filename="gmime-part.h" line="75"/>
      <field name="parent_class">
        <type name="ObjectClass" c:type="GMimeObjectClass"/>
      </field>
      <field name="set_content">
        <callback name="set_content">
          <source-position filename="gmime-part.h" line="74"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="mime_part" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-part.c"
                   line="933">a #GMimePart object</doc>
              <type name="Part" c:type="GMimePart*"/>
            </parameter>
            <parameter name="content" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-part.c"
                   line="934">a #GMimeDataWrapper content object</doc>
              <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="PartIter"
            c:type="GMimePartIter"
            opaque="1"
            glib:type-name="GMimePartIter"
            glib:get-type="g_mime_part_iter_get_type"
            c:symbol-prefix="part_iter">
      <doc xml:space="preserve"
           filename="gmime-part-iter.h"
           line="31">A MIME part iterator.</doc>
      <source-position filename="gmime-part-iter.h" line="36"/>
      <constructor name="new" c:identifier="g_mime_part_iter_new">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="104">Creates a new #GMimePartIter for iterating over @toplevel's subparts.</doc>
        <source-position filename="gmime-part-iter.h" line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="110">a newly allocated #GMimePartIter which should be freed
using g_mime_part_iter_free() when finished with it.</doc>
          <type name="PartIter" c:type="GMimePartIter*"/>
        </return-value>
        <parameters>
          <parameter name="toplevel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="106">a #GMimeObject to use as the toplevel</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="clone" c:identifier="g_mime_part_iter_clone">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="152">Clones the @iter, including its current state.</doc>
        <source-position filename="gmime-part-iter.h" line="43"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="158">a new #GMimePartIter that is identical to @iter.</doc>
          <type name="PartIter" c:type="GMimePartIter*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="154">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="g_mime_part_iter_free">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="132">Frees the memory allocated by g_mime_part_iter_new().</doc>
        <source-position filename="gmime-part-iter.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="134">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current" c:identifier="g_mime_part_iter_get_current">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="451">Gets the #GMimeObject at the current #GMimePartIter position.</doc>
        <source-position filename="gmime-part-iter.h" line="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="457">the current #GMimeObject or %NULL if the
state of @iter is invalid.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="453">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent" c:identifier="g_mime_part_iter_get_parent">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="469">Gets the parent of the #GMimeObject at the current #GMimePartIter
position.</doc>
        <source-position filename="gmime-part-iter.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="476">the parent #GMimeObject or %NULL if the
state of @iter is invalid.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="471">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path" c:identifier="g_mime_part_iter_get_path">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="491">Gets the path of the current #GMimeObject in the MIME structure
used to initialize @iter.</doc>
        <source-position filename="gmime-part-iter.h" line="57"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="498">a newly allocated string representation of the path to the
#GMimeObject at the current #GMimePartIter position.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="493">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_toplevel" c:identifier="g_mime_part_iter_get_toplevel">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="434">Gets the toplevel #GMimeObject used to initialize @iter.</doc>
        <source-position filename="gmime-part-iter.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="440">the toplevel #GMimeObject.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="436">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_valid" c:identifier="g_mime_part_iter_is_valid">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="305">Checks that the current state of @iter is valid.</doc>
        <source-position filename="gmime-part-iter.h" line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="311">%TRUE if @iter is valid or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="307">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="jump_to" c:identifier="g_mime_part_iter_jump_to">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="206">Updates the state of @iter to point to the #GMimeObject specified
by @path.</doc>
        <source-position filename="gmime-part-iter.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="214">%TRUE if the #GMimeObject specified by @path exists or
%FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="208">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="209">a string representing the path to jump to</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="g_mime_part_iter_next">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="322">Advances to the next part in the MIME structure used to initialize
@iter.</doc>
        <source-position filename="gmime-part-iter.h" line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="329">%TRUE if successful or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="324">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prev" c:identifier="g_mime_part_iter_prev">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="396">Rewinds to the previous part in the MIME structure used to
initialize @iter.</doc>
        <source-position filename="gmime-part-iter.h" line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="403">%TRUE if successful or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="398">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="g_mime_part_iter_remove">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="586">Removes the #GMimeObject at the current position from its
parent. If successful, @iter is advanced to the next position
(since the current position will become invalid).</doc>
        <source-position filename="gmime-part-iter.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="594">%TRUE if the part at the current position was removed or
%FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="588">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="replace" c:identifier="g_mime_part_iter_replace">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="525">Replaces the #GMimeObject at the current position with @replacement.</doc>
        <source-position filename="gmime-part-iter.h" line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="532">%TRUE if the part at the current position was replaced or
%FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="527">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
          <parameter name="replacement" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="528">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="g_mime_part_iter_reset">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="178">Resets the state of @iter to its initial state.</doc>
        <source-position filename="gmime-part-iter.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-part-iter.c"
                 line="180">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="PasswordRequestFunc"
              c:type="GMimePasswordRequestFunc"
              throws="1">
      <doc xml:space="preserve"
           filename="gmime-crypto-context.h"
           line="51">A password request callback allowing a #GMimeCryptoContext to
prompt the user for a password for a given key.</doc>
      <source-position filename="gmime-crypto-context.h" line="65"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="63">%TRUE on success or %FALSE on error.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.h"
               line="53">the #GMimeCryptoContext making the request</doc>
          <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
        </parameter>
        <parameter name="user_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.h"
               line="54">the user_id of the password being requested</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="prompt" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.h"
               line="55">a string containing some helpful context for the prompt</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="reprompt" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.h"
               line="56">%TRUE if this password request is a reprompt due to a previously bad password response</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="response" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.h"
               line="57">a stream for the application to write the password to (followed by a newline '\n' character)</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Pkcs7Context"
           c:symbol-prefix="pkcs7_context"
           c:type="GMimePkcs7Context"
           parent="CryptoContext"
           glib:type-name="GMimePkcs7Context"
           glib:get-type="g_mime_pkcs7_context_get_type"
           glib:type-struct="Pkcs7ContextClass">
      <doc xml:space="preserve"
           filename="gmime-pkcs7-context.c"
           line="61">A PKCS7 crypto context.</doc>
      <source-position filename="gmime-pkcs7-context.h" line="37"/>
      <constructor name="new" c:identifier="g_mime_pkcs7_context_new">
        <doc xml:space="preserve"
             filename="gmime-pkcs7-context.c"
             line="374">Creates a new pkcs7 crypto context object.</doc>
        <source-position filename="gmime-pkcs7-context.h" line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-pkcs7-context.c"
               line="379">a new pkcs7 crypto context object.</doc>
          <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
        </return-value>
      </constructor>
    </class>
    <record name="Pkcs7ContextClass"
            c:type="GMimePkcs7ContextClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Pkcs7Context">
      <source-position filename="gmime-pkcs7-context.h" line="37"/>
    </record>
    <enumeration name="PubKeyAlgo" c:type="GMimePubKeyAlgo">
      <doc xml:space="preserve"
           filename="gmime-certificate.h"
           line="92">A public-key algorithm.</doc>
      <source-position filename="gmime-certificate.h" line="120"/>
      <member name="default"
              value="0"
              c:identifier="GMIME_PUBKEY_ALGO_DEFAULT">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="94">The default public-key algorithm.</doc>
      </member>
      <member name="rsa" value="1" c:identifier="GMIME_PUBKEY_ALGO_RSA">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="95">The RSA algorithm.</doc>
      </member>
      <member name="rsa_e" value="2" c:identifier="GMIME_PUBKEY_ALGO_RSA_E">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="96">An encryption-only RSA algorithm.</doc>
      </member>
      <member name="rsa_s" value="3" c:identifier="GMIME_PUBKEY_ALGO_RSA_S">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="97">A signature-only RSA algorithm.</doc>
      </member>
      <member name="elg_e" value="16" c:identifier="GMIME_PUBKEY_ALGO_ELG_E">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="98">An encryption-only ElGamal algorithm.</doc>
      </member>
      <member name="dsa" value="17" c:identifier="GMIME_PUBKEY_ALGO_DSA">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="99">The DSA algorithm.</doc>
      </member>
      <member name="ecc" value="18" c:identifier="GMIME_PUBKEY_ALGO_ECC">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="100">The Eliptic Curve algorithm.</doc>
      </member>
      <member name="elg" value="20" c:identifier="GMIME_PUBKEY_ALGO_ELG">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="101">The ElGamal algorithm.</doc>
      </member>
      <member name="ecdsa" value="301" c:identifier="GMIME_PUBKEY_ALGO_ECDSA">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="102">The Eliptic Curve + DSA algorithm.</doc>
      </member>
      <member name="ecdh" value="302" c:identifier="GMIME_PUBKEY_ALGO_ECDH">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="103">The Eliptic Curve + Diffie Helman algorithm.</doc>
      </member>
      <member name="eddsa" value="303" c:identifier="GMIME_PUBKEY_ALGO_EDDSA">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="104">The Eliptic Curve + DSA algorithm.</doc>
      </member>
    </enumeration>
    <function-macro name="QP_ENCODE_LEN"
                    c:identifier="GMIME_QP_ENCODE_LEN"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-encodings.h"
           line="89">Calculates the maximum number of bytes needed to encode the full
input buffer of length @x using the quoted-printable encoding.</doc>
      <source-position filename="gmime-encodings.h" line="99"/>
      <parameters>
        <parameter name="x">
          <doc xml:space="preserve"
               filename="gmime-encodings.h"
               line="91">Length of the input data to encode</doc>
        </parameter>
      </parameters>
    </function-macro>
    <record name="References"
            c:type="GMimeReferences"
            glib:type-name="GMimeReferences"
            glib:get-type="g_mime_references_get_type"
            c:symbol-prefix="references">
      <doc xml:space="preserve"
           filename="gmime-references.h"
           line="33">A List of references, as per the References or In-Reply-To header
fields.</doc>
      <source-position filename="gmime-references.h" line="42"/>
      <field name="array" writable="1">
        <doc xml:space="preserve"
             filename="gmime-references.h"
             line="35">the array of message-id references</doc>
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <constructor name="new" c:identifier="g_mime_references_new">
        <doc xml:space="preserve"
             filename="gmime-references.c"
             line="49">Creates a new #GMimeReferences.</doc>
        <source-position filename="gmime-references.h" line="47"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-references.c"
               line="54">a new #GMimeReferences.</doc>
          <type name="References" c:type="GMimeReferences*"/>
        </return-value>
      </constructor>
      <method name="append" c:identifier="g_mime_references_append">
        <doc xml:space="preserve"
             filename="gmime-references.c"
             line="176">Appends a reference to msgid to the list of references.</doc>
        <source-position filename="gmime-references.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="refs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-references.c"
                 line="178">a #GMimeReferences</doc>
            <type name="References" c:type="GMimeReferences*"/>
          </instance-parameter>
          <parameter name="msgid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-references.c"
                 line="179">a message-id string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="g_mime_references_clear">
        <doc xml:space="preserve"
             filename="gmime-references.c"
             line="193">Clears the #GMimeReferences list.</doc>
        <source-position filename="gmime-references.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="refs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-references.c"
                 line="195">a #GMimeReferences</doc>
            <type name="References" c:type="GMimeReferences*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="g_mime_references_copy">
        <doc xml:space="preserve"
             filename="gmime-references.c"
             line="134">Copies a #GMimeReferences list.</doc>
        <source-position filename="gmime-references.h" line="52"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-references.c"
               line="140">a new #GMimeReferences list that contains
an identical list of items as @refs.</doc>
          <type name="References" c:type="GMimeReferences*"/>
        </return-value>
        <parameters>
          <instance-parameter name="refs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-references.c"
                 line="136">the list of references to copy</doc>
            <type name="References" c:type="GMimeReferences*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="g_mime_references_free">
        <doc xml:space="preserve"
             filename="gmime-references.c"
             line="68">Frees the #GMimeReferences list.</doc>
        <source-position filename="gmime-references.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="refs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-references.c"
                 line="70">a #GMimeReferences list</doc>
            <type name="References" c:type="GMimeReferences*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_message_id"
              c:identifier="g_mime_references_get_message_id">
        <doc xml:space="preserve"
             filename="gmime-references.c"
             line="213">Gets the specified Message-Id reference from the #GMimeReferences.</doc>
        <source-position filename="gmime-references.h" line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-references.c"
               line="220">the Message-Id reference from the #GMimeReferences.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="refs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-references.c"
                 line="215">a #GMimeReferences</doc>
            <type name="References" c:type="GMimeReferences*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-references.c"
                 line="216">the index of the message id</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="length" c:identifier="g_mime_references_length">
        <doc xml:space="preserve"
             filename="gmime-references.c"
             line="159">Gets the length of the #GMimeReferences list.</doc>
        <source-position filename="gmime-references.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-references.c"
               line="165">the number of message ids in the list.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="refs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-references.c"
                 line="161">a #GMimeReferences</doc>
            <type name="References" c:type="GMimeReferences*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_message_id"
              c:identifier="g_mime_references_set_message_id">
        <doc xml:space="preserve"
             filename="gmime-references.c"
             line="233">Sets the specified Message-Id reference from the #GMimeReferences.</doc>
        <source-position filename="gmime-references.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="refs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-references.c"
                 line="235">a #GMimeReferences</doc>
            <type name="References" c:type="GMimeReferences*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-references.c"
                 line="236">the index of the message id</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="msgid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-references.c"
                 line="237">the message id</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <function name="parse" c:identifier="g_mime_references_parse">
        <doc xml:space="preserve"
             filename="gmime-references.c"
             line="89">Decodes a list of msg-ids as in the References and/or In-Reply-To
headers defined in rfc822.</doc>
        <source-position filename="gmime-references.h" line="50"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-references.c"
               line="97">a new #GMimeReferences containing the parsed message ids.</doc>
          <type name="References" c:type="GMimeReferences*"/>
        </return-value>
        <parameters>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-references.c"
                 line="91">a #GMimeParserOptions or %NULL</doc>
            <type name="ParserOptions" c:type="GMimeParserOptions*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-references.c"
                 line="92">string containing a list of msg-ids</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <enumeration name="RfcComplianceMode" c:type="GMimeRfcComplianceMode">
      <doc xml:space="preserve"
           filename="gmime-parser-options.h"
           line="32">An RFC compliance mode.</doc>
      <source-position filename="gmime-parser-options.h" line="42"/>
      <member name="loose" value="0" c:identifier="GMIME_RFC_COMPLIANCE_LOOSE">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="34">Attempt to be much more liberal accepting broken and/or invalid formatting.</doc>
      </member>
      <member name="strict"
              value="1"
              c:identifier="GMIME_RFC_COMPLIANCE_STRICT">
        <doc xml:space="preserve"
             filename="gmime-parser-options.h"
             line="35">Do not attempt to be overly liberal in accepting broken and/or invalid formatting.</doc>
      </member>
    </enumeration>
    <function-macro name="SIGNATURE"
                    c:identifier="GMIME_SIGNATURE"
                    introspectable="0">
      <source-position filename="gmime-signature.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SIGNATURE_CLASS"
                    c:identifier="GMIME_SIGNATURE_CLASS"
                    introspectable="0">
      <source-position filename="gmime-signature.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SIGNATURE_GET_CLASS"
                    c:identifier="GMIME_SIGNATURE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-signature.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SIGNATURE_LIST"
                    c:identifier="GMIME_SIGNATURE_LIST"
                    introspectable="0">
      <source-position filename="gmime-signature.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SIGNATURE_LIST_CLASS"
                    c:identifier="GMIME_SIGNATURE_LIST_CLASS"
                    introspectable="0">
      <source-position filename="gmime-signature.h" line="38"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SIGNATURE_LIST_GET_CLASS"
                    c:identifier="GMIME_SIGNATURE_LIST_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-signature.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="SIGNATURE_STATUS_ERROR_MASK"
              value="-8"
              c:type="GMIME_SIGNATURE_STATUS_ERROR_MASK">
      <doc xml:space="preserve"
           filename="gmime-signature.h"
           line="85">A convenience macro for masking out the non-error bit flags.</doc>
      <source-position filename="gmime-signature.h" line="90"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="STREAM"
                    c:identifier="GMIME_STREAM"
                    introspectable="0">
      <source-position filename="gmime-stream.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_BUFFER"
                    c:identifier="GMIME_STREAM_BUFFER"
                    introspectable="0">
      <source-position filename="gmime-stream-buffer.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_BUFFER_CLASS"
                    c:identifier="GMIME_STREAM_BUFFER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-buffer.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_BUFFER_GET_CLASS"
                    c:identifier="GMIME_STREAM_BUFFER_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-buffer.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_CAT"
                    c:identifier="GMIME_STREAM_CAT"
                    introspectable="0">
      <source-position filename="gmime-stream-cat.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_CAT_CLASS"
                    c:identifier="GMIME_STREAM_CAT_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-cat.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_CAT_GET_CLASS"
                    c:identifier="GMIME_STREAM_CAT_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-cat.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_CLASS"
                    c:identifier="GMIME_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_FILE"
                    c:identifier="GMIME_STREAM_FILE"
                    introspectable="0">
      <source-position filename="gmime-stream-file.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_FILE_CLASS"
                    c:identifier="GMIME_STREAM_FILE_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-file.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_FILE_GET_CLASS"
                    c:identifier="GMIME_STREAM_FILE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-file.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_FILTER"
                    c:identifier="GMIME_STREAM_FILTER"
                    introspectable="0">
      <source-position filename="gmime-stream-filter.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_FILTER_CLASS"
                    c:identifier="GMIME_STREAM_FILTER_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-filter.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_FILTER_GET_CLASS"
                    c:identifier="GMIME_STREAM_FILTER_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-filter.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_FS"
                    c:identifier="GMIME_STREAM_FS"
                    introspectable="0">
      <source-position filename="gmime-stream-fs.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_FS_CLASS"
                    c:identifier="GMIME_STREAM_FS_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-fs.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_FS_GET_CLASS"
                    c:identifier="GMIME_STREAM_FS_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-fs.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_GET_CLASS"
                    c:identifier="GMIME_STREAM_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_GIO"
                    c:identifier="GMIME_STREAM_GIO"
                    introspectable="0">
      <source-position filename="gmime-stream-gio.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_GIO_CLASS"
                    c:identifier="GMIME_STREAM_GIO_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-gio.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_GIO_GET_CLASS"
                    c:identifier="GMIME_STREAM_GIO_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-gio.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_MEM"
                    c:identifier="GMIME_STREAM_MEM"
                    introspectable="0">
      <source-position filename="gmime-stream-mem.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_MEM_CLASS"
                    c:identifier="GMIME_STREAM_MEM_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-mem.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_MEM_GET_CLASS"
                    c:identifier="GMIME_STREAM_MEM_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-mem.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_MMAP"
                    c:identifier="GMIME_STREAM_MMAP"
                    introspectable="0">
      <source-position filename="gmime-stream-mmap.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_MMAP_CLASS"
                    c:identifier="GMIME_STREAM_MMAP_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-mmap.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_MMAP_GET_CLASS"
                    c:identifier="GMIME_STREAM_MMAP_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-mmap.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_NULL"
                    c:identifier="GMIME_STREAM_NULL"
                    introspectable="0">
      <source-position filename="gmime-stream-null.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_NULL_CLASS"
                    c:identifier="GMIME_STREAM_NULL_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-null.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_NULL_GET_CLASS"
                    c:identifier="GMIME_STREAM_NULL_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-null.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_PIPE"
                    c:identifier="GMIME_STREAM_PIPE"
                    introspectable="0">
      <source-position filename="gmime-stream-pipe.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_PIPE_CLASS"
                    c:identifier="GMIME_STREAM_PIPE_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-pipe.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STREAM_PIPE_GET_CLASS"
                    c:identifier="GMIME_STREAM_PIPE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-stream-pipe.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="SecureMimeType" c:type="GMimeSecureMimeType">
      <doc xml:space="preserve"
           filename="gmime-application-pkcs7-mime.h"
           line="42">The S/MIME data type.</doc>
      <source-position filename="gmime-application-pkcs7-mime.h" line="58"/>
      <member name="compressed_data"
              value="0"
              c:identifier="GMIME_SECURE_MIME_TYPE_COMPRESSED_DATA">
        <doc xml:space="preserve"
             filename="gmime-application-pkcs7-mime.h"
             line="44">The S/MIME content contains compressed data.</doc>
      </member>
      <member name="enveloped_data"
              value="1"
              c:identifier="GMIME_SECURE_MIME_TYPE_ENVELOPED_DATA">
        <doc xml:space="preserve"
             filename="gmime-application-pkcs7-mime.h"
             line="45">The S/MIME content contains enveloped data.</doc>
      </member>
      <member name="signed_data"
              value="2"
              c:identifier="GMIME_SECURE_MIME_TYPE_SIGNED_DATA">
        <doc xml:space="preserve"
             filename="gmime-application-pkcs7-mime.h"
             line="46">The S/MIME content contains signed data.</doc>
      </member>
      <member name="certs_only"
              value="3"
              c:identifier="GMIME_SECURE_MIME_TYPE_CERTS_ONLY">
        <doc xml:space="preserve"
             filename="gmime-application-pkcs7-mime.h"
             line="47">The S/MIME content contains only certificates.</doc>
      </member>
      <member name="unknown"
              value="4"
              c:identifier="GMIME_SECURE_MIME_TYPE_UNKNOWN">
        <doc xml:space="preserve"
             filename="gmime-application-pkcs7-mime.h"
             line="48">The S/MIME content is unknown.</doc>
      </member>
    </enumeration>
    <enumeration name="SeekWhence" c:type="GMimeSeekWhence">
      <doc xml:space="preserve"
           filename="gmime-stream.h"
           line="45">Relative seek position.</doc>
      <source-position filename="gmime-stream.h" line="57"/>
      <member name="set" value="0" c:identifier="GMIME_STREAM_SEEK_SET">
        <doc xml:space="preserve"
             filename="gmime-stream.h"
             line="47">Seek relative to the beginning of the stream.</doc>
      </member>
      <member name="cur" value="1" c:identifier="GMIME_STREAM_SEEK_CUR">
        <doc xml:space="preserve"
             filename="gmime-stream.h"
             line="48">Seek relative to the current position in the stream.</doc>
      </member>
      <member name="end" value="2" c:identifier="GMIME_STREAM_SEEK_END">
        <doc xml:space="preserve"
             filename="gmime-stream.h"
             line="49">Seek relative to the end of the stream.</doc>
      </member>
    </enumeration>
    <class name="Signature"
           c:symbol-prefix="signature"
           c:type="GMimeSignature"
           parent="GObject.Object"
           glib:type-name="GMimeSignature"
           glib:get-type="g_mime_signature_get_type"
           glib:type-struct="SignatureClass">
      <doc xml:space="preserve"
           filename="gmime-signature.h"
           line="93">An object containing useful information about a signature.</doc>
      <source-position filename="gmime-signature.h" line="115"/>
      <constructor name="new" c:identifier="g_mime_signature_new">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="104">Creates a new #GMimeSignature object.</doc>
        <source-position filename="gmime-signature.h" line="120"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="109">a new #GMimeSignature object.</doc>
          <type name="Signature" c:type="GMimeSignature*"/>
        </return-value>
      </constructor>
      <method name="get_certificate"
              c:identifier="g_mime_signature_get_certificate">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="177">Get the signature's certificate.</doc>
        <source-position filename="gmime-signature.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="183">the signature's certificate.</doc>
          <type name="Certificate" c:type="GMimeCertificate*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="179">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_created" c:identifier="g_mime_signature_get_created">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="210">Get the creation date of the signature.</doc>
        <source-position filename="gmime-signature.h" line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="216">the creation date of the signature or %-1 if unknown.</doc>
          <type name="time_t" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="212">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_created64"
              c:identifier="g_mime_signature_get_created64">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="227">Get the creation date of the signature in seconds since the UNIX
epoch, represented as a 64-bit signed integer.</doc>
        <source-position filename="gmime-signature.h" line="130"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="234">the creation date of the signature or %-1 if unknown.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="229">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_expires" c:identifier="g_mime_signature_get_expires">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="264">Get the expiration date of the signature. A value of %0 means the signature never expires.</doc>
        <source-position filename="gmime-signature.h" line="133"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="270">the expiration date of the signature or %-1 if unknown.</doc>
          <type name="time_t" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="266">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_expires64"
              c:identifier="g_mime_signature_get_expires64">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="281">Get the expiration date of the signature in seconds since the UNIX
epoch, represented as a 64-bit signed integer. A value of %0 means
the signature never expires.</doc>
        <source-position filename="gmime-signature.h" line="134"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="289">the expiration date of the signature or %-1 if unknown.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="283">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_status" c:identifier="g_mime_signature_get_status">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="134">Get the signature status as a bitfield of #GMimeSignatureStatus flags.</doc>
        <source-position filename="gmime-signature.h" line="126"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="140">the signature status.</doc>
          <type name="SignatureStatus" c:type="GMimeSignatureStatus"/>
        </return-value>
        <parameters>
          <instance-parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="136">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_certificate"
              c:identifier="g_mime_signature_set_certificate">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="151">Set the signature's certificate.</doc>
        <source-position filename="gmime-signature.h" line="122"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="153">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </instance-parameter>
          <parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="154">a #GMimeCertificate</doc>
            <type name="Certificate" c:type="GMimeCertificate*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_created" c:identifier="g_mime_signature_set_created">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="194">Set the creation date of the signature.</doc>
        <source-position filename="gmime-signature.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="196">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </instance-parameter>
          <parameter name="created" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="197">creation date</doc>
            <type name="time_t" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_expires" c:identifier="g_mime_signature_set_expires">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="248">Set the expiration date of the signature. A value of %0 means the signature never expires.</doc>
        <source-position filename="gmime-signature.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="250">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </instance-parameter>
          <parameter name="expires" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="251">expiration date</doc>
            <type name="time_t" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_status" c:identifier="g_mime_signature_set_status">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="118">Set the status on the signature.</doc>
        <source-position filename="gmime-signature.h" line="125"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="120">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </instance-parameter>
          <parameter name="status" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="121">a #GMimeSignatureStatus</doc>
            <type name="SignatureStatus" c:type="GMimeSignatureStatus"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="95">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="status">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="96">A bitfield of #GMimeSignatureStatus values.</doc>
        <type name="SignatureStatus" c:type="GMimeSignatureStatus"/>
      </field>
      <field name="cert">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="97">The #GMimeCertificate used in the signature.</doc>
        <type name="Certificate" c:type="GMimeCertificate*"/>
      </field>
      <field name="created">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="98">The creation date of the signature.</doc>
        <type name="time_t" c:type="time_t"/>
      </field>
      <field name="expires">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="99">The expiration date of the signature.</doc>
        <type name="time_t" c:type="time_t"/>
      </field>
    </class>
    <record name="SignatureClass"
            c:type="GMimeSignatureClass"
            glib:is-gtype-struct-for="Signature">
      <source-position filename="gmime-signature.h" line="115"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="SignatureList"
           c:symbol-prefix="signature_list"
           c:type="GMimeSignatureList"
           parent="GObject.Object"
           glib:type-name="GMimeSignatureList"
           glib:get-type="g_mime_signature_list_get_type"
           glib:type-struct="SignatureListClass">
      <doc xml:space="preserve"
           filename="gmime-signature.h"
           line="137">A collection of #GMimeSignature objects.</doc>
      <source-position filename="gmime-signature.h" line="153"/>
      <constructor name="new" c:identifier="g_mime_signature_list_new">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="370">Creates a new #GMimeSignatureList.</doc>
        <source-position filename="gmime-signature.h" line="158"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="375">a new #GMimeSignatureList.</doc>
          <type name="SignatureList" c:type="GMimeSignatureList*"/>
        </return-value>
      </constructor>
      <method name="add" c:identifier="g_mime_signature_list_add">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="424">Adds a #GMimeSignature to the #GMimeSignatureList.</doc>
        <source-position filename="gmime-signature.h" line="164"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="431">the index of the added #GMimeSignature.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="426">a #GMimeSignatureList</doc>
            <type name="SignatureList" c:type="GMimeSignatureList*"/>
          </instance-parameter>
          <parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="427">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="g_mime_signature_list_clear">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="401">Clears the list of addresses.</doc>
        <source-position filename="gmime-signature.h" line="162"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="403">a #GMimeSignatureList</doc>
            <type name="SignatureList" c:type="GMimeSignatureList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="contains" c:identifier="g_mime_signature_list_contains">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="542">Checks whether or not the specified #GMimeSignature is contained within
the #GMimeSignatureList.</doc>
        <source-position filename="gmime-signature.h" line="169"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="550">%TRUE if the specified #GMimeSignature is contained within the
specified #GMimeSignatureList or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="544">a #GMimeSignatureList</doc>
            <type name="SignatureList" c:type="GMimeSignatureList*"/>
          </instance-parameter>
          <parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="545">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_signature"
              c:identifier="g_mime_signature_list_get_signature">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="589">Gets the #GMimeSignature at the specified index.</doc>
        <source-position filename="gmime-signature.h" line="172"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="596">the #GMimeSignature at the specified
index or %NULL if the index is out of range.</doc>
          <type name="Signature" c:type="GMimeSignature*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="591">a #GMimeSignatureList</doc>
            <type name="SignatureList" c:type="GMimeSignatureList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="592">index of #GMimeSignature to get</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="index_of" c:identifier="g_mime_signature_list_index_of">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="560">Gets the index of the specified #GMimeSignature inside the
#GMimeSignatureList.</doc>
        <source-position filename="gmime-signature.h" line="170"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="568">the index of the requested #GMimeSignature within the
#GMimeSignatureList or %-1 if it is not contained within the
#GMimeSignatureList.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="562">a #GMimeSignatureList</doc>
            <type name="SignatureList" c:type="GMimeSignatureList*"/>
          </instance-parameter>
          <parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="563">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="g_mime_signature_list_insert">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="449">Inserts a #GMimeSignature into the #GMimeSignatureList at the specified
index.</doc>
        <source-position filename="gmime-signature.h" line="165"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="451">a #GMimeSignatureList</doc>
            <type name="SignatureList" c:type="GMimeSignatureList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="452">index to insert at</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="453">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </parameter>
        </parameters>
      </method>
      <method name="length" c:identifier="g_mime_signature_list_length">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="384">Gets the length of the list.</doc>
        <source-position filename="gmime-signature.h" line="160"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="390">the number of #GMimeSignature objects in the list.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="386">a #GMimeSignatureList</doc>
            <type name="SignatureList" c:type="GMimeSignatureList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="g_mime_signature_list_remove">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="486">Removes a #GMimeSignature from the #GMimeSignatureList.</doc>
        <source-position filename="gmime-signature.h" line="166"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="493">%TRUE if the specified #GMimeSignature was removed or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="488">a #GMimeSignatureList</doc>
            <type name="SignatureList" c:type="GMimeSignatureList*"/>
          </instance-parameter>
          <parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="489">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_at" c:identifier="g_mime_signature_list_remove_at">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="513">Removes a #GMimeSignature from the #GMimeSignatureList at the specified
index.</doc>
        <source-position filename="gmime-signature.h" line="167"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="521">%TRUE if an #GMimeSignature was removed or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="515">a #GMimeSignatureList</doc>
            <type name="SignatureList" c:type="GMimeSignatureList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="516">index to remove</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_signature"
              c:identifier="g_mime_signature_list_set_signature">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="612">Sets the #GMimeSignature at the specified index to @sig.</doc>
        <source-position filename="gmime-signature.h" line="173"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="614">a #GMimeSignatureList</doc>
            <type name="SignatureList" c:type="GMimeSignatureList*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="615">index of #GMimeSignature to set</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="616">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="139">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="array" readable="0" private="1">
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="SignatureListClass"
            c:type="GMimeSignatureListClass"
            glib:is-gtype-struct-for="SignatureList">
      <source-position filename="gmime-signature.h" line="153"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="SignatureStatus" c:type="GMimeSignatureStatus">
      <doc xml:space="preserve"
           filename="gmime-signature.h"
           line="51">A value representing the signature status bit flags for a particular
#GMimeSignature.</doc>
      <source-position filename="gmime-signature.h" line="82"/>
      <member name="valid"
              value="1"
              c:identifier="GMIME_SIGNATURE_STATUS_VALID">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="53">The signature is fully valid.</doc>
      </member>
      <member name="green"
              value="2"
              c:identifier="GMIME_SIGNATURE_STATUS_GREEN">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="54">The signature is good.</doc>
      </member>
      <member name="red" value="4" c:identifier="GMIME_SIGNATURE_STATUS_RED">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="55">The signature is bad.</doc>
      </member>
      <member name="key_revoked"
              value="16"
              c:identifier="GMIME_SIGNATURE_STATUS_KEY_REVOKED">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="56">The key has been revoked.</doc>
      </member>
      <member name="key_expired"
              value="32"
              c:identifier="GMIME_SIGNATURE_STATUS_KEY_EXPIRED">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="57">The key has expired.</doc>
      </member>
      <member name="sig_expired"
              value="64"
              c:identifier="GMIME_SIGNATURE_STATUS_SIG_EXPIRED">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="58">The signature has expired.</doc>
      </member>
      <member name="key_missing"
              value="128"
              c:identifier="GMIME_SIGNATURE_STATUS_KEY_MISSING">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="59">Can't verify due to missing key.</doc>
      </member>
      <member name="crl_missing"
              value="256"
              c:identifier="GMIME_SIGNATURE_STATUS_CRL_MISSING">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="60">CRL not available.</doc>
      </member>
      <member name="crl_too_old"
              value="512"
              c:identifier="GMIME_SIGNATURE_STATUS_CRL_TOO_OLD">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="61">Available CRL is too old.</doc>
      </member>
      <member name="bad_policy"
              value="1024"
              c:identifier="GMIME_SIGNATURE_STATUS_BAD_POLICY">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="62">A policy was not met.</doc>
      </member>
      <member name="sys_error"
              value="2048"
              c:identifier="GMIME_SIGNATURE_STATUS_SYS_ERROR">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="63">A system error occurred.</doc>
      </member>
      <member name="tofu_conflict"
              value="4096"
              c:identifier="GMIME_SIGNATURE_STATUS_TOFU_CONFLICT">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="64">Tofu conflict detected.</doc>
      </member>
    </enumeration>
    <class name="Stream"
           c:symbol-prefix="stream"
           c:type="GMimeStream"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="GMimeStream"
           glib:get-type="g_mime_stream_get_type"
           glib:type-struct="StreamClass">
      <doc xml:space="preserve"
           filename="gmime-stream.h"
           line="73">Abstract I/O stream class.</doc>
      <source-position filename="gmime-stream.h" line="103"/>
      <virtual-method name="close" invoker="close">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="246">Closes the stream.</doc>
        <source-position filename="gmime-stream.h" line="96"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="252">%0 on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="248">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="eos" invoker="eos">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="271">Tests the end-of-stream indicator for @stream.</doc>
        <source-position filename="gmime-stream.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="277">%TRUE on EOS or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="273">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="flush" invoker="flush">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="221">Sync's the stream to disk.</doc>
        <source-position filename="gmime-stream.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="227">%0 on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="223">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="length" invoker="length">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="403">Gets the length of the stream.</doc>
        <source-position filename="gmime-stream.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="409">the length of the stream or %-1 if unknown.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="405">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="read" invoker="read">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="159">Attempts to read up to @len bytes from @stream into @buf.</doc>
        <source-position filename="gmime-stream.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="167">the number of bytes read or %-1 on fail.</doc>
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="161">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="buf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="162">buffer</doc>
            <array length="1" zero-terminated="0" c:type="char*">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="163">buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="reset" invoker="reset">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="299">Resets the stream.</doc>
        <source-position filename="gmime-stream.h" line="98"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="305">%0 on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="301">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="seek" invoker="seek">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="329">Repositions the offset of the stream @stream to
the argument @offset according to the
directive @whence as follows:

    #GMIME_STREAM_SEEK_SET: Seek @offset bytes relative to
    the beginning (bound_start) of the stream.

    #GMIME_STREAM_SEEK_CUR: Seek @offset bytes relative to the
    current offset of the stream.

    #GMIME_STREAM_SEEK_END: Seek @offset bytes relative to the
    end of the stream (bound_end if non-negative).</doc>
        <source-position filename="gmime-stream.h" line="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="348">the resultant position on success or %-1 on fail.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="331">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="332">positional offset</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="whence" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="333">seek directive</doc>
            <type name="SeekWhence" c:type="GMimeSeekWhence"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="substream" invoker="substream">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="428">Creates a new substream of @stream with bounds @start and @end.</doc>
        <source-position filename="gmime-stream.h" line="102"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="436">a substream of @stream with bounds @start
and @end.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="430">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="431">start boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="432">end boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="tell" invoker="tell">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="367">Gets the current offset within the stream.</doc>
        <source-position filename="gmime-stream.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="373">the current position within the stream or %-1 on fail.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="369">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="write" invoker="write">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="190">Attempts to write up to @len bytes of @buf to @stream.</doc>
        <source-position filename="gmime-stream.h" line="94"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="198">the number of bytes written or %-1 on fail.</doc>
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="192">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="buf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="193">buffer</doc>
            <array length="1" zero-terminated="0" c:type="const char*">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="194">buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="buffer_gets" c:identifier="g_mime_stream_buffer_gets">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.c"
             line="518">Reads in at most one less than @max characters from @stream and
stores them into the buffer pointed to by @buf. Reading stops after
an EOS or newline ('\n'). If a newline is read, it is stored into
the buffer. A '\0' is stored after the last character in the
buffer.</doc>
        <source-position filename="gmime-stream-buffer.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-buffer.c"
               line="530">the number of characters read into @buf on success or %-1
on fail.</doc>
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-buffer.c"
                 line="520">stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="buf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-buffer.c"
                 line="521">line buffer</doc>
            <array length="1" zero-terminated="0" c:type="char*">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="max" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-buffer.c"
                 line="522">max length of a line</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="buffer_readln" c:identifier="g_mime_stream_buffer_readln">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.c"
             line="598">Reads a single line into @buffer.</doc>
        <source-position filename="gmime-stream-buffer.h" line="89"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-buffer.c"
                 line="600">stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-buffer.c"
                 line="601">output buffer</doc>
            <array name="GLib.ByteArray" c:type="GByteArray*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="close" c:identifier="g_mime_stream_close">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="246">Closes the stream.</doc>
        <source-position filename="gmime-stream.h" line="115"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="252">%0 on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="248">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="construct" c:identifier="g_mime_stream_construct">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="134">Initializes a new stream with bounds @start and @end.</doc>
        <source-position filename="gmime-stream.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="136">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="137">start boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="138">end boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="eos" c:identifier="g_mime_stream_eos">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="271">Tests the end-of-stream indicator for @stream.</doc>
        <source-position filename="gmime-stream.h" line="116"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="277">%TRUE on EOS or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="273">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="flush" c:identifier="g_mime_stream_flush">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="221">Sync's the stream to disk.</doc>
        <source-position filename="gmime-stream.h" line="114"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="227">%0 on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="223">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="length" c:identifier="g_mime_stream_length">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="403">Gets the length of the stream.</doc>
        <source-position filename="gmime-stream.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="409">the length of the stream or %-1 if unknown.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="405">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="printf"
              c:identifier="g_mime_stream_printf"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="497">Write formatted output to a stream.</doc>
        <source-position filename="gmime-stream.h" line="127"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="505">the number of bytes written or %-1 on fail.</doc>
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="499">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="fmt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="500">format</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="501">arguments</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="read" c:identifier="g_mime_stream_read">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="159">Attempts to read up to @len bytes from @stream into @buf.</doc>
        <source-position filename="gmime-stream.h" line="112"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="167">the number of bytes read or %-1 on fail.</doc>
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="161">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="buf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="162">buffer</doc>
            <array length="1" zero-terminated="0" c:type="char*">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="163">buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="g_mime_stream_reset">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="299">Resets the stream.</doc>
        <source-position filename="gmime-stream.h" line="117"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="305">%0 on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="301">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="seek" c:identifier="g_mime_stream_seek">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="329">Repositions the offset of the stream @stream to
the argument @offset according to the
directive @whence as follows:

    #GMIME_STREAM_SEEK_SET: Seek @offset bytes relative to
    the beginning (bound_start) of the stream.

    #GMIME_STREAM_SEEK_CUR: Seek @offset bytes relative to the
    current offset of the stream.

    #GMIME_STREAM_SEEK_END: Seek @offset bytes relative to the
    end of the stream (bound_end if non-negative).</doc>
        <source-position filename="gmime-stream.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="348">the resultant position on success or %-1 on fail.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="331">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="332">positional offset</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="whence" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="333">seek directive</doc>
            <type name="SeekWhence" c:type="GMimeSeekWhence"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bounds" c:identifier="g_mime_stream_set_bounds">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="455">Set the bounds on a stream.</doc>
        <source-position filename="gmime-stream.h" line="124"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="457">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="458">start boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="459">end boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="substream" c:identifier="g_mime_stream_substream">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="428">Creates a new substream of @stream with bounds @start and @end.</doc>
        <source-position filename="gmime-stream.h" line="122"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="436">a substream of @stream with bounds @start
and @end.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="430">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="431">start boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="432">end boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="tell" c:identifier="g_mime_stream_tell">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="367">Gets the current offset within the stream.</doc>
        <source-position filename="gmime-stream.h" line="119"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="373">the current position within the stream or %-1 on fail.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="369">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="write" c:identifier="g_mime_stream_write">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="190">Attempts to write up to @len bytes of @buf to @stream.</doc>
        <source-position filename="gmime-stream.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="198">the number of bytes written or %-1 on fail.</doc>
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="192">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="buf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="193">buffer</doc>
            <array length="1" zero-terminated="0" c:type="const char*">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="194">buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_string" c:identifier="g_mime_stream_write_string">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="478">Writes @string to @stream.</doc>
        <source-position filename="gmime-stream.h" line="126"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="485">the number of bytes written or %-1 on fail.</doc>
          <type name="gssize" c:type="ssize_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="480">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="481">string to write</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_to_stream"
              c:identifier="g_mime_stream_write_to_stream">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="531">Attempts to write the source stream to the destination stream.</doc>
        <source-position filename="gmime-stream.h" line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="538">the number of bytes written or %-1 on fail.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="src" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="533">source stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="534">destination stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="writev" c:identifier="g_mime_stream_writev">
        <doc xml:space="preserve"
             filename="gmime-stream.c"
             line="573">Writes at most @count blocks described by @vector to @stream.</doc>
        <source-position filename="gmime-stream.h" line="131"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="581">the number of bytes written or %-1 on fail.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="575">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </instance-parameter>
          <parameter name="vector" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="576">a #GMimeStreamIOVector</doc>
            <array length="1"
                   zero-terminated="0"
                   c:type="GMimeStreamIOVector*">
              <type name="StreamIOVector" c:type="GMimeStreamIOVector"/>
            </array>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="577">number of vector elements</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object" readable="0" private="1">
        <doc xml:space="preserve"
             filename="gmime-stream.h"
             line="75">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="super_stream" readable="0" private="1">
        <type name="Stream" c:type="GMimeStream*"/>
      </field>
      <field name="position" readable="0" private="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="bound_start" readable="0" private="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="bound_end" readable="0" private="1">
        <type name="gint64" c:type="gint64"/>
      </field>
    </class>
    <class name="StreamBuffer"
           c:symbol-prefix="stream_buffer"
           c:type="GMimeStreamBuffer"
           parent="Stream"
           glib:type-name="GMimeStreamBuffer"
           glib:get-type="g_mime_stream_buffer_get_type"
           glib:type-struct="StreamBufferClass">
      <doc xml:space="preserve"
           filename="gmime-stream-buffer.h"
           line="53">A buffered stream wrapper around any #GMimeStream object.</doc>
      <source-position filename="gmime-stream-buffer.h" line="80"/>
      <constructor name="new" c:identifier="g_mime_stream_buffer_new">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.c"
             line="483">Creates a new GMimeStreamBuffer object.</doc>
        <source-position filename="gmime-stream-buffer.h" line="85"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-buffer.c"
               line="490">a new buffer stream with source @source and mode @mode.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-buffer.c"
                 line="485">source stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-buffer.c"
                 line="486">buffering mode</doc>
            <type name="StreamBufferMode" c:type="GMimeStreamBufferMode"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="55">parent #GMimeStream</doc>
        <type name="Stream" c:type="GMimeStream"/>
      </field>
      <field name="mode">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="56">buffering mode</doc>
        <type name="StreamBufferMode" c:type="GMimeStreamBufferMode"/>
      </field>
      <field name="source">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="57">source stream</doc>
        <type name="Stream" c:type="GMimeStream*"/>
      </field>
      <field name="buffer">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="58">internal buffer</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="bufptr">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="59">current position in the buffer</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="bufend">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="60">end of the buffer</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="buflen">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="61">buffer length</doc>
        <type name="gsize" c:type="size_t"/>
      </field>
    </class>
    <record name="StreamBufferClass"
            c:type="GMimeStreamBufferClass"
            glib:is-gtype-struct-for="StreamBuffer">
      <source-position filename="gmime-stream-buffer.h" line="80"/>
      <field name="parent_class">
        <type name="StreamClass" c:type="GMimeStreamClass"/>
      </field>
    </record>
    <enumeration name="StreamBufferMode" c:type="GMimeStreamBufferMode">
      <doc xml:space="preserve"
           filename="gmime-stream-buffer.h"
           line="40">The buffering mode for a #GMimeStreamBuffer stream.</doc>
      <source-position filename="gmime-stream-buffer.h" line="50"/>
      <member name="read"
              value="0"
              c:identifier="GMIME_STREAM_BUFFER_BLOCK_READ">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="42">Read in 4k blocks.</doc>
      </member>
      <member name="write"
              value="1"
              c:identifier="GMIME_STREAM_BUFFER_BLOCK_WRITE">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="43">Write in 4k blocks.</doc>
      </member>
    </enumeration>
    <class name="StreamCat"
           c:symbol-prefix="stream_cat"
           c:type="GMimeStreamCat"
           parent="Stream"
           glib:type-name="GMimeStreamCat"
           glib:get-type="g_mime_stream_cat_get_type"
           glib:type-struct="StreamCatClass">
      <doc xml:space="preserve"
           filename="gmime-stream-cat.h"
           line="40">A concatenation of other #GMimeStream objects.</doc>
      <source-position filename="gmime-stream-cat.h" line="58"/>
      <constructor name="new" c:identifier="g_mime_stream_cat_new">
        <doc xml:space="preserve"
             filename="gmime-stream-cat.c"
             line="671">Creates a new #GMimeStreamCat object.</doc>
        <source-position filename="gmime-stream-cat.h" line="63"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-cat.c"
               line="676">a new #GMimeStreamCat stream.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
      </constructor>
      <method name="add_source" c:identifier="g_mime_stream_cat_add_source">
        <doc xml:space="preserve"
             filename="gmime-stream-cat.c"
             line="690">Adds the @source stream to the @cat.</doc>
        <source-position filename="gmime-stream-cat.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-cat.c"
               line="697">%0 on success or %-1 on fail.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="cat" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-cat.c"
                 line="692">a #GMimeStreamCat</doc>
            <type name="StreamCat" c:type="GMimeStreamCat*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-cat.c"
                 line="693">a source stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-stream-cat.h"
             line="42">parent #GMimeStream</doc>
        <type name="Stream" c:type="GMimeStream"/>
      </field>
      <field name="sources">
        <doc xml:space="preserve"
             filename="gmime-stream-cat.h"
             line="43">list of sources</doc>
        <type name="gpointer" c:type="_cat_node*"/>
      </field>
      <field name="current">
        <doc xml:space="preserve"
             filename="gmime-stream-cat.h"
             line="44">current source</doc>
        <type name="gpointer" c:type="_cat_node*"/>
      </field>
    </class>
    <record name="StreamCatClass"
            c:type="GMimeStreamCatClass"
            glib:is-gtype-struct-for="StreamCat">
      <source-position filename="gmime-stream-cat.h" line="58"/>
      <field name="parent_class">
        <type name="StreamClass" c:type="GMimeStreamClass"/>
      </field>
    </record>
    <record name="StreamClass"
            c:type="GMimeStreamClass"
            glib:is-gtype-struct-for="Stream">
      <source-position filename="gmime-stream.h" line="103"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="read">
        <callback name="read">
          <source-position filename="gmime-stream.h" line="93"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="167">the number of bytes read or %-1 on fail.</doc>
            <type name="gssize" c:type="ssize_t"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="161">a #GMimeStream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
            <parameter name="buf" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="162">buffer</doc>
              <array length="2" zero-terminated="0" c:type="char*">
                <type name="guint8"/>
              </array>
            </parameter>
            <parameter name="len" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="163">buffer length</doc>
              <type name="gsize" c:type="size_t"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="write">
        <callback name="write">
          <source-position filename="gmime-stream.h" line="94"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="198">the number of bytes written or %-1 on fail.</doc>
            <type name="gssize" c:type="ssize_t"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="192">a #GMimeStream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
            <parameter name="buf" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="193">buffer</doc>
              <array length="2" zero-terminated="0" c:type="const char*">
                <type name="guint8"/>
              </array>
            </parameter>
            <parameter name="len" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="194">buffer length</doc>
              <type name="gsize" c:type="size_t"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="flush">
        <callback name="flush">
          <source-position filename="gmime-stream.h" line="95"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="227">%0 on success or %-1 on fail.</doc>
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="223">a #GMimeStream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="close">
        <callback name="close">
          <source-position filename="gmime-stream.h" line="96"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="252">%0 on success or %-1 on fail.</doc>
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="248">a #GMimeStream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="eos">
        <callback name="eos">
          <source-position filename="gmime-stream.h" line="97"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="277">%TRUE on EOS or %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="273">a #GMimeStream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="reset">
        <callback name="reset">
          <source-position filename="gmime-stream.h" line="98"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="305">%0 on success or %-1 on fail.</doc>
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="301">a #GMimeStream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="seek">
        <callback name="seek">
          <source-position filename="gmime-stream.h" line="99"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="348">the resultant position on success or %-1 on fail.</doc>
            <type name="gint64" c:type="gint64"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="331">a #GMimeStream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
            <parameter name="offset" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="332">positional offset</doc>
              <type name="gint64" c:type="gint64"/>
            </parameter>
            <parameter name="whence" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="333">seek directive</doc>
              <type name="SeekWhence" c:type="GMimeSeekWhence"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="tell">
        <callback name="tell">
          <source-position filename="gmime-stream.h" line="100"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="373">the current position within the stream or %-1 on fail.</doc>
            <type name="gint64" c:type="gint64"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="369">a #GMimeStream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="length">
        <callback name="length">
          <source-position filename="gmime-stream.h" line="101"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="409">the length of the stream or %-1 if unknown.</doc>
            <type name="gint64" c:type="gint64"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="405">a #GMimeStream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="substream">
        <callback name="substream">
          <source-position filename="gmime-stream.h" line="102"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="436">a substream of @stream with bounds @start
and @end.</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="430">a #GMimeStream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
            <parameter name="start" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="431">start boundary</doc>
              <type name="gint64" c:type="gint64"/>
            </parameter>
            <parameter name="end" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-stream.c"
                   line="432">end boundary</doc>
              <type name="gint64" c:type="gint64"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="StreamFile"
           c:symbol-prefix="stream_file"
           c:type="GMimeStreamFile"
           parent="Stream"
           glib:type-name="GMimeStreamFile"
           glib:get-type="g_mime_stream_file_get_type"
           glib:type-struct="StreamFileClass">
      <doc xml:space="preserve"
           filename="gmime-stream-file.h"
           line="41">A #GMimeStream wrapper around standard-c FILE pointers.</doc>
      <source-position filename="gmime-stream-file.h" line="59"/>
      <constructor name="new" c:identifier="g_mime_stream_file_new">
        <doc xml:space="preserve"
             filename="gmime-stream-file.c"
             line="362">Creates a new #GMimeStreamFile object around @fp.

Note: The created #GMimeStreamFile object will own the FILE pointer
passed in.</doc>
        <source-position filename="gmime-stream-file.h" line="64"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-file.c"
               line="371">a stream using @fp.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="fp"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-stream-file.c"
                 line="364">a FILE pointer</doc>
            <type name="gpointer" c:type="FILE*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_bounds"
                   c:identifier="g_mime_stream_file_new_with_bounds">
        <doc xml:space="preserve"
             filename="gmime-stream-file.c"
             line="391">Creates a new #GMimeStreamFile object around @fp with bounds @start
and @end.

Note: The created #GMimeStreamFile object will own the FILE pointer
passed in.</doc>
        <source-position filename="gmime-stream-file.h" line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-file.c"
               line="403">a stream using @fp with bounds @start and @end.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="fp"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-stream-file.c"
                 line="393">a FILE pointer</doc>
            <type name="gpointer" c:type="FILE*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-file.c"
                 line="394">start boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-file.c"
                 line="395">end boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="open" c:identifier="g_mime_stream_file_open" throws="1">
        <doc xml:space="preserve"
             filename="gmime-stream-file.c"
             line="425">Creates a new #GMimeStreamFile object for the specified @path.</doc>
        <source-position filename="gmime-stream-file.h" line="67"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-file.c"
               line="433">a stream using for reading and/or writing to the
specified file path or %NULL on error.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-file.c"
                 line="427">the path to a file</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-file.c"
                 line="428">as in fopen(3)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_owner" c:identifier="g_mime_stream_file_get_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-file.c"
             line="453">Gets whether or not @stream owns the backend FILE pointer.</doc>
        <source-position filename="gmime-stream-file.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-file.c"
               line="459">%TRUE if @stream owns the backend FILE pointer or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-file.c"
                 line="455">a #GMimeStreamFile</doc>
            <type name="StreamFile" c:type="GMimeStreamFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_owner" c:identifier="g_mime_stream_file_set_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-file.c"
             line="471">Sets whether or not @stream owns the backend FILE pointer.

Note: @owner should be %TRUE if the stream should fclose() the
backend FILE pointer when destroyed or %FALSE otherwise.</doc>
        <source-position filename="gmime-stream-file.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-file.c"
                 line="473">a #GMimeStreamFile</doc>
            <type name="StreamFile" c:type="GMimeStreamFile*"/>
          </instance-parameter>
          <parameter name="owner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-file.c"
                 line="474">%TRUE if this stream should own the FILE pointer or %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-stream-file.h"
             line="43">parent #GMimeStream</doc>
        <type name="Stream" c:type="GMimeStream"/>
      </field>
      <field name="owner">
        <doc xml:space="preserve"
             filename="gmime-stream-file.h"
             line="44">%TRUE if this stream owns @fd</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="fp">
        <doc xml:space="preserve"
             filename="gmime-stream-file.h"
             line="45">standard-c FILE pointer</doc>
        <type name="gpointer" c:type="FILE*"/>
      </field>
    </class>
    <record name="StreamFileClass"
            c:type="GMimeStreamFileClass"
            glib:is-gtype-struct-for="StreamFile">
      <source-position filename="gmime-stream-file.h" line="59"/>
      <field name="parent_class">
        <type name="StreamClass" c:type="GMimeStreamClass"/>
      </field>
    </record>
    <class name="StreamFilter"
           c:symbol-prefix="stream_filter"
           c:type="GMimeStreamFilter"
           parent="Stream"
           glib:type-name="GMimeStreamFilter"
           glib:get-type="g_mime_stream_filter_get_type"
           glib:type-struct="StreamFilterClass">
      <doc xml:space="preserve"
           filename="gmime-stream-filter.h"
           line="40">A #GMimeStream which passes data through any #GMimeFilter objects.</doc>
      <source-position filename="gmime-stream-filter.h" line="60"/>
      <constructor name="new" c:identifier="g_mime_stream_filter_new">
        <doc xml:space="preserve"
             filename="gmime-stream-filter.c"
             line="405">Creates a new #GMimeStreamFilter object using @stream as the source
stream.</doc>
        <source-position filename="gmime-stream-filter.h" line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-filter.c"
               line="412">a new filter stream with @stream as its source.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-filter.c"
                 line="407">source stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add" c:identifier="g_mime_stream_filter_add">
        <doc xml:space="preserve"
             filename="gmime-stream-filter.c"
             line="433">Adds @filter to @stream. Filters are applied in the same order in
which they are added.</doc>
        <source-position filename="gmime-stream-filter.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-filter.c"
               line="441">an id for the filter.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-filter.c"
                 line="435">a #GMimeStreamFilter</doc>
            <type name="StreamFilter" c:type="GMimeStreamFilter*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-filter.c"
                 line="436">a #GMimeFilter</doc>
            <type name="Filter" c:type="GMimeFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_owner" c:identifier="g_mime_stream_filter_get_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-filter.c"
             line="525">Gets whether or not @stream owns the source stream.</doc>
        <source-position filename="gmime-stream-filter.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-filter.c"
               line="531">%TRUE if @stream owns the source stream or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-filter.c"
                 line="527">a #GMimeStreamFilter</doc>
            <type name="StreamFilter" c:type="GMimeStreamFilter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="g_mime_stream_filter_remove">
        <doc xml:space="preserve"
             filename="gmime-stream-filter.c"
             line="472">Removed a filter from the stream based on the id (as returned from
filter_add).</doc>
        <source-position filename="gmime-stream-filter.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-filter.c"
                 line="474">a #GMimeStreamFilter</doc>
            <type name="StreamFilter" c:type="GMimeStreamFilter*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-filter.c"
                 line="475">filter id</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_owner" c:identifier="g_mime_stream_filter_set_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-filter.c"
             line="506">Sets whether or not @stream owns the source stream..

Note: @owner should be %TRUE if the stream should close() the
backend source stream when destroyed or %FALSE otherwise.</doc>
        <source-position filename="gmime-stream-filter.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-filter.c"
                 line="508">a #GMimeStreamFilter</doc>
            <type name="StreamFilter" c:type="GMimeStreamFilter*"/>
          </instance-parameter>
          <parameter name="owner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-filter.c"
                 line="509">%TRUE if this stream should own the source stream or %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-stream-filter.h"
             line="42">parent #GMimeStream</doc>
        <type name="Stream" c:type="GMimeStream"/>
      </field>
      <field name="priv">
        <doc xml:space="preserve"
             filename="gmime-stream-filter.h"
             line="43">private state data</doc>
        <type name="gpointer" c:type="_GMimeStreamFilterPrivate*"/>
      </field>
      <field name="source">
        <doc xml:space="preserve"
             filename="gmime-stream-filter.h"
             line="44">source stream</doc>
        <type name="Stream" c:type="GMimeStream*"/>
      </field>
      <field name="owner">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="StreamFilterClass"
            c:type="GMimeStreamFilterClass"
            glib:is-gtype-struct-for="StreamFilter">
      <source-position filename="gmime-stream-filter.h" line="60"/>
      <field name="parent_class">
        <type name="StreamClass" c:type="GMimeStreamClass"/>
      </field>
    </record>
    <class name="StreamFs"
           c:symbol-prefix="stream_fs"
           c:type="GMimeStreamFs"
           parent="Stream"
           glib:type-name="GMimeStreamFs"
           glib:get-type="g_mime_stream_fs_get_type"
           glib:type-struct="StreamFsClass">
      <doc xml:space="preserve"
           filename="gmime-stream-fs.h"
           line="39">A #GMimeStream wrapper around POSIX file descriptors.</doc>
      <source-position filename="gmime-stream-fs.h" line="59"/>
      <constructor name="new" c:identifier="g_mime_stream_fs_new">
        <doc xml:space="preserve"
             filename="gmime-stream-fs.c"
             line="414">Creates a new #GMimeStreamFs object around @fd.</doc>
        <source-position filename="gmime-stream-fs.h" line="64"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-fs.c"
               line="420">a stream using @fd.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-fs.c"
                 line="416">a file descriptor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_bounds"
                   c:identifier="g_mime_stream_fs_new_with_bounds">
        <doc xml:space="preserve"
             filename="gmime-stream-fs.c"
             line="438">Creates a new #GMimeStreamFs object around @fd with bounds @start
and @end.</doc>
        <source-position filename="gmime-stream-fs.h" line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-fs.c"
               line="447">a stream using @fd with bounds @start and @end.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-fs.c"
                 line="440">a file descriptor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-fs.c"
                 line="441">start boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-fs.c"
                 line="442">end boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="open" c:identifier="g_mime_stream_fs_open" throws="1">
        <doc xml:space="preserve"
             filename="gmime-stream-fs.c"
             line="468">Creates a new #GMimeStreamFs object for the specified @path.</doc>
        <source-position filename="gmime-stream-fs.h" line="67"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-fs.c"
               line="477">a stream using for reading and/or writing to the
specified file path or %NULL on error.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-fs.c"
                 line="470">the path to a file</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-fs.c"
                 line="471">as in open(2)</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-fs.c"
                 line="472">as in open(2)</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_owner" c:identifier="g_mime_stream_fs_get_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-fs.c"
             line="496">Gets whether or not @stream owns the backend file descriptor.</doc>
        <source-position filename="gmime-stream-fs.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-fs.c"
               line="502">%TRUE if @stream owns the backend file descriptor or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-fs.c"
                 line="498">a #GMimeStreamFs</doc>
            <type name="StreamFs" c:type="GMimeStreamFs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_owner" c:identifier="g_mime_stream_fs_set_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-fs.c"
             line="514">Sets whether or not @stream owns the backend file descriptor.

Note: @owner should be %TRUE if the stream should close() the
backend file descriptor when destroyed or %FALSE otherwise.</doc>
        <source-position filename="gmime-stream-fs.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-fs.c"
                 line="516">a #GMimeStreamFs</doc>
            <type name="StreamFs" c:type="GMimeStreamFs*"/>
          </instance-parameter>
          <parameter name="owner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-fs.c"
                 line="517">%TRUE if this stream should own the file descriptor or %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-stream-fs.h"
             line="41">parent #GMimeStream</doc>
        <type name="Stream" c:type="GMimeStream"/>
      </field>
      <field name="owner">
        <doc xml:space="preserve"
             filename="gmime-stream-fs.h"
             line="42">%TRUE if this stream owns @fd</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="eos">
        <doc xml:space="preserve"
             filename="gmime-stream-fs.h"
             line="43">%TRUE if end-of-stream</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="fd">
        <doc xml:space="preserve"
             filename="gmime-stream-fs.h"
             line="44">file descriptor</doc>
        <type name="gint" c:type="int"/>
      </field>
    </class>
    <record name="StreamFsClass"
            c:type="GMimeStreamFsClass"
            glib:is-gtype-struct-for="StreamFs">
      <source-position filename="gmime-stream-fs.h" line="59"/>
      <field name="parent_class">
        <type name="StreamClass" c:type="GMimeStreamClass"/>
      </field>
    </record>
    <class name="StreamGIO"
           c:symbol-prefix="stream_gio"
           c:type="GMimeStreamGIO"
           parent="Stream"
           glib:type-name="GMimeStreamGIO"
           glib:get-type="g_mime_stream_gio_get_type"
           glib:type-struct="StreamGIOClass">
      <doc xml:space="preserve"
           filename="gmime-stream-gio.h"
           line="41">A #GMimeStream wrapper around GLib's GIO streams.</doc>
      <source-position filename="gmime-stream-gio.h" line="66"/>
      <constructor name="new" c:identifier="g_mime_stream_gio_new">
        <doc xml:space="preserve"
             filename="gmime-stream-gio.c"
             line="622">Creates a new #GMimeStreamGIO wrapper around a #GFile object.</doc>
        <source-position filename="gmime-stream-gio.h" line="71"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-gio.c"
               line="628">a stream using @file.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-gio.c"
                 line="624">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_bounds"
                   c:identifier="g_mime_stream_gio_new_with_bounds">
        <doc xml:space="preserve"
             filename="gmime-stream-gio.c"
             line="637">Creates a new #GMimeStreamGIO stream around a #GFile with bounds
@start and @end.</doc>
        <source-position filename="gmime-stream-gio.h" line="72"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-gio.c"
               line="646">a stream using @file with bounds @start
and @end.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-gio.c"
                 line="639">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-gio.c"
                 line="640">start boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-gio.c"
                 line="641">end boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_owner" c:identifier="g_mime_stream_gio_get_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-gio.c"
             line="666">Gets whether or not @stream owns the backend #GFile.</doc>
        <source-position filename="gmime-stream-gio.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-gio.c"
               line="672">%TRUE if @stream owns the backend #GFile or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-gio.c"
                 line="668">a #GMimeStreamGIO stream</doc>
            <type name="StreamGIO" c:type="GMimeStreamGIO*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_owner" c:identifier="g_mime_stream_gio_set_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-gio.c"
             line="684">Sets whether or not @stream owns the backend GIO pointer.

Note: @owner should be %TRUE if the stream should close() the
backend file descriptor when destroyed or %FALSE otherwise.</doc>
        <source-position filename="gmime-stream-gio.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-gio.c"
                 line="686">a #GMimeStreamGIO stream</doc>
            <type name="StreamGIO" c:type="GMimeStreamGIO*"/>
          </instance-parameter>
          <parameter name="owner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-gio.c"
                 line="687">%TRUE if this stream should own the #GFile or %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-stream-gio.h"
             line="43">parent #GMimeStream</doc>
        <type name="Stream" c:type="GMimeStream"/>
      </field>
      <field name="ostream">
        <doc xml:space="preserve"
             filename="gmime-stream-gio.h"
             line="44">a #GOutputStream</doc>
        <type name="Gio.OutputStream" c:type="GOutputStream*"/>
      </field>
      <field name="istream">
        <doc xml:space="preserve"
             filename="gmime-stream-gio.h"
             line="45">a #GInputStream</doc>
        <type name="Gio.InputStream" c:type="GInputStream*"/>
      </field>
      <field name="file">
        <doc xml:space="preserve"
             filename="gmime-stream-gio.h"
             line="46">a #GFile</doc>
        <type name="Gio.File" c:type="GFile*"/>
      </field>
      <field name="owner">
        <doc xml:space="preserve"
             filename="gmime-stream-gio.h"
             line="47">%TRUE if this stream owns the #GFile or %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="eos">
        <doc xml:space="preserve"
             filename="gmime-stream-gio.h"
             line="48">%TRUE if the end of the stream has been reached or %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="StreamGIOClass"
            c:type="GMimeStreamGIOClass"
            glib:is-gtype-struct-for="StreamGIO">
      <source-position filename="gmime-stream-gio.h" line="66"/>
      <field name="parent_class">
        <type name="StreamClass" c:type="GMimeStreamClass"/>
      </field>
    </record>
    <record name="StreamIOVector" c:type="GMimeStreamIOVector">
      <doc xml:space="preserve"
           filename="gmime-stream.h"
           line="60">An I/O vector for use with g_mime_stream_writev().</doc>
      <source-position filename="gmime-stream.h" line="70"/>
      <field name="data" writable="1">
        <doc xml:space="preserve"
             filename="gmime-stream.h"
             line="62">data to pass to the I/O function.</doc>
        <type name="gpointer" c:type="void*"/>
      </field>
      <field name="len" writable="1">
        <doc xml:space="preserve"
             filename="gmime-stream.h"
             line="63">length of the data, in bytes.</doc>
        <type name="gsize" c:type="size_t"/>
      </field>
    </record>
    <class name="StreamMem"
           c:symbol-prefix="stream_mem"
           c:type="GMimeStreamMem"
           parent="Stream"
           glib:type-name="GMimeStreamMem"
           glib:get-type="g_mime_stream_mem_get_type"
           glib:type-struct="StreamMemClass">
      <doc xml:space="preserve"
           filename="gmime-stream-mem.h"
           line="40">A memory-backed #GMimeStream.</doc>
      <source-position filename="gmime-stream-mem.h" line="58"/>
      <constructor name="new" c:identifier="g_mime_stream_mem_new">
        <doc xml:space="preserve"
             filename="gmime-stream-mem.c"
             line="330">Creates a new #GMimeStreamMem object.</doc>
        <source-position filename="gmime-stream-mem.h" line="63"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-mem.c"
               line="335">a new memory stream.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_buffer"
                   c:identifier="g_mime_stream_mem_new_with_buffer">
        <doc xml:space="preserve"
             filename="gmime-stream-mem.c"
             line="373">Creates a new #GMimeStreamMem object and initializes the stream
contents with the first @len bytes of @buffer.</doc>
        <source-position filename="gmime-stream-mem.h" line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-mem.c"
               line="381">a new memory stream initialized with @buffer.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mem.c"
                 line="375">stream data</doc>
            <array length="1" zero-terminated="0" c:type="const char*">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mem.c"
                 line="376">buffer length</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_byte_array"
                   c:identifier="g_mime_stream_mem_new_with_byte_array">
        <doc xml:space="preserve"
             filename="gmime-stream-mem.c"
             line="351">Creates a new #GMimeStreamMem with data @array.</doc>
        <source-position filename="gmime-stream-mem.h" line="64"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-mem.c"
               line="357">a new memory stream using @array.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mem.c"
                 line="353">source data</doc>
            <array name="GLib.ByteArray" c:type="GByteArray*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_byte_array"
              c:identifier="g_mime_stream_mem_get_byte_array">
        <doc xml:space="preserve"
             filename="gmime-stream-mem.c"
             line="397">Gets the byte array from the memory stream.</doc>
        <source-position filename="gmime-stream-mem.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-mem.c"
               line="403">the byte array from the memory stream.</doc>
          <array name="GLib.ByteArray" c:type="GByteArray*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="mem" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mem.c"
                 line="399">a #GMimeStreamMem</doc>
            <type name="StreamMem" c:type="GMimeStreamMem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_owner" c:identifier="g_mime_stream_mem_get_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-mem.c"
             line="444">Gets whether or not @mem owns the backend memory buffer.</doc>
        <source-position filename="gmime-stream-mem.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-mem.c"
               line="450">%TRUE if @mem owns the backend memory buffer or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mem" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mem.c"
                 line="446">a #GMimeStreamMem</doc>
            <type name="StreamMem" c:type="GMimeStreamMem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_byte_array"
              c:identifier="g_mime_stream_mem_set_byte_array">
        <doc xml:space="preserve"
             filename="gmime-stream-mem.c"
             line="414">Sets the byte array on the memory stream.

Note: The memory stream is not responsible for freeing the byte
array. Use g_mime_stream_mem_set_owner() to change this behavior.</doc>
        <source-position filename="gmime-stream-mem.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mem" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mem.c"
                 line="416">a #GMimeStreamMem</doc>
            <type name="StreamMem" c:type="GMimeStreamMem*"/>
          </instance-parameter>
          <parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mem.c"
                 line="417">stream data</doc>
            <array name="GLib.ByteArray" c:type="GByteArray*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="set_owner" c:identifier="g_mime_stream_mem_set_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-mem.c"
             line="462">Sets whether or not @mem owns the backend memory buffer.

Note: @owner should be %TRUE if the stream should free the backend
memory buffer when destroyed or %FALSE otherwise.</doc>
        <source-position filename="gmime-stream-mem.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mem" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mem.c"
                 line="464">a #GMimeStreamMem</doc>
            <type name="StreamMem" c:type="GMimeStreamMem*"/>
          </instance-parameter>
          <parameter name="owner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mem.c"
                 line="465">%TRUE if this stream should own the #GByteArray or %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-stream-mem.h"
             line="42">parent #GMimeStream</doc>
        <type name="Stream" c:type="GMimeStream"/>
      </field>
      <field name="buffer">
        <doc xml:space="preserve"
             filename="gmime-stream-mem.h"
             line="43">a memory buffer</doc>
        <array name="GLib.ByteArray" c:type="GByteArray*">
          <type name="guint8" c:type="guint8"/>
        </array>
      </field>
      <field name="owner">
        <doc xml:space="preserve"
             filename="gmime-stream-mem.h"
             line="44">%TRUE if this stream owns the memory buffer</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="StreamMemClass"
            c:type="GMimeStreamMemClass"
            glib:is-gtype-struct-for="StreamMem">
      <source-position filename="gmime-stream-mem.h" line="58"/>
      <field name="parent_class">
        <type name="StreamClass" c:type="GMimeStreamClass"/>
      </field>
    </record>
    <class name="StreamMmap"
           c:symbol-prefix="stream_mmap"
           c:type="GMimeStreamMmap"
           parent="Stream"
           glib:type-name="GMimeStreamMmap"
           glib:get-type="g_mime_stream_mmap_get_type"
           glib:type-struct="StreamMmapClass">
      <doc xml:space="preserve"
           filename="gmime-stream-mmap.h"
           line="39">A memory-mapped #GMimeStream.</doc>
      <source-position filename="gmime-stream-mmap.h" line="64"/>
      <constructor name="new" c:identifier="g_mime_stream_mmap_new">
        <doc xml:space="preserve"
             filename="gmime-stream-mmap.c"
             line="373">Creates a new #GMimeStreamMmap object around @fd.</doc>
        <source-position filename="gmime-stream-mmap.h" line="69"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-mmap.c"
               line="381">a stream using @fd.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mmap.c"
                 line="375">file descriptor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="prot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mmap.c"
                 line="376">protection flags</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mmap.c"
                 line="377">map flags</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_bounds"
                   c:identifier="g_mime_stream_mmap_new_with_bounds">
        <doc xml:space="preserve"
             filename="gmime-stream-mmap.c"
             line="399">Creates a new #GMimeStreamMmap object around @fd with bounds @start
and @end.</doc>
        <source-position filename="gmime-stream-mmap.h" line="70"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-mmap.c"
               line="410">a stream using @fd with bounds @start and @end.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mmap.c"
                 line="401">file descriptor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="prot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mmap.c"
                 line="402">protection flags</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mmap.c"
                 line="403">map flags</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mmap.c"
                 line="404">start boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mmap.c"
                 line="405">end boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_owner"
              c:identifier="g_mime_stream_mmap_get_owner"
              version="3.2">
        <doc xml:space="preserve"
             filename="gmime-stream-mmap.c"
             line="447">Gets whether or not @stream owns the backend file descriptor.</doc>
        <source-position filename="gmime-stream-mmap.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-mmap.c"
               line="453">%TRUE if @stream owns the backend file descriptor or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mmap.c"
                 line="449">a #GMimeStreamFs</doc>
            <type name="StreamMmap" c:type="GMimeStreamMmap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_owner"
              c:identifier="g_mime_stream_mmap_set_owner"
              version="3.2">
        <doc xml:space="preserve"
             filename="gmime-stream-mmap.c"
             line="467">Sets whether or not @stream owns the backend file descriptor.

Note: @owner should be %TRUE if the stream should close() the
backend file descriptor when destroyed or %FALSE otherwise.</doc>
        <source-position filename="gmime-stream-mmap.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mmap.c"
                 line="469">a #GMimeStreamMmap</doc>
            <type name="StreamMmap" c:type="GMimeStreamMmap*"/>
          </instance-parameter>
          <parameter name="owner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-mmap.c"
                 line="470">%TRUE if this stream should own the file descriptor or %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-stream-mmap.h"
             line="41">parent #GMimeStream</doc>
        <type name="Stream" c:type="GMimeStream"/>
      </field>
      <field name="owner">
        <doc xml:space="preserve"
             filename="gmime-stream-mmap.h"
             line="42">%TRUE if this stream owns the memory map</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="eos">
        <doc xml:space="preserve"
             filename="gmime-stream-mmap.h"
             line="43">%TRUE if end-of-stream</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="fd">
        <doc xml:space="preserve"
             filename="gmime-stream-mmap.h"
             line="44">file descriptor</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="map">
        <doc xml:space="preserve"
             filename="gmime-stream-mmap.h"
             line="45">memory map</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="maplen">
        <doc xml:space="preserve"
             filename="gmime-stream-mmap.h"
             line="46">length of the memory map</doc>
        <type name="gsize" c:type="size_t"/>
      </field>
    </class>
    <record name="StreamMmapClass"
            c:type="GMimeStreamMmapClass"
            glib:is-gtype-struct-for="StreamMmap">
      <source-position filename="gmime-stream-mmap.h" line="64"/>
      <field name="parent_class">
        <type name="StreamClass" c:type="GMimeStreamClass"/>
      </field>
    </record>
    <class name="StreamNull"
           c:symbol-prefix="stream_null"
           c:type="GMimeStreamNull"
           parent="Stream"
           glib:type-name="GMimeStreamNull"
           glib:get-type="g_mime_stream_null_get_type"
           glib:type-struct="StreamNullClass">
      <doc xml:space="preserve"
           filename="gmime-stream-null.h"
           line="40">A #GMimeStream which has no backing store.</doc>
      <source-position filename="gmime-stream-null.h" line="61"/>
      <constructor name="new" c:identifier="g_mime_stream_null_new">
        <doc xml:space="preserve"
             filename="gmime-stream-null.c"
             line="241">Creates a new #GMimeStreamNull object.</doc>
        <source-position filename="gmime-stream-null.h" line="66"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-null.c"
               line="246">a new null stream (similar to /dev/null on Unix).</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
      </constructor>
      <method name="get_count_newlines"
              c:identifier="g_mime_stream_null_get_count_newlines">
        <doc xml:space="preserve"
             filename="gmime-stream-null.c"
             line="277">Gets whether or not the stream should keep track of the number of newlines
encountered.</doc>
        <source-position filename="gmime-stream-null.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-null.c"
               line="284">%TRUE if the stream should count the number of newlines or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-null.c"
                 line="279">a #GMimeStreamNull</doc>
            <type name="StreamNull" c:type="GMimeStreamNull*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_count_newlines"
              c:identifier="g_mime_stream_null_set_count_newlines">
        <doc xml:space="preserve"
             filename="gmime-stream-null.c"
             line="260">Sets whether or not the stream should keep track of the number of newlines
encountered.</doc>
        <source-position filename="gmime-stream-null.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-null.c"
                 line="262">a #GMimeStreamNull</doc>
            <type name="StreamNull" c:type="GMimeStreamNull*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-null.c"
                 line="263">%TRUE if newlines should be counted or %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-stream-null.h"
             line="42">parent #GMimeStream</doc>
        <type name="Stream" c:type="GMimeStream"/>
      </field>
      <field name="written">
        <doc xml:space="preserve"
             filename="gmime-stream-null.h"
             line="43">number of bytes written to this stream</doc>
        <type name="gsize" c:type="size_t"/>
      </field>
      <field name="newlines">
        <doc xml:space="preserve"
             filename="gmime-stream-null.h"
             line="44">the number of newlines written to this stream</doc>
        <type name="gsize" c:type="size_t"/>
      </field>
      <field name="count_newlines">
        <doc xml:space="preserve"
             filename="gmime-stream-null.h"
             line="45">whether or not the stream should count newlines</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="StreamNullClass"
            c:type="GMimeStreamNullClass"
            glib:is-gtype-struct-for="StreamNull">
      <source-position filename="gmime-stream-null.h" line="61"/>
      <field name="parent_class">
        <type name="StreamClass" c:type="GMimeStreamClass"/>
      </field>
    </record>
    <class name="StreamPipe"
           c:symbol-prefix="stream_pipe"
           c:type="GMimeStreamPipe"
           parent="Stream"
           glib:type-name="GMimeStreamPipe"
           glib:get-type="g_mime_stream_pipe_get_type"
           glib:type-struct="StreamPipeClass">
      <doc xml:space="preserve"
           filename="gmime-stream-pipe.h"
           line="39">A #GMimeStream wrapper around pipes.</doc>
      <source-position filename="gmime-stream-pipe.h" line="59"/>
      <constructor name="new" c:identifier="g_mime_stream_pipe_new">
        <doc xml:space="preserve"
             filename="gmime-stream-pipe.c"
             line="301">Creates a new #GMimeStreamPipe object around @fd.</doc>
        <source-position filename="gmime-stream-pipe.h" line="64"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-pipe.c"
               line="307">a stream using @fd.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-pipe.c"
                 line="303">a pipe descriptor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_owner" c:identifier="g_mime_stream_pipe_get_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-pipe.c"
             line="324">Gets whether or not @stream owns the backend pipe descriptor.</doc>
        <source-position filename="gmime-stream-pipe.h" line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-pipe.c"
               line="330">%TRUE if @stream owns the backend pipe descriptor or %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-pipe.c"
                 line="326">a #GMimeStreamPipe</doc>
            <type name="StreamPipe" c:type="GMimeStreamPipe*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_owner" c:identifier="g_mime_stream_pipe_set_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-pipe.c"
             line="342">Sets whether or not @stream owns the backend pipe descriptor.

Note: @owner should be %TRUE if the stream should close() the
backend pipe descriptor when destroyed or %FALSE otherwise.</doc>
        <source-position filename="gmime-stream-pipe.h" line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-pipe.c"
                 line="344">a #GMimeStreamPipe</doc>
            <type name="StreamPipe" c:type="GMimeStreamPipe*"/>
          </instance-parameter>
          <parameter name="owner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-pipe.c"
                 line="345">owner</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-stream-pipe.h"
             line="41">parent #GMimeStream</doc>
        <type name="Stream" c:type="GMimeStream"/>
      </field>
      <field name="owner">
        <doc xml:space="preserve"
             filename="gmime-stream-pipe.h"
             line="42">%TRUE if this stream owns @fd</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="eos">
        <doc xml:space="preserve"
             filename="gmime-stream-pipe.h"
             line="43">%TRUE if end-of-stream</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="fd">
        <doc xml:space="preserve"
             filename="gmime-stream-pipe.h"
             line="44">pipe descriptor</doc>
        <type name="gint" c:type="int"/>
      </field>
    </class>
    <record name="StreamPipeClass"
            c:type="GMimeStreamPipeClass"
            glib:is-gtype-struct-for="StreamPipe">
      <source-position filename="gmime-stream-pipe.h" line="59"/>
      <field name="parent_class">
        <type name="StreamClass" c:type="GMimeStreamClass"/>
      </field>
    </record>
    <function-macro name="TEXT_PART"
                    c:identifier="GMIME_TEXT_PART"
                    introspectable="0">
      <source-position filename="gmime-text-part.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_PART_CLASS"
                    c:identifier="GMIME_TEXT_PART_CLASS"
                    introspectable="0">
      <source-position filename="gmime-text-part.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_PART_GET_CLASS"
                    c:identifier="GMIME_TEXT_PART_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-text-part.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="TextPart"
           c:symbol-prefix="text_part"
           c:type="GMimeTextPart"
           parent="Part"
           glib:type-name="GMimeTextPart"
           glib:get-type="g_mime_text_part_get_type"
           glib:type-struct="TextPartClass">
      <doc xml:space="preserve"
           filename="gmime-text-part.h"
           line="39">A text MIME part object.</doc>
      <source-position filename="gmime-text-part.h" line="53"/>
      <constructor name="new" c:identifier="g_mime_text_part_new">
        <doc xml:space="preserve"
             filename="gmime-text-part.c"
             line="104">Creates a new text MIME part object with a default content-type of
text/plain.</doc>
        <source-position filename="gmime-text-part.h" line="59"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-text-part.c"
               line="110">an empty MIME Part object with a default content-type of
text/plain.</doc>
          <type name="TextPart" c:type="GMimeTextPart*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_subtype"
                   c:identifier="g_mime_text_part_new_with_subtype">
        <doc xml:space="preserve"
             filename="gmime-text-part.c"
             line="120">Creates a new text MIME part with a sepcified subtype.</doc>
        <source-position filename="gmime-text-part.h" line="60"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-text-part.c"
               line="126">an empty text MIME part object with the specified subtype.</doc>
          <type name="TextPart" c:type="GMimeTextPart*"/>
        </return-value>
        <parameters>
          <parameter name="subtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-text-part.c"
                 line="122">textual subtype string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_charset" c:identifier="g_mime_text_part_get_charset">
        <doc xml:space="preserve"
             filename="gmime-text-part.c"
             line="164">Gets the value of the charset parameter on the Content-Type header.</doc>
        <source-position filename="gmime-text-part.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-text-part.c"
               line="170">the value of the charset parameter or %NULL if unavailable.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-text-part.c"
                 line="166">a #GMimeTextPart</doc>
            <type name="TextPart" c:type="GMimeTextPart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="g_mime_text_part_get_text">
        <doc xml:space="preserve"
             filename="gmime-text-part.c"
             line="254">Gets the text content of the @mime_part as a string.</doc>
        <source-position filename="gmime-text-part.h" line="66"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-text-part.c"
               line="260">a newly allocated string containing the utf-8 encoded text content.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-text-part.c"
                 line="256">a #GMimeTextPart</doc>
            <type name="TextPart" c:type="GMimeTextPart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_charset" c:identifier="g_mime_text_part_set_charset">
        <doc xml:space="preserve"
             filename="gmime-text-part.c"
             line="144">Sets the charset parameter on the Content-Type header to the specified value.</doc>
        <source-position filename="gmime-text-part.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-text-part.c"
                 line="146">a #GMimeTextPart</doc>
            <type name="TextPart" c:type="GMimeTextPart*"/>
          </instance-parameter>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-text-part.c"
                 line="147">the name of the charset</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text" c:identifier="g_mime_text_part_set_text">
        <doc xml:space="preserve"
             filename="gmime-text-part.c"
             line="185">Sets the specified text as the content and updates the charset parameter on the Content-Type header.</doc>
        <source-position filename="gmime-text-part.h" line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_part" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-text-part.c"
                 line="187">a #GMimeTextPart</doc>
            <type name="TextPart" c:type="GMimeTextPart*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-text-part.c"
                 line="188">the text in utf-8</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-text-part.h"
             line="41">parent #GMimePart</doc>
        <type name="Part" c:type="GMimePart"/>
      </field>
    </class>
    <record name="TextPartClass"
            c:type="GMimeTextPartClass"
            glib:is-gtype-struct-for="TextPart">
      <source-position filename="gmime-text-part.h" line="53"/>
      <field name="parent_class">
        <type name="PartClass" c:type="GMimePartClass"/>
      </field>
    </record>
    <enumeration name="Trust" c:type="GMimeTrust">
      <doc xml:space="preserve"
           filename="gmime-certificate.h"
           line="122">The trust level of a certificate.  Trust level tries to answer the
question: "How much is the user willing to rely on cryptographic
identity assertions made by the owner of this certificate?"

By way of comparison with web browser X.509 certificate validation
stacks, the certificate of a "Root CA" has @GMIME_TRUST_ULTIMATE,
while the certificate of an intermediate CA has @GMIME_TRUST_FULL,
and an end-entity certificate (e.g., with CA:FALSE set) would have
@GMIME_TRUST_NEVER.</doc>
      <source-position filename="gmime-certificate.h" line="148"/>
      <member name="unknown" value="0" c:identifier="GMIME_TRUST_UNKNOWN">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="124">We do not know whether to rely on identity assertions made by the certificate.</doc>
      </member>
      <member name="undefined" value="1" c:identifier="GMIME_TRUST_UNDEFINED">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="125">We do not have enough information to decide whether to rely on identity assertions made by the certificate.</doc>
      </member>
      <member name="never" value="2" c:identifier="GMIME_TRUST_NEVER">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="126">We should never rely on identity assertions made by the certificate.</doc>
      </member>
      <member name="marginal" value="3" c:identifier="GMIME_TRUST_MARGINAL">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="127">We can rely on identity assertions made by this certificate as long as they are corroborated by other marginally-trusted certificates.</doc>
      </member>
      <member name="full" value="4" c:identifier="GMIME_TRUST_FULL">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="128">We can rely on identity assertions made by this certificate.</doc>
      </member>
      <member name="ultimate" value="5" c:identifier="GMIME_TRUST_ULTIMATE">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="129">This certificate is an undeniable root of trust (e.g. normally, this is a certificate controlled by the user themselves).</doc>
      </member>
    </enumeration>
    <constant name="UUDECODE_STATE_BEGIN"
              value="65536"
              c:type="GMIME_UUDECODE_STATE_BEGIN">
      <doc xml:space="preserve"
           filename="gmime-encodings.h"
           line="123">State for the g_mime_encoding_uudecode_step() function, denoting that
the 'begin' line has been found.</doc>
      <source-position filename="gmime-encodings.h" line="129"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="UUDECODE_STATE_END"
              value="131072"
              c:type="GMIME_UUDECODE_STATE_END">
      <doc xml:space="preserve"
           filename="gmime-encodings.h"
           line="132">State for the g_mime_encoding_uudecode_step() function, denoting that
the end of the UU encoded block has been found.</doc>
      <source-position filename="gmime-encodings.h" line="138"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="UUDECODE_STATE_INIT"
              value="0"
              c:type="GMIME_UUDECODE_STATE_INIT">
      <doc xml:space="preserve"
           filename="gmime-encodings.h"
           line="115">Initial state for the g_mime_encoding_uudecode_step() function.</doc>
      <source-position filename="gmime-encodings.h" line="120"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="UUDECODE_STATE_MASK"
              value="0"
              c:type="GMIME_UUDECODE_STATE_MASK">
      <source-position filename="gmime-encodings.h" line="139"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="UUENCODE_LEN"
                    c:identifier="GMIME_UUENCODE_LEN"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-encodings.h"
           line="102">Calculates the maximum number of bytes needed to uuencode the full
input buffer of length @x.</doc>
      <source-position filename="gmime-encodings.h" line="112"/>
      <parameters>
        <parameter name="x">
          <doc xml:space="preserve"
               filename="gmime-encodings.h"
               line="104">Length of the input data to encode</doc>
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="Validity" c:type="GMimeValidity">
      <doc xml:space="preserve"
           filename="gmime-certificate.h"
           line="150">The validity level of a certificate's User ID.  Validity level
tries to answer the question: "How strongly do we believe that this
certificate belongs to the party it says it belongs to?"

Note that some OpenPGP certificates have multiple User IDs, and
each User ID may have a different validity level (e.g. depending on
which third parties have certified which User IDs, and which third
parties the local user has chosen to trust).

Similarly, an X.509 certificate can have multiple SubjectAltNames,
and each name may also have a different validity level (e.g. if the
issuing CA is bound by name constraints).

Note that the GMime API currently only exposes the highest-validty
User ID for any given certificate.</doc>
      <source-position filename="gmime-certificate.h" line="182"/>
      <member name="unknown" value="0" c:identifier="GMIME_VALIDITY_UNKNOWN">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="152">The User ID of the certificate is of unknown validity.</doc>
      </member>
      <member name="undefined"
              value="1"
              c:identifier="GMIME_VALIDITY_UNDEFINED">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="153">The User ID of the certificate is undefined.</doc>
      </member>
      <member name="never" value="2" c:identifier="GMIME_VALIDITY_NEVER">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="154">The User ID of the certificate is never to be treated as valid.</doc>
      </member>
      <member name="marginal" value="3" c:identifier="GMIME_VALIDITY_MARGINAL">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="155">The User ID of the certificate is marginally valid (e.g. it has been certified by only one marginally-trusted party).</doc>
      </member>
      <member name="full" value="4" c:identifier="GMIME_VALIDITY_FULL">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="156">The User ID of the certificate is fully valid.</doc>
      </member>
      <member name="ultimate" value="5" c:identifier="GMIME_VALIDITY_ULTIMATE">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="157">The User ID of the certificate is ultimately valid (i.e., usually the certificate belongs to the local user themselves).</doc>
      </member>
    </enumeration>
    <bitfield name="VerifyFlags" c:type="GMimeVerifyFlags">
      <doc xml:space="preserve"
           filename="gmime-crypto-context.h"
           line="119">Signature verification flags.</doc>
      <source-position filename="gmime-crypto-context.h" line="131"/>
      <member name="none" value="0" c:identifier="GMIME_VERIFY_NONE">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="121">No flags specified.</doc>
      </member>
      <member name="enable_keyserver_lookups"
              value="32768"
              c:identifier="GMIME_VERIFY_ENABLE_KEYSERVER_LOOKUPS">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="122">Enable OpenPGP keyserver lookups.</doc>
      </member>
      <member name="enable_online_certificate_checks"
              value="32768"
              c:identifier="GMIME_VERIFY_ENABLE_ONLINE_CERTIFICATE_CHECKS">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="123">Enable CRL and OCSP checks that require network lookups.</doc>
      </member>
    </bitfield>
    <constant name="YDECODE_STATE_BEGIN"
              value="4096"
              c:type="GMIME_YDECODE_STATE_BEGIN">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.h"
           line="77">State bit that denotes the yEnc filter has found the =ybegin line.</doc>
      <source-position filename="gmime-filter-yenc.h" line="82"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="YDECODE_STATE_DECODE"
              value="16384"
              c:type="GMIME_YDECODE_STATE_DECODE">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.h"
           line="92">State bit that denotes yEnc filter has begun decoding the actual
yencoded content and will continue to do so until an =yend line is
found (or until there is nothing left to decode).</doc>
      <source-position filename="gmime-filter-yenc.h" line="99"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="YDECODE_STATE_END"
              value="32768"
              c:type="GMIME_YDECODE_STATE_END">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.h"
           line="101">State bit that denoates that g_mime_ydecode_step() has finished
decoding.</doc>
      <source-position filename="gmime-filter-yenc.h" line="107"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="YDECODE_STATE_EOLN"
              value="256"
              c:type="GMIME_YDECODE_STATE_EOLN">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.h"
           line="56">State bit that denotes the yEnc filter has reached an end-of-line.

This state is for internal use only.</doc>
      <source-position filename="gmime-filter-yenc.h" line="63"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="YDECODE_STATE_ESCAPE"
              value="512"
              c:type="GMIME_YDECODE_STATE_ESCAPE">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.h"
           line="65">State bit that denotes the yEnc filter has reached an escape
sequence.

This state is for internal use only.</doc>
      <source-position filename="gmime-filter-yenc.h" line="73"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="YDECODE_STATE_INIT"
              value="0"
              c:type="GMIME_YDECODE_STATE_INIT">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.h"
           line="40">Initial state for the g_mime_ydecode_step() function.</doc>
      <source-position filename="gmime-filter-yenc.h" line="45"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="YDECODE_STATE_PART"
              value="8192"
              c:type="GMIME_YDECODE_STATE_PART">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.h"
           line="84">State bit that denotes the yEnc filter has found the =ypart
line. (Note: not all yencoded blocks have one)</doc>
      <source-position filename="gmime-filter-yenc.h" line="90"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="YENCODE_CRC_FINAL"
                    c:identifier="GMIME_YENCODE_CRC_FINAL"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.h"
           line="116">Gets the final crc value from @crc.</doc>
      <source-position filename="gmime-filter-yenc.h" line="122"/>
      <parameters>
        <parameter name="crc">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.h"
               line="118">crc or pcrc state variable</doc>
        </parameter>
      </parameters>
    </function-macro>
    <constant name="YENCODE_CRC_INIT"
              value="-1"
              c:type="GMIME_YENCODE_CRC_INIT">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.h"
           line="109">Initial state for the crc and pcrc state variables.</doc>
      <source-position filename="gmime-filter-yenc.h" line="114"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="YENCODE_STATE_INIT"
              value="0"
              c:type="GMIME_YENCODE_STATE_INIT">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.h"
           line="47">Initial state for the g_mime_ydecode_step() function.</doc>
      <source-position filename="gmime-filter-yenc.h" line="52"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function name="charset_best"
              c:identifier="g_mime_charset_best"
              moved-to="Charset.best">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="823">Computes the best charset to use to encode this text buffer.</doc>
      <source-position filename="gmime-charset.h" line="66"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="830">the charset name best suited for the input text
or %NULL if it is ascii-safe.</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="inbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="825">a UTF-8 text buffer</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="826">input buffer length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="charset_canon_name"
              c:identifier="g_mime_charset_canon_name"
              moved-to="Charset.canon_name">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="568">Attempts to find a canonical charset name for @charset.

Note: Will normally return the same value as
g_mime_charset_iconv_name() unless the system iconv does not use
the canonical ISO charset names (such as using ISO8859-1 rather
than the canonical form ISO-8859-1).</doc>
      <source-position filename="gmime-charset.h" line="38"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="579">a canonical charset name for @charset.</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="charset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="570">charset name</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="charset_iconv_name"
              c:identifier="g_mime_charset_iconv_name"
              moved-to="Charset.iconv_name">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="441">Attempts to find an iconv-friendly charset name for @charset.</doc>
      <source-position filename="gmime-charset.h" line="39"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="447">an iconv-friendly charset name for @charset.</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="charset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="443">charset name</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="charset_iso_to_windows"
              c:identifier="g_mime_charset_iso_to_windows"
              moved-to="Charset.iso_to_windows">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="657">Maps the ISO-8859-# charset to the equivalent Windows-CP125#
charset.</doc>
      <source-position filename="gmime-charset.h" line="46"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="664">equivalent Windows charset.</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="isocharset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="659">ISO-8859-# charset</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="charset_language"
              c:identifier="g_mime_charset_language"
              moved-to="Charset.language">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="387">Attempts to find a specific language code that is specific to
@charset. Currently only handles CJK and Russian/Ukranian
charset-&gt;lang mapping. Everything else will return %NULL.</doc>
      <source-position filename="gmime-charset.h" line="36"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="395">a language code that is specific to @charset,
or %NULL on fail.</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="charset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="389">charset name</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="charset_locale_name"
              c:identifier="g_mime_charset_locale_name"
              moved-to="Charset.locale_name">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="640">Gets the user's locale charset (or iso-8859-1 by default).

Note: This function is deprecated. Use g_mime_locale_charset()
instead.</doc>
      <source-position filename="gmime-charset.h" line="43"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="648">the user's locale charset (or iso-8859-1 by default).</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
    </function>
    <function name="charset_map_init"
              c:identifier="g_mime_charset_map_init"
              moved-to="Charset.map_init">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="258">Initializes character set maps.

Note: g_mime_init() calls this routine for you.</doc>
      <source-position filename="gmime-charset.h" line="30"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="charset_map_shutdown"
              c:identifier="g_mime_charset_map_shutdown"
              moved-to="Charset.map_shutdown">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="184">Frees internal lookup tables created in g_mime_charset_map_init().</doc>
      <source-position filename="gmime-charset.h" line="31"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="charset_name"
              c:identifier="g_mime_charset_name"
              moved-to="Charset.name">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="622">Attempts to find an iconv-friendly charset name for @charset.

Note: This function is deprecated. Use g_mime_charset_iconv_name()
instead.</doc>
      <source-position filename="gmime-charset.h" line="42"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="631">an iconv-friendly charset name for @charset.</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="charset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="624">charset name</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_version" c:identifier="g_mime_check_version">
      <doc xml:space="preserve"
           filename="gmime.c"
           line="65">Checks that the GMime library version meets the requirements of the
required version.</doc>
      <source-position filename="gmime.h" line="123"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime.c"
             line="74">%TRUE if the requirement is met or %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="major" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime.c"
               line="67">Minimum major version</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="minor" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime.c"
               line="68">Minimum minor version</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="micro" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime.c"
               line="69">Minimum micro version</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="content_encoding_from_string"
              c:identifier="g_mime_content_encoding_from_string">
      <doc xml:space="preserve"
           filename="gmime-encodings.c"
           line="111">Gets the appropriate #GMimeContentEncoding enumeration value based
on the input string.</doc>
      <source-position filename="gmime-encodings.h" line="72"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="118">the #GMimeContentEncoding specified by @str or
#GMIME_CONTENT_ENCODING_DEFAULT on error.</doc>
        <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="113">a string representing a Content-Transfer-Encoding value</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="content_encoding_to_string"
              c:identifier="g_mime_content_encoding_to_string">
      <doc xml:space="preserve"
           filename="gmime-encodings.c"
           line="152">Gets the string value of the content encoding.</doc>
      <source-position filename="gmime-encodings.h" line="73"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="158">the encoding type as a string or %NULL on error. Available
values for the encoding are: #GMIME_CONTENT_ENCODING_DEFAULT,
#GMIME_CONTENT_ENCODING_7BIT, #GMIME_CONTENT_ENCODING_8BIT,
#GMIME_CONTENT_ENCODING_BINARY, #GMIME_CONTENT_ENCODING_BASE64,
#GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE and
#GMIME_CONTENT_ENCODING_UUENCODE.</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="encoding" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="154">a #GMimeContentEncoding</doc>
          <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
        </parameter>
      </parameters>
    </function>
    <function name="encoding_base64_decode_step"
              c:identifier="g_mime_encoding_base64_decode_step"
              moved-to="Encoding.base64_decode_step">
      <doc xml:space="preserve"
           filename="gmime-encodings.c"
           line="510">Decodes a chunk of base64 encoded data.</doc>
      <source-position filename="gmime-encodings.h" line="173"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="520">the number of bytes decoded (which have been dumped in
@outbuf).</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="inbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="512">input buffer</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="513">input buffer length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="outbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="514">output buffer</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="515">holds the number of bits that are stored in @save</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="save" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="516">leftover bits that have not yet been decoded</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function name="encoding_base64_encode_close"
              c:identifier="g_mime_encoding_base64_encode_close"
              moved-to="Encoding.base64_encode_close">
      <doc xml:space="preserve"
           filename="gmime-encodings.c"
           line="368">Base64 encodes the input stream to the output stream. Call this
when finished encoding data with g_mime_encoding_base64_encode_step()
to flush off the last little bit.</doc>
      <source-position filename="gmime-encodings.h" line="175"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="380">the number of bytes encoded.</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="inbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="370">input buffer</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="371">input buffer length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="outbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="372">output buffer</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="373">holds the number of bits that are stored in @save</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="save" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="374">leftover bits that have not yet been encoded</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function name="encoding_base64_encode_step"
              c:identifier="g_mime_encoding_base64_encode_step"
              moved-to="Encoding.base64_encode_step">
      <doc xml:space="preserve"
           filename="gmime-encodings.c"
           line="419">Base64 encodes a chunk of data. Performs an 'encode step', only
encodes blocks of 3 characters to the output at a time, saves
left-over state in state and save (initialise to 0 on first
invocation).</doc>
      <source-position filename="gmime-encodings.h" line="174"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="432">the number of bytes encoded.</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="inbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="421">input buffer</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="422">input buffer length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="outbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="423">output buffer</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="424">holds the number of bits that are stored in @save</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="save" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="425">leftover bits that have not yet been encoded</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function name="encoding_quoted_decode_step"
              c:identifier="g_mime_encoding_quoted_decode_step"
              moved-to="Encoding.quoted_decode_step">
      <doc xml:space="preserve"
           filename="gmime-encodings.c"
           line="1016">Decodes a block of quoted-printable encoded data. Performs a
'decode step' on a chunk of QP encoded data.</doc>
      <source-position filename="gmime-encodings.h" line="183"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="1027">the number of bytes decoded.</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="inbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="1018">input buffer</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="1019">input buffer length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="outbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="1020">output buffer</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="1021">holds the number of bits that are stored in @save</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="save" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="1022">leftover bits that have not yet been decoded</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function name="encoding_quoted_encode_close"
              c:identifier="g_mime_encoding_quoted_encode_close"
              moved-to="Encoding.quoted_encode_close">
      <doc xml:space="preserve"
           filename="gmime-encodings.c"
           line="875">Quoted-printable encodes a block of text. Call this when finished
encoding data with g_mime_encoding_quoted_encode_step() to flush off
the last little bit.</doc>
      <source-position filename="gmime-encodings.h" line="185"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="887">the number of bytes encoded.</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="inbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="877">input buffer</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="878">input buffer length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="outbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="879">output buffer</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="880">holds the number of bits that are stored in @save</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="save" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="881">leftover bits that have not yet been encoded</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function name="encoding_quoted_encode_step"
              c:identifier="g_mime_encoding_quoted_encode_step"
              moved-to="Encoding.quoted_encode_step">
      <doc xml:space="preserve"
           filename="gmime-encodings.c"
           line="922">Quoted-printable encodes a block of text. Performs an 'encode
step', saves left-over state in state and save (initialise to -1 on
first invocation).</doc>
      <source-position filename="gmime-encodings.h" line="184"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="934">the number of bytes encoded.</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="inbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="924">input buffer</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="925">input buffer length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="outbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="926">output buffer</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="927">holds the number of bits that are stored in @save</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="save" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="928">leftover bits that have not yet been encoded</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function name="encoding_uudecode_step"
              c:identifier="g_mime_encoding_uudecode_step"
              moved-to="Encoding.uudecode_step">
      <doc xml:space="preserve"
           filename="gmime-encodings.c"
           line="771">Uudecodes a chunk of data. Performs a 'decode step' on a chunk of
uuencoded data. Assumes the "begin mode filename" line has
been stripped off.</doc>
      <source-position filename="gmime-encodings.h" line="178"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="783">the number of bytes decoded.</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="inbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="773">input buffer</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="774">input buffer length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="outbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="775">output buffer</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="776">holds the number of bits that are stored in @save</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="save" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="777">leftover bits that have not yet been decoded</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function name="encoding_uuencode_close"
              c:identifier="g_mime_encoding_uuencode_close"
              moved-to="Encoding.uuencode_close">
      <doc xml:space="preserve"
           filename="gmime-encodings.c"
           line="576">Uuencodes a chunk of data. Call this when finished encoding data
with g_mime_encoding_uuencode_step() to flush off the last little bit.</doc>
      <source-position filename="gmime-encodings.h" line="180"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="588">the number of bytes encoded.</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="inbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="578">input buffer</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="579">input buffer length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="outbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="580">output buffer</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="uubuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="581">temporary buffer of 60 bytes</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="582">holds the number of bits that are stored in @save</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="save" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="583">leftover bits that have not yet been encoded</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function name="encoding_uuencode_step"
              c:identifier="g_mime_encoding_uuencode_step"
              moved-to="Encoding.uuencode_step">
      <doc xml:space="preserve"
           filename="gmime-encodings.c"
           line="654">Uuencodes a chunk of data. Performs an 'encode step', only encodes
blocks of 45 characters to the output at a time, saves left-over
state in @uubuf, @state and @save (initialize to 0 on first
invocation).</doc>
      <source-position filename="gmime-encodings.h" line="179"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-encodings.c"
             line="668">the number of bytes encoded.</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="inbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="656">input buffer</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="657">input buffer length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="outbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="658">output stream</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="uubuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="659">temporary buffer of 60 bytes</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="660">holds the number of bits that are stored in @save</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="save" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-encodings.c"
               line="661">leftover bits that have not yet been encoded</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function name="format_options_get_default"
              c:identifier="g_mime_format_options_get_default"
              moved-to="FormatOptions.get_default">
      <doc xml:space="preserve"
           filename="gmime-format-options.c"
           line="80">Gets the default format options.</doc>
      <source-position filename="gmime-format-options.h" line="76"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-format-options.c"
             line="85">the default format options.</doc>
        <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
      </return-value>
    </function>
    <docsection name="gmime">
      <doc xml:space="preserve"
           filename="gmime.c"
           line="42">Initialization, shutdown, and version-check functions.</doc>
    </docsection>
    <docsection name="gmime-application-pkcs7-mime">
      <doc xml:space="preserve"
           filename="gmime-application-pkcs7-mime.c"
           line="39">A #GMimeApplicationPkcs7Mime represents the application/pkcs7-mime MIME part.</doc>
    </docsection>
    <docsection name="gmime-autocrypt">
      <doc xml:space="preserve"
           filename="gmime-autocrypt.c"
           line="30">A #GMimeAutocryptHeader is an object containing information derived
from a message about the sender's cryptographic keys and
preferences.  It can be used in conjunction with local storage and
business logic to make a better user experience for encrypted
e-mail.</doc>
    </docsection>
    <docsection name="gmime-certificate">
      <doc xml:space="preserve"
           filename="gmime-certificate.c"
           line="31">A #GMimeCertificate is an object containing useful information about a
digital certificate as used in signing and encrypting data.</doc>
    </docsection>
    <docsection name="gmime-charset">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="68">Charset utility functions.</doc>
    </docsection>
    <docsection name="gmime-content-type">
      <doc xml:space="preserve"
           filename="gmime-content-type.c"
           line="46">A #GMimeContentType represents the pre-parsed contents of a
Content-Type header field.</doc>
    </docsection>
    <docsection name="gmime-crypto-context">
      <doc xml:space="preserve"
           filename="gmime-crypto-context.c"
           line="33">A #GMimeCryptoContext is used for encrypting, decrypting, signing
and verifying cryptographic signatures.</doc>
    </docsection>
    <docsection name="gmime-data-wrapper">
      <doc xml:space="preserve"
           filename="gmime-data-wrapper.c"
           line="31">A #GMimeDataWrapper is a wrapper object for a #GMimePart's body,
allowing clients to read the content from the backing stream
without having to know whether it is encoded/compressed/etc and not
neding to know how to undo said encoding(s).</doc>
    </docsection>
    <docsection name="gmime-disposition">
      <doc xml:space="preserve"
           filename="gmime-disposition.c"
           line="35">A #GMimeContentDisposition represents the pre-parsed contents of a
Content-Disposition header field.</doc>
    </docsection>
    <docsection name="gmime-encodings">
      <doc xml:space="preserve"
           filename="gmime-encodings.c"
           line="43">Utility functions to encode or decode MIME
Content-Transfer-Encodings.</doc>
    </docsection>
    <docsection name="gmime-filter">
      <doc xml:space="preserve"
           filename="gmime-filter.c"
           line="31">Stream filters are an efficient way of converting data from one
format to another.</doc>
    </docsection>
    <docsection name="gmime-filter-basic">
      <doc xml:space="preserve"
           filename="gmime-filter-basic.c"
           line="32">A #GMimeFilter which can encode or decode basic MIME encodings such
as Quoted-Printable, Base64 and UUEncode.</doc>
    </docsection>
    <docsection name="gmime-filter-best">
      <doc xml:space="preserve"
           filename="gmime-filter-best.c"
           line="31">A #GMimeFilter which is meant to determine the best charset and/or
transfer encoding suitable for the stream which is filtered through
it.</doc>
    </docsection>
    <docsection name="gmime-filter-charset">
      <doc xml:space="preserve"
           filename="gmime-filter-charset.c"
           line="33">A #GMimeFilter which is used for converting text from one charset
to another.</doc>
    </docsection>
    <docsection name="gmime-filter-checksum">
      <doc xml:space="preserve"
           filename="gmime-filter-checksum.c"
           line="29">Calculate a checksum for a stream.</doc>
    </docsection>
    <docsection name="gmime-filter-dos2unix">
      <doc xml:space="preserve"
           filename="gmime-filter-dos2unix.c"
           line="29">A #GMimeFilter for converting from DOS to UNIX line-endings.</doc>
    </docsection>
    <docsection name="gmime-filter-enriched">
      <doc xml:space="preserve"
           filename="gmime-filter-enriched.c"
           line="36">A #GMimeFilter used for converting text/enriched or text/rtf to HTML.</doc>
    </docsection>
    <docsection name="gmime-filter-from">
      <doc xml:space="preserve"
           filename="gmime-filter-from.c"
           line="31">A #GMimeFilter used for escaping MBox From_ lines using either the
traditional "&gt;From " or quoted-printable encoding.</doc>
    </docsection>
    <docsection name="gmime-filter-gzip">
      <doc xml:space="preserve"
           filename="gmime-filter-gzip.c"
           line="40">A #GMimeFilter used for compressing or decompressing a stream using
GNU Zip.</doc>
    </docsection>
    <docsection name="gmime-filter-html">
      <doc xml:space="preserve"
           filename="gmime-filter-html.c"
           line="42">A #GMimeFilter used for converting plain text into HTML.</doc>
    </docsection>
    <docsection name="gmime-filter-openpgp">
      <doc xml:space="preserve"
           filename="gmime-filter-openpgp.c"
           line="29">A #GMimeFilter for detecting OpenPGP markers and filtering out any content outside the bounds of said markers.</doc>
    </docsection>
    <docsection name="gmime-filter-smtp-data">
      <doc xml:space="preserve"
           filename="gmime-filter-smtp-data.c"
           line="29">A #GMimeFilter for byte-stuffing outgoing SMTP DATA.</doc>
    </docsection>
    <docsection name="gmime-filter-strip">
      <doc xml:space="preserve"
           filename="gmime-filter-strip.c"
           line="34">A #GMimeFilter used for stripping trailing whitespace from the end
of lines.</doc>
    </docsection>
    <docsection name="gmime-filter-unix2dos">
      <doc xml:space="preserve"
           filename="gmime-filter-unix2dos.c"
           line="29">A #GMimeFilter for converting from UNIX to DOS line-endings.</doc>
    </docsection>
    <docsection name="gmime-filter-windows">
      <doc xml:space="preserve"
           filename="gmime-filter-windows.c"
           line="32">A #GMimeFilter used for determining if text marked as iso-8859-##
is actually encoded in one of the Windows-CP125# charsets.</doc>
    </docsection>
    <docsection name="gmime-filter-yenc">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.c"
           line="31">A #GMimeFilter used to encode or decode the Usenet yEncoding.</doc>
    </docsection>
    <docsection name="gmime-format-options">
      <doc xml:space="preserve"
           filename="gmime-format-options.c"
           line="33">A #GMimeFormatOptions is used by GMime to determine how to serialize various objects and headers.</doc>
    </docsection>
    <docsection name="gmime-gpg-context">
      <doc xml:space="preserve"
           filename="gmime-gpg-context.c"
           line="50">A #GMimeGpgContext is a #GMimeCryptoContext that uses GnuPG to do
all of the encryption and digital signatures.</doc>
    </docsection>
    <docsection name="gmime-header">
      <doc xml:space="preserve"
           filename="gmime-header.c"
           line="42">A #GMimeHeader is a collection of rfc822 header fields and their
values.</doc>
    </docsection>
    <docsection name="gmime-iconv">
      <doc xml:space="preserve"
           filename="gmime-iconv.c"
           line="33">These functions are wrappers around the system iconv(3) routines. The
purpose of this wrapper is to use the appropriate system charset alias for
the MIME charset names given as arguments.</doc>
    </docsection>
    <docsection name="gmime-iconv-utils">
      <doc xml:space="preserve"
           filename="gmime-iconv-utils.c"
           line="40">Charset conversion utility functions.</doc>
    </docsection>
    <docsection name="gmime-message">
      <doc xml:space="preserve"
           filename="gmime-message.c"
           line="44">A #GMimeMessage represents an rfc822 message.</doc>
    </docsection>
    <docsection name="gmime-message-part">
      <doc xml:space="preserve"
           filename="gmime-message-part.c"
           line="33">A #GMimeMessagePart represents message/rfc822 and message/news MIME
parts.</doc>
    </docsection>
    <docsection name="gmime-message-partial">
      <doc xml:space="preserve"
           filename="gmime-message-partial.c"
           line="36">A #GMimeMessagePartial represents the message/partial MIME part.</doc>
    </docsection>
    <docsection name="gmime-multipart">
      <doc xml:space="preserve"
           filename="gmime-multipart.c"
           line="37">A #GMimeMultipart represents all multipart MIME container parts.</doc>
    </docsection>
    <docsection name="gmime-multipart-encrypted">
      <doc xml:space="preserve"
           filename="gmime-multipart-encrypted.c"
           line="49">A #GMimeMultipartEncrypted part is a special subclass of
#GMimeMultipart to make it easier to manipulate the
multipart/encrypted MIME type.</doc>
    </docsection>
    <docsection name="gmime-multipart-signed">
      <doc xml:space="preserve"
           filename="gmime-multipart-signed.c"
           line="50">A #GMimeMultipartSigned part is a special subclass of
#GMimeMultipart to make it easier to manipulate the
multipart/signed MIME type.</doc>
    </docsection>
    <docsection name="gmime-object">
      <doc xml:space="preserve"
           filename="gmime-object.c"
           line="37">#GMimeObject is an abstract class from which all message and MIME
parts are derived.</doc>
    </docsection>
    <docsection name="gmime-param">
      <doc xml:space="preserve"
           filename="gmime-param.c"
           line="51">A #GMimeParam is a parameter name/value pair as found on MIME
header fields such as Content-Type and Content-Disposition.</doc>
    </docsection>
    <docsection name="gmime-parser">
      <doc xml:space="preserve"
           filename="gmime-parser.c"
           line="52">A #GMimeParser parses a stream into a #GMimeMessage or other
#GMimeObject and can also handle parsing MBox formatted streams
into multiple #GMimeMessage objects.</doc>
    </docsection>
    <docsection name="gmime-parser-options">
      <doc xml:space="preserve"
           filename="gmime-parser-options.c"
           line="34">A #GMimeParserOptions is used to pass various options to #GMimeParser
and all of the various other parser functions in GMime.</doc>
    </docsection>
    <docsection name="gmime-part">
      <doc xml:space="preserve"
           filename="gmime-part.c"
           line="48">A #GMimePart represents any MIME leaf part (meaning it has no
sub-parts).</doc>
    </docsection>
    <docsection name="gmime-part-iter">
      <doc xml:space="preserve"
           filename="gmime-part-iter.c"
           line="36">#GMimePartIter is an iterator for traversing a #GMimeObject tree in
Depth-First order.</doc>
    </docsection>
    <docsection name="gmime-pkcs7-context">
      <doc xml:space="preserve"
           filename="gmime-pkcs7-context.c"
           line="50">A #GMimePkcs7Context is a #GMimeCryptoContext that uses GnuPG to do
all of the encryption and digital signatures.</doc>
    </docsection>
    <docsection name="gmime-references">
      <doc xml:space="preserve"
           filename="gmime-references.c"
           line="37">A list of Message-Ids as found in a References or In-Reply-To header.</doc>
    </docsection>
    <docsection name="gmime-signature">
      <doc xml:space="preserve"
           filename="gmime-signature.c"
           line="31">A #GMimeSignature is an object containing useful information about a
digital signature as used in signing and encrypting data.</doc>
    </docsection>
    <docsection name="gmime-stream">
      <doc xml:space="preserve"
           filename="gmime-stream.c"
           line="33">Streams are the fundamental method for reading and writing data
used by GMime. You'll probably notice that the basic API is similar
to that of the low-level Unix I/O layer (read(), write(), lseek(),
etc) with some additional nicities such as a printf-like function.</doc>
    </docsection>
    <docsection name="gmime-stream-buffer">
      <doc xml:space="preserve"
           filename="gmime-stream-buffer.c"
           line="31">A #GMimeStreamBuffer can be used on top of any other type of stream
and has 3 modes: block reads, block writes, and cached reads. Block
reads are especially useful if you will be making a lot of small
reads from a stream that accesses the file system. Block writes are
useful for very much the same reason. The final mode, cached reads,
can become memory intensive but can be very helpful when inheriting
from a stream that does not support seeking (Note: this mode is the
least tested so be careful using it).</doc>
    </docsection>
    <docsection name="gmime-stream-cat">
      <doc xml:space="preserve"
           filename="gmime-stream-cat.c"
           line="33">A #GMimeStream which chains together any number of other streams.</doc>
    </docsection>
    <docsection name="gmime-stream-file">
      <doc xml:space="preserve"
           filename="gmime-stream-file.c"
           line="38">A simple #GMimeStream implementation that sits on top of the
Standard C FILE pointer based I/O layer. Unlike #GMimeStreamFs, a
#GMimeStreamFile will typically buffer read and write operations at
the FILE level and so it may be wasteful to wrap one in a
#GMimeStreamBuffer stream.</doc>
    </docsection>
    <docsection name="gmime-stream-filter">
      <doc xml:space="preserve"
           filename="gmime-stream-filter.c"
           line="31">A #GMimeStream meant for filtering data passing through it.

This stream class is useful for converting data of one type to
another using #GMimeFilter objects.

When data passes through a #GMimeStreamFilter, it will pass through
#GMimeFilter filters in the order they were added.</doc>
    </docsection>
    <docsection name="gmime-stream-fs">
      <doc xml:space="preserve"
           filename="gmime-stream-fs.c"
           line="49">A simple #GMimeStream implementation that sits on top of the
low-level UNIX file descriptor based I/O layer.</doc>
    </docsection>
    <docsection name="gmime-stream-gio">
      <doc xml:space="preserve"
           filename="gmime-stream-gio.c"
           line="34">A simple #GMimeStream implementation that sits on top of GLib's GIO
input and output streams.</doc>
    </docsection>
    <docsection name="gmime-stream-mem">
      <doc xml:space="preserve"
           filename="gmime-stream-mem.c"
           line="32">A simple #GMimeStream implementation that uses a memory buffer for
storage.</doc>
    </docsection>
    <docsection name="gmime-stream-mmap">
      <doc xml:space="preserve"
           filename="gmime-stream-mmap.c"
           line="39">A #GMimeStream implementation using a memory-mapped file backing
store. This may be faster than #GMimeStreamFs or #GMimeStreamFile
but you'll have to do your own performance checking to be sure for
your particular application/platform.</doc>
    </docsection>
    <docsection name="gmime-stream-null">
      <doc xml:space="preserve"
           filename="gmime-stream-null.c"
           line="31">A #GMimeStream which has no real backing storage at all. This
stream is useful for dry-runs and can also be useful for
determining statistics on source data which can be written to
streams but cannot be read as a stream itself (e.g. a #GMimeObject
via g_mime_object_write_to_stream()).</doc>
    </docsection>
    <docsection name="gmime-stream-pipe">
      <doc xml:space="preserve"
           filename="gmime-stream-pipe.c"
           line="37">A simple #GMimeStream implementation that sits on top of low-level
POSIX pipes.</doc>
    </docsection>
    <docsection name="gmime-text-part">
      <doc xml:space="preserve"
           filename="gmime-text-part.c"
           line="39">A #GMimeTextPart represents any text MIME part.</doc>
    </docsection>
    <docsection name="gmime-utils">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="78">Utility functions to parse, encode and decode various MIME tokens
and encodings.</doc>
    </docsection>
    <function-macro name="iconv"
                    c:identifier="g_mime_iconv"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-iconv.h"
           line="34">The argument @cd must be a conversion descriptor created using the
function #g_mime_iconv_open.

The main case is when @inbuf is not %NULL and *inbuf is not
%NULL. In this case, the #g_mime_iconv function converts the
multibyte sequence starting at *inbuf to a multibyte sequence
starting at *outbuf. At most *inleft bytes, starting at *inbuf,
will be read. At most *outleft bytes, starting at *outbuf, will
be written.

The #g_mime_iconv function converts one multibyte character at a
time, and for each character conversion it increments *inbuf and
decrements *inleft by the number of converted input bytes, it
increments *outbuf and decrements *outleft by the number of
converted output bytes, and it updates the conversion state
contained in @cd. The conversion can stop for four reasons:

1. An invalid multibyte sequence is encountered in the input. In
this case it sets errno to %EILSEQ and returns (size_t)(-1).
*inbuf is left pointing to the beginning of the invalid multibyte
sequence.

2. The input byte sequence has been entirely converted, i.e.
*inleft has gone down to %0. In this case #g_mime_iconv returns
the number of non-reversible conversions performed during this
call.

3. An incomplete multibyte sequence is encountered in the input,
and the input byte sequence terminates after it. In this case it
sets errno to %EINVAL and returns (size_t)(-1). *inbuf is left
pointing to the beginning of the incomplete multibyte sequence.

4. The output buffer has no more room for the next converted
character. In this case it sets errno to %E2BIG and returns
(size_t)(-1).

A different case is when @inbuf is %NULL or *inbuf is %NULL, but
@outbuf is not %NULL and *outbuf is not %NULL. In this case, the
#g_mime_iconv function attempts to set @cd's conversion state to
the initial state and store a corresponding shift sequence at
*outbuf.  At most *outleft bytes, starting at *outbuf, will be
written.  If the output buffer has no more room for this reset
sequence, it sets errno to %E2BIG and returns (size_t)(-1).
Otherwise it increments *outbuf and decrements *outleft by the
number of bytes written.

A third case is when @inbuf is %NULL or *inbuf is %NULL, and
@outbuf is %NULL or *outbuf is %NULL. In this case, the
#g_mime_iconv function sets @cd's conversion state to the initial
state.</doc>
      <source-position filename="gmime-iconv.h" line="97"/>
      <parameters>
        <parameter name="cd">
          <doc xml:space="preserve"
               filename="gmime-iconv.h"
               line="36">iconv_t conversion descriptor</doc>
        </parameter>
        <parameter name="inbuf">
          <doc xml:space="preserve"
               filename="gmime-iconv.h"
               line="37">input buffer</doc>
        </parameter>
        <parameter name="inleft">
          <doc xml:space="preserve"
               filename="gmime-iconv.h"
               line="38">number of bytes left in @inbuf</doc>
        </parameter>
        <parameter name="outbuf">
          <doc xml:space="preserve"
               filename="gmime-iconv.h"
               line="39">output buffer</doc>
        </parameter>
        <parameter name="outleft">
          <doc xml:space="preserve"
               filename="gmime-iconv.h"
               line="40">number of bytes left in @outbuf</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function name="iconv_close"
              c:identifier="g_mime_iconv_close"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-iconv.c"
           line="79">Closes the iconv descriptor @cd.

See the manual page for iconv_close(3) for further details.</doc>
      <source-position filename="gmime-iconv.h" line="32"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-iconv.c"
             line="87">%0 on success or %-1 on fail as well as setting an
appropriate errno value.</doc>
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="cd"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-iconv.c"
               line="81">iconv conversion descriptor</doc>
          <type name="gpointer" c:type="iconv_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="iconv_locale_to_utf8"
              c:identifier="g_mime_iconv_locale_to_utf8">
      <doc xml:space="preserve"
           filename="gmime-iconv-utils.c"
           line="171">Allocates a new string buffer containing @str in UTF-8.</doc>
      <source-position filename="gmime-iconv-utils.h" line="35"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-iconv-utils.c"
             line="177">a new string buffer containing @str converted to UTF-8.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="173">string in locale charset</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="iconv_locale_to_utf8_length"
              c:identifier="g_mime_iconv_locale_to_utf8_length">
      <doc xml:space="preserve"
           filename="gmime-iconv-utils.c"
           line="200">Allocates a new string buffer containing the first @n bytes of
@str converted to UTF-8.</doc>
      <source-position filename="gmime-iconv-utils.h" line="36"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-iconv-utils.c"
             line="208">a new string buffer containing the first @n bytes of
@str converted to UTF-8.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="202">string in locale charset</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="203">number of bytes to convert</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="iconv_open"
              c:identifier="g_mime_iconv_open"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-iconv.c"
           line="45">Allocates a coversion descriptor suitable for converting byte
sequences from charset @from to charset @to. The resulting
descriptor can be used with iconv() (or the g_mime_iconv() wrapper) any
number of times until closed using g_mime_iconv_close().

See the manual page for iconv_open(3) for further details.</doc>
      <source-position filename="gmime-iconv.h" line="30"/>
      <return-value nullable="1">
        <doc xml:space="preserve"
             filename="gmime-iconv.c"
             line="57">a new conversion descriptor for use with g_mime_iconv() on
success or (iconv_t) %-1 on fail as well as setting an appropriate
errno value.</doc>
        <type name="gpointer" c:type="iconv_t"/>
      </return-value>
      <parameters>
        <parameter name="to" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv.c"
               line="47">charset to convert to</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="from" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv.c"
               line="48">charset to convert from</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="iconv_strdup"
              c:identifier="g_mime_iconv_strdup"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-iconv-utils.c"
           line="153">Allocates a new string buffer containing @str converted to the
destination charset described in @cd.</doc>
      <source-position filename="gmime-iconv-utils.h" line="32"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-iconv-utils.c"
             line="161">a new string buffer containing the original string
converted to the new charset.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="cd"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="155">conversion descriptor</doc>
          <type name="gpointer" c:type="iconv_t"/>
        </parameter>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="156">string in source charset</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="iconv_strndup"
              c:identifier="g_mime_iconv_strndup"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-iconv-utils.c"
           line="50">Allocates a new string buffer containing the first @n bytes of @str
converted to the destination charset as described by the conversion
descriptor @cd.</doc>
      <source-position filename="gmime-iconv-utils.h" line="33"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-iconv-utils.c"
             line="60">a new string buffer containing the first @n bytes of
@str converted to the destination charset as described by the
conversion descriptor @cd.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="cd"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="52">conversion descriptor</doc>
          <type name="gpointer" c:type="iconv_t"/>
        </parameter>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="53">string in source charset</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="54">number of bytes to convert</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="iconv_utf8_to_locale"
              c:identifier="g_mime_iconv_utf8_to_locale">
      <doc xml:space="preserve"
           filename="gmime-iconv-utils.c"
           line="232">Allocates a new string buffer containing @str converted to the
user's locale charset.</doc>
      <source-position filename="gmime-iconv-utils.h" line="38"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-iconv-utils.c"
             line="239">a new string buffer containing @str converted to the
user's locale charset.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="234">string in UTF-8 charset</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="iconv_utf8_to_locale_length"
              c:identifier="g_mime_iconv_utf8_to_locale_length">
      <doc xml:space="preserve"
           filename="gmime-iconv-utils.c"
           line="265">Allocates a new string buffer containing the first @n bytes of
@str converted to the user's locale charset.</doc>
      <source-position filename="gmime-iconv-utils.h" line="39"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-iconv-utils.c"
             line="273">a new string buffer containing the first @n bytes of
@str converted to the user's locale charset.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="267">string in UTF-8 charset</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="268">number of bytes to convert</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="init" c:identifier="g_mime_init">
      <doc xml:space="preserve"
           filename="gmime.c"
           line="92">Initializes GMime.</doc>
      <source-position filename="gmime.h" line="125"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <docsection name="internet-address">
      <doc xml:space="preserve"
           filename="internet-address.c"
           line="56">An #InternetAddress is the base class for #InternetAddressGroup and
#InternetAddressMailbox.</doc>
    </docsection>
    <docsection name="internet-address-group">
      <doc xml:space="preserve"
           filename="internet-address.c"
           line="66">An #InternetAddressGroup represents an rfc822 'group' address.</doc>
    </docsection>
    <docsection name="internet-address-list">
      <doc xml:space="preserve"
           filename="internet-address.c"
           line="85">An #InternetAddressList is a collection of #InternetAddress
objects.</doc>
    </docsection>
    <docsection name="internet-address-mailbox">
      <doc xml:space="preserve"
           filename="internet-address.c"
           line="75">An #InternetAddressMailbox represents what is a typical "email
address".</doc>
    </docsection>
    <function name="locale_charset" c:identifier="g_mime_locale_charset">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="359">Gets the user's locale charset (or iso-8859-1 by default).</doc>
      <source-position filename="gmime-charset.h" line="33"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="364">the user's locale charset (or iso-8859-1 by default).</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
    </function>
    <function name="locale_language" c:identifier="g_mime_locale_language">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="373">Gets the user's locale language code (or %NULL by default).</doc>
      <source-position filename="gmime-charset.h" line="34"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="378">the user's locale language code (or %NULL by default).</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
    </function>
    <function name="parser_options_get_default"
              c:identifier="g_mime_parser_options_get_default"
              moved-to="ParserOptions.get_default">
      <doc xml:space="preserve"
           filename="gmime-parser-options.c"
           line="99">Gets the default parser options.</doc>
      <source-position filename="gmime-parser-options.h" line="108"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-parser-options.c"
             line="104">the default parser options.</doc>
        <type name="ParserOptions" c:type="GMimeParserOptions*"/>
      </return-value>
    </function>
    <function name="references_parse"
              c:identifier="g_mime_references_parse"
              moved-to="References.parse">
      <doc xml:space="preserve"
           filename="gmime-references.c"
           line="89">Decodes a list of msg-ids as in the References and/or In-Reply-To
headers defined in rfc822.</doc>
      <source-position filename="gmime-references.h" line="50"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-references.c"
             line="97">a new #GMimeReferences containing the parsed message ids.</doc>
        <type name="References" c:type="GMimeReferences*"/>
      </return-value>
      <parameters>
        <parameter name="options"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-references.c"
               line="91">a #GMimeParserOptions or %NULL</doc>
          <type name="ParserOptions" c:type="GMimeParserOptions*"/>
        </parameter>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-references.c"
               line="92">string containing a list of msg-ids</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="shutdown" c:identifier="g_mime_shutdown">
      <doc xml:space="preserve"
           filename="gmime.c"
           line="217">Frees internally allocated tables created in g_mime_init().</doc>
      <source-position filename="gmime.h" line="126"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="utils_best_encoding"
              c:identifier="g_mime_utils_best_encoding">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="1064">Determines the best content encoding for the first @len bytes of
@text.</doc>
      <source-position filename="gmime-utils.h" line="52"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="1072">a #GMimeContentEncoding that is determined to be the best
encoding type for the specified block of text. ("best" in this
particular case means smallest output size)</doc>
        <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
      </return-value>
      <parameters>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1066">text to encode</doc>
          <array length="1" zero-terminated="0" c:type="const unsigned char*">
            <type name="guint8"/>
          </array>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1067">text length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_decode_8bit" c:identifier="g_mime_utils_decode_8bit">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="1195">Attempts to convert text in an unknown 8bit/multibyte charset into
UTF-8 by finding the charset which will convert the most bytes into
valid UTF-8 characters as possible. If no exact match can be found,
it will choose the best match and convert invalid byte sequences
into question-marks (?) in the returned string buffer.</doc>
      <source-position filename="gmime-utils.h" line="55"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="1208">a UTF-8 string representation of @text.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="options"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1197">a #GMimeParserOptions or %NULL</doc>
          <type name="ParserOptions" c:type="GMimeParserOptions*"/>
        </parameter>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1198">input text in
  unknown 8bit/multibyte character set</doc>
          <array length="2" zero-terminated="0" c:type="const char*">
            <type name="guint8"/>
          </array>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1200">input text length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_decode_message_id"
              c:identifier="g_mime_utils_decode_message_id">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="915">Decodes a msg-id as defined by rfc822.</doc>
      <source-position filename="gmime-utils.h" line="40"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="921">the addr-spec portion of the msg-id.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="message_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="917">string containing a message-id</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_generate_message_id"
              c:identifier="g_mime_utils_generate_message_id">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="794">Generates a unique Message-Id.</doc>
      <source-position filename="gmime-utils.h" line="37"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="800">a unique string in an addr-spec format suitable for use as
a Message-Id.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="fqdn" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="796">Fully qualified domain name</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_header_decode_date"
              c:identifier="g_mime_utils_header_decode_date">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="762">Parses the rfc822 date string.</doc>
      <source-position filename="gmime-utils.h" line="34"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="768">the #GDateTime representation of the date
string specified by @str or %NULL on error.</doc>
        <type name="GLib.DateTime" c:type="GDateTime*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="764">input date string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_header_decode_phrase"
              c:identifier="g_mime_utils_header_decode_phrase">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="2014">Decodes an rfc2047 encoded 'phrase' header.</doc>
      <source-position filename="gmime-utils.h" line="61"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2021">a newly allocated UTF-8 string representing the the decoded
header.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="options"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2017">a #GMimeParserOptions or %NULL</doc>
          <type name="ParserOptions" c:type="GMimeParserOptions*"/>
        </parameter>
        <parameter name="phrase" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2016">header to decode</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_header_decode_text"
              c:identifier="g_mime_utils_header_decode_text">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="1963">Decodes an rfc2047 encoded 'text' header.</doc>
      <source-position filename="gmime-utils.h" line="58"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="1970">a newly allocated UTF-8 string representing the the decoded
header.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="options"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1966">a #GMimeParserOptions or %NULL</doc>
          <type name="ParserOptions" c:type="GMimeParserOptions*"/>
        </parameter>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1965">header text to decode</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_header_encode_phrase"
              c:identifier="g_mime_utils_header_encode_phrase">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="2473">Encodes a 'phrase' header according to the rules in rfc2047.</doc>
      <source-position filename="gmime-utils.h" line="62"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2481">the encoded 'phrase'. Useful for encoding internet
addresses.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="options"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2475">a #GMimeFormatOptions or %NULL</doc>
          <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
        </parameter>
        <parameter name="phrase" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2476">phrase to encode</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="charset"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2477">the charset to use or %NULL to use the default</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_header_encode_text"
              c:identifier="g_mime_utils_header_encode_text">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="2494">Encodes a 'text' header according to the rules in rfc2047.</doc>
      <source-position filename="gmime-utils.h" line="59"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2502">the encoded header. Useful for encoding
headers like "Subject".</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="options"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2496">a #GMimeFormatOptions or %NULL</doc>
          <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
        </parameter>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2497">text to encode</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="charset"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2498">the charset to use or %NULL to use the default</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_header_format_date"
              c:identifier="g_mime_utils_header_format_date">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="194">Allocates a string buffer containing the rfc822 formatted date
string represented by @date.</doc>
      <source-position filename="gmime-utils.h" line="35"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="201">a valid string representation of the date.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="date" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="196">a #GDateTime</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_header_printf"
              c:identifier="g_mime_utils_header_printf"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="2793">Allocates a buffer containing a formatted header specified by the
@Varargs.</doc>
      <source-position filename="gmime-utils.h" line="44"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2803">an allocated string containing the folded header specified
by @text and the following arguments.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="options"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2795">a #GMimeParserOptions or %NULL</doc>
          <type name="ParserOptions" c:type="GMimeParserOptions*"/>
        </parameter>
        <parameter name="format"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2796">a #GMimeFormatOptions or %NULL</doc>
          <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
        </parameter>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2797">text with printf-style formatters</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2798">arguments</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_header_unfold"
              c:identifier="g_mime_utils_header_unfold">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="2823">Unfolds a raw header value according to the rules in rfc822.</doc>
      <source-position filename="gmime-utils.h" line="45"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2829">an allocated string containing the unfolded header value.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2825">raw header value</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_quote_string"
              c:identifier="g_mime_utils_quote_string">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="954">Quotes @string as needed according to the rules in rfc2822.</doc>
      <source-position filename="gmime-utils.h" line="47"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="960">an allocated string containing the escaped and quoted (if
needed to be) input string. The decision to quote the string is
based on whether or not the input string contains any 'specials'
as defined by rfc2822.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="956">input string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_structured_header_fold"
              c:identifier="g_mime_utils_structured_header_fold">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="2648">Folds a structured header according to the rules in rfc822.</doc>
      <source-position filename="gmime-utils.h" line="42"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2656">an allocated string containing the folded header.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="options"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2650">a #GMimeParserOptions or %NULL</doc>
          <type name="ParserOptions" c:type="GMimeParserOptions*"/>
        </parameter>
        <parameter name="format"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2651">a #GMimeFormatOptions or %NULL</doc>
          <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
        </parameter>
        <parameter name="header" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2652">header field and value string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_text_is_8bit"
              c:identifier="g_mime_utils_text_is_8bit">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="1036">Determines if @text contains 8bit characters within the first @len
bytes.</doc>
      <source-position filename="gmime-utils.h" line="51"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="1044">%TRUE if the text contains 8bit characters or %FALSE
otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1038">text to check for 8bit chars</doc>
          <array length="1" zero-terminated="0" c:type="const unsigned char*">
            <type name="guint8"/>
          </array>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1039">text length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_unquote_string"
              c:identifier="g_mime_utils_unquote_string">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="994">Unquotes and unescapes a string.</doc>
      <source-position filename="gmime-utils.h" line="48"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="996">input string</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_unstructured_header_fold"
              c:identifier="g_mime_utils_unstructured_header_fold">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="2721">Folds an unstructured header according to the rules in rfc822.</doc>
      <source-position filename="gmime-utils.h" line="43"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2729">an allocated string containing the folded header.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="options"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2723">a #GMimeParserOptions or %NULL</doc>
          <type name="ParserOptions" c:type="GMimeParserOptions*"/>
        </parameter>
        <parameter name="format"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2724">a #GMimeFormatOptions or %NULL</doc>
          <type name="FormatOptions" c:type="GMimeFormatOptions*"/>
        </parameter>
        <parameter name="header" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2725">header field and value string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="ydecode_step" c:identifier="g_mime_ydecode_step">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.c"
           line="426">Performs a 'decode step' on a chunk of yEncoded data of length
@inlen pointed to by @inbuf and writes to @outbuf. Assumes the =ybegin
and =ypart lines have already been stripped off.

To get the crc32 value of the part, use #GMIME_YENCODE_CRC_FINAL
(@pcrc). If there are more parts, you should reuse @crc without
re-initializing. Once all parts have been decoded, you may get the
combined crc32 value of all the parts using #GMIME_YENCODE_CRC_FINAL
(@crc).</doc>
      <source-position filename="gmime-filter-yenc.h" line="165"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.c"
             line="445">the number of bytes decoded.</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="inbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="428">input buffer</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="429">input buffer length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="outbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="430">output buffer</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="431">ydecode state</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="pcrc" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="432">part crc state</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
        <parameter name="crc" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="433">crc state</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function name="yencode_close" c:identifier="g_mime_yencode_close">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.c"
           line="572">Call this function when finished encoding data with
g_mime_yencode_step() to flush off the remaining state.

#GMIME_YENCODE_CRC_FINAL (@pcrc) will give you the crc32 of the
encoded "part". If there are more "parts" to encode, you should
re-use @crc when encoding the next "parts" and then use
#GMIME_YENCODE_CRC_FINAL (@crc) to get the combined crc32 value of
all the parts.</doc>
      <source-position filename="gmime-filter-yenc.h" line="169"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.c"
             line="590">the number of bytes encoded.</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="inbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="574">input buffer</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="575">input buffer length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="outbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="576">output buffer</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="577">yencode state</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="pcrc" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="578">part crc state</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
        <parameter name="crc" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="579">crc state</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function name="yencode_step" c:identifier="g_mime_yencode_step">
      <doc xml:space="preserve"
           filename="gmime-filter-yenc.c"
           line="506">Performs an yEncode 'encode step' on a chunk of raw data of length
@inlen pointed to by @inbuf and writes to @outbuf.

@state should be initialized to #GMIME_YENCODE_STATE_INIT before
beginning making the first call to this function. Subsequent calls
should reuse @state.

Along the same lines, @pcrc and @crc should be initialized to
#GMIME_YENCODE_CRC_INIT before using.</doc>
      <source-position filename="gmime-filter-yenc.h" line="167"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-filter-yenc.c"
             line="525">the number of bytes encoded.</doc>
        <type name="gsize" c:type="size_t"/>
      </return-value>
      <parameters>
        <parameter name="inbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="508">input buffer</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="inlen" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="509">input buffer length</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="outbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="510">output buffer</doc>
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="511">yencode state</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="pcrc" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="512">part crc state</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
        <parameter name="crc" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-filter-yenc.c"
               line="513">crc state</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
