<?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:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="gmime-2.6"/>
  <c:include name="gmime/gmime.h"/>
  <namespace name="GMime"
             version="2.6"
             shared-library="libgmime-2.6.so.0"
             c:identifier-prefixes="GMime"
             c:symbol-prefixes="gmime_,g_mime_">
    <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="623" 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="128">An object containing useful information about a certificate.</doc>
      <source-position filename="gmime-certificate.h" line="164"/>
      <constructor name="new" c:identifier="g_mime_certificate_new">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="115">Creates a new #GMimeCertificate object.</doc>
        <source-position filename="gmime-certificate.h" line="169"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="120">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="450">Get the creation date of the certificate's key.</doc>
        <source-position filename="gmime-certificate.h" line="199"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="456">the creation date of the certificate's key or %-1 if unknown.</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="452">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="212">Get the digest algorithm used by the certificate.</doc>
        <source-position filename="gmime-certificate.h" line="178"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="218">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="214">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="383">Get the certificate's email.</doc>
        <source-position filename="gmime-certificate.h" line="193"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="389">the certificate's email 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="385">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="483">Get the expiration date of the certificate's key.</doc>
        <source-position filename="gmime-certificate.h" line="202"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="489">the expiration date of the certificate's key or %-1 if unknown.</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="485">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="315">Get the certificate's key fingerprint.</doc>
        <source-position filename="gmime-certificate.h" line="187"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="321">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="317">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="281">Get the certificate's issuer name.</doc>
        <source-position filename="gmime-certificate.h" line="184"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="287">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="283">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="247">Get the certificate's issuer serial.</doc>
        <source-position filename="gmime-certificate.h" line="181"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="253">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="249">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="349">Get the certificate's key id.</doc>
        <source-position filename="gmime-certificate.h" line="190"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="355">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="351">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="417">Get the certificate's name.</doc>
        <source-position filename="gmime-certificate.h" line="196"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="423">the certificate's 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="419">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="178">Get the public-key algorithm used by the certificate.</doc>
        <source-position filename="gmime-certificate.h" line="175"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="184">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="180">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="145">Get the certificate trust.</doc>
        <source-position filename="gmime-certificate.h" line="172"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="151">the certificate trust.</doc>
          <type name="CertificateTrust" c:type="GMimeCertificateTrust"/>
        </return-value>
        <parameters>
          <instance-parameter name="cert" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="147">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="434">Set the creation date of the certificate's key.</doc>
        <source-position filename="gmime-certificate.h" line="198"/>
        <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="436">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="437">creation date</doc>
            <type name="glong" 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="196">Set the digest algorithm used by the certificate.</doc>
        <source-position filename="gmime-certificate.h" line="177"/>
        <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="198">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="199">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="366">Set the certificate's email.</doc>
        <source-position filename="gmime-certificate.h" line="192"/>
        <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="368">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="369">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="467">Set the expiration date of the certificate's key.</doc>
        <source-position filename="gmime-certificate.h" line="201"/>
        <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="469">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="470">expiration date</doc>
            <type name="glong" 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="298">Set the certificate's key fingerprint.</doc>
        <source-position filename="gmime-certificate.h" line="186"/>
        <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="300">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="301">fingerprint string</doc>
            <type name="utf8" c:type="const char*"/>
          </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="264">Set the certificate's issuer name.</doc>
        <source-position filename="gmime-certificate.h" line="183"/>
        <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="266">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="267">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="230">Set the certificate's issuer serial.</doc>
        <source-position filename="gmime-certificate.h" line="180"/>
        <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="232">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="233">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="332">Set the certificate's key id.</doc>
        <source-position filename="gmime-certificate.h" line="189"/>
        <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="334">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="335">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="400">Set the certificate's name.</doc>
        <source-position filename="gmime-certificate.h" line="195"/>
        <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="402">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="403">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="162">Set the public-key algorithm used by the certificate.</doc>
        <source-position filename="gmime-certificate.h" line="174"/>
        <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="164">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="165">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="129">Set the certificate trust.</doc>
        <source-position filename="gmime-certificate.h" line="171"/>
        <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="131">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="132">a #GMimeCertificateTrust value</doc>
            <type name="CertificateTrust" c:type="GMimeCertificateTrust"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="130">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="pubkey_algo">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="131">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="132">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="133">The level of trust assigned to this certificate.</doc>
        <type name="CertificateTrust" c:type="GMimeCertificateTrust"/>
      </field>
      <field name="issuer_serial">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="134">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="135">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="136">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="137">The creation date of the certificate.</doc>
        <type name="glong" c:type="time_t"/>
      </field>
      <field name="expires">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="138">The expiration date of the certificate.</doc>
        <type name="glong" c:type="time_t"/>
      </field>
      <field name="keyid">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="139">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="140">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="141">The name of the person or entity.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
    </class>
    <record name="CertificateClass"
            c:type="GMimeCertificateClass"
            glib:is-gtype-struct-for="Certificate">
      <source-position filename="gmime-certificate.h" line="164"/>
      <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="205">A collection of #GMimeCertificate objects.</doc>
      <source-position filename="gmime-certificate.h" line="220"/>
      <constructor name="new" c:identifier="g_mime_certificate_list_new">
        <doc xml:space="preserve"
             filename="gmime-certificate.c"
             line="567">Creates a new #GMimeCertificateList.</doc>
        <source-position filename="gmime-certificate.h" line="225"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="572">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="621">Adds a #GMimeCertificate to the #GMimeCertificateList.</doc>
        <source-position filename="gmime-certificate.h" line="231"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="628">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="623">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="624">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="598">Clears the list of addresses.</doc>
        <source-position filename="gmime-certificate.h" line="229"/>
        <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="600">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="739">Checks whether or not the specified #GMimeCertificate is contained within
the #GMimeCertificateList.</doc>
        <source-position filename="gmime-certificate.h" line="236"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="747">%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="741">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="742">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="786">Gets the #GMimeCertificate at the specified index.</doc>
        <source-position filename="gmime-certificate.h" line="239"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="793">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="788">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="789">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="757">Gets the index of the specified #GMimeCertificate inside the
#GMimeCertificateList.</doc>
        <source-position filename="gmime-certificate.h" line="237"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="765">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="759">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="760">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="646">Inserts a #GMimeCertificate into the #GMimeCertificateList at the specified
index.</doc>
        <source-position filename="gmime-certificate.h" line="232"/>
        <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="648">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="649">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="650">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="581">Gets the length of the list.</doc>
        <source-position filename="gmime-certificate.h" line="227"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="587">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="583">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="683">Removes a #GMimeCertificate from the #GMimeCertificateList.</doc>
        <source-position filename="gmime-certificate.h" line="233"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="690">%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="685">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="686">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="710">Removes a #GMimeCertificate from the #GMimeCertificateList at the specified
index.</doc>
        <source-position filename="gmime-certificate.h" line="234"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-certificate.c"
               line="718">%TRUE if an #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="712">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="713">index 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="809">Sets the #GMimeCertificate at the specified index to @cert.</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="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-certificate.c"
                 line="811">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="812">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="813">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="207">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="array">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="208">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="220"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="CertificateTrust" c:type="GMimeCertificateTrust">
      <doc xml:space="preserve"
           filename="gmime-certificate.h"
           line="108">The trust value of a certificate.</doc>
      <source-position filename="gmime-certificate.h" line="126"/>
      <member name="none"
              value="0"
              c:identifier="GMIME_CERTIFICATE_TRUST_NONE">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="110">No trust assigned.</doc>
      </member>
      <member name="never"
              value="1"
              c:identifier="GMIME_CERTIFICATE_TRUST_NEVER">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="111">Never trust this certificate.</doc>
      </member>
      <member name="undefined"
              value="2"
              c:identifier="GMIME_CERTIFICATE_TRUST_UNDEFINED">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="112">Undefined trust for this certificate.</doc>
      </member>
      <member name="marginal"
              value="3"
              c:identifier="GMIME_CERTIFICATE_TRUST_MARGINAL">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="113">Trust this certificate maginally.</doc>
      </member>
      <member name="fully"
              value="4"
              c:identifier="GMIME_CERTIFICATE_TRUST_FULLY">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="114">Trust this certificate fully.</doc>
      </member>
      <member name="ultimate"
              value="5"
              c:identifier="GMIME_CERTIFICATE_TRUST_ULTIMATE">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="115">Trust this certificate ultimately.</doc>
      </member>
    </enumeration>
    <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="780">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">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="786">a pointer to a string containing the best charset name that
can represent the charset mask @charset.</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="782">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="823">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="832">%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="825">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="826">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="827">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="828">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="696">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="698">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="710">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="712">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="713">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="714">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="801">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">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="808">the charset name best suited for the input text or %NULL if
it is US-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="803">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="804">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="546">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="557">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="548">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="418">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="424">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="420">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="635">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="642">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="637">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="376">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">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="384">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="378">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="618">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="626">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="246">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="183">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="600">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="609">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="602">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="180">A cipher algorithm.</doc>
      <source-position filename="gmime-crypto-context.h" line="210"/>
      <member name="default"
              value="0"
              c:identifier="GMIME_CIPHER_ALGO_DEFAULT">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="182">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="183">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="184">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="185">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="186">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="187">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="188">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="189">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="190">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="191">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="192">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="193">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="82"/>
      <constructor name="new" c:identifier="g_mime_content_disposition_new">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="111">Creates a new #GMimeContentDisposition object.</doc>
        <source-position filename="gmime-disposition.h" line="87"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="116">a new #GMimeContentDisposition object.</doc>
          <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_string"
                   c:identifier="g_mime_content_disposition_new_from_string">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="130">Creates a new #GMimeContentDisposition object.</doc>
        <source-position filename="gmime-disposition.h" line="88"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="136">a new #GMimeContentDisposition object.</doc>
          <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="132">Content-Disposition field value or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_disposition"
              c:identifier="g_mime_content_disposition_get_disposition">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="200">Gets the disposition or %NULL on fail.</doc>
        <source-position filename="gmime-disposition.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="206">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="202">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="294">Gets the parameter value specified by @name if it's available.</doc>
        <source-position filename="gmime-disposition.h" line="98"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="301">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="296">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="297">parameter name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_params"
              c:identifier="g_mime_content_disposition_get_params">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="244">Gets the Content-Disposition parameter list.</doc>
        <source-position filename="gmime-disposition.h" line="94"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="250">the list of #GMimeParam's set on @disposition.</doc>
          <type name="Param" c:type="const GMimeParam*"/>
        </return-value>
        <parameters>
          <instance-parameter name="disposition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="246">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"
              version="2.6.21">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="320">Determines if a Content-Disposition has a value of "attachment".</doc>
        <source-position filename="gmime-disposition.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="326">%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="322">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="174">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="90"/>
        <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="176">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="177">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="261">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="96"/>
        <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="263">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="264">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="265">parameter value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_params"
              c:identifier="g_mime_content_disposition_set_params">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="218">Sets the Content-Disposition's parameter list.</doc>
        <source-position filename="gmime-disposition.h" line="93"/>
        <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="220">a #GMimeContentDisposition object</doc>
            <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
          </instance-parameter>
          <parameter name="params" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="221">a list of #GMimeParam objects</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string"
              c:identifier="g_mime_content_disposition_to_string">
        <doc xml:space="preserve"
             filename="gmime-disposition.c"
             line="339">Allocates a string buffer containing the Content-Disposition header
represented by the disposition object @disposition.</doc>
        <source-position filename="gmime-disposition.h" line="103"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-disposition.c"
               line="347">a string containing the disposition header</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="341">a #GMimeContentDisposition object</doc>
            <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
          </instance-parameter>
          <parameter name="fold" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-disposition.c"
                 line="342">fold header if needed</doc>
            <type name="gboolean" c:type="gboolean"/>
          </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="param_hash">
        <doc xml:space="preserve"
             filename="gmime-disposition.h"
             line="61">parameter hash table keyed by param name</doc>
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer" c:type="gpointer"/>
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="params">
        <doc xml:space="preserve"
             filename="gmime-disposition.h"
             line="62">a #GMimeParam list</doc>
        <type name="Param" c:type="GMimeParam*"/>
      </field>
      <field name="priv">
        <doc xml:space="preserve"
             filename="gmime-disposition.h"
             line="63">private fields</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="disposition">
        <doc xml:space="preserve"
             filename="gmime-disposition.h"
             line="64">disposition</doc>
        <type name="utf8" c:type="char*"/>
      </field>
    </class>
    <record name="ContentDispositionClass"
            c:type="GMimeContentDispositionClass"
            glib:is-gtype-struct-for="ContentDisposition">
      <source-position filename="gmime-disposition.h" line="82"/>
      <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="68"/>
      <constructor name="new" c:identifier="g_mime_content_type_new">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="124">Creates a Content-Type object with type @type and subtype @subtype.</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="131">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="126">MIME type (or %NULL for "text")</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="127">MIME subtype (or %NULL for "plain")</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_string"
                   c:identifier="g_mime_content_type_new_from_string">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="169">Constructs a new Content-Type object based on the input string.</doc>
        <source-position filename="gmime-content-type.h" line="74"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="175">a new #GMimeContentType object based on the input string.</doc>
          <type name="ContentType" c:type="GMimeContentType*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="171">input string containing a content-type (and params)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_media_subtype"
              c:identifier="g_mime_content_type_get_media_subtype">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="335">Gets the Content-Type's media sub-type.</doc>
        <source-position filename="gmime-content-type.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="341">the Content-Type's media sub-type.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="337">a #GMimeContentType object</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="295">Gets the Content-Type's media 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="301">the Content-Type's media type.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="297">a #GMimeContentType object</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="428">Gets the parameter value specified by @name if it's available.</doc>
        <source-position filename="gmime-content-type.h" line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="435">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="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="430">a #GMimeContentType object</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="431">parameter name (aka attribute)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_params" c:identifier="g_mime_content_type_get_params">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="378">Gets the Content-Type's parameter list.</doc>
        <source-position filename="gmime-content-type.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="384">the Content-Type's parameter list.</doc>
          <type name="Param" c:type="const GMimeParam*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="380">a #GMimeContentType object</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="237">Compares the given type and subtype with that of the given mime
type object.</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="246">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="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="239">a #GMimeContentType object</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="240">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="241">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="312">Sets the Content-Type's media subtype.</doc>
        <source-position filename="gmime-content-type.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="314">a #GMimeContentType object</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="315">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="272">Sets the Content-Type's media type.</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="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="274">a #GMimeContentType object</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="275">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="395">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="89"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="397">MIME Content-Type</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="398">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="399">parameter value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_params" c:identifier="g_mime_content_type_set_params">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="352">Sets the Content-Type's parameter list.</doc>
        <source-position filename="gmime-content-type.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="354">a #GMimeContentType object</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </instance-parameter>
          <parameter name="params" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="355">a list of #GMimeParam objects</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="g_mime_content_type_to_string">
        <doc xml:space="preserve"
             filename="gmime-content-type.c"
             line="212">Allocates a string buffer containing the type and subtype defined
by the @mime_type.</doc>
        <source-position filename="gmime-content-type.h" line="76"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-content-type.c"
               line="219">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="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-content-type.c"
                 line="214">a #GMimeContentType object</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </instance-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="param_hash">
        <doc xml:space="preserve"
             filename="gmime-content-type.h"
             line="45">parameter hash keyed by param name</doc>
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer" c:type="gpointer"/>
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="params">
        <doc xml:space="preserve"
             filename="gmime-content-type.h"
             line="46">a #GMimeParam list</doc>
        <type name="Param" c:type="GMimeParam*"/>
      </field>
      <field name="priv">
        <doc xml:space="preserve"
             filename="gmime-content-type.h"
             line="47">private fields</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="type">
        <doc xml:space="preserve"
             filename="gmime-content-type.h"
             line="48">media type</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="subtype">
        <doc xml:space="preserve"
             filename="gmime-content-type.h"
             line="49">media subtype</doc>
        <type name="utf8" c:type="char*"/>
      </field>
    </class>
    <record name="ContentTypeClass"
            c:type="GMimeContentTypeClass"
            glib:is-gtype-struct-for="ContentType">
      <source-position filename="gmime-content-type.h" line="68"/>
      <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="69">A crypto context for use with MIME.</doc>
      <source-position filename="gmime-crypto-context.h" line="126"/>
      <virtual-method name="decrypt" invoker="decrypt" throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="514">Decrypts the ciphertext input stream and writes the resulting
cleartext to the output stream.

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="108"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="536">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="516">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="517">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="518">output/cleartext stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="decrypt_session"
                      invoker="decrypt_session"
                      throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="550">Decrypts the ciphertext input stream using a specific session key
and writes the resulting cleartext to the output stream. If
@session_key is non-%NULL, but is not valid for the ciphertext, the
decryption will fail even if other available secret key material
may have been able to decrypt it. If @session_key is %NULL, this
does the same thing as g_mime_crypto_context_decrypt().

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 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="117"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="581">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="552">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="session_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="553">session key to use</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="554">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="555">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="261">Gets the digest id based on the digest name.</doc>
        <source-position filename="gmime-crypto-context.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="268">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="263">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="264">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="287">Gets the digest name based on the digest id @digest.</doc>
        <source-position filename="gmime-crypto-context.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="294">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="289">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="290">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="463">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="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="478">%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="465">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="466">sign as well as encrypt</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="userid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="467">key id (or email address) to use when signing (assuming @sign is %TRUE)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="digest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="468">digest algorithm to use when signing</doc>
            <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
          </parameter>
          <parameter name="recipients" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="469">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="471">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="472">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="642">Exports the keys/certificates in @keys to the stream @ostream from
the key/certificate database controlled by @ctx.</doc>
        <source-position filename="gmime-crypto-context.h" line="114"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="652">%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="644">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="645">an array of key ids</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="utf8"/>
            </array>
          </parameter>
          <parameter name="ostream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="646">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="336">Gets the encryption protocol for the crypto context.</doc>
        <source-position filename="gmime-crypto-context.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="342">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="338">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="360">Gets the key exchange protocol for the crypto context.</doc>
        <source-position filename="gmime-crypto-context.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="366">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="362">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_retrieve_session_key"
                      invoker="get_retrieve_session_key">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="177">Gets whether or not the @ctx is configured to retrieve a session
key during decryption (see g_mime_decrypt_result_get_session_key()).</doc>
        <source-position filename="gmime-crypto-context.h" line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="184">%TRUE if the @ctx is configured to retrieve a session key
or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="179">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="312">Gets the signature protocol for the crypto context.</doc>
        <source-position filename="gmime-crypto-context.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="318">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="314">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="610">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="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="619">%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="612">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="613">input stream (containing keys)</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_retrieve_session_key"
                      invoker="set_retrieve_session_key"
                      throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="208">Configures whether @ctx should produce a session key during future
decryption operations (see
g_mime_decrypt_result_get_session_key()).</doc>
        <source-position filename="gmime-crypto-context.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="218">%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="210">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="retrieve_session_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="211">whether to retrieve session keys during decryption</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="sign" invoker="sign" throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="388">Signs the input stream and writes the resulting signature to the output stream.</doc>
        <source-position filename="gmime-crypto-context.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="399">the #GMimeDigestAlgo used on success (useful if @digest is
specified as #GMIME_DIGEST_ALGO_DEFAULT) 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="390">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="userid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="391">private key to use to sign the stream</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="digest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="392">digest algorithm to use</doc>
            <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
          </parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="393">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="394">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="425">Verifies the signature. If @istream is a clearsigned stream,
you should pass %NULL as the sigstream parameter. 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="99"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="438">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="427">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="428">digest algorithm used, if known</doc>
            <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
          </parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="429">input stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="sigstream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="430">optional detached-signature stream</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="514">Decrypts the ciphertext input stream and writes the resulting
cleartext to the output stream.

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="165"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="536">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="516">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="517">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="518">output/cleartext stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="decrypt_session"
              c:identifier="g_mime_crypto_context_decrypt_session"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="550">Decrypts the ciphertext input stream using a specific session key
and writes the resulting cleartext to the output stream. If
@session_key is non-%NULL, but is not valid for the ciphertext, the
decryption will fail even if other available secret key material
may have been able to decrypt it. If @session_key is %NULL, this
does the same thing as g_mime_crypto_context_decrypt().

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 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="168"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="581">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="552">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="session_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="553">session key to use</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="554">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="555">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="261">Gets the digest id based on the digest name.</doc>
        <source-position filename="gmime-crypto-context.h" line="140"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="268">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="263">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="264">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="287">Gets the digest name based on the digest id @digest.</doc>
        <source-position filename="gmime-crypto-context.h" line="142"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="294">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="289">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="290">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="463">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="160"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="478">%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="465">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="466">sign as well as encrypt</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="userid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="467">key id (or email address) to use when signing (assuming @sign is %TRUE)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="digest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="468">digest algorithm to use when signing</doc>
            <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
          </parameter>
          <parameter name="recipients" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="469">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="471">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="472">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="642">Exports the keys/certificates in @keys to the stream @ostream from
the key/certificate database controlled by @ctx.</doc>
        <source-position filename="gmime-crypto-context.h" line="175"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="652">%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="644">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="645">an array of key ids</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="utf8"/>
            </array>
          </parameter>
          <parameter name="ostream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="646">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="336">Gets the encryption protocol for the crypto context.</doc>
        <source-position filename="gmime-crypto-context.h" line="147"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="342">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="338">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="360">Gets the key exchange protocol for the crypto context.</doc>
        <source-position filename="gmime-crypto-context.h" line="149"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="366">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="362">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_retrieve_session_key"
              c:identifier="g_mime_crypto_context_get_retrieve_session_key">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="177">Gets whether or not the @ctx is configured to retrieve a session
key during decryption (see g_mime_decrypt_result_get_session_key()).</doc>
        <source-position filename="gmime-crypto-context.h" line="133"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="184">%TRUE if the @ctx is configured to retrieve a session key
or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="179">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="312">Gets the signature protocol for the crypto context.</doc>
        <source-position filename="gmime-crypto-context.h" line="145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="318">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="314">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="610">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="173"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="619">%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="612">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="613">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="154">Sets the function used by the @ctx for requesting a password from
the user.</doc>
        <source-position filename="gmime-crypto-context.h" line="131"/>
        <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="156">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="157">a callback function for requesting a password</doc>
            <type name="PasswordRequestFunc"
                  c:type="GMimePasswordRequestFunc"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_retrieve_session_key"
              c:identifier="g_mime_crypto_context_set_retrieve_session_key"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="208">Configures whether @ctx should produce a session key during future
decryption operations (see
g_mime_decrypt_result_get_session_key()).</doc>
        <source-position filename="gmime-crypto-context.h" line="135"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="218">%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="210">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="retrieve_session_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="211">whether to retrieve session keys during decryption</doc>
            <type name="gboolean" c:type="gboolean"/>
          </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="388">Signs the input stream and writes the resulting signature to the output stream.</doc>
        <source-position filename="gmime-crypto-context.h" line="152"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="399">the #GMimeDigestAlgo used on success (useful if @digest is
specified as #GMIME_DIGEST_ALGO_DEFAULT) 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="390">a #GMimeCryptoContext</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </instance-parameter>
          <parameter name="userid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="391">private key to use to sign the stream</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="digest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="392">digest algorithm to use</doc>
            <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
          </parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="393">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="394">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="425">Verifies the signature. If @istream is a clearsigned stream,
you should pass %NULL as the sigstream parameter. 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="156"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="438">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="427">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="428">digest algorithm used, if known</doc>
            <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
          </parameter>
          <parameter name="istream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="429">input stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
          <parameter name="sigstream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="430">optional detached-signature stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="71">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="72">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="126"/>
      <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="85"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="268">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="263">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="264">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="87"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="294">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="289">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="290">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="89"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="318">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="314">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="91"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="342">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="338">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="93"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="366">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="362">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="95"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="399">the #GMimeDigestAlgo used on success (useful if @digest is
specified as #GMIME_DIGEST_ALGO_DEFAULT) 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="390">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
            <parameter name="userid" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="391">private key to use to sign the stream</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="digest" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="392">digest algorithm to use</doc>
              <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
            </parameter>
            <parameter name="istream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="393">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="394">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="99"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="438">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="427">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="428">digest algorithm used, if known</doc>
              <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
            </parameter>
            <parameter name="istream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="429">input stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
            <parameter name="sigstream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="430">optional detached-signature stream</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="103"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="478">%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="465">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="466">sign as well as encrypt</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="userid" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="467">key id (or email address) to use when signing (assuming @sign is %TRUE)</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="digest" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="468">digest algorithm to use when signing</doc>
              <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
            </parameter>
            <parameter name="recipients" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="469">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="471">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="472">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="108"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="536">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="516">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="517">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="518">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="111"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="619">%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="612">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="613">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="114"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="652">%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="644">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="645">an array of key ids</doc>
              <array name="GLib.PtrArray" c:type="GPtrArray*">
                <type name="utf8"/>
              </array>
            </parameter>
            <parameter name="ostream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="646">output stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="decrypt_session">
        <callback name="decrypt_session" throws="1">
          <source-position filename="gmime-crypto-context.h" line="117"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="581">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="552">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
            <parameter name="session_key" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="553">session key to use</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="554">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="555">output/cleartext stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_retrieve_session_key">
        <callback name="get_retrieve_session_key">
          <source-position filename="gmime-crypto-context.h" line="121"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="184">%TRUE if the @ctx is configured to retrieve a session key
or %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="179">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_retrieve_session_key">
        <callback name="set_retrieve_session_key" throws="1">
          <source-position filename="gmime-crypto-context.h" line="123"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="218">%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="210">a #GMimeCryptoContext</doc>
              <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
            </parameter>
            <parameter name="retrieve_session_key" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-crypto-context.c"
                   line="211">whether to retrieve session keys during decryption</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <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>
    <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="212">An object containing the results from decrypting an encrypted stream.</doc>
      <source-position filename="gmime-crypto-context.h" line="236"/>
      <constructor name="new" c:identifier="g_mime_decrypt_result_new">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.c"
             line="737">Creates a new #GMimeDecryptResult object.</doc>
        <source-position filename="gmime-crypto-context.h" line="240"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="742">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="854">Get the cipher algorithm used.</doc>
        <source-position filename="gmime-crypto-context.h" line="249"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="860">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="856">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="887">Get the mdc digest algorithm used.</doc>
        <source-position filename="gmime-crypto-context.h" line="252"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="893">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="889">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="777">Gets the list of certificates that the stream had been encrypted to.</doc>
        <source-position filename="gmime-crypto-context.h" line="243"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="783">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="779">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="925">Get the session_key used for this decryption, if the underlying
crypto context is capable of and (configured to) retrieve session
keys during decryption.  See, for example,
g_mime_crypto_context_set_retrieve_session_key().</doc>
        <source-position filename="gmime-crypto-context.h" line="255"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="934">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="927">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="820">Gets a list of signatures if the encrypted stream had also been signed.</doc>
        <source-position filename="gmime-crypto-context.h" line="246"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-crypto-context.c"
               line="826">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="822">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="838">Set the cipher algorithm used.</doc>
        <source-position filename="gmime-crypto-context.h" line="248"/>
        <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="840">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="841">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="871">Set the mdc digest algorithm used.</doc>
        <source-position filename="gmime-crypto-context.h" line="251"/>
        <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="873">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="874">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="751">Sets the list of certificates that the stream had been encrypted to.</doc>
        <source-position filename="gmime-crypto-context.h" line="242"/>
        <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="753">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="754">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="904">Set the session_key to be returned by this decryption result.</doc>
        <source-position filename="gmime-crypto-context.h" line="254"/>
        <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="906">a #GMimeDecryptResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult*"/>
          </instance-parameter>
          <parameter name="session_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-crypto-context.c"
                 line="907">a pointer to a null-terminated string representing the session 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="794">Sets the list of signatures.</doc>
        <source-position filename="gmime-crypto-context.h" line="245"/>
        <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="796">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="797">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="214">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="recipients">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="215">A #GMimeCertificateList</doc>
        <type name="CertificateList" c:type="GMimeCertificateList*"/>
      </field>
      <field name="signatures">
        <doc xml:space="preserve"
             filename="gmime-crypto-context.h"
             line="216">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="217">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="218">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="219">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="236"/>
      <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="84"/>
      <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>
    </enumeration>
    <constant name="ENABLE_RFC2047_WORKAROUNDS"
              value="1"
              c:type="GMIME_ENABLE_RFC2047_WORKAROUNDS">
      <doc xml:space="preserve"
           filename="gmime.h"
           line="118">Initialization flag to enable workarounds for badly formed rfc2047
encoded-words.</doc>
      <source-position filename="gmime.h" line="124"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ENABLE_USE_ONLY_USER_CHARSETS"
              value="2"
              c:type="GMIME_ENABLE_USE_ONLY_USER_CHARSETS"
              version="2.6.16">
      <doc xml:space="preserve"
           filename="gmime.h"
           line="126">Initialization flag that hints to the rfc2047 encoder to use only
the configured user-charsets (set via g_mime_set_user_charsets())
instead of trying to first use iso-8859-1.</doc>
      <source-position filename="gmime.h" line="135"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <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="316">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="326">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="318">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="319">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="320">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="321">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="195">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="197">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="198">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="177">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="179">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="180">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="235">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="243">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="237">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="238">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="213">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="215">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="271">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="285">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="273">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="274">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="275">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="276">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="494">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="504">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="496">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="497">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="498">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="499">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="500">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="357">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="369">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="359">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="360">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="361">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="362">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="363">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="406">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="419">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="408">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="409">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="410">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="411">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="412">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="1020">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="1031">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="1022">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="1023">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="1024">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="1025">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="1026">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="876">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="888">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="878">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="879">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="880">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="881">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="882">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="926">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="938">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="928">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="929">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="930">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="931">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="932">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="770">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="782">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="772">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="773">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="774">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="775">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="776">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="573">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="585">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="575">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="576">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="577">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="578">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="579">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="580">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="653">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="667">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="655">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="656">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="657">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="658">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="659">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="660">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>
    <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_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_CRLF"
                    c:identifier="GMIME_FILTER_CRLF"
                    introspectable="0">
      <source-position filename="gmime-filter-crlf.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_CRLF_CLASS"
                    c:identifier="GMIME_FILTER_CRLF_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-crlf.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_CRLF_GET_CLASS"
                    c:identifier="GMIME_FILTER_CRLF_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-crlf.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="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="FILTER_HTML_CITE"
              value="128"
              c:type="GMIME_FILTER_HTML_CITE">
      <doc xml:space="preserve"
           filename="gmime-filter-html.h"
           line="97">Cites text by prepending "&amp;gt; " to each cited line.</doc>
      <source-position filename="gmime-filter-html.h" line="102"/>
      <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="31"/>
      <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="81">Wrap email addresses in "mailto:" href tags.</doc>
      <source-position filename="gmime-filter-html.h" line="86"/>
      <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="48">Convert new-lines ('\n') into &amp;lt;br&amp;gt; tags.</doc>
      <source-position filename="gmime-filter-html.h" line="53"/>
      <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="56">Preserve whitespace by converting spaces into their appropriate
html entities.</doc>
      <source-position filename="gmime-filter-html.h" line="62"/>
      <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="65">Wrap detected URLs in &amp;lt;a href=...&amp;gt; tags.</doc>
      <source-position filename="gmime-filter-html.h" line="70"/>
      <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="89">Converts 8bit characters to '?'.</doc>
      <source-position filename="gmime-filter-html.h" line="94"/>
      <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="34"/>
      <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="73">Change the colour of citation text.</doc>
      <source-position filename="gmime-filter-html.h" line="78"/>
      <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="40">Wrap stream in &amp;lt;pre&amp;gt; tags.</doc>
      <source-position filename="gmime-filter-html.h" line="45"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="FILTER_MD5"
                    c:identifier="GMIME_FILTER_MD5"
                    introspectable="0">
      <source-position filename="gmime-filter-md5.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_MD5_CLASS"
                    c:identifier="GMIME_FILTER_MD5_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-md5.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FILTER_MD5_GET_CLASS"
                    c:identifier="GMIME_FILTER_MD5_GET_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-md5.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_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="88"/>
      <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="84"/>
        <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="79"/>
        <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="81"/>
        <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="87"/>
        <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="108"/>
        <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="100"/>
        <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="94"/>
        <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="96"/>
        <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="104"/>
        <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="111"/>
        <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">
        <doc xml:space="preserve"
             filename="gmime-filter.h"
             line="45">real malloc'd buffer</doc>
        <array zero-terminated="0" c:type="char*">
          <type name="guint8"/>
        </array>
      </field>
      <field name="outbuf">
        <doc xml:space="preserve"
             filename="gmime-filter.h"
             line="46">first
  writable position allowed (outreal + outpre)</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="outptr">
        <doc xml:space="preserve"
             filename="gmime-filter.h"
             line="48">current writale position</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="outsize">
        <doc xml:space="preserve"
             filename="gmime-filter.h"
             line="49">current bytes in @outbuf</doc>
        <type name="gsize" c:type="size_t"/>
      </field>
      <field name="outpre">
        <doc xml:space="preserve"
             filename="gmime-filter.h"
             line="50">current prespace of @outbuf</doc>
        <type name="gsize" c:type="size_t"/>
      </field>
      <field name="backbuf">
        <doc xml:space="preserve"
             filename="gmime-filter.h"
             line="51">backup
  buffer</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="backsize">
        <doc xml:space="preserve"
             filename="gmime-filter.h"
             line="53">backup buffer size</doc>
        <type name="gsize" c:type="size_t"/>
      </field>
      <field name="backlen">
        <doc xml:space="preserve"
             filename="gmime-filter.h"
             line="54">number of bytes backed-up in @backbuf</doc>
        <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="234">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="241">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="236">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="237">%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 stream 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">a pointer to a string containing the name of the charset
best suited for the text filtered through @best.</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">best filter</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="282">Calculates the most efficient Content-Transfer-Encoding for the
stream 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="291">the best encoding for the stream 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="284">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="285">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="FilterCRLF"
           c:symbol-prefix="filter_crlf"
           c:type="GMimeFilterCRLF"
           parent="Filter"
           glib:type-name="GMimeFilterCRLF"
           glib:get-type="g_mime_filter_crlf_get_type"
           glib:type-struct="FilterCRLFClass">
      <doc xml:space="preserve"
           filename="gmime-filter-crlf.h"
           line="39">A filter to convert between line-ending formats and encode/decode
lines beginning with a '.'.</doc>
      <source-position filename="gmime-filter-crlf.h" line="65"/>
      <constructor name="new" c:identifier="g_mime_filter_crlf_new">
        <doc xml:space="preserve"
             filename="gmime-filter-crlf.c"
             line="210">Creates a new #GMimeFilterCRLF filter.

If @encode is %TRUE, then lone line-feeds ('\n') will be 'encoded'
into the canonical CRLF end-of-line sequence ("\r\n") otherwise
CRLF sequences will be 'decoded' into the UNIX line-ending form
('\n').

The @dots parameter tells the filter whether or not it should
encode or decode lines beginning with a dot ('.'). If both @encode
and @dots are %TRUE, then a '.' at the beginning of a line will be
'encoded' into "..". If @encode is %FALSE, then ".." at the
beginning of a line will be decoded into a single '.'.</doc>
        <source-position filename="gmime-filter-crlf.h" line="70"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-crlf.c"
               line="228">a new #GMimeFilterCRLF filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
        <parameters>
          <parameter name="encode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-crlf.c"
                 line="212">%TRUE if the filter should encode or %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="dots" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-crlf.c"
                 line="213">encode/decode dots (as for SMTP)</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-crlf.h"
             line="41">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="encode">
        <doc xml:space="preserve"
             filename="gmime-filter-crlf.h"
             line="42">encoding vs decoding line endings/dots</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="dots">
        <doc xml:space="preserve"
             filename="gmime-filter-crlf.h"
             line="43">%TRUE if dot-stuffing should be performed or %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="saw_cr">
        <doc xml:space="preserve"
             filename="gmime-filter-crlf.h"
             line="44">%TRUE if the previous char was a CR</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="saw_lf">
        <doc xml:space="preserve"
             filename="gmime-filter-crlf.h"
             line="45">%TRUE if the previous char was a LF</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="saw_dot">
        <doc xml:space="preserve"
             filename="gmime-filter-crlf.h"
             line="46">%TRUE if the previous char was a period</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="FilterCRLFClass"
            c:type="GMimeFilterCRLFClass"
            glib:is-gtype-struct-for="FilterCRLF">
      <source-position filename="gmime-filter-crlf.h" line="65"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <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" introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-filter-charset.h"
             line="45">charset conversion state</doc>
        <type c:type="iconv_t"/>
      </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>
    <record name="FilterClass"
            c:type="GMimeFilterClass"
            glib:is-gtype-struct-for="Filter">
      <source-position filename="gmime-filter.h" line="88"/>
      <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="79"/>
          <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="81"/>
          <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="84"/>
          <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="87"/>
          <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="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="594">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="600">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="596">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="494">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="501">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="496">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="497">compression level</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <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="105">A filter for converting text/plain into text/html.</doc>
      <source-position filename="gmime-filter-html.h" line="131"/>
      <constructor name="new" c:identifier="g_mime_filter_html_new">
        <doc xml:space="preserve"
             filename="gmime-filter-html.c"
             line="479">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="136"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-html.c"
               line="487">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="481">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="482">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="107">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="scanner">
        <doc xml:space="preserve"
             filename="gmime-filter-html.h"
             line="108">URL scanner state</doc>
        <type name="gpointer" c:type="_UrlScanner*"/>
      </field>
      <field name="flags">
        <doc xml:space="preserve"
             filename="gmime-filter-html.h"
             line="109">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="110">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="111">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="112">currently inside of a 'pre' tag.</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="131"/>
      <field name="parent_class">
        <type name="FilterClass" c:type="GMimeFilterClass"/>
      </field>
    </record>
    <class name="FilterMd5"
           c:symbol-prefix="filter_md5"
           c:type="GMimeFilterMd5"
           parent="Filter"
           glib:type-name="GMimeFilterMd5"
           glib:get-type="g_mime_filter_md5_get_type"
           glib:type-struct="FilterMd5Class">
      <doc xml:space="preserve"
           filename="gmime-filter-md5.h"
           line="39">A filter for calculating the MD5 checksum of a stream.</doc>
      <source-position filename="gmime-filter-md5.h" line="55"/>
      <constructor name="new" c:identifier="g_mime_filter_md5_new">
        <doc xml:space="preserve"
             filename="gmime-filter-md5.c"
             line="155">Creates a new Md5 filter.</doc>
        <source-position filename="gmime-filter-md5.h" line="60"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-md5.c"
               line="160">a new Md5 filter.</doc>
          <type name="Filter" c:type="GMimeFilter*"/>
        </return-value>
      </constructor>
      <method name="get_digest" c:identifier="g_mime_filter_md5_get_digest">
        <doc xml:space="preserve"
             filename="gmime-filter-md5.c"
             line="169">Outputs the md5 digest into @digest.</doc>
        <source-position filename="gmime-filter-md5.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="md5" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-md5.c"
                 line="171">md5 filter object</doc>
            <type name="FilterMd5" c:type="GMimeFilterMd5*"/>
          </instance-parameter>
          <parameter name="digest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-filter-md5.c"
                 line="172">output buffer of at least 16 bytes</doc>
            <type name="guint8" c:type="unsigned char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-filter-md5.h"
             line="41">parent #GMimeFilter</doc>
        <type name="Filter" c:type="GMimeFilter"/>
      </field>
      <field name="priv">
        <doc xml:space="preserve"
             filename="gmime-filter-md5.h"
             line="42">private state data</doc>
        <type name="gpointer" c:type="_GMimeFilterMd5Private*"/>
      </field>
    </class>
    <record name="FilterMd5Class"
            c:type="GMimeFilterMd5Class"
            glib:is-gtype-struct-for="FilterMd5">
      <source-position filename="gmime-filter-md5.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="53"/>
      <constructor name="new" c:identifier="g_mime_filter_strip_new">
        <doc xml:space="preserve"
             filename="gmime-filter-strip.c"
             line="172">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="58"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-filter-strip.c"
               line="178">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>
    </class>
    <record name="FilterStripClass"
            c:type="GMimeFilterStripClass"
            glib:is-gtype-struct-for="FilterStrip">
      <source-position filename="gmime-filter-strip.h" line="53"/>
      <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>
    <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.h"
           line="40">A GnuPG crypto context.</doc>
      <source-position filename="gmime-gpg-context.h" line="65"/>
      <constructor name="new"
                   c:identifier="g_mime_gpg_context_new"
                   introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.c"
             line="2350">Creates a new gpg crypto context object.</doc>
        <source-position filename="gmime-gpg-context.h" line="71"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-gpg-context.c"
               line="2357">a new gpg crypto context object.</doc>
          <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
        </return-value>
        <parameters>
          <parameter name="request_passwd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-gpg-context.c"
                 line="2352">a #GMimePasswordRequestFunc</doc>
            <type name="PasswordRequestFunc"
                  c:type="GMimePasswordRequestFunc"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-gpg-context.c"
                 line="2353">path to gpg binary or %NULL for the default</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_always_trust"
              c:identifier="g_mime_gpg_context_get_always_trust">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.c"
             line="2417">Gets whther or not gpg should always trust keys when encrypting.</doc>
        <source-position filename="gmime-gpg-context.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-gpg-context.c"
               line="2423">%TRUE if gpg should always trust keys when encrypting or
%FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-gpg-context.c"
                 line="2419">a #GMimeGpgContext</doc>
            <type name="GpgContext" c:type="GMimeGpgContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_auto_key_retrieve"
              c:identifier="g_mime_gpg_context_get_auto_key_retrieve">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.c"
             line="2381">Gets whether or not gpg should auto-retrieve keys from a keyserver
when verifying signatures.</doc>
        <source-position filename="gmime-gpg-context.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-gpg-context.c"
               line="2388">%TRUE if gpg should auto-retrieve keys from a keyserver or
%FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-gpg-context.c"
                 line="2383">a #GMimeGpgContext</doc>
            <type name="GpgContext" c:type="GMimeGpgContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_use_agent"
              c:identifier="g_mime_gpg_context_get_use_agent">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.c"
             line="2451">Gets whether or not gpg should attempt to use the gpg-agent when
requesting credentials.</doc>
        <source-position filename="gmime-gpg-context.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-gpg-context.c"
               line="2458">%TRUE if the gpg-agent should be used when requesting
credentials or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-gpg-context.c"
                 line="2453">a #GMimeGpgContext</doc>
            <type name="GpgContext" c:type="GMimeGpgContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_always_trust"
              c:identifier="g_mime_gpg_context_set_always_trust">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.c"
             line="2435">Sets whether or not gpg should always trust keys when encrypting.</doc>
        <source-position filename="gmime-gpg-context.h" line="77"/>
        <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-gpg-context.c"
                 line="2437">a #GMimeGpgContext</doc>
            <type name="GpgContext" c:type="GMimeGpgContext*"/>
          </instance-parameter>
          <parameter name="always_trust" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-gpg-context.c"
                 line="2438">%TRUE if gpg should always trust keys when encrypting</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_auto_key_retrieve"
              c:identifier="g_mime_gpg_context_set_auto_key_retrieve">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.c"
             line="2400">Sets whether or not gpg should auto-retrieve keys from a keyserver
when verifying signatures.</doc>
        <source-position filename="gmime-gpg-context.h" line="74"/>
        <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-gpg-context.c"
                 line="2402">a #GMimeGpgContext</doc>
            <type name="GpgContext" c:type="GMimeGpgContext*"/>
          </instance-parameter>
          <parameter name="auto_key_retrieve" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-gpg-context.c"
                 line="2403">%TRUE if gpg should auto-retrieve keys from a keys server</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_use_agent"
              c:identifier="g_mime_gpg_context_set_use_agent">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.c"
             line="2470">Sets whether or not gpg should attempt to use the gpg-agent when
requesting credentials.</doc>
        <source-position filename="gmime-gpg-context.h" line="80"/>
        <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-gpg-context.c"
                 line="2472">a #GMimeGpgContext</doc>
            <type name="GpgContext" c:type="GMimeGpgContext*"/>
          </instance-parameter>
          <parameter name="use_agent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-gpg-context.c"
                 line="2473">use agent flag</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.h"
             line="42">parent #GMimeCryptoContext</doc>
        <type name="CryptoContext" c:type="GMimeCryptoContext"/>
      </field>
      <field name="auto_key_retrieve">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.h"
             line="43">%TRUE if gpg should automatically retrieve unknown keys from the web</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="always_trust">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.h"
             line="44">%TRUE if keys should always be trusted</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="use_agent">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.h"
             line="45">%TRUE if gpg should use the gpg-agent for requesting passphrases</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="path">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.h"
             line="46">path to gpg</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="retrieve_session_key">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.h"
             line="47">%TRUE if session keys should be retrieved when decrypting</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="version">
        <doc xml:space="preserve"
             filename="gmime-gpg-context.h"
             line="48">The GnuPG version.</doc>
        <type name="gint" c:type="int"/>
      </field>
    </class>
    <record name="GpgContextClass"
            c:type="GMimeGpgContextClass"
            glib:is-gtype-struct-for="GpgContext">
      <source-position filename="gmime-gpg-context.h" line="65"/>
      <field name="parent_class">
        <type name="CryptoContextClass" c:type="GMimeCryptoContextClass"/>
      </field>
    </record>
    <record name="Header" c:type="GMimeHeader" disguised="1">
      <doc xml:space="preserve"
           filename="gmime-header.c"
           line="49">A message/rfc822 header.</doc>
      <source-position filename="gmime-header.h" line="30"/>
    </record>
    <callback name="HeaderForeachFunc" c:type="GMimeHeaderForeachFunc">
      <doc xml:space="preserve"
           filename="gmime-header.h"
           line="33">Function signature for the callback to g_mime_header_list_foreach().</doc>
      <source-position filename="gmime-header.h" line="41"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.h"
               line="35">The field name.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.h"
               line="36">The field value.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="gmime-header.h"
               line="37">The user-supplied callback data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="HeaderIter" c:type="GMimeHeaderIter">
      <doc xml:space="preserve"
           filename="gmime-header.h"
           line="52">A message or mime-part header iterator. All members should be
considered private.</doc>
      <source-position filename="gmime-header.h" line="67"/>
      <field name="hdrlist" writable="1">
        <doc xml:space="preserve"
             filename="gmime-header.h"
             line="54">a #GMimeHeaderList</doc>
        <type name="HeaderList" c:type="GMimeHeaderList*"/>
      </field>
      <field name="cursor" writable="1">
        <doc xml:space="preserve"
             filename="gmime-header.h"
             line="55">a #GMimeHeader</doc>
        <type name="Header" c:type="GMimeHeader*"/>
      </field>
      <field name="version" writable="1">
        <doc xml:space="preserve"
             filename="gmime-header.h"
             line="56">the version of @hdrlist when initialized</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <method name="copy"
              c:identifier="g_mime_header_iter_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="148">Creates a dynamically allocated header iterator as a copy of
@iter. You must free this iter with g_mime_header_iter_free().</doc>
        <source-position filename="gmime-header.h" line="73"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="155">a newly-allocated copy of @iter.</doc>
          <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="150">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="copy_to" c:identifier="g_mime_header_iter_copy_to">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="171">Copies @src to @dest.</doc>
        <source-position filename="gmime-header.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="src" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="173">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </instance-parameter>
          <parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="174">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="g_mime_header_iter_equal">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="204">Check that @iter1 and @iter2 reference the same header.</doc>
        <source-position filename="gmime-header.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="211">%TRUE if @iter1 and @iter2 refer to the same header or
%FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="206">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </instance-parameter>
          <parameter name="iter2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="207">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="first" c:identifier="g_mime_header_iter_first">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="251">Updates @iter to point to the first header.</doc>
        <source-position filename="gmime-header.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="257">%TRUE on success 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-header.c"
                 line="253">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="g_mime_header_iter_free">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="188">Frees a dynamically-allocated #GMimeHeaderIter as created by
g_mime_header_iter_new() or g_mime_header_iter_copy().</doc>
        <source-position filename="gmime-header.h" line="71"/>
        <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-header.c"
                 line="190">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="g_mime_header_iter_get_name">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="389">Gets the current header's name.</doc>
        <source-position filename="gmime-header.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="395">the header name or %NULL if invalid.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="391">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value" c:identifier="g_mime_header_iter_get_value">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="439">Gets the current header's value.</doc>
        <source-position filename="gmime-header.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="445">the header's raw, unprocessed value or %NULL if invalid.

Note: The returned value should be decoded with a function such as
g_mime_utils_header_decode_text() before displaying to the user.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="441">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_valid" c:identifier="g_mime_header_iter_is_valid">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="226">Checks if a #GMimeHeaderIter is valid. An iterator may become
invalid if the #GMimeHeaderList that the iterator refers to
changes.</doc>
        <source-position filename="gmime-header.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="234">%TRUE if @iter is still 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-header.c"
                 line="228">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="last" c:identifier="g_mime_header_iter_last">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="279">Updates @iter to point to the last header.</doc>
        <source-position filename="gmime-header.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="285">%TRUE on success 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-header.c"
                 line="281">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="g_mime_header_iter_next">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="307">Advances to the next header.</doc>
        <source-position filename="gmime-header.h" line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="313">%TRUE on success 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-header.c"
                 line="309">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prev" c:identifier="g_mime_header_iter_prev">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="337">Advances to the previous header.</doc>
        <source-position filename="gmime-header.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="343">%TRUE on success 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-header.c"
                 line="339">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="g_mime_header_iter_remove">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="462">Removes the current header and advances to the next header.

Note: If you remove the last header in the list, then @iter will
become invalid regardless of whether or not other headers remain.</doc>
        <source-position filename="gmime-header.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="471">%TRUE on success 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-header.c"
                 line="464">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_value" c:identifier="g_mime_header_iter_set_value">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="409">Sets the current header's value to the new value.</doc>
        <source-position filename="gmime-header.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="416">%TRUE if the value was set or %FALSE otherwise (indicates
invalid iter).

Note: @value should be encoded with a function such as
g_mime_utils_header_encode_text().</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="411">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="412">new header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <function name="new"
                c:identifier="g_mime_header_iter_new"
                introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="124">Dynamically allocates a #GMimeHeaderIter on the heap. This is
intended for use in language bindings but may also be useful in
applications as well. You must free this iter with
g_mime_header_iter_free().</doc>
        <source-position filename="gmime-header.h" line="70"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="132">a newly-allocated #GMimeHeaderIter.</doc>
          <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
        </return-value>
      </function>
    </record>
    <record name="HeaderList" c:type="GMimeHeaderList" disguised="1">
      <doc xml:space="preserve"
           filename="gmime-header.h"
           line="44">A message or mime-part header.</doc>
      <source-position filename="gmime-header.h" line="49"/>
      <method name="append" c:identifier="g_mime_header_list_append">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="662">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.

Note: @value should be encoded with a function such as
g_mime_utils_header_encode_text().</doc>
        <source-position filename="gmime-header.h" line="118"/>
        <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="664">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="665">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="666">header value</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="582">Removes all of the headers from the #GMimeHeaderList.</doc>
        <source-position filename="gmime-header.h" line="115"/>
        <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="584">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="609">Checks whether or not a header exists.</doc>
        <source-position filename="gmime-header.h" line="116"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="616">%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="611">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="const GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="612">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="destroy" c:identifier="g_mime_header_list_destroy">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="549">Destroy the header list.</doc>
        <source-position filename="gmime-header.h" line="110"/>
        <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="551">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="foreach" c:identifier="g_mime_header_list_foreach">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="848">Calls @func for each header name/value pair.</doc>
        <source-position filename="gmime-header.h" line="125"/>
        <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="850">A #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="const GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="851">function to be called for each header.</doc>
            <type name="HeaderForeachFunc" c:type="GMimeHeaderForeachFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="852">User data to be passed to the func.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get" c:identifier="g_mime_header_list_get">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="693">Gets the value of the first header with the specified name.</doc>
        <source-position filename="gmime-header.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="700">the value of the header requested.

Note: The returned value should be decoded with a function such as
g_mime_utils_header_decode_text() before displaying to the user.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="695">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="const GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="696">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter" c:identifier="g_mime_header_list_get_iter">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="819">Initializes an iterator for traversing @headers.</doc>
        <source-position filename="gmime-header.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="826">a %TRUE if successful or %FALSE if there are no headers to
traverse.</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="821">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="822">a #GMimeHeaderIter</doc>
            <type name="HeaderIter" c:type="GMimeHeaderIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_stream" c:identifier="g_mime_header_list_get_stream">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="1026">Gets the raw stream representing @headers.</doc>
        <source-position filename="gmime-header.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="1032">a #GMimeStream if set or %NULL otherwise.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="headers" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1028">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prepend" c:identifier="g_mime_header_list_prepend">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="633">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.

Note: @value should be encoded with a function such as
g_mime_utils_header_encode_text().</doc>
        <source-position filename="gmime-header.h" line="117"/>
        <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="635">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="636">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="637">header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_writer"
              c:identifier="g_mime_header_list_register_writer"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="972">Changes the function used to write @name headers to @writer (or the
default if @writer is %NULL). This is useful if you want to change
the default header folding style for a particular header.</doc>
        <source-position filename="gmime-header.h" line="127"/>
        <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="974">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="975">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="writer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="976">writer function</doc>
            <type name="HeaderWriter" c:type="GMimeHeaderWriter"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="g_mime_header_list_remove">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="773">Remove the specified header.</doc>
        <source-position filename="gmime-header.h" line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="780">%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="775">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="776">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="g_mime_header_list_set">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="720">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.

Additionally, @value should be encoded with a function such as
g_mime_utils_header_encode_text().</doc>
        <source-position filename="gmime-header.h" line="119"/>
        <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="722">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="723">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="724">header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stream" c:identifier="g_mime_header_list_set_stream">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="998">Set the raw header stream.</doc>
        <source-position filename="gmime-header.h" line="112"/>
        <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="1000">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="1001">a #GMimeStream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="g_mime_header_list_to_string">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="933">Allocates a string buffer containing the raw rfc822 headers
contained in @headers.</doc>
        <source-position filename="gmime-header.h" line="129"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="940">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="935">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="const GMimeHeaderList*"/>
          </instance-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="887">Write the headers to a stream.</doc>
        <source-position filename="gmime-header.h" line="128"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="894">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="889">a #GMimeHeaderList</doc>
            <type name="HeaderList" c:type="const GMimeHeaderList*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-header.c"
                 line="890">output stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <function name="new"
                c:identifier="g_mime_header_list_new"
                introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-header.c"
             line="522">Creates a new #GMimeHeaderList object.</doc>
        <source-position filename="gmime-header.h" line="108"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gmime-header.c"
               line="527">a new header list object.</doc>
          <type name="HeaderList" c:type="GMimeHeaderList*"/>
        </return-value>
      </function>
    </record>
    <callback name="HeaderWriter" c:type="GMimeHeaderWriter">
      <doc xml:space="preserve"
           filename="gmime-header.h"
           line="94">Function signature for the callback to
g_mime_header_list_register_writer().</doc>
      <source-position filename="gmime-header.h" line="105"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-header.h"
             line="103">the number of bytes written or %-1 on error.</doc>
        <type name="gssize" c:type="ssize_t"/>
      </return-value>
      <parameters>
        <parameter name="stream" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.h"
               line="96">The output stream.</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.h"
               line="97">The field name.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-header.h"
               line="98">The field value.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </callback>
    <constant name="INTERFACE_AGE" value="0" 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="31"/>
      <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="32"/>
      <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="35"/>
      <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="38"/>
      <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="39"/>
      <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="40"/>
      <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="41"/>
      <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="46"/>
      <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="47"/>
      <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="50"/>
      <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="51"/>
      <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="44"/>
      <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="45"/>
      <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_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_CRLF"
                    c:identifier="GMIME_IS_FILTER_CRLF"
                    introspectable="0">
      <source-position filename="gmime-filter-crlf.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_CRLF_CLASS"
                    c:identifier="GMIME_IS_FILTER_CRLF_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-crlf.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="32"/>
      <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="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_MD5"
                    c:identifier="GMIME_IS_FILTER_MD5"
                    introspectable="0">
      <source-position filename="gmime-filter-md5.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FILTER_MD5_CLASS"
                    c:identifier="GMIME_IS_FILTER_MD5_CLASS"
                    introspectable="0">
      <source-position filename="gmime-filter-md5.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_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_INTERNET_ADDRESS"
                    c:identifier="IS_INTERNET_ADDRESS"
                    introspectable="0">
      <source-position filename="internet-address.h" line="33"/>
      <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="34"/>
      <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="52"/>
      <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="53"/>
      <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="39"/>
      <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="40"/>
      <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="39"/>
      <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="40"/>
      <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="39"/>
      <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="40"/>
      <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="38"/>
      <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="39"/>
      <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>
    <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="69">An RFC 2822 Address object.</doc>
      <source-position filename="internet-address.h" line="89"/>
      <virtual-method name="to_string">
        <source-position filename="internet-address.h" line="88"/>
        <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="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="out" transfer-ownership="none">
            <type name="GLib.String" c:type="GString*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_name" c:identifier="internet_address_get_name">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="190">Gets the display name of the #InternetAddress.</doc>
        <source-position filename="internet-address.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="196">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="192">a #InternetAddress</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="internet_address_set_name">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="170">Set the display name of the #InternetAddress.

Note: The @name string should be in UTF-8.</doc>
        <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">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="172">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="173">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="209">Allocates a string containing the contents of the #InternetAddress
object.</doc>
        <source-position filename="internet-address.h" line="97"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="217">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="211">Internet Address object</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </instance-parameter>
          <parameter name="encode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="212">%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="71">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="72">private data</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="name">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="73">display name</doc>
        <type name="utf8" c:type="char*"/>
      </field>
    </class>
    <record name="InternetAddressClass"
            c:type="InternetAddressClass"
            glib:is-gtype-struct-for="InternetAddress">
      <source-position filename="internet-address.h" line="89"/>
      <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="88"/>
          <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="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="out" 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="127">An RFC 2822 Group address.</doc>
      <source-position filename="internet-address.h" line="143"/>
      <constructor name="new" c:identifier="internet_address_group_new">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="445">Creates a new #InternetAddressGroup object with the specified
@name.</doc>
        <source-position filename="internet-address.h" line="148"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="452">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="447">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="521">Add a contact to the internet address group.</doc>
        <source-position filename="internet-address.h" line="153"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="528">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="523">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="524">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="500">Gets the #InternetAddressList containing the group members of an
rfc822 group address.</doc>
        <source-position filename="internet-address.h" line="151"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="507">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="502">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="468">Set the members of the internet address group.</doc>
        <source-position filename="internet-address.h" line="150"/>
        <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="470">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="471">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="129">parent #InternetAddress</doc>
        <type name="InternetAddress" c:type="InternetAddress"/>
      </field>
      <field name="members">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="130">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="143"/>
      <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="156">A collection of #InternetAddress objects.</doc>
      <source-position filename="internet-address.h" line="174"/>
      <constructor name="new" c:identifier="internet_address_list_new">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="617">Creates a new #InternetAddressList.</doc>
        <source-position filename="internet-address.h" line="179"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="622">a new #InternetAddressList.</doc>
          <type name="InternetAddressList" c:type="InternetAddressList*"/>
        </return-value>
      </constructor>
      <function name="parse_string"
                c:identifier="internet_address_list_parse_string">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="1617">Construct a list of internet addresses from the given string.</doc>
        <source-position filename="internet-address.h" line="200"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="1623">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="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1619">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="688">Adds an #InternetAddress to the #InternetAddressList.</doc>
        <source-position filename="internet-address.h" line="185"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="695">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="690">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="691">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="753">Adds all of the addresses in @append to @list.</doc>
        <source-position filename="internet-address.h" line="187"/>
        <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="755">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="756">a #InternetAddressList</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="internet_address_list_clear">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="648">Clears the list of addresses.</doc>
        <source-position filename="internet-address.h" line="183"/>
        <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="650">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="884">Checks whether or not the specified #InternetAddress is contained
within the #InternetAddressList.</doc>
        <source-position filename="internet-address.h" line="192"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="892">%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="886">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="887">a #InternetAddress</doc>
            <type name="InternetAddress" c:type="InternetAddress*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_address"
              c:identifier="internet_address_list_get_address">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="931">Gets the #InternetAddress at the specified index.</doc>
        <source-position filename="internet-address.h" line="195"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="938">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="933">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="934">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="902">Gets the index of the specified #InternetAddress inside the
#InternetAddressList.</doc>
        <source-position filename="internet-address.h" line="193"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="910">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="904">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="905">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="783">Inserts an #InternetAddress into the #InternetAddressList at the
specified index.</doc>
        <source-position filename="internet-address.h" line="188"/>
        <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="785">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="786">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="787">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="631">Gets the length of the list.</doc>
        <source-position filename="internet-address.h" line="181"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="637">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="633">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="714">Inserts all of the addresses in @prepend to the beginning of @list.</doc>
        <source-position filename="internet-address.h" line="186"/>
        <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="716">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="717">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="823">Removes an #InternetAddress from the #InternetAddressList.</doc>
        <source-position filename="internet-address.h" line="189"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="830">%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="825">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="826">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="850">Removes an #InternetAddress from the #InternetAddressList at the
specified index.</doc>
        <source-position filename="internet-address.h" line="190"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="858">%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="852">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="853">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="954">Sets the #InternetAddress at the specified index to @ia.</doc>
        <source-position filename="internet-address.h" line="196"/>
        <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="956">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="957">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="958">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="1182">Allocates a string buffer containing the rfc822 formatted addresses
in @list.</doc>
        <source-position filename="internet-address.h" line="198"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="1190">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="1184">list of internet addresses</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="encode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1185">%TRUE if the address should be rfc2047 encoded</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="writer" c:identifier="internet_address_list_writer">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="1216">Writes the rfc2047-encoded rfc822 formatted addresses in @list to
@str, folding appropriately.</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="1218">list of internet addresses</doc>
            <type name="InternetAddressList" c:type="InternetAddressList*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="internet-address.c"
                 line="1219">string to write to</doc>
            <type name="GLib.String" c:type="GString*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="158">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="159">private data</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="array">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="160">The array of #InternetAddress objects.</doc>
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="InternetAddressListClass"
            c:type="InternetAddressListClass"
            glib:is-gtype-struct-for="InternetAddressList">
      <source-position filename="internet-address.h" line="174"/>
      <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="100">An RFC 2822 Mailbox address.</doc>
      <source-position filename="internet-address.h" line="116"/>
      <constructor name="new" c:identifier="internet_address_mailbox_new">
        <doc xml:space="preserve"
             filename="internet-address.c"
             line="303">Creates a new #InternetAddress object with the specified @name and
@addr.</doc>
        <source-position filename="internet-address.h" line="121"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="311">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="305">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="306">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="353">Gets the addr-spec of the internet address mailbox.</doc>
        <source-position filename="internet-address.h" line="124"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="internet-address.c"
               line="359">the address of the mailbox.</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="355">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="331">Set the mailbox address.</doc>
        <source-position filename="internet-address.h" line="123"/>
        <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="333">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="334">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="102">parent #InternetAddress</doc>
        <type name="InternetAddress" c:type="InternetAddress"/>
      </field>
      <field name="addr">
        <doc xml:space="preserve"
             filename="internet-address.h"
             line="103">address string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
    </class>
    <record name="InternetAddressMailboxClass"
            c:type="InternetAddressMailboxClass"
            glib:is-gtype-struct-for="InternetAddressMailbox">
      <source-position filename="internet-address.h" line="116"/>
      <field name="parent_class">
        <type name="InternetAddressClass" c:type="InternetAddressClass"/>
      </field>
    </record>
    <constant name="MAJOR_VERSION" value="2" 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="37"/>
      <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="38"/>
      <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="41"/>
      <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="23" 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="6" 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="62">A MIME Message object.</doc>
      <source-position filename="gmime-message.h" line="93"/>
      <constructor name="new" c:identifier="g_mime_message_new">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1074">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="98"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1083">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="1076">make pretty headers</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_recipient" c:identifier="g_mime_message_add_recipient">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1261">Add a recipient 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="106"/>
        <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="1263">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="1264">A #GMimeRecipientType</doc>
            <type name="RecipientType" c:type="GMimeRecipientType"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1265">The recipient's name (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="1266">The recipient's address</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="1595">Recursively calls @callback on each of the mime parts in the mime message.</doc>
        <source-position filename="gmime-message.h" line="126"/>
        <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="1597">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="1598">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="1600">user-supplied callback data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </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="1314">Gets the complete list of recipients for @message.</doc>
        <source-position filename="gmime-message.h" line="108"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1320">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="1316">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="1669">Attempts to identify the MIME part containing the body of the
message.</doc>
        <source-position filename="gmime-message.h" line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1676">a #GMimeObject containing the textual
content that appears to be the main body of the message.

Note: This function is NOT guarenteed 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="1671">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="1423">Stores the date in time_t format in @date. If @tz_offset is
non-%NULL, then the timezone offset in will be stored in
@tz_offset.</doc>
        <source-position filename="gmime-message.h" line="114"/>
        <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="1425">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="date"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1426">pointer to a date in time_t</doc>
            <type name="glong" c:type="time_t*"/>
          </parameter>
          <parameter name="tz_offset"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1427">pointer to timezone offset (in +/- hours)</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_date_as_string"
              c:identifier="g_mime_message_get_date_as_string">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1446">Gets the message's sent-date in string format.</doc>
        <source-position filename="gmime-message.h" line="116"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1452">a newly allocated string containing the Date header value.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1448">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="1519">Gets the Message-Id header of @message.</doc>
        <source-position filename="gmime-message.h" line="119"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1525">the Message-Id of a message.</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="1521">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="1536">Gets the toplevel MIME part contained within @message.</doc>
        <source-position filename="gmime-message.h" line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1542">the toplevel MIME part of @message.</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="1538">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_recipients"
              c:identifier="g_mime_message_get_recipients">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1294">Gets a list of recipients of the specified @type from the @message.</doc>
        <source-position filename="gmime-message.h" line="107"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1301">a list of recipients 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="1296">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="1297">A #GMimeRecipientType</doc>
            <type name="RecipientType" c:type="GMimeRecipientType"/>
          </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="1201">Gets the Reply-To address from @message.</doc>
        <source-position filename="gmime-message.h" line="104"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1207">the sender's Reply-To address in a form suitable for
display or %NULL if no Reply-To address 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="1203">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="1144">Gets the email address of the sender from @message.</doc>
        <source-position filename="gmime-message.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1150">the sender's name and address of the @message in a form
suitable for display or %NULL if no sender 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="1146">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="1377">Gets the subject of the @message.</doc>
        <source-position filename="gmime-message.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-message.c"
               line="1383">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="1379">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="396">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">
          <doc xml:space="preserve"
               filename="gmime-message-partial.c"
               line="407">an array of #GMimeMessage objects and
sets @nparts to the number of messages returned or %NULL on fail.</doc>
          <type name="Message" c:type="GMimeMessage**"/>
        </return-value>
        <parameters>
          <instance-parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="398">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="399">max size</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="nparts" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="400">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="1396">Sets the Date header on a MIME Message.</doc>
        <source-position filename="gmime-message.h" line="113"/>
        <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="1398">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="1399">a date to be used in the Date header</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="tz_offset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1400">timezone offset (in +/- hours)</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_date_as_string"
              c:identifier="g_mime_message_set_date_as_string">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1463">Sets the sent-date of the message.</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="1465">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1466">a date string</doc>
            <type name="utf8" c:type="const char*"/>
          </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="1492">Set the Message-Id on a 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="1494">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="1495">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="1556">Set the root-level MIME part of the message.</doc>
        <source-position filename="gmime-message.h" line="122"/>
        <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="1558">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="1559">The root-level MIME Part</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reply_to" c:identifier="g_mime_message_set_reply_to">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1163">Set the sender's Reply-To address on the @message.

Note: The @reply_to string should be the raw encoded email
address. It is probably best to use an #InternetAddress to
construct and encode this value.</doc>
        <source-position filename="gmime-message.h" line="103"/>
        <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="1165">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="reply_to" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1166">The Reply-To address</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sender" c:identifier="g_mime_message_set_sender">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1105">Set the sender's name and address on the MIME Message.
(ex: "\"Joe Sixpack\" &amp;lt;joe@sixpack.org&amp;gt;")

Note: The @sender string should be the raw encoded email
address. It is probably best to use an #InternetAddress to
construct and encode this value.</doc>
        <source-position filename="gmime-message.h" line="100"/>
        <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="1107">A #GMimeMessage</doc>
            <type name="Message" c:type="GMimeMessage*"/>
          </instance-parameter>
          <parameter name="sender" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message.c"
                 line="1108">The name and address of the sender</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_subject" c:identifier="g_mime_message_set_subject">
        <doc xml:space="preserve"
             filename="gmime-message.c"
             line="1348">Set the subject of a @message.

Note: The @subject string should be in UTF-8.</doc>
        <source-position filename="gmime-message.h" line="110"/>
        <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="1350">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="1351">Subject string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="64">parent #GMimeObject</doc>
        <type name="Object" c:type="GMimeObject"/>
      </field>
      <field name="recipients">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="66">hash table of recipients using recipient header name as the hash key</doc>
        <type name="InternetAddressList" c:type="InternetAddressList**"/>
      </field>
      <field name="mime_part">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="65">toplevel MIME part</doc>
        <type name="Object" c:type="GMimeObject*"/>
      </field>
      <field name="message_id">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="67">Message-Id string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="reply_to">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="68">Reply-To string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="subject">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="69">Subject string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="from">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="70">From string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="date">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="71">Date value</doc>
        <type name="glong" c:type="time_t"/>
      </field>
      <field name="tz_offset">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="72">timezone offset</doc>
        <type name="gint" c:type="int"/>
      </field>
    </class>
    <record name="MessageClass"
            c:type="GMimeMessageClass"
            glib:is-gtype-struct-for="Message">
      <source-position filename="gmime-message.h" line="93"/>
      <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="141">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="148">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="143">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="167">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="175">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="169">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="170">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="213">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="219">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="215">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="191">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="193">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="194">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="185">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="193">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="187">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="188">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="189">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="293">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="301">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="295">an array of message/partial mime parts</doc>
            <type name="MessagePartial" c:type="GMimeMessagePartial**"/>
          </parameter>
          <parameter name="num" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-message-partial.c"
                 line="296">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="226">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="232">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="228">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="243">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="249">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="245">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="260">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="267">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="262">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="78"/>
      <constructor name="new" c:identifier="g_mime_multipart_new">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="242">Creates a new MIME multipart object with a default content-type of
multipart/mixed.</doc>
        <source-position filename="gmime-multipart.h" line="83"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="248">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="267">Creates a new MIME multipart object with a content-type of
multipart/@subtype.</doc>
        <source-position filename="gmime-multipart.h" line="85"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="274">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="269">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="396">Appends a mime part to @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="65"/>
        <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="398">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="399">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="373">Removes all subparts from @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="64"/>
        <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="375">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="608">Checks if @part is contained within @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="615">%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="610">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="611">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="775">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="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="783">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="777">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="668">Gets the number of parts 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="674">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="670">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="575">Gets the part at the specified @index within the multipart.</doc>
        <source-position filename="gmime-multipart.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="582">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="577">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="578">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="642">Gets the 0-based index of @part within @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="649">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="644">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="645">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="443">Inserts @part into @multipart at the specified @index.</doc>
        <source-position filename="gmime-multipart.h" line="66"/>
        <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="445">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="447">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="446">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="474">Removes the specified @part from @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="481">%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="476">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="477">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="509">Removes the part at the specified @index from @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="68"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="516">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="511">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="512">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="743">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="76"/>
        <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="745">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="746">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="396">Appends a mime part to @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="95"/>
        <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="398">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="399">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="373">Removes all subparts from @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="375">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="608">Checks if @part is contained within @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="615">%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="610">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="611">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="810">Recursively calls @callback on each of @multipart's subparts.</doc>
        <source-position filename="gmime-multipart.h" line="112"/>
        <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="812">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="813">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="815">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="775">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="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="783">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="777">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="668">Gets the number of parts 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="674">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="670">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="575">Gets the part at the specified @index within the multipart.</doc>
        <source-position filename="gmime-multipart.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="582">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="577">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="578">the 0-based index of the part</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_postface" c:identifier="g_mime_multipart_get_postface">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="344">Gets the postface 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="350">a pointer to the postface 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="346">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_preface" c:identifier="g_mime_multipart_get_preface">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="310">Gets the preface on the multipart.</doc>
        <source-position filename="gmime-multipart.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="316">a pointer to the preface 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="312">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="829">Gets the mime part with the content-id @content_id from the
multipart @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="115"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="837">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="831">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="832">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="642">Gets the 0-based index of @part within @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="649">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="644">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="645">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="443">Inserts @part into @multipart at the specified @index.</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="445">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="447">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="446">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="474">Removes the specified @part from @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="481">%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="476">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="477">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="509">Removes the part at the specified @index from @multipart.</doc>
        <source-position filename="gmime-multipart.h" line="98"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="516">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="511">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="512">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="529">Replaces the part at the specified @index within @multipart with
@replacement.</doc>
        <source-position filename="gmime-multipart.h" line="99"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart.c"
               line="538">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="531">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="532">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="533">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="743">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="107"/>
        <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="745">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="746">boundary or %NULL to autogenerate one</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_postface" c:identifier="g_mime_multipart_set_postface">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="327">Sets the postface 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="329">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="postface" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="330">postface</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_preface" c:identifier="g_mime_multipart_set_preface">
        <doc xml:space="preserve"
             filename="gmime-multipart.c"
             line="293">Sets the preface on the multipart.</doc>
        <source-position filename="gmime-multipart.h" line="87"/>
        <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="295">a #GMimeMultipart object</doc>
            <type name="Multipart" c:type="GMimeMultipart*"/>
          </instance-parameter>
          <parameter name="preface" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="296">preface</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="preface">
        <doc xml:space="preserve"
             filename="gmime-multipart.h"
             line="47">multipart preface</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="postface">
        <doc xml:space="preserve"
             filename="gmime-multipart.h"
             line="48">multipart postface</doc>
        <type name="utf8" c:type="char*"/>
      </field>
    </class>
    <record name="MultipartClass"
            c:type="GMimeMultipartClass"
            glib:is-gtype-struct-for="Multipart">
      <source-position filename="gmime-multipart.h" line="78"/>
      <field name="parent_class">
        <type name="ObjectClass" c:type="GMimeObjectClass"/>
      </field>
      <field name="clear">
        <callback name="clear">
          <source-position filename="gmime-multipart.h" line="64"/>
          <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="375">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="65"/>
          <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="398">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="399">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="66"/>
          <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="445">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="447">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="446">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="67"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="481">%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="476">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="477">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="68"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="516">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="511">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="512">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="69"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="582">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="577">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="578">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="71"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="615">%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="610">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="611">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="72"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="649">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="644">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="645">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="74"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="674">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="670">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="76"/>
          <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="745">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="746">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="77"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart.c"
                 line="783">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="777">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>
      <method name="decrypt"
              c:identifier="g_mime_multipart_encrypted_decrypt"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-multipart-encrypted.c"
             line="272">Attempts to decrypt the encrypted MIME part contained within the
multipart/encrypted object @mpe using the @ctx decryption context.

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">
          <doc xml:space="preserve"
               filename="gmime-multipart-encrypted.c"
               line="287">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 occured.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mpe" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="274">multipart/encrypted object</doc>
            <type name="MultipartEncrypted" c:type="GMimeMultipartEncrypted*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="275">decryption context</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="276">a #GMimeDecryptionResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult**"/>
          </parameter>
        </parameters>
      </method>
      <method name="decrypt_session"
              c:identifier="g_mime_multipart_encrypted_decrypt_session"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-multipart-encrypted.c"
             line="298">Attempts to decrypt the encrypted MIME part contained within the
multipart/encrypted object @mpe using the @ctx decryption context
trying only the supplied session key.  If @session_key is
non-%NULL, but is not valid for the ciphertext, the decryption will
fail even if other available secret key material may have been able
to decrypt it. If @session_key is %NULL, this does the same thing
as g_mime_multipart_encrypted_decrypt().

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 @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="77"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart-encrypted.c"
               line="323">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 occured.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mpe" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="300">multipart/encrypted object</doc>
            <type name="MultipartEncrypted" c:type="GMimeMultipartEncrypted*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="301">decryption context</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </parameter>
          <parameter name="session_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="302">session key to use</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="303">a #GMimeDecryptionResult</doc>
            <type name="DecryptResult" c:type="GMimeDecryptResult**"/>
          </parameter>
        </parameters>
      </method>
      <method 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 @content MIME part
to the public keys of @recipients using the @ctx encryption
context. If successful, the encrypted #GMimeObject is set as the
encrypted part of the multipart/encrypted object @mpe.</doc>
        <source-position filename="gmime-multipart-encrypted.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart-encrypted.c"
               line="156">%0 on success or %-1 on fail. If the encryption fails, an
exception will be set on @err to provide information as to why the
failure occured.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="mpe" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="142">multipart/encrypted object</doc>
            <type name="MultipartEncrypted" c:type="GMimeMultipartEncrypted*"/>
          </instance-parameter>
          <parameter name="content" 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="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="144">encryption context</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </parameter>
          <parameter name="sign" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="145">%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">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="146">user id to use for signing (only used if @sign is %TRUE)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="digest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="147">digest algorithm to use when signing</doc>
            <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
          </parameter>
          <parameter name="recipients" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-encrypted.c"
                 line="148">an array of recipients to encrypt to</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="utf8"/>
            </array>
          </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>
      <method name="sign"
              c:identifier="g_mime_multipart_signed_sign"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-multipart-signed.c"
             line="197">Attempts to sign the @content MIME part with @userid's private key
using the @ctx signing context with the @digest algorithm. If
successful, the signed #GMimeObject is set as the signed part of
the multipart/signed object @mps.</doc>
        <source-position filename="gmime-multipart-signed.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-multipart-signed.c"
               line="211">%0 on success or %-1 on fail. If the signing fails, an
exception will be set on @err to provide information as to why the
failure occured.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="mps" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-signed.c"
                 line="199">multipart/signed object</doc>
            <type name="MultipartSigned" c:type="GMimeMultipartSigned*"/>
          </instance-parameter>
          <parameter name="content" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-signed.c"
                 line="200">MIME part to sign</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-signed.c"
                 line="201">encryption crypto context</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </parameter>
          <parameter name="userid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-signed.c"
                 line="202">user id to sign with</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="digest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-signed.c"
                 line="203">preferred digest algorithm</doc>
            <type name="DigestAlgo" c:type="GMimeDigestAlgo"/>
          </parameter>
        </parameters>
      </method>
      <method name="verify"
              c:identifier="g_mime_multipart_signed_verify"
              throws="1">
        <doc xml:space="preserve"
             filename="gmime-multipart-signed.c"
             line="359">Attempts to verify the signed MIME part contained within the
multipart/signed object @mps using the @ctx crypto context.</doc>
        <source-position filename="gmime-multipart-signed.h" line="71"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-multipart-signed.c"
               line="368">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
occured.</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="361">multipart/signed object</doc>
            <type name="MultipartSigned" c:type="GMimeMultipartSigned*"/>
          </instance-parameter>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-multipart-signed.c"
                 line="362">encryption crypto context</doc>
            <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
          </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>
    <function-macro name="OBJECT"
                    c:identifier="GMIME_OBJECT"
                    introspectable="0">
      <source-position filename="gmime-object.h" line="37"/>
      <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="38"/>
      <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="41"/>
      <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="46">Base class for all MIME parts.</doc>
      <source-position filename="gmime-object.h" line="82"/>
      <constructor name="new" c:identifier="g_mime_object_new">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="293">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="101"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="305">an appropriate #GMimeObject registered to handle MIME
parts appropriate for @content_type.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <parameter name="content_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="295">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="347">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="102"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="359">an appropriate #GMimeObject registered to handle mime-types
of @type/@subtype.</doc>
          <type name="Object" c:type="GMimeObject*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="349">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="350">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="256">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="99"/>
        <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="258">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="259">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="260">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="137"/>
        <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="138"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <virtual-method name="append_header" invoker="append_header">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="811">Appends a raw, unprocessed header to the MIME object.

Note: @value should be encoded with a function such as
g_mime_utils_header_encode_text().</doc>
        <source-position filename="gmime-object.h" line="70"/>
        <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="813">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="814">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="815">header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="encode" invoker="encode">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="1006">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="81"/>
        <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="1008">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="1009">a #GMimeEncodingConstraint</doc>
            <type name="EncodingConstraint" c:type="GMimeEncodingConstraint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_header" invoker="get_header">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="870">Gets the raw, unprocessed value of the first header with the specified name.</doc>
        <source-position filename="gmime-object.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="877">the raw, unprocessed value of the requested header if it
exists or %NULL otherwise.

Note: The returned value should be decoded with a function such as
g_mime_utils_header_decode_text() before displaying to the user.</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="872">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="873">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_headers" invoker="get_headers">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="953">Allocates a string buffer containing all of the MIME object's raw
headers.</doc>
        <source-position filename="gmime-object.h" line="77"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="960">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="955">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="prepend_header" invoker="prepend_header">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="782">Prepends a raw, unprocessed header to the MIME object.

Note: @value should be encoded with a function such as
g_mime_utils_header_encode_text().</doc>
        <source-position filename="gmime-object.h" line="69"/>
        <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="784">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="785">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="786">header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_header" invoker="remove_header">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="926">Removed the specified header if it exists.</doc>
        <source-position filename="gmime-object.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="933">%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="928">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="929">header name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_content_type" invoker="set_content_type">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="427">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="75"/>
        <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="429">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="430">a #GMimeContentType object</doc>
            <type name="ContentType" c:type="GMimeContentType*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_header" invoker="set_header">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="841">Sets an arbitrary raw, unprocessed header on the MIME object.

Note: @value should be encoded with a function such as
g_mime_utils_header_encode_text().</doc>
        <source-position filename="gmime-object.h" line="71"/>
        <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="843">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="844">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="845">header value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="write_to_stream" invoker="write_to_stream">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="980">Write the contents of the MIME object to @stream.</doc>
        <source-position filename="gmime-object.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="987">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="982">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="983">stream</doc>
            <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="811">Appends a raw, unprocessed header to the MIME object.

Note: @value should be encoded with a function such as
g_mime_utils_header_encode_text().</doc>
        <source-position filename="gmime-object.h" line="122"/>
        <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="813">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="814">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="815">header value</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="1006">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="134"/>
        <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="1008">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="1009">a #GMimeEncodingConstraint</doc>
            <type name="EncodingConstraint" c:type="GMimeEncodingConstraint"/>
          </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="512">Gets the #GMimeContentDisposition for the specified MIME object.</doc>
        <source-position filename="gmime-object.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="518">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="514">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="657">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="116"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="665">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="659">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="660">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="705">Gets the Content-Id of the MIME object or NULL if one is not set.</doc>
        <source-position filename="gmime-object.h" line="119"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="711">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="707">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="450">Gets the #GMimeContentType object for the given MIME object or
%NULL on fail.</doc>
        <source-position filename="gmime-object.h" line="105"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="457">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="452">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="490">Gets the value of the content-type param @name set on the MIME part
@object.</doc>
        <source-position filename="gmime-object.h" line="107"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="498">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="492">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="493">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="607">Gets the MIME object's disposition if set or %NULL otherwise.</doc>
        <source-position filename="gmime-object.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="613">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="609">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="870">Gets the raw, unprocessed value of the first header with the specified name.</doc>
        <source-position filename="gmime-object.h" line="124"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="877">the raw, unprocessed value of the requested header if it
exists or %NULL otherwise.

Note: The returned value should be decoded with a function such as
g_mime_utils_header_decode_text() before displaying to the user.</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="872">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="873">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="1057">Get the header list for @object.</doc>
        <source-position filename="gmime-object.h" line="127"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="1063">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="1059">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="953">Allocates a string buffer containing all of the MIME object's raw
headers.</doc>
        <source-position filename="gmime-object.h" line="129"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="960">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="955">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prepend_header"
              c:identifier="g_mime_object_prepend_header">
        <doc xml:space="preserve"
             filename="gmime-object.c"
             line="782">Prepends a raw, unprocessed header to the MIME object.

Note: @value should be encoded with a function such as
g_mime_utils_header_encode_text().</doc>
        <source-position filename="gmime-object.h" line="121"/>
        <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="784">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="785">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="786">header value</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="926">Removed the specified header if it exists.</doc>
        <source-position filename="gmime-object.h" line="125"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="933">%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="928">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="929">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="554">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="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="556">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="557">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="628">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="115"/>
        <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="630">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="631">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="632">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="682">Sets the Content-Id of the MIME object.</doc>
        <source-position filename="gmime-object.h" line="118"/>
        <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="684">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="685">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="427">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="104"/>
        <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="429">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="430">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="469">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="106"/>
        <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="471">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="472">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="473">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="577">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="112"/>
        <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="579">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="580">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="841">Sets an arbitrary raw, unprocessed header on the MIME object.

Note: @value should be encoded with a function such as
g_mime_utils_header_encode_text().</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="843">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="844">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="845">header value</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="1024">Allocates a string buffer containing the contents of @object.</doc>
        <source-position filename="gmime-object.h" line="132"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="1030">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="1026">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-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="980">Write the contents of the MIME object to @stream.</doc>
        <source-position filename="gmime-object.h" line="131"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-object.c"
               line="987">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="982">a #GMimeObject</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="983">stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-object.h"
             line="48">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="disposition">
        <doc xml:space="preserve"
             filename="gmime-object.h"
             line="49">a #GMimeContentDisposition</doc>
        <type name="ContentDisposition" c:type="GMimeContentDisposition*"/>
      </field>
      <field name="content_type">
        <doc xml:space="preserve"
             filename="gmime-object.h"
             line="50">a #GMimeContentType</doc>
        <type name="ContentType" c:type="GMimeContentType*"/>
      </field>
      <field name="headers">
        <doc xml:space="preserve"
             filename="gmime-object.h"
             line="52">a #GMimeHeaderList</doc>
        <type name="HeaderList" c:type="GMimeHeaderList*"/>
      </field>
      <field name="content_id">
        <doc xml:space="preserve"
             filename="gmime-object.h"
             line="51">a Content-Id</doc>
        <type name="utf8" c:type="char*"/>
      </field>
    </class>
    <record name="ObjectClass"
            c:type="GMimeObjectClass"
            glib:is-gtype-struct-for="Object">
      <source-position filename="gmime-object.h" line="82"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="prepend_header">
        <callback name="prepend_header">
          <source-position filename="gmime-object.h" line="69"/>
          <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="784">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
            <parameter name="header" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="785">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="786">header value</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="append_header">
        <callback name="append_header">
          <source-position filename="gmime-object.h" line="70"/>
          <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="813">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
            <parameter name="header" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="814">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="815">header value</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_header">
        <callback name="set_header">
          <source-position filename="gmime-object.h" line="71"/>
          <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="843">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
            <parameter name="header" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="844">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="845">header value</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_header">
        <callback name="get_header">
          <source-position filename="gmime-object.h" line="72"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="877">the raw, unprocessed value of the requested header if it
exists or %NULL otherwise.

Note: The returned value should be decoded with a function such as
g_mime_utils_header_decode_text() before displaying to the user.</doc>
            <type name="utf8" c:type="const char*"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="872">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
            <parameter name="header" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="873">header name</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_header">
        <callback name="remove_header">
          <source-position filename="gmime-object.h" line="73"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="933">%TRUE if the header was removed or %FALSE if it could not
be found.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="928">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
            <parameter name="header" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="929">header name</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_content_type">
        <callback name="set_content_type">
          <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">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="429">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="430">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="77"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="960">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="955">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="write_to_stream">
        <callback name="write_to_stream">
          <source-position filename="gmime-object.h" line="79"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-object.c"
                 line="987">the number of bytes written or %-1 on fail.</doc>
            <type name="gssize" c:type="ssize_t"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="982">a #GMimeObject</doc>
              <type name="Object" c:type="GMimeObject*"/>
            </parameter>
            <parameter name="stream" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gmime-object.c"
                   line="983">stream</doc>
              <type name="Stream" c:type="GMimeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="encode">
        <callback name="encode">
          <source-position filename="gmime-object.h" line="81"/>
          <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="1008">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="1009">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="85">The function signature for a callback to g_mime_message_foreach()
and g_mime_multipart_foreach().</doc>
      <source-position filename="gmime-object.h" line="94"/>
      <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="87">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="88">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="89">User-supplied callback data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <function-macro name="PARSER"
                    c:identifier="GMIME_PARSER"
                    introspectable="0">
      <source-position filename="gmime-parser.h" line="37"/>
      <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="38"/>
      <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="41"/>
      <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="36"/>
      <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="37"/>
      <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="40"/>
      <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>
    <record name="Param" c:type="GMimeParam">
      <doc xml:space="preserve"
           filename="gmime-param.h"
           line="32">A parameter name/value pair as used for some Content header fields.</doc>
      <source-position filename="gmime-param.h" line="44"/>
      <field name="next" writable="1">
        <doc xml:space="preserve"
             filename="gmime-param.h"
             line="34">Pointer to the next param.</doc>
        <type name="Param" c:type="GMimeParam*"/>
      </field>
      <field name="name" writable="1">
        <doc xml:space="preserve"
             filename="gmime-param.h"
             line="35">Parameter name.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="value" writable="1">
        <doc xml:space="preserve"
             filename="gmime-param.h"
             line="36">Parameter value.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <method name="append"
              c:identifier="g_mime_param_append"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="723">Appends a new parameter with name @name and value @value to the
parameter list @params.</doc>
        <source-position filename="gmime-param.h" line="52"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="732">a param list with the new param of name @name and value
@value appended to the list of params @params.</doc>
          <type name="Param" c:type="GMimeParam*"/>
        </return-value>
        <parameters>
          <instance-parameter name="params" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="725">param list</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="726">new param name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="727">new param value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="append_param"
              c:identifier="g_mime_param_append_param"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="756">Appends @param to the param list @params.</doc>
        <source-position filename="gmime-param.h" line="53"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="763">a param list with the new param @param appended to the list
of params @params.</doc>
          <type name="Param" c:type="GMimeParam*"/>
        </return-value>
        <parameters>
          <instance-parameter name="params" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="758">param list</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="759">param to append</doc>
            <type name="Param" c:type="GMimeParam*"/>
          </parameter>
        </parameters>
      </method>
      <method name="destroy" c:identifier="g_mime_param_destroy">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="650">Releases all memory used by this mime param back to the Operating
System.</doc>
        <source-position filename="gmime-param.h" line="48"/>
        <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="652">Mime param list to destroy</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="689">Gets the name of the parameter.</doc>
        <source-position filename="gmime-param.h" line="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="695">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="691">a #GMimeParam</doc>
            <type name="Param" c:type="const 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="706">Gets the value of the parameter.</doc>
        <source-position filename="gmime-param.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="712">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="708">a #GMimeParam</doc>
            <type name="Param" c:type="const GMimeParam*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="g_mime_param_next">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="672">Gets the next #GMimeParam node in the list.</doc>
        <source-position filename="gmime-param.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="678">the next #GMimeParam node in the list.</doc>
          <type name="Param" c:type="const GMimeParam*"/>
        </return-value>
        <parameters>
          <instance-parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="674">a #GMimeParam node</doc>
            <type name="Param" c:type="const GMimeParam*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="write_to_string"
              c:identifier="g_mime_param_write_to_string">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="984">Assumes the output string contains only the Content-* header and
it's immediate value.

Writes the params out to the string @string.</doc>
        <source-position filename="gmime-param.h" line="58"/>
        <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="986">MIME Param list</doc>
            <type name="Param" c:type="const GMimeParam*"/>
          </instance-parameter>
          <parameter name="fold" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="987">specifies whether or not to fold headers</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="988">output string</doc>
            <type name="GLib.String" c:type="GString*"/>
          </parameter>
        </parameters>
      </method>
      <function name="new" c:identifier="g_mime_param_new" introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="66">Creates a new #GMimeParam node with name @name and value @value.</doc>
        <source-position filename="gmime-param.h" line="46"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="73">a new paramter structure.</doc>
          <type name="Param" c:type="GMimeParam*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="68">parameter name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="69">parameter value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_from_string"
                c:identifier="g_mime_param_new_from_string"
                introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-param.c"
             line="633">Creates a parameter list based on the input string.</doc>
        <source-position filename="gmime-param.h" line="47"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gmime-param.c"
               line="639">a #GMimeParam structure based on @string.</doc>
          <type name="Param" c:type="GMimeParam*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-param.c"
                 line="635">input string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
    </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="47">A MIME parser context.</doc>
      <source-position filename="gmime-parser.h" line="63"/>
      <constructor name="new" c:identifier="g_mime_parser_new">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="416">Creates a new parser object.</doc>
        <source-position filename="gmime-parser.h" line="84"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="421">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="430">Creates a new parser object preset to parse @stream.</doc>
        <source-position filename="gmime-parser.h" line="85"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="436">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="432">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="2037">Constructs a MIME message from @parser.</doc>
        <source-position filename="gmime-parser.h" line="104"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="2043">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="2039">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="construct_part"
              c:identifier="g_mime_parser_construct_part">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="1952">Constructs a MIME part from @parser.</doc>
        <source-position filename="gmime-parser.h" line="102"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="1958">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="1954">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="eos" c:identifier="g_mime_parser_eos">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="762">Tests the end-of-stream indicator for @parser's internal stream.</doc>
        <source-position filename="gmime-parser.h" line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="768">%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="764">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_from" c:identifier="g_mime_parser_get_from">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="2054">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="110"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="2061">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="2056">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_from_offset"
              c:identifier="g_mime_parser_get_from_offset">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="2082">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="112"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="2089">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="2084">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="2107">Gets the stream offset of the beginning of the headers of the most
recently parsed message.</doc>
        <source-position filename="gmime-parser.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="2114">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="2109">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="2126">Gets the stream offset of the end of the headers of the most
recently parsed message.</doc>
        <source-position filename="gmime-parser.h" line="114"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="2133">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="2128">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="482">Gets whether or not the underlying stream is persistent.</doc>
        <source-position filename="gmime-parser.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="488">%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="484">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="589">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="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="596">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="591">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_scan_from" c:identifier="g_mime_parser_get_scan_from">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="553">Gets whether or not @parser is set to scan mbox-style From-lines.</doc>
        <source-position filename="gmime-parser.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="559">whether or not @parser is set to scan mbox-style
From-lines.</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="555">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="450">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="87"/>
        <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="452">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="453">raw message or part stream</doc>
            <type name="Stream" c:type="GMimeStream*"/>
          </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="631">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="98"/>
        <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="633">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="634">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="635">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="636">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="500">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="90"/>
        <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="502">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="503">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="608">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="96"/>
        <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="610">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="611">%TRUE if the parser should use Content-Length headers or %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_scan_from" c:identifier="g_mime_parser_set_scan_from">
        <doc xml:space="preserve"
             filename="gmime-parser.c"
             line="571">Sets whether or not @parser should scan mbox-style From-lines.

By default, this feature is disabled.</doc>
        <source-position filename="gmime-parser.h" line="93"/>
        <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="573">a #GMimeParser context</doc>
            <type name="Parser" c:type="GMimeParser*"/>
          </instance-parameter>
          <parameter name="scan_from" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-parser.c"
                 line="574">%TRUE to scan From-lines 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="743">Gets the current stream offset from the parser's internal stream.</doc>
        <source-position filename="gmime-parser.h" line="106"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-parser.c"
               line="749">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="745">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="49">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <doc xml:space="preserve"
             filename="gmime-parser.h"
             line="50">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="63"/>
      <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="66">Function signature for the callback to
g_mime_parser_set_header_regex().</doc>
      <source-position filename="gmime-parser.h" line="77"/>
      <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="68">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="69">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="70">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="71">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="72">The 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="45">A leaf-node MIME part object.</doc>
      <source-position filename="gmime-part.h" line="71"/>
      <constructor name="new" c:identifier="g_mime_part_new">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="433">Creates a new MIME Part object with a default content-type of
text/plain.</doc>
        <source-position filename="gmime-part.h" line="77"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="439">an empty MIME Part object with a default content-type of
text/plain.</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="458">Creates a new MIME Part with a sepcified type.</doc>
        <source-position filename="gmime-part.h" line="78"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="465">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="460">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="461">content-subtype string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="set_content_object" invoker="set_content_object">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="891">Sets the content object on the mime part.</doc>
        <source-position filename="gmime-part.h" line="70"/>
        <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="893">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="894">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="768">Calculates the most efficient content encoding for the @mime_part
given the @constraint.</doc>
        <source-position filename="gmime-part.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="776">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="770">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="771">a #GMimeEncodingConstraint</doc>
            <type name="EncodingConstraint" c:type="GMimeEncodingConstraint"/>
          </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="504">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="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="511">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="506">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="751">Gets the content encoding of the mime part.</doc>
        <source-position filename="gmime-part.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="757">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="753">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="538">Gets the content-id of the specified mime part if it exists, or
%NULL otherwise.</doc>
        <source-position filename="gmime-part.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="545">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="540">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="715">Gets the value of the Content-Location header if it exists, or
%NULL otherwise.</doc>
        <source-position filename="gmime-part.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="722">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="717">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="676">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="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="683">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="678">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content_object"
              c:identifier="g_mime_part_get_content_object">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="910">Gets the internal data-wrapper of the specified mime part, or %NULL
on error.</doc>
        <source-position filename="gmime-part.h" line="105"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="917">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="912">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="853">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="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="860">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="855">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_attachment"
              c:identifier="g_mime_part_is_attachment"
              version="2.6.21">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="807">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="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="814">%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="809">a #GMimePart object</doc>
            <type name="Part" c:type="GMimePart*"/>
          </instance-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="483">Set the content description for the specified mime part.</doc>
        <source-position filename="gmime-part.h" line="81"/>
        <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="485">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="486">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="733">Set the content encoding for the specified mime part.</doc>
        <source-position filename="gmime-part.h" line="94"/>
        <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="735">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="736">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="522">Set the content id for the specified mime part.</doc>
        <source-position filename="gmime-part.h" line="84"/>
        <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="524">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="525">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="694">Set the content location 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="696">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="697">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="556">Set the content md5 for the specified mime part.</doc>
        <source-position filename="gmime-part.h" line="87"/>
        <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="558">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="559">content md5 or %NULL to generate the md5 digest.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content_object"
              c:identifier="g_mime_part_set_content_object">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="891">Sets the content object on the mime part.</doc>
        <source-position filename="gmime-part.h" line="104"/>
        <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="893">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="894">a #GMimeDataWrapper content object</doc>
            <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filename" c:identifier="g_mime_part_set_filename">
        <doc xml:space="preserve"
             filename="gmime-part.c"
             line="831">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="101"/>
        <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="833">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="834">the file name</doc>
            <type name="utf8" c:type="const char*"/>
          </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="617">Verify the content md5 for the specified mime part.</doc>
        <source-position filename="gmime-part.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part.c"
               line="623">%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="619">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="47">parent #GMimeObject</doc>
        <type name="Object" c:type="GMimeObject"/>
      </field>
      <field name="encoding">
        <doc xml:space="preserve"
             filename="gmime-part.h"
             line="48">a #GMimeContentEncoding</doc>
        <type name="ContentEncoding" c:type="GMimeContentEncoding"/>
      </field>
      <field name="content_description">
        <doc xml:space="preserve"
             filename="gmime-part.h"
             line="49">Content-Description string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="content_location">
        <doc xml:space="preserve"
             filename="gmime-part.h"
             line="50">Content-Location string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="content_md5">
        <doc xml:space="preserve"
             filename="gmime-part.h"
             line="51">Content-MD5 string</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="content">
        <doc xml:space="preserve"
             filename="gmime-part.h"
             line="52">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="71"/>
      <field name="parent_class">
        <type name="ObjectClass" c:type="GMimeObjectClass"/>
      </field>
      <field name="set_content_object">
        <callback name="set_content_object">
          <source-position filename="gmime-part.h" line="70"/>
          <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="893">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="894">a #GMimeDataWrapper content object</doc>
              <type name="DataWrapper" c:type="GMimeDataWrapper*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="PartIter" c:type="GMimePartIter" disguised="1">
      <doc xml:space="preserve"
           filename="gmime-part-iter.h"
           line="29">A MIME part iterator.</doc>
      <source-position filename="gmime-part-iter.h" line="34"/>
      <method name="free" c:identifier="g_mime_part_iter_free">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="129">Frees the memory allocated by g_mime_part_iter_new().</doc>
        <source-position filename="gmime-part-iter.h" line="37"/>
        <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="131">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="422">Gets the #GMimeObject at the current #GMimePartIter position.</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="428">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="424">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="440">Gets the parent of the #GMimeObject at the current #GMimePartIter
position.</doc>
        <source-position filename="gmime-part-iter.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="447">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="442">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="462">Gets the path of the current #GMimeObject in the MIME structure
used to initialize @iter.</doc>
        <source-position filename="gmime-part-iter.h" line="51"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="469">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="464">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="405">Gets the toplevel #GMimeObject used to initialize @iter.</doc>
        <source-position filename="gmime-part-iter.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="411">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="407">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="276">Checks that the current state of @iter is valid.</doc>
        <source-position filename="gmime-part-iter.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="282">%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="278">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="177">Updates the state of @iter to point to the #GMimeObject specified
by @path.</doc>
        <source-position filename="gmime-part-iter.h" line="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="185">%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="179">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="180">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="293">Advances to the next part in the MIME structure used to initialize
@iter.</doc>
        <source-position filename="gmime-part-iter.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="300">%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="295">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="367">Rewinds to the previous part in the MIME structure used to
initialize @iter.</doc>
        <source-position filename="gmime-part-iter.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="374">%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="369">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="557">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="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="565">%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="559">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="496">Replaces the #GMimeObject at the current position with @replacement.</doc>
        <source-position filename="gmime-part-iter.h" line="53"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="503">%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="498">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="499">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="149">Resets the state of @iter to its initial state.</doc>
        <source-position filename="gmime-part-iter.h" line="39"/>
        <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="151">a #GMimePartIter</doc>
            <type name="PartIter" c:type="GMimePartIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="new"
                c:identifier="g_mime_part_iter_new"
                introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-part-iter.c"
             line="101">Creates a new #GMimePartIter for iterating over @toplevel's subparts.</doc>
        <source-position filename="gmime-part-iter.h" line="36"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gmime-part-iter.c"
               line="107">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="103">a #GMimeObject to use as the toplevel</doc>
            <type name="Object" c:type="GMimeObject*"/>
          </parameter>
        </parameters>
      </function>
    </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_ctx" 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.h"
           line="40">A PKCS7 crypto context.</doc>
      <source-position filename="gmime-pkcs7-context.h" line="56"/>
      <constructor name="new"
                   c:identifier="g_mime_pkcs7_context_new"
                   introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-pkcs7-context.c"
             line="887">Creates a new pkcs7 crypto context object.</doc>
        <source-position filename="gmime-pkcs7-context.h" line="61"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-pkcs7-context.c"
               line="893">a new pkcs7 crypto context object.</doc>
          <type name="CryptoContext" c:type="GMimeCryptoContext*"/>
        </return-value>
        <parameters>
          <parameter name="request_passwd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-pkcs7-context.c"
                 line="889">a #GMimePasswordRequestFunc</doc>
            <type name="PasswordRequestFunc"
                  c:type="GMimePasswordRequestFunc"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_always_trust"
              c:identifier="g_mime_pkcs7_context_get_always_trust">
        <doc xml:space="preserve"
             filename="gmime-pkcs7-context.c"
             line="926">Gets the @always_trust flag on the pkcs7 context.</doc>
        <source-position filename="gmime-pkcs7-context.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-pkcs7-context.c"
               line="932">the @always_trust flag on the pkcs7 context.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-pkcs7-context.c"
                 line="928">a #GMimePkcs7Context</doc>
            <type name="Pkcs7Context" c:type="GMimePkcs7Context*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_always_trust"
              c:identifier="g_mime_pkcs7_context_set_always_trust">
        <doc xml:space="preserve"
             filename="gmime-pkcs7-context.c"
             line="943">Sets the @always_trust flag on the pkcs7 context which is used for
encryption.</doc>
        <source-position filename="gmime-pkcs7-context.h" line="64"/>
        <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-pkcs7-context.c"
                 line="945">a #GMimePkcs7Context</doc>
            <type name="Pkcs7Context" c:type="GMimePkcs7Context*"/>
          </instance-parameter>
          <parameter name="always_trust" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-pkcs7-context.c"
                 line="946">always trust flag</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <doc xml:space="preserve"
             filename="gmime-pkcs7-context.h"
             line="42">parent #GMimeCryptoContext</doc>
        <type name="CryptoContext" c:type="GMimeCryptoContext"/>
      </field>
      <field name="priv">
        <doc xml:space="preserve"
             filename="gmime-pkcs7-context.h"
             line="43">private context data</doc>
        <type name="gpointer" c:type="_GMimePkcs7ContextPrivate*"/>
      </field>
    </class>
    <record name="Pkcs7ContextClass"
            c:type="GMimePkcs7ContextClass"
            glib:is-gtype-struct-for="Pkcs7Context">
      <source-position filename="gmime-pkcs7-context.h" line="56"/>
      <field name="parent_class">
        <type name="CryptoContextClass" c:type="GMimeCryptoContextClass"/>
      </field>
    </record>
    <enumeration name="PubKeyAlgo" c:type="GMimePubKeyAlgo">
      <doc xml:space="preserve"
           filename="gmime-certificate.h"
           line="86">A public-key algorithm.</doc>
      <source-position filename="gmime-certificate.h" line="106"/>
      <member name="default"
              value="0"
              c:identifier="GMIME_PUBKEY_ALGO_DEFAULT">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="88">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="89">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="90">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="91">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="92">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="93">The DSA algorithm.</doc>
      </member>
      <member name="elg" value="20" c:identifier="GMIME_PUBKEY_ALGO_ELG">
        <doc xml:space="preserve"
             filename="gmime-certificate.h"
             line="94">The ElGamal 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>
    <enumeration name="RecipientType" c:type="GMimeRecipientType">
      <doc xml:space="preserve"
           filename="gmime-message.h"
           line="47">A message recipient type.</doc>
      <source-position filename="gmime-message.h" line="59"/>
      <member name="to" value="0" c:identifier="GMIME_RECIPIENT_TYPE_TO">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="49">Represents the recipients in the To: header.</doc>
      </member>
      <member name="cc" value="1" c:identifier="GMIME_RECIPIENT_TYPE_CC">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="50">Represents the recipients in the Cc: header.</doc>
      </member>
      <member name="bcc" value="2" c:identifier="GMIME_RECIPIENT_TYPE_BCC">
        <doc xml:space="preserve"
             filename="gmime-message.h"
             line="51">Represents the recipients in the Bcc: header.</doc>
      </member>
    </enumeration>
    <record name="References" c:type="GMimeReferences">
      <doc xml:space="preserve"
           filename="gmime-utils.h"
           line="35">A List of references, as per the References or In-Reply-To header
fields.</doc>
      <source-position filename="gmime-utils.h" line="46"/>
      <field name="next" writable="1">
        <doc xml:space="preserve"
             filename="gmime-utils.h"
             line="37">Pointer to the next reference.</doc>
        <type name="References" c:type="GMimeReferences*"/>
      </field>
      <field name="msgid" writable="1">
        <doc xml:space="preserve"
             filename="gmime-utils.h"
             line="38">Reference message-id.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <method name="free" c:identifier="g_mime_references_free">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="1077">Frees the #GMimeReferences list.</doc>
        <source-position filename="gmime-utils.h" line="61"/>
        <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-utils.c"
                 line="1079">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-utils.c"
             line="1129">Gets the Message-Id reference from the #GMimeReferences node.</doc>
        <source-position filename="gmime-utils.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1135">the Message-Id reference from the #GMimeReferences node.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-utils.c"
                 line="1131">a #GMimeReferences list</doc>
            <type name="References" c:type="const GMimeReferences*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_next" c:identifier="g_mime_references_get_next">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="1114">Advances to the next reference node in the #GMimeReferences list.</doc>
        <source-position filename="gmime-utils.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1120">the next reference node in the #GMimeReferences list.</doc>
          <type name="References" c:type="const GMimeReferences*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-utils.c"
                 line="1116">a #GMimeReferences list</doc>
            <type name="References" c:type="const GMimeReferences*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="append" c:identifier="g_mime_references_append">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="1052">Appends a reference to msgid to the list of references.</doc>
        <source-position filename="gmime-utils.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="refs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-utils.c"
                 line="1054">the address of a #GMimeReferences list</doc>
            <type name="References" c:type="GMimeReferences**"/>
          </parameter>
          <parameter name="msgid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-utils.c"
                 line="1055">a message-id string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="clear" c:identifier="g_mime_references_clear">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="1098">Clears the #GMimeReferences list and resets it to %NULL.</doc>
        <source-position filename="gmime-utils.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="refs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-utils.c"
                 line="1100">address of a #GMimeReferences list</doc>
            <type name="References" c:type="GMimeReferences**"/>
          </parameter>
        </parameters>
      </function>
      <function name="decode"
                c:identifier="g_mime_references_decode"
                introspectable="0">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="1004">Decodes a list of msg-ids as in the References and/or In-Reply-To
headers defined in rfc822.</doc>
        <source-position filename="gmime-utils.h" line="58"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1011">a list of referenced msg-ids.</doc>
          <type name="References" c:type="GMimeReferences*"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-utils.c"
                 line="1006">string containing a list of msg-ids</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <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>
    <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="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="88">An object containing useful information about a signature.</doc>
      <source-position filename="gmime-signature.h" line="112"/>
      <constructor name="new" c:identifier="g_mime_signature_new">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="105">Creates a new #GMimeSignature object.</doc>
        <source-position filename="gmime-signature.h" line="117"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="110">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="213">Get the signature's certificate.</doc>
        <source-position filename="gmime-signature.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="219">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="215">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="246">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="252">the creation date of the signature or %-1 if unknown.</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="248">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_errors" c:identifier="g_mime_signature_get_errors">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="168">Get the signature errors. If the #GMimeSignatureStatus returned from
g_mime_signature_get_status() is not #GMIME_SIGNATURE_STATUS_GOOD, then the
errors may provide a clue as to why.</doc>
        <source-position filename="gmime-signature.h" line="126"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="176">a bitfield of errors.</doc>
          <type name="SignatureError" c:type="GMimeSignatureError"/>
        </return-value>
        <parameters>
          <instance-parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="170">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="279">Get the expiration date of the signature.</doc>
        <source-position filename="gmime-signature.h" line="132"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="285">the expiration date of the signature or %-1 if unknown.</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="sig" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="281">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="135">Get the signature status.</doc>
        <source-position filename="gmime-signature.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="141">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="137">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="187">Set the signature's certificate.</doc>
        <source-position filename="gmime-signature.h" line="119"/>
        <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="189">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="190">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="230">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="232">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="233">creation date</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_errors" c:identifier="g_mime_signature_set_errors">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="152">Set the errors 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="154">a #GMimeSignature</doc>
            <type name="Signature" c:type="GMimeSignature*"/>
          </instance-parameter>
          <parameter name="errors" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-signature.c"
                 line="155">a #GMimeSignatureError</doc>
            <type name="SignatureError" c:type="GMimeSignatureError"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_expires" c:identifier="g_mime_signature_set_expires">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="263">Set the expiration date of the signature.</doc>
        <source-position filename="gmime-signature.h" line="131"/>
        <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="265">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="266">expiration date</doc>
            <type name="glong" 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="119">Set the status on the signature.</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="121">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="122">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="90">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="status">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="91">A #GMimeSignatureStatus.</doc>
        <type name="SignatureStatus" c:type="GMimeSignatureStatus"/>
      </field>
      <field name="errors">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="92">A bitfield of #GMimeSignatureError values.</doc>
        <type name="SignatureError" c:type="GMimeSignatureError"/>
      </field>
      <field name="cert">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="93">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="94">The creation date of the signature.</doc>
        <type name="glong" c:type="time_t"/>
      </field>
      <field name="expires">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="95">The expiration date of the signature.</doc>
        <type name="glong" 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="112"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <bitfield name="SignatureError" c:type="GMimeSignatureError">
      <doc xml:space="preserve"
           filename="gmime-signature.h"
           line="67">Possible errors that a #GMimeSignature could have.</doc>
      <source-position filename="gmime-signature.h" line="85"/>
      <member name="none" value="0" c:identifier="GMIME_SIGNATURE_ERROR_NONE">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="69">No error.</doc>
      </member>
      <member name="expsig"
              value="1"
              c:identifier="GMIME_SIGNATURE_ERROR_EXPSIG">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="70">Expired signature.</doc>
      </member>
      <member name="no_pubkey"
              value="2"
              c:identifier="GMIME_SIGNATURE_ERROR_NO_PUBKEY">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="71">No public key found.</doc>
      </member>
      <member name="expkeysig"
              value="4"
              c:identifier="GMIME_SIGNATURE_ERROR_EXPKEYSIG">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="72">Expired signature key.</doc>
      </member>
      <member name="revkeysig"
              value="8"
              c:identifier="GMIME_SIGNATURE_ERROR_REVKEYSIG">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="73">Revoked signature key.</doc>
      </member>
      <member name="unsupp_algo"
              value="16"
              c:identifier="GMIME_SIGNATURE_ERROR_UNSUPP_ALGO">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="74">Unsupported algorithm.</doc>
      </member>
    </bitfield>
    <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="135">A collection of #GMimeSignature objects.</doc>
      <source-position filename="gmime-signature.h" line="150"/>
      <constructor name="new" c:identifier="g_mime_signature_list_new">
        <doc xml:space="preserve"
             filename="gmime-signature.c"
             line="363">Creates a new #GMimeSignatureList.</doc>
        <source-position filename="gmime-signature.h" line="155"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="368">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="417">Adds a #GMimeSignature to the #GMimeSignatureList.</doc>
        <source-position filename="gmime-signature.h" line="161"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="424">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="419">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="420">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="394">Clears the list of addresses.</doc>
        <source-position filename="gmime-signature.h" line="159"/>
        <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="396">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="535">Checks whether or not the specified #GMimeSignature is contained within
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="543">%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="537">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="538">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="582">Gets the #GMimeSignature at the specified index.</doc>
        <source-position filename="gmime-signature.h" line="169"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="589">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="584">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="585">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="553">Gets the index of the specified #GMimeSignature inside the
#GMimeSignatureList.</doc>
        <source-position filename="gmime-signature.h" line="167"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="561">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="555">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="556">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="442">Inserts a #GMimeSignature into the #GMimeSignatureList at the specified
index.</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="444">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="445">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="446">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="377">Gets the length of the list.</doc>
        <source-position filename="gmime-signature.h" line="157"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="383">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="379">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="479">Removes a #GMimeSignature from the #GMimeSignatureList.</doc>
        <source-position filename="gmime-signature.h" line="163"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="486">%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="481">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="482">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="506">Removes a #GMimeSignature from the #GMimeSignatureList at the specified
index.</doc>
        <source-position filename="gmime-signature.h" line="164"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-signature.c"
               line="514">%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="508">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="509">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="605">Sets the #GMimeSignature at the specified index to @sig.</doc>
        <source-position filename="gmime-signature.h" line="170"/>
        <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="607">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="608">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="609">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="137">parent #GObject</doc>
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="array">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="138">An array of #GMimeSignature objects.</doc>
        <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="150"/>
      <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 for a particular
#GMimeSignature.</doc>
      <source-position filename="gmime-signature.h" line="64"/>
      <member name="good" value="0" c:identifier="GMIME_SIGNATURE_STATUS_GOOD">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="53">Good signature.</doc>
      </member>
      <member name="error"
              value="1"
              c:identifier="GMIME_SIGNATURE_STATUS_ERROR">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="54">An error occurred.</doc>
      </member>
      <member name="bad" value="2" c:identifier="GMIME_SIGNATURE_STATUS_BAD">
        <doc xml:space="preserve"
             filename="gmime-signature.h"
             line="55">Bad signature.</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="107"/>
      <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="100"/>
        <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="101"/>
        <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="99"/>
        <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="105"/>
        <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="97"/>
        <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="102"/>
        <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="103"/>
        <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="106"/>
        <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="104"/>
        <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="98"/>
        <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>
            <type name="utf8" c:type="const char*"/>
          </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="701">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="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-buffer.c"
               line="713">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="703">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="704">line buffer</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="max" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream-buffer.c"
                 line="705">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="818">Reads a single line into @buffer.</doc>
        <source-position filename="gmime-stream-buffer.h" line="91"/>
        <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="820">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="821">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="119"/>
        <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="112"/>
        <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="120"/>
        <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="118"/>
        <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="124"/>
        <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="131"/>
        <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="116"/>
        <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="121"/>
        <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="122"/>
        <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="128"/>
        <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="126"/>
        <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="123"/>
        <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="117"/>
        <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>
            <type name="utf8" c:type="const char*"/>
          </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="130"/>
        <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="133"/>
        <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="gssize" c:type="ssize_t"/>
        </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="572">Writes at most @count blocks described by @vector to @stream.</doc>
        <source-position filename="gmime-stream.h" line="135"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream.c"
               line="580">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="574">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="575">a #GMimeStreamIOVector</doc>
            <type name="StreamIOVector" c:type="GMimeStreamIOVector*"/>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gmime-stream.c"
                 line="576">number of vector elements</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <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">
        <doc xml:space="preserve"
             filename="gmime-stream.h"
             line="76">parent stream if this is a substream</doc>
        <type name="Stream" c:type="GMimeStream*"/>
      </field>
      <field name="position" readable="0" private="1">
        <doc xml:space="preserve"
             filename="gmime-stream.h"
             line="77">the current stream position</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="bound_start" readable="0" private="1">
        <doc xml:space="preserve"
             filename="gmime-stream.h"
             line="78">start boundary of the stream</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="bound_end" readable="0" private="1">
        <doc xml:space="preserve"
             filename="gmime-stream.h"
             line="79">end boundary of the stream</doc>
        <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="55">A buffered stream wrapper around any #GMimeStream object.</doc>
      <source-position filename="gmime-stream-buffer.h" line="82"/>
      <constructor name="new" c:identifier="g_mime_stream_buffer_new">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.c"
             line="654">Creates a new GMimeStreamBuffer object.</doc>
        <source-position filename="gmime-stream-buffer.h" line="87"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-buffer.c"
               line="661">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="656">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="657">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="57">parent #GMimeStream</doc>
        <type name="Stream" c:type="GMimeStream"/>
      </field>
      <field name="mode">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="58">buffering mode</doc>
        <type name="StreamBufferMode" c:type="GMimeStreamBufferMode"/>
      </field>
      <field name="source">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="59">source stream</doc>
        <type name="Stream" c:type="GMimeStream*"/>
      </field>
      <field name="buffer">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="60">internal buffer</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="bufptr">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="61">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="62">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="63">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="82"/>
      <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="52"/>
      <member name="cache_read"
              value="0"
              c:identifier="GMIME_STREAM_BUFFER_CACHE_READ">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="42">Cache all reads.</doc>
      </member>
      <member name="block_read"
              value="1"
              c:identifier="GMIME_STREAM_BUFFER_BLOCK_READ">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="43">Read in 4k blocks.</doc>
      </member>
      <member name="block_write"
              value="2"
              c:identifier="GMIME_STREAM_BUFFER_BLOCK_WRITE">
        <doc xml:space="preserve"
             filename="gmime-stream-buffer.h"
             line="44">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="675">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="680">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="694">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="701">%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="696">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="697">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="107"/>
      <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="97"/>
          <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="98"/>
          <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>
              <type name="utf8" c:type="const char*"/>
            </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="99"/>
          <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="100"/>
          <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="101"/>
          <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="102"/>
          <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="103"/>
          <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="104"/>
          <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="105"/>
          <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="106"/>
          <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="356">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="365">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="358">a FILE pointer</doc>
            <type name="gpointer" c:type="FILE*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_path"
                   c:identifier="g_mime_stream_file_new_for_path"
                   version="2.6.18">
        <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="432">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>
      </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>
      <method name="get_owner" c:identifier="g_mime_stream_file_get_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-file.c"
             line="452">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="458">%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="454">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="470">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="472">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="473">%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="59"/>
      <constructor name="new" c:identifier="g_mime_stream_filter_new">
        <doc xml:space="preserve"
             filename="gmime-stream-filter.c"
             line="401">Creates a new #GMimeStreamFilter object using @stream as the source
stream.</doc>
        <source-position filename="gmime-stream-filter.h" line="64"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-filter.c"
               line="408">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="403">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="429">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="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-stream-filter.c"
               line="437">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="431">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="432">a #GMimeFilter</doc>
            <type name="Filter" c:type="GMimeFilter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="g_mime_stream_filter_remove">
        <doc xml:space="preserve"
             filename="gmime-stream-filter.c"
             line="468">Removed a filter from the stream based on the id (as returned from
filter_add).</doc>
        <source-position filename="gmime-stream-filter.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-filter.c"
                 line="470">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="471">filter id</doc>
            <type name="gint" c:type="int"/>
          </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>
    </class>
    <record name="StreamFilterClass"
            c:type="GMimeStreamFilterClass"
            glib:is-gtype-struct-for="StreamFilter">
      <source-position filename="gmime-stream-filter.h" line="59"/>
      <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="406">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="412">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="408">a file descriptor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_path"
                   c:identifier="g_mime_stream_fs_new_for_path"
                   version="2.6.18">
        <doc xml:space="preserve"
             filename="gmime-stream-fs.c"
             line="467">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="475">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="469">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="470">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="471">as in open(2)</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="437">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="446">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="439">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="440">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="441">end boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_owner" c:identifier="g_mime_stream_fs_get_owner">
        <doc xml:space="preserve"
             filename="gmime-stream-fs.c"
             line="494">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="500">%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="496">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="512">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="514">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="515">%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="633">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="639">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="635">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="658">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="667">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="660">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="661">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="662">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="687">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="693">%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="689">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="705">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="707">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="708">%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="331">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="336">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="374">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="382">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="376">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="377">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="352">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="358">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="354">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="400">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="406">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="402">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="449">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="455">%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="451">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="417">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="419">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="420">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="467">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="469">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="470">%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="379">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="387">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="381">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="382">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="383">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="423">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="434">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="425">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="426">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="427">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="428">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="429">end boundary</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </constructor>
      <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="58"/>
      <constructor name="new" c:identifier="g_mime_stream_null_new">
        <doc xml:space="preserve"
             filename="gmime-stream-null.c"
             line="238">Creates a new #GMimeStreamNull object.</doc>
        <source-position filename="gmime-stream-null.h" line="63"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-stream-null.c"
               line="243">a new null stream (similar to /dev/null on Unix).</doc>
          <type name="Stream" c:type="GMimeStream*"/>
        </return-value>
      </constructor>
      <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>
    </class>
    <record name="StreamNullClass"
            c:type="GMimeStreamNullClass"
            glib:is-gtype-struct-for="StreamNull">
      <source-position filename="gmime-stream-null.h" line="58"/>
      <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="286">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="292">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="288">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="309">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="315">%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="311">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="327">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="329">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="330">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>
    <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>
    <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="801">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">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="808">the charset name best suited for the input text or %NULL if
it is US-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="803">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="804">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="546">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="557">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="548">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="418">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="424">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="420">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="635">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="642">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="637">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="376">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">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="384">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="378">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="618">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="626">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="246">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="183">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="600">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="609">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="602">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="83">Checks that the GMime library version meets the requirements of the
required version.</doc>
      <source-position filename="gmime.h" line="115"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime.c"
             line="92">%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="85">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="86">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="87">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="103">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="110">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="105">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="141">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="147">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="143">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="494">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="504">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="496">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="497">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="498">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="499">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="500">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="357">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="369">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="359">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="360">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="361">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="362">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="363">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="406">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="419">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="408">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="409">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="410">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="411">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="412">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="1020">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="1031">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="1022">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="1023">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="1024">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="1025">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="1026">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="876">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="888">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="878">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="879">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="880">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="881">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="882">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="926">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="938">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="928">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="929">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="930">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="931">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="932">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="770">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="782">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="772">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="773">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="774">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="775">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="776">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="573">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="585">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="575">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="576">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="577">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="578">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="579">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="580">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="653">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="667">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="655">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="656">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="657">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="658">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="659">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="660">leftover bits that have not yet been encoded</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="iconv"
                    c:identifier="g_mime_iconv"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-iconv.h"
           line="36">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="99"/>
      <parameters>
        <parameter name="cd">
          <doc xml:space="preserve"
               filename="gmime-iconv.h"
               line="38">iconv_t conversion descriptor</doc>
        </parameter>
        <parameter name="inbuf">
          <doc xml:space="preserve"
               filename="gmime-iconv.h"
               line="39">input buffer</doc>
        </parameter>
        <parameter name="inleft">
          <doc xml:space="preserve"
               filename="gmime-iconv.h"
               line="40">number of bytes left in @inbuf</doc>
        </parameter>
        <parameter name="outbuf">
          <doc xml:space="preserve"
               filename="gmime-iconv.h"
               line="41">output buffer</doc>
        </parameter>
        <parameter name="outleft">
          <doc xml:space="preserve"
               filename="gmime-iconv.h"
               line="42">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="311">Closes the iconv descriptor @cd.

See the manual page for iconv_close(3) for further details.</doc>
      <source-position filename="gmime-iconv.h" line="101"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-iconv.c"
             line="319">%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">
          <doc xml:space="preserve"
               filename="gmime-iconv.c"
               line="313">iconv conversion descriptor</doc>
          <type c:type="iconv_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="iconv_init" c:identifier="g_mime_iconv_init">
      <doc xml:space="preserve"
           filename="gmime-iconv.c"
           line="202">Initialize GMime's iconv cache. This *MUST* be called before any
gmime-iconv interfaces will work correctly.

Note: this function is called for you by g_mime_init().</doc>
      <source-position filename="gmime-iconv.h" line="30"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </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="216">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="222">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="218">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="237">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="245">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="239">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="240">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="224">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="33"/>
      <return-value>
        <doc xml:space="preserve"
             filename="gmime-iconv.c"
             line="236">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 c:type="iconv_t"/>
      </return-value>
      <parameters>
        <parameter name="to" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv.c"
               line="226">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="227">charset to convert from</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="iconv_shutdown" c:identifier="g_mime_iconv_shutdown">
      <doc xml:space="preserve"
           filename="gmime-iconv.c"
           line="174">Frees internal iconv caches created in g_mime_iconv_init().

Note: this function is called for you by g_mime_shutdown().</doc>
      <source-position filename="gmime-iconv.h" line="31"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="iconv_strdup"
              c:identifier="g_mime_iconv_strdup"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gmime-iconv-utils.c"
           line="198">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="206">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">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="200">conversion descriptor</doc>
          <type c:type="iconv_t"/>
        </parameter>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="201">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="95">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="105">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">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="97">conversion descriptor</doc>
          <type c:type="iconv_t"/>
        </parameter>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-iconv-utils.c"
               line="98">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="99">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="261">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="268">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="263">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="284">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="292">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="286">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="287">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="110">Initializes GMime.

Note: Calls g_mime_charset_map_init() and g_mime_iconv_init() as
well.</doc>
      <source-position filename="gmime.h" line="137"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime.c"
               line="112">initialization flags</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="locale_charset" c:identifier="g_mime_locale_charset">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="338">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="343">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="357">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">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="362">the user's locale language code (or %NULL by default).</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
    </function>
    <function name="references_append"
              c:identifier="g_mime_references_append"
              moved-to="References.append">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="1052">Appends a reference to msgid to the list of references.</doc>
      <source-position filename="gmime-utils.h" line="59"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="refs" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1054">the address of a #GMimeReferences list</doc>
          <type name="References" c:type="GMimeReferences**"/>
        </parameter>
        <parameter name="msgid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1055">a message-id string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="references_clear"
              c:identifier="g_mime_references_clear"
              moved-to="References.clear">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="1098">Clears the #GMimeReferences list and resets it to %NULL.</doc>
      <source-position filename="gmime-utils.h" line="60"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="refs" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1100">address of a #GMimeReferences list</doc>
          <type name="References" c:type="GMimeReferences**"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_user_charsets" c:identifier="g_mime_set_user_charsets">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="913">Set a list of charsets for GMime to use as a hint for encoding and
decoding headers. The charset list should be in order of preference
(e.g. most preferred first, least preferred last).</doc>
      <source-position filename="gmime-charset.h" line="72"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="charsets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-charset.c"
               line="915">an array of user-preferred charsets</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="220">Frees internally allocated tables created in g_mime_init(). Also
calls g_mime_charset_map_shutdown() and g_mime_iconv_shutdown().</doc>
      <source-position filename="gmime.h" line="138"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="user_charsets" c:identifier="g_mime_user_charsets">
      <doc xml:space="preserve"
           filename="gmime-charset.c"
           line="936">Get the list of user-preferred charsets set with
g_mime_set_user_charsets().</doc>
      <source-position filename="gmime-charset.h" line="73"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-charset.c"
             line="942">an array of
user-set charsets or %NULL if none set.</doc>
        <array c:type="const char**">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="utils_best_encoding"
              c:identifier="g_mime_utils_best_encoding">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="1278">Determines the best content encoding for the first @len bytes of
@text.</doc>
      <source-position filename="gmime-utils.h" line="75"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="1286">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="1280">text to encode</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1281">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="1414">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="78"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="1426">a UTF-8 string representation of @text.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1416">input text in
  unknown 8bit/multibyte character set</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-utils.c"
               line="1418">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="987">Decodes a msg-id as defined by rfc822.</doc>
      <source-position filename="gmime-utils.h" line="55"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="993">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="989">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="804">Generates a unique Message-Id.</doc>
      <source-position filename="gmime-utils.h" line="52"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="810">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="806">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="765">Decodes the rfc822 date string and saves the GMT offset into
@tz_offset if non-NULL.</doc>
      <source-position filename="gmime-utils.h" line="49"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="773">the time_t representation of the date string specified by
@str or (time_t) %0 on error. If @tz_offset is non-NULL, the value
of the timezone offset will be stored.</doc>
        <type name="glong" c:type="time_t"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="767">input date string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="tz_offset"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="768">timezone offset</doc>
          <type name="gint" c:type="int*"/>
        </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="2193">Decodes an rfc2047 encoded 'phrase' header.

Note: See g_mime_set_user_charsets() for details on how charset
conversion is handled for unencoded 8bit text and/or wrongly
specified rfc2047 encoded-word tokens.</doc>
      <source-position filename="gmime-utils.h" line="84"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2203">a newly allocated UTF-8 string representing the the decoded
header.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="phrase" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2195">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="2162">Decodes an rfc2047 encoded 'text' header.

Note: See g_mime_set_user_charsets() for details on how charset
conversion is handled for unencoded 8bit text and/or wrongly
specified rfc2047 encoded-word tokens.</doc>
      <source-position filename="gmime-utils.h" line="81"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2172">a newly allocated UTF-8 string representing the the decoded
header.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2164">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="2673">Encodes a 'phrase' header according to the rules in rfc2047.</doc>
      <source-position filename="gmime-utils.h" line="85"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2679">the encoded 'phrase'. Useful for encoding internet
addresses.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="phrase" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2675">phrase to encode</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="2692">Encodes a 'text' header according to the rules in rfc2047.</doc>
      <source-position filename="gmime-utils.h" line="82"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2698">the encoded header. Useful for encoding
headers like "Subject".</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2694">text to encode</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_header_fold" c:identifier="g_mime_utils_header_fold">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="2973">Folds a structured header according to the rules in rfc822.</doc>
      <source-position filename="gmime-utils.h" line="67"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2979">an allocated string containing the folded header.

WARNING: This function is obsolete. Use
g_mime_utils_structured_header_fold() instead.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="header" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2975">header field and value string</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="191">Allocates a string buffer containing the rfc822 formatted date
string represented by @time and @tz_offset.</doc>
      <source-position filename="gmime-utils.h" line="50"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="199">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="193">time_t date representation</doc>
          <type name="glong" c:type="time_t"/>
        </parameter>
        <parameter name="tz_offset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="194">Timezone offset</doc>
          <type name="gint" c:type="int"/>
        </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="2991">Allocates a buffer containing a formatted header specified by the
@Varargs.</doc>
      <source-position filename="gmime-utils.h" line="68"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2999">an allocated string containing the folded header specified
by @format and the following arguments.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="format" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2993">string format</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2994">arguments</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_quote_string"
              c:identifier="g_mime_utils_quote_string">
      <doc xml:space="preserve"
           filename="gmime-utils.c"
           line="1167">Quotes @string as needed according to the rules in rfc2045.</doc>
      <source-position filename="gmime-utils.h" line="70"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="1173">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 'tspecials'
as defined by rfc2045.</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="1169">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="2837">Folds a structured header according to the rules in rfc822.</doc>
      <source-position filename="gmime-utils.h" line="65"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2843">an allocated string containing the folded header.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="header" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2839">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="1250">Determines if @text contains 8bit characters within the first @len
bytes.</doc>
      <source-position filename="gmime-utils.h" line="74"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="1258">%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="1252">text to check for 8bit chars</doc>
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="1253">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="1208">Unquotes and unescapes a string.</doc>
      <source-position filename="gmime-utils.h" line="71"/>
      <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="1210">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="2905">Folds an unstructured header according to the rules in rfc822.</doc>
      <source-position filename="gmime-utils.h" line="66"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gmime-utils.c"
             line="2911">an allocated string containing the folded header.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="header" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gmime-utils.c"
               line="2907">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>
