summaryrefslogtreecommitdiff
path: root/mono/GMime.metadata
diff options
context:
space:
mode:
Diffstat (limited to 'mono/GMime.metadata')
-rw-r--r--mono/GMime.metadata367
1 files changed, 367 insertions, 0 deletions
diff --git a/mono/GMime.metadata b/mono/GMime.metadata
new file mode 100644
index 0000000..3002c45
--- /dev/null
+++ b/mono/GMime.metadata
@@ -0,0 +1,367 @@
+<?xml version="1.0"?>
+<metadata>
+ <!-- We need to remap size_t and ssize_t -->
+ <attr path="/api/namespace/*/field[@type='size_t']" name="type">guint32</attr>
+ <attr path="/api/namespace/*/*/return-type[@type='size_t']" name="type">guint32</attr>
+ <attr path="/api/namespace/*/*/*/parameter[@type='size_t']" name="type">guint32</attr>
+ <attr path="/api/namespace/*/*/*/parameter[@type='size_t*']" name="type">guint32*</attr>
+
+ <!--<attr path="/api/namespace/*/field[@type='ssize_t']" name="type">gint32</attr>-->
+ <attr path="/api/namespace/*/*/return-type[@type='ssize_t']" name="type">gint32</attr>
+ <!--<attr path="/api/namespace/*/*/*/parameter[@type='ssize_t']" name="type">gint32</attr>-->
+ <!--<attr path="/api/namespace/*/*/*/parameter[@type='ssize_t*']" name="type">gint32*</attr>-->
+
+ <!-- Global / Locale -->
+ <attr path="/api/namespace/class[@name='Global']/method[@name='UserCharsets']" name="name">GetUserCharsets</attr>
+ <attr path="/api/namespace/class[@name='Locale']/method[@name='Charset']" name="name">GetCharset</attr>
+ <attr path="/api/namespace/class[@name='Locale']/method[@name='Language']" name="name">GetLanguage</attr>
+
+ <!-- Callback Functions -->
+ <remove-node path="/api/namespace/callback[@name='HeaderForeachFunc']"/>
+
+ <!-- Charset -->
+
+ <!-- Common -->
+ <!-- Remove the g_mime_strcase_hash/equal functions - they don't need to be public -->
+ <!--<remove-node path="/api/namespace/class[@name='Strcase']"/>-->
+
+ <!-- Events -->
+ <!-- Remove the g_mime_event* functions - they don't need to be public -->
+ <remove-node path="/api/namespace/struct[@name='Event']"/>
+ <remove-node path="/api/namespace/callback[@name='EventCallback']"/>
+
+ <!-- ContentDisposition -->
+ <remove-node path="/api/namespace/object[@cname='GMimeContentDisposition']/field[@cname='param_hash']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeContentDisposition']/field[@cname='params']"/>
+
+ <!-- ContentEncoding -->
+ <!--<attr path="/api/namespace/class[@name='Content']/method[@name='EncodingFromString']" name="name">ContentEncodingFromString</attr>
+ <attr path="/api/namespace/class[@name='Content']/method[@name='EncodingToString']" name="name">ContentEncodingToString</attr>
+ <move-node path="/api/namespace/class[@name='Content']/method[@name='ContentEncodingFromString']">/api/namespace/class[@name='Utils']</move-node>
+ <move-node path="/api/namespace/class[@name='Content']/method[@name='ContentEncodingToString']">/api/namespace/class[@name='Utils']</move-node>-->
+ <remove-node path="/api/namespace/class[@name='Content']"/>
+
+ <!-- ContentType -->
+ <remove-node path="/api/namespace/object[@cname='GMimeContentType']/field[@cname='param_hash']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeContentType']/field[@cname='params']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeContentType']/field[@cname='subtype']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeContentType']/field[@cname='type']"/>
+
+ <!-- Certificate -->
+ <attr path="/api/namespace/object[@cname='GMimeCertificate']/method[@name='GetCreated']" name="name">GetCreationDate</attr>
+ <attr path="/api/namespace/object[@cname='GMimeCertificate']/method[@name='SetCreated']" name="name">SetCreationDate</attr>
+ <attr path="/api/namespace/object[@cname='GMimeCertificate']/method[@name='GetExpires']" name="name">GetExpirationDate</attr>
+ <attr path="/api/namespace/object[@cname='GMimeCertificate']/method[@name='SetExpires']" name="name">SetExpirationDate</attr>
+
+ <!-- CertificateList -->
+ <remove-node path="/api/namespace/object[@cname='GMimeCertificateList']/field[@cname='array']"/>
+ <attr path="/api/namespace/object[@name='CertificateList']" name="name">CertificateCollection</attr>
+ <!-- We're going to implement the IList interface -->
+ <add-node path="/api/namespace/object[@cname='GMimeCertificateList']">
+ <implements>
+ <interface name="IList"/>
+ </implements>
+ </add-node>
+ <!-- Remove methods we're going to implement manually in GMimeCertificateList.custom -->
+ <remove-node path="/api/namespace/object[@cname='GMimeCertificateList']/method[@name='Add']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeCertificateList']/method[@name='Clear']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeCertificateList']/method[@name='Contains']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeCertificateList']/method[@name='IndexOf']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeCertificateList']/method[@name='Insert']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeCertificateList']/method[@name='Length']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeCertificateList']/method[@name='Remove']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeCertificateList']/method[@name='RemoveAt']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeCertificateList']/method[@name='GetCertificate']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeCertificateList']/method[@name='SetCertificate']"/>
+
+ <!-- Signature -->
+ <attr path="/api/namespace/object[@cname='GMimeSignature']/method[@name='GetCreated']" name="name">GetCreationDate</attr>
+ <attr path="/api/namespace/object[@cname='GMimeSignature']/method[@name='SetCreated']" name="name">SetCreationDate</attr>
+ <attr path="/api/namespace/object[@cname='GMimeSignature']/method[@name='GetExpires']" name="name">GetExpirationDate</attr>
+ <attr path="/api/namespace/object[@cname='GMimeSignature']/method[@name='SetExpires']" name="name">SetExpirationDate</attr>
+
+ <!-- SignatureList -->
+ <remove-node path="/api/namespace/object[@cname='GMimeSignatureList']/field[@cname='array']"/>
+ <attr path="/api/namespace/object[@name='SignatureList']" name="name">SignatureCollection</attr>
+ <!-- We're going to implement the IList interface -->
+ <add-node path="/api/namespace/object[@cname='GMimeSignatureList']">
+ <implements>
+ <interface name="IList"/>
+ </implements>
+ </add-node>
+ <!-- Remove methods we're going to implement manually in GMimeSignatureList.custom -->
+ <remove-node path="/api/namespace/object[@cname='GMimeSignatureList']/method[@name='Add']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeSignatureList']/method[@name='Clear']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeSignatureList']/method[@name='Contains']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeSignatureList']/method[@name='IndexOf']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeSignatureList']/method[@name='Insert']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeSignatureList']/method[@name='Length']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeSignatureList']/method[@name='Remove']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeSignatureList']/method[@name='RemoveAt']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeSignatureList']/method[@name='GetSignature']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeSignatureList']/method[@name='SetSignature']"/>
+
+ <!-- CryptoContext -->
+
+ <!-- DataWrapper -->
+ <attr path="/api/namespace/object[@cname='GMimeDataWrapper']/method[@name='GetStream']" name="name">GetGMimeStream</attr>
+ <attr path="/api/namespace/object[@cname='GMimeDataWrapper']/method[@name='SetStream']" name="name">SetGMimeStream</attr>
+
+ <!-- Encoding -->
+ <attr path="/api/namespace/struct[@name='Encoding']/*/*/parameter[@name='inbuf']" name="type">const-guint8*</attr>
+ <attr path="/api/namespace/struct[@name='Encoding']/*/*/parameter[@name='inbuf']" name="array">true</attr>
+ <attr path="/api/namespace/struct[@name='Encoding']/*/*/parameter[@name='inlen']" name="name">n_inbuf</attr>
+ <attr path="/api/namespace/struct[@name='Encoding']/*/*/parameter[@name='uubuf']" name="type">guint8*</attr>
+ <attr path="/api/namespace/struct[@name='Encoding']/*/*/parameter[@name='uubuf']" name="array">true</attr>
+ <attr path="/api/namespace/struct[@name='Encoding']/*/*/parameter[@name='outbuf']" name="type">guint8*</attr>
+ <attr path="/api/namespace/struct[@name='Encoding']/*/*/parameter[@name='outbuf']" name="array">true</attr>
+ <attr path="/api/namespace/struct[@name='Encoding']/*/*/parameter[@name='state']" name="pass_as">ref</attr>
+ <attr path="/api/namespace/struct[@name='Encoding']/*/*/parameter[@name='save']" name="pass_as">ref</attr>
+ <attr path="/api/namespace/class[@name='Yencode']/method[@cname='g_mime_yencode_close']" name="name">yEncodeClose</attr>
+ <attr path="/api/namespace/class[@name='Yencode']/method[@cname='g_mime_yencode_step']" name="name">yEncodeStep</attr>
+ <attr path="/api/namespace/class[@name='Global']/method[@cname='g_mime_ydecode_step']" name="name">yDecodeStep</attr>
+ <attr path="/api/namespace/class[@name='Yencode']/*/*/parameter[@name='inbuf']" name="type">const-guint8*</attr>
+ <attr path="/api/namespace/class[@name='Yencode']/*/*/parameter[@name='inbuf']" name="array">true</attr>
+ <attr path="/api/namespace/class[@name='Yencode']/*/*/parameter[@name='inlen']" name="name">n_inbuf</attr>
+ <attr path="/api/namespace/class[@name='Yencode']/*/*/parameter[@name='outbuf']" name="type">guint8*</attr>
+ <attr path="/api/namespace/class[@name='Yencode']/*/*/parameter[@name='outbuf']" name="array">true</attr>
+ <attr path="/api/namespace/class[@name='Yencode']/*/*/parameter[@name='state']" name="pass_as">ref</attr>
+ <attr path="/api/namespace/class[@name='Yencode']/*/*/parameter[@name='pcrc']" name="pass_as">ref</attr>
+ <attr path="/api/namespace/class[@name='Yencode']/*/*/parameter[@name='crc']" name="pass_as">ref</attr>
+ <attr path="/api/namespace/class[@name='Global']/*/*/parameter[@name='inbuf']" name="type">const-guint8*</attr>
+ <attr path="/api/namespace/class[@name='Global']/*/*/parameter[@name='inbuf']" name="array">true</attr>
+ <attr path="/api/namespace/class[@name='Global']/*/*/parameter[@name='inlen']" name="name">n_inbuf</attr>
+ <attr path="/api/namespace/class[@name='Global']/*/*/parameter[@name='outbuf']" name="type">guint8*</attr>
+ <attr path="/api/namespace/class[@name='Global']/*/*/parameter[@name='outbuf']" name="array">true</attr>
+ <attr path="/api/namespace/class[@name='Global']/*/*/parameter[@name='state']" name="pass_as">ref</attr>
+ <attr path="/api/namespace/class[@name='Global']/*/*/parameter[@name='pcrc']" name="pass_as">ref</attr>
+ <attr path="/api/namespace/class[@name='Global']/*/*/parameter[@name='crc']" name="pass_as">ref</attr>
+ <move-node path="/api/namespace/class[@name='Yencode']/method[@name='yEncodeClose']">/api/namespace/struct[@name='Encoding']</move-node>
+ <move-node path="/api/namespace/class[@name='Yencode']/method[@name='yEncodeStep']">/api/namespace/struct[@name='Encoding']</move-node>
+ <move-node path="/api/namespace/class[@name='Global']/method[@name='yDecodeStep']">/api/namespace/struct[@name='Encoding']</move-node>
+
+ <!-- Enumerations -->
+ <attr path="/api/namespace/enum/member[@cname='GMIME_ENCODING_CONSTRAINT_7BIT']" name="name">SevenBit</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_ENCODING_CONSTRAINT_8BIT']" name="name">EightBit</attr>
+
+ <attr path="/api/namespace/enum/member[@cname='GMIME_CONTENT_ENCODING_DEFAULT']" name="name">Default</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_CONTENT_ENCODING_7BIT']" name="name">SevenBit</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_CONTENT_ENCODING_8BIT']" name="name">EightBit</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_CONTENT_ENCODING_BINARY']" name="name">Binary</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_CONTENT_ENCODING_BASE64']" name="name">Base64</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE']" name="name">QuotedPrintable</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_CONTENT_ENCODING_UUENCODE']" name="name">UuEncode</attr>
+
+ <attr path="/api/namespace/enum/member[@cname='GMIME_STREAM_SEEK_SET']" name="value">0</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_STREAM_SEEK_CUR']" name="value">1</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_STREAM_SEEK_END']" name="value">2</attr>
+
+ <attr path="/api/namespace/enum/member[@cname='GMIME_SIGNATURE_ERROR_NONE']" name="name">None</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_SIGNATURE_ERROR_EXPSIG']" name="name">ExpiredSignature</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_SIGNATURE_ERROR_NO_PUBKEY']" name="name">NoPublicKey</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_SIGNATURE_ERROR_EXPKEYSIG']" name="name">ExpiredSignatureKey</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_SIGNATURE_ERROR_REVKEYSIG']" name="name">RevokedSignatureKey</attr>
+ <attr path="/api/namespace/enum/member[@cname='GMIME_SIGNATURE_ERROR_UNSUPP_ALGO']" name="name">UnsupportedAlgorithm</attr>
+
+ <!-- Filter -->
+ <attr path="/api/namespace/object[@cname='GMimeFilter']" name="abstract">1</attr>
+ <attr path="/api/namespace/object[@cname='GMimeFilter']/method[@cname='g_mime_filter_filter']" name="name">ApplyFilter</attr>
+ <attr path="/api/namespace/object[@cname='GMimeFilter']/*/*/parameter[@name='inbuf']" name="type">const-guint8*</attr>
+ <attr path="/api/namespace/object[@cname='GMimeFilter']/*/*/parameter[@name='inbuf']" name="array">true</attr>
+ <attr path="/api/namespace/object[@cname='GMimeFilter']/*/*/parameter[@name='inlen']" name="name">n_inbuf</attr>
+ <attr path="/api/namespace/object[@cname='GMimeFilter']/*/*/parameter[@name='outbuf']" name="type">guint8**</attr>
+ <attr path="/api/namespace/object[@cname='GMimeFilter']/*/*/parameter[@name='outbuf']" name="array">true</attr>
+ <attr path="/api/namespace/object[@cname='GMimeFilter']/method[@name='Backup']/*/parameter[@name='data']" name="name">buf</attr>
+ <attr path="/api/namespace/object[@cname='GMimeFilter']/method[@name='Backup']/*/parameter[@name='buf']" name="type">const-guint8*</attr>
+ <attr path="/api/namespace/object[@cname='GMimeFilter']/method[@name='Backup']/*/parameter[@name='buf']" name="array">true</attr>
+ <attr path="/api/namespace/object[@cname='GMimeFilter']/method[@name='Backup']/*/parameter[@name='length']" name="name">n_buf</attr>
+
+ <!-- FilterBest -->
+ <attr path="/api/namespace/object[@cname='GMimeFilterBest']/method[@cname='g_mime_filter_best_charset']" name="name">GetBestCharset</attr>
+ <attr path="/api/namespace/object[@cname='GMimeFilterBest']/method[@cname='g_mime_filter_best_encoding']" name="name">GetBestEncoding</attr>
+
+ <!-- GpgContext -->
+
+ <!-- Header -->
+ <remove-node path="/api/namespace/struct[@cname='GMimeHeader']"/>
+
+ <!-- HeaderList -->
+ <!-- We're going to implement the IEnumerable interface -->
+ <add-node path="/api/namespace/object[@cname='GMimeHeaderList']">
+ <implements>
+ <interface name="IEnumerable"/>
+ </implements>
+ </add-node>
+ <remove-node path="/api/namespace/struct[@cname='GMimeHeaderList']/method[@cname='g_mime_header_list_foreach']"/>
+ <attr path="/api/namespace/struct[@cname='GMimeHeaderList']/method[@name='SetStream']" name="hidden">true</attr>
+ <attr path="/api/namespace/struct[@cname='GMimeHeaderList']/method[@name='GetStream']" name="hidden">true</attr>
+ <remove-node path="/api/namespace/struct[@cname='GMimeHeaderList']/method[@name='Get']"/>
+ <remove-node path="/api/namespace/struct[@cname='GMimeHeaderList']/method[@name='Set']"/>
+ <remove-node path="/api/namespace/struct[@cname='GMimeHeaderList']/method[@name='GetIter']"/>
+
+ <!-- HeaderIter -->
+ <!-- This should really be made to be internal, but I don't know how to do that... -->
+ <attr path="/api/namespace/struct[@cname='GMimeHeaderIter']/method[@name='SetValue']/return-type" name="type">void</attr>
+ <attr path="/api/namespace/struct[@cname='GMimeHeaderIter']/method[@name='First']" name="name">MoveFirst</attr>
+ <attr path="/api/namespace/struct[@cname='GMimeHeaderIter']/method[@name='Last']" name="name">MoveLast</attr>
+ <attr path="/api/namespace/struct[@cname='GMimeHeaderIter']/method[@name='Next']" name="name">MoveNext</attr>
+ <attr path="/api/namespace/struct[@cname='GMimeHeaderIter']/method[@name='Prev']" name="name">MovePrev</attr>
+ <attr path="/api/namespace/struct[@cname='GMimeHeaderIter']" name="opaque">true</attr>
+ <remove-node path="/api/namespace/struct[@cname='GMimeHeaderIter']/field[@cname='hdrlist']"/>
+ <remove-node path="/api/namespace/struct[@cname='GMimeHeaderIter']/field[@cname='version']"/>
+ <remove-node path="/api/namespace/struct[@cname='GMimeHeaderIter']/field[@cname='cursor']"/>
+
+ <!-- iconv -->
+
+ <!-- iconv-utils -->
+
+ <!-- InternetAddress -->
+ <attr path="/api/namespace/object[@cname='InternetAddress']" name="abstract">1</attr>
+ <remove-node path="/api/namespace/object[@cname='InternetAddress']/field[@cname='priv']"/>
+
+ <!-- InternetAddressGroup -->
+ <remove-node path="/api/namespace/object[@cname='InternetAddressGroup']/method[@name='AddMember']"/>
+
+ <!-- InternetAddressMailbox -->
+ <attr path="/api/namespace/object[@cname='InternetAddressMailbox']/method[@name='GetAddr']" name="name">GetAddress</attr>
+ <attr path="/api/namespace/object[@cname='InternetAddressMailbox']/method[@name='SetAddr']" name="name">SetAddress</attr>
+
+ <!-- InternetAddressList -->
+ <!-- Remove internal methods/fields/signals -->
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/field[@cname='array']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/field[@cname='priv']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='Writer']"/>
+ <!-- We're going to implement the IList interface -->
+ <add-node path="/api/namespace/object[@cname='InternetAddressList']">
+ <implements>
+ <interface name="IList"/>
+ </implements>
+ </add-node>
+ <!-- Remove methods we're going to implement manually in InternetAddressList.custom -->
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='Add']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='Clear']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='Contains']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='IndexOf']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='Insert']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='Length']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='ParseString']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='Remove']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='RemoveAt']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='GetAddress']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='SetAddress']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='ToString']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='Prepend']"/>
+ <remove-node path="/api/namespace/object[@cname='InternetAddressList']/method[@name='Append']"/>
+
+ <!-- Message -->
+ <attr path="/api/namespace/object[@cname='GMimeMessage']/method[@name='GetAllRecipients']/return-type" name="owned">true</attr>
+ <!-- We implement these properties by hand, hide them. -->
+ <remove-node path="/api/namespace/object[@cname='GMimeMessage']/method[@cname='g_mime_message_get_recipients']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeMessage']/method[@cname='g_mime_message_get_date']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeMessage']/method[@cname='g_mime_message_set_date']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeMessage']/method[@cname='g_mime_message_foreach']"/>
+
+ <!-- MessagePart -->
+
+ <!-- MessagePartial -->
+ <add-node path="/api/namespace/object[@cname='GMimeMessagePartial']/method[@name='ReconstructMessage']/parameters"><parameter name="partials" type="GMimeMessagePartial**" array="true"/></add-node>
+ <attr path="/api/namespace/object[@cname='GMimeMessagePartial']/method[@name='ReconstructMessage']" name="shared">true</attr>
+ <attr path="/api/namespace/object[@cname='GMimeMessagePartial']/method[@name='ReconstructMessage']/*/parameter[@name='num']" name="name">n_partials</attr>
+
+ <!-- Multipart -->
+ <remove-node path="/api/namespace/object[@cname='GMimeMultipart']/method[@name='Foreach']"/>
+ <!-- We're going to implement the IList interface -->
+ <add-node path="/api/namespace/object[@cname='GMimeMultipart']">
+ <implements>
+ <interface name="IList"/>
+ </implements>
+ </add-node>
+ <!-- Remove methods we're going to implement manually in GMimeMultipart.custom -->
+ <remove-node path="/api/namespace/object[@cname='GMimeMultipart']/method[@name='Add']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeMultipart']/method[@name='Clear']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeMultipart']/method[@name='GetCount']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeMultipart']/method[@name='Contains']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeMultipart']/method[@name='IndexOf']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeMultipart']/method[@name='Insert']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeMultipart']/method[@name='Remove']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeMultipart']/method[@name='RemoveAt']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeMultipart']/method[@name='Replace']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeMultipart']/method[@name='GetPart']"/>
+
+ <!-- MultipartEncrypted -->
+ <attr path="/api/namespace/object[@cname='GMimeMultipartEncrypted']/method[@name='Decrypt']/*/parameter[@name='result']" name="pass_as">out</attr>
+
+ <!-- MultipartSigned -->
+
+ <!-- Object -->
+ <attr path="/api/namespace/object[@cname='GMimeObject']" name="name">Entity</attr>
+ <remove-node path="/api/namespace/object[@cname='GMimeObject']/constructor[@cname='g_mime_object_new']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeObject']/constructor[@cname='g_mime_object_new_type']"/>
+ <!-- Clean up some unnecessary helper methods from GMimeObject -->
+ <remove-node path="/api/namespace/object[@cname='GMimeObject']/method[@cname='g_mime_object_get_disposition']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeObject']/method[@cname='g_mime_object_set_disposition']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeObject']/method[@cname='g_mime_object_get_content_type_parameter']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeObject']/method[@cname='g_mime_object_set_content_type_parameter']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeObject']/method[@cname='g_mime_object_get_content_disposition_parameter']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeObject']/method[@cname='g_mime_object_set_content_disposition_parameter']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeObject']/method[@cname='g_mime_object_prepend_header']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeObject']/method[@cname='g_mime_object_append_header']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeObject']/method[@cname='g_mime_object_remove_header']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeObject']/method[@cname='g_mime_object_get_header']"/>
+ <remove-node path="/api/namespace/object[@cname='GMimeObject']/method[@cname='g_mime_object_set_header']"/>
+
+ <!-- Param -->
+ <remove-node path="/api/namespace/struct[@cname='GMimeParam']/field[@cname='value']"/>
+ <remove-node path="/api/namespace/struct[@cname='GMimeParam']/field[@cname='name']"/>
+ <remove-node path="/api/namespace/struct[@cname='GMimeParam']/field[@cname='next']"/>
+
+ <!-- Parser -->
+ <attr path="/api/namespace/object[@cname='GMimeParser']/method[@name='ConstructPart']/return-type" name="owned">true</attr>
+ <attr path="/api/namespace/object[@cname='GMimeParser']/method[@name='ConstructMessage']/return-type" name="owned">true</attr>
+
+ <!-- Parse Utils -->
+ <!-- Remove some utility parser functions: decode_word, decode_lwsp, etc -->
+ <!--<remove-node path="/api/namespace/class[@name='Global']/method[@name='ParseContentType']"/>-->
+ <!--<remove-node path="/api/namespace/class[@name='Decode']"/>-->
+
+ <!-- Part -->
+
+ <!-- PartIter -->
+ <remove-node path="/api/namespace/struct[@name='PartIter']"/>
+
+ <!-- References -->
+ <attr path="/api/namespace/struct[@name='References']" name="opaque">true</attr>
+ <attr path="/api/namespace/struct[@name='References']/method[@name='Decode']" name="name">Parse</attr>
+ <remove-node path="/api/namespace/struct[@name='References']/method[@name='Clear']"/>
+
+ <!-- Stream IOVectors -->
+ <remove-node path="/api/namespace/object[@cname='GMimeStream']/method[@cname='g_mime_stream_writev']"/>
+ <remove-node path="/api/namespace/struct[@cname='GMimeStreamIOVector']"/>
+
+ <!-- Stream -->
+ <attr path="/api/namespace/object[@cname='GMimeStream']" name="abstract">1</attr>
+ <attr path="/api/namespace/object[@cname='GMimeStream']/method[@name='Length']" name="name">GetLength</attr>
+ <attr path="/api/namespace/object[@cname='GMimeStream']/method[@name='Read']/*/parameter[@name='buf']" name="type">const-guint8*</attr>
+ <attr path="/api/namespace/object[@cname='GMimeStream']/method[@name='Read']/*/parameter[@name='buf']" name="array">true</attr>
+ <attr path="/api/namespace/object[@cname='GMimeStream']/method[@name='Write']/*/parameter[@name='buf']" name="type">const-guint8*</attr>
+ <attr path="/api/namespace/object[@cname='GMimeStream']/method[@name='Write']/*/parameter[@name='buf']" name="array">true</attr>
+ <attr path="/api/namespace/object[@cname='GMimeStream']/method[@name='WriteString']" name="name">Write</attr>
+
+ <!-- StreamFile -->
+ <attr path="/api/namespace/object[@cname='GMimeStreamFile']" name="hidden">true</attr>
+
+ <!-- StreamMem -->
+ <attr path="/api/namespace/object[@cname='GMimeStreamMem']/constructor[@cname='g_mime_stream_mem_new_with_byte_array']" name="hidden">true</attr>
+
+ <!-- Utils -->
+ <remove-node path="/api/namespace/class[@name='Utils']/method[@cname='g_mime_utils_decode_8bit']"/>
+ <remove-node path="/api/namespace/class[@name='Utils']/method[@cname='g_mime_utils_text_is_8bit']"/>
+ <attr path="/api/namespace/class[@name='Utils']/method[@cname='g_mime_utils_best_encoding']/*/parameter[@name='text']" name="type">const-guint8*</attr>
+ <attr path="/api/namespace/class[@name='Utils']/method[@cname='g_mime_utils_best_encoding']/*/parameter[@name='text']" name="array">true</attr>
+ <attr path="/api/namespace/class[@name='Utils']/method[@cname='g_mime_utils_best_encoding']/*/parameter[@name='len']" name="name">n_text</attr>
+
+ <!-- Yencode -->
+ <!-- We've already moved the encoder/decoder functions into Encoding... -->
+ <attr path="/api/namespace/class[@name='Yencode']" name="hidden">true</attr>
+
+</metadata>