1
<refentry id="camel-CamelMimeFilter">
3
<refentrytitle role="top_of_page" id="camel-CamelMimeFilter.top_of_page">CamelMimeFilter</refentrytitle>
4
<manvolnum>3</manvolnum>
5
<refmiscinfo>CAMEL Library</refmiscinfo>
9
<refname>CamelMimeFilter</refname>
10
<refpurpose></refpurpose>
13
<refsynopsisdiv id="camel-CamelMimeFilter.synopsis" role="synopsis">
14
<title role="synopsis.title">Synopsis</title>
17
struct <link linkend="CamelMimeFilter">CamelMimeFilter</link>;
18
<link linkend="CamelMimeFilter">CamelMimeFilter</link> * <link linkend="camel-mime-filter-new">camel_mime_filter_new</link> (void);
19
<link linkend="void">void</link> <link linkend="camel-mime-filter-filter">camel_mime_filter_filter</link> (<link linkend="CamelMimeFilter">CamelMimeFilter</link> *filter,
20
const <link linkend="gchar">gchar</link> *in,
21
<link linkend="gsize">gsize</link> len,
22
<link linkend="gsize">gsize</link> prespace,
23
<link linkend="gchar">gchar</link> **out,
24
<link linkend="gsize">gsize</link> *outlen,
25
<link linkend="gsize">gsize</link> *outprespace);
26
<link linkend="void">void</link> <link linkend="camel-mime-filter-complete">camel_mime_filter_complete</link> (<link linkend="CamelMimeFilter">CamelMimeFilter</link> *filter,
27
const <link linkend="gchar">gchar</link> *in,
28
<link linkend="gsize">gsize</link> len,
29
<link linkend="gsize">gsize</link> prespace,
30
<link linkend="gchar">gchar</link> **out,
31
<link linkend="gsize">gsize</link> *outlen,
32
<link linkend="gsize">gsize</link> *outprespace);
33
<link linkend="void">void</link> <link linkend="camel-mime-filter-reset">camel_mime_filter_reset</link> (<link linkend="CamelMimeFilter">CamelMimeFilter</link> *filter);
34
<link linkend="void">void</link> <link linkend="camel-mime-filter-backup">camel_mime_filter_backup</link> (<link linkend="CamelMimeFilter">CamelMimeFilter</link> *filter,
35
const <link linkend="gchar">gchar</link> *data,
36
<link linkend="gsize">gsize</link> length);
37
<link linkend="void">void</link> <link linkend="camel-mime-filter-set-size">camel_mime_filter_set_size</link> (<link linkend="CamelMimeFilter">CamelMimeFilter</link> *filter,
38
<link linkend="gsize">gsize</link> size,
39
<link linkend="gint">gint</link> keep);
51
<refsect1 id="camel-CamelMimeFilter.description" role="desc">
52
<title role="desc.title">Description</title>
57
<refsect1 id="camel-CamelMimeFilter.details" role="details">
58
<title role="details.title">Details</title>
59
<refsect2 id="CamelMimeFilter" role="struct">
60
<title>struct CamelMimeFilter</title>
61
<indexterm zone="CamelMimeFilter"><primary sortas="CamelMimeFilter">CamelMimeFilter</primary></indexterm><programlisting>struct CamelMimeFilter {
64
struct _CamelMimeFilterPrivate *priv;
66
gchar *outreal; /* real malloc'd buffer */
67
gchar *outbuf; /* first 'writable' position allowed (outreal + outpre) */
70
gsize outpre; /* prespace of this buffer */
74
gsize backlen; /* significant data there */
79
<refsect2 id="camel-mime-filter-new" role="function">
80
<title>camel_mime_filter_new ()</title>
81
<indexterm zone="camel-mime-filter-new"><primary sortas="camel_mime_filter_new">camel_mime_filter_new</primary></indexterm><programlisting><link linkend="CamelMimeFilter">CamelMimeFilter</link> * camel_mime_filter_new (void);</programlisting>
83
Create a new <link linkend="CamelMimeFilter"><type>CamelMimeFilter</type></link> object.</para>
85
</para><variablelist role="params">
86
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a new <link linkend="CamelMimeFilter"><type>CamelMimeFilter</type></link>
87
</simpara></listitem></varlistentry>
88
</variablelist></refsect2>
89
<refsect2 id="camel-mime-filter-filter" role="function">
90
<title>camel_mime_filter_filter ()</title>
91
<indexterm zone="camel-mime-filter-filter"><primary sortas="camel_mime_filter_filter">camel_mime_filter_filter</primary></indexterm><programlisting><link linkend="void">void</link> camel_mime_filter_filter (<link linkend="CamelMimeFilter">CamelMimeFilter</link> *filter,
92
const <link linkend="gchar">gchar</link> *in,
93
<link linkend="gsize">gsize</link> len,
94
<link linkend="gsize">gsize</link> prespace,
95
<link linkend="gchar">gchar</link> **out,
96
<link linkend="gsize">gsize</link> *outlen,
97
<link linkend="gsize">gsize</link> *outprespace);</programlisting>
99
Passes the input buffer, <parameter>in</parameter>, through <parameter>filter</parameter> and generates an
100
output buffer, <parameter>out</parameter>.</para>
102
</para><variablelist role="params">
103
<varlistentry><term><parameter>filter</parameter> :</term>
104
<listitem><simpara> a <link linkend="CamelMimeFilter"><type>CamelMimeFilter</type></link> object
105
</simpara></listitem></varlistentry>
106
<varlistentry><term><parameter>in</parameter> :</term>
107
<listitem><simpara> input buffer
108
</simpara></listitem></varlistentry>
109
<varlistentry><term><parameter>len</parameter> :</term>
110
<listitem><simpara> length of <parameter>in</parameter>
111
</simpara></listitem></varlistentry>
112
<varlistentry><term><parameter>prespace</parameter> :</term>
113
<listitem><simpara> amount of prespace
114
</simpara></listitem></varlistentry>
115
<varlistentry><term><parameter>out</parameter> :</term>
116
<listitem><simpara> pointer to the output buffer (to be set)
117
</simpara></listitem></varlistentry>
118
<varlistentry><term><parameter>outlen</parameter> :</term>
119
<listitem><simpara> pointer to the length of the output buffer (to be set)
120
</simpara></listitem></varlistentry>
121
<varlistentry><term><parameter>outprespace</parameter> :</term>
122
<listitem><simpara> pointer to the output prespace length (to be set)
123
</simpara></listitem></varlistentry>
124
</variablelist></refsect2>
125
<refsect2 id="camel-mime-filter-complete" role="function">
126
<title>camel_mime_filter_complete ()</title>
127
<indexterm zone="camel-mime-filter-complete"><primary sortas="camel_mime_filter_complete">camel_mime_filter_complete</primary></indexterm><programlisting><link linkend="void">void</link> camel_mime_filter_complete (<link linkend="CamelMimeFilter">CamelMimeFilter</link> *filter,
128
const <link linkend="gchar">gchar</link> *in,
129
<link linkend="gsize">gsize</link> len,
130
<link linkend="gsize">gsize</link> prespace,
131
<link linkend="gchar">gchar</link> **out,
132
<link linkend="gsize">gsize</link> *outlen,
133
<link linkend="gsize">gsize</link> *outprespace);</programlisting>
135
Passes the input buffer, <parameter>in</parameter>, through <parameter>filter</parameter> and generates an
136
output buffer, <parameter>out</parameter> and makes sure that all data is flushed to the
137
output buffer. This must be the last filtering call made, no
138
further calls to <link linkend="camel-mime-filter-filter"><type>camel_mime_filter_filter</type></link> may be called on <parameter>filter</parameter>
139
until <parameter>filter</parameter> has been reset using <link linkend="camel-mime-filter-reset"><type>camel_mime_filter_reset</type></link>.</para>
141
</para><variablelist role="params">
142
<varlistentry><term><parameter>filter</parameter> :</term>
143
<listitem><simpara> a <link linkend="CamelMimeFilter"><type>CamelMimeFilter</type></link> object
144
</simpara></listitem></varlistentry>
145
<varlistentry><term><parameter>in</parameter> :</term>
146
<listitem><simpara> input buffer
147
</simpara></listitem></varlistentry>
148
<varlistentry><term><parameter>len</parameter> :</term>
149
<listitem><simpara> length of <parameter>in</parameter>
150
</simpara></listitem></varlistentry>
151
<varlistentry><term><parameter>prespace</parameter> :</term>
152
<listitem><simpara> amount of prespace
153
</simpara></listitem></varlistentry>
154
<varlistentry><term><parameter>out</parameter> :</term>
155
<listitem><simpara> pointer to the output buffer (to be set)
156
</simpara></listitem></varlistentry>
157
<varlistentry><term><parameter>outlen</parameter> :</term>
158
<listitem><simpara> pointer to the length of the output buffer (to be set)
159
</simpara></listitem></varlistentry>
160
<varlistentry><term><parameter>outprespace</parameter> :</term>
161
<listitem><simpara> pointer to the output prespace length (to be set)
162
</simpara></listitem></varlistentry>
163
</variablelist></refsect2>
164
<refsect2 id="camel-mime-filter-reset" role="function">
165
<title>camel_mime_filter_reset ()</title>
166
<indexterm zone="camel-mime-filter-reset"><primary sortas="camel_mime_filter_reset">camel_mime_filter_reset</primary></indexterm><programlisting><link linkend="void">void</link> camel_mime_filter_reset (<link linkend="CamelMimeFilter">CamelMimeFilter</link> *filter);</programlisting>
168
Resets the state on <parameter>filter</parameter> so that it may be used again.</para>
170
</para><variablelist role="params">
171
<varlistentry><term><parameter>filter</parameter> :</term>
172
<listitem><simpara> a <link linkend="CamelMimeFilter"><type>CamelMimeFilter</type></link> object
173
</simpara></listitem></varlistentry>
174
</variablelist></refsect2>
175
<refsect2 id="camel-mime-filter-backup" role="function">
176
<title>camel_mime_filter_backup ()</title>
177
<indexterm zone="camel-mime-filter-backup"><primary sortas="camel_mime_filter_backup">camel_mime_filter_backup</primary></indexterm><programlisting><link linkend="void">void</link> camel_mime_filter_backup (<link linkend="CamelMimeFilter">CamelMimeFilter</link> *filter,
178
const <link linkend="gchar">gchar</link> *data,
179
<link linkend="gsize">gsize</link> length);</programlisting>
181
Saves <parameter>data</parameter> to be used as prespace input data to the next call to
182
<link linkend="camel-mime-filter-filter"><type>camel_mime_filter_filter</type></link> or <link linkend="camel-mime-filter-complete"><type>camel_mime_filter_complete</type></link>.
185
Note: New calls replace old data.</para>
187
</para><variablelist role="params">
188
<varlistentry><term><parameter>filter</parameter> :</term>
189
<listitem><simpara> a <link linkend="camelMimeFilter"><type>camelMimeFilter</type></link> object
190
</simpara></listitem></varlistentry>
191
<varlistentry><term><parameter>data</parameter> :</term>
192
<listitem><simpara> data buffer to backup
193
</simpara></listitem></varlistentry>
194
<varlistentry><term><parameter>length</parameter> :</term>
195
<listitem><simpara> length of <parameter>data</parameter>
196
</simpara></listitem></varlistentry>
197
</variablelist></refsect2>
198
<refsect2 id="camel-mime-filter-set-size" role="function">
199
<title>camel_mime_filter_set_size ()</title>
200
<indexterm zone="camel-mime-filter-set-size"><primary sortas="camel_mime_filter_set_size">camel_mime_filter_set_size</primary></indexterm><programlisting><link linkend="void">void</link> camel_mime_filter_set_size (<link linkend="CamelMimeFilter">CamelMimeFilter</link> *filter,
201
<link linkend="gsize">gsize</link> size,
202
<link linkend="gint">gint</link> keep);</programlisting>
204
Ensure that <parameter>filter</parameter> has enough storage space to store <parameter>size</parameter> bytes
205
for filter output.</para>
207
</para><variablelist role="params">
208
<varlistentry><term><parameter>filter</parameter> :</term>
209
<listitem><simpara> a <link linkend="camelMimeFilter"><type>camelMimeFilter</type></link> object
210
</simpara></listitem></varlistentry>
211
<varlistentry><term><parameter>size</parameter> :</term>
212
<listitem><simpara> requested amount of storage space
213
</simpara></listitem></varlistentry>
214
<varlistentry><term><parameter>keep</parameter> :</term>
215
<listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> to keep existing buffered data or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
216
</simpara></listitem></varlistentry>
217
</variablelist></refsect2>