1
<refentry id="camel-CamelImapMessageCache">
3
<refentrytitle role="top_of_page" id="camel-CamelImapMessageCache.top_of_page">CamelImapMessageCache</refentrytitle>
4
<manvolnum>3</manvolnum>
5
<refmiscinfo>CAMEL Library</refmiscinfo>
9
<refname>CamelImapMessageCache</refname>
10
<refpurpose></refpurpose>
13
<refsynopsisdiv id="camel-CamelImapMessageCache.synopsis" role="synopsis">
14
<title role="synopsis.title">Synopsis</title>
17
struct <link linkend="CamelImapMessageCache">CamelImapMessageCache</link>;
18
<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> * <link linkend="camel-imap-message-cache-new">camel_imap_message_cache_new</link> (const <link linkend="gchar">gchar</link> *path,
19
<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
20
<link linkend="CamelException">CamelException</link> *ex);
21
<link linkend="void">void</link> <link linkend="camel-imap-message-cache-set-path">camel_imap_message_cache_set_path</link> (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
22
const <link linkend="gchar">gchar</link> *path);
23
<link linkend="guint32">guint32</link> <link linkend="camel-imap-message-cache-max-uid">camel_imap_message_cache_max_uid</link> (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache);
24
<link linkend="CamelStream">CamelStream</link> * <link linkend="camel-imap-message-cache-insert">camel_imap_message_cache_insert</link> (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
25
const <link linkend="gchar">gchar</link> *uid,
26
const <link linkend="gchar">gchar</link> *part_spec,
27
const <link linkend="gchar">gchar</link> *data,
28
<link linkend="gint">gint</link> len,
29
<link linkend="CamelException">CamelException</link> *ex);
30
<link linkend="void">void</link> <link linkend="camel-imap-message-cache-insert-stream">camel_imap_message_cache_insert_stream</link>
31
(<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
32
const <link linkend="gchar">gchar</link> *uid,
33
const <link linkend="gchar">gchar</link> *part_spec,
34
<link linkend="CamelStream">CamelStream</link> *data_stream,
35
<link linkend="CamelException">CamelException</link> *ex);
36
<link linkend="void">void</link> <link linkend="camel-imap-message-cache-insert-wrapper">camel_imap_message_cache_insert_wrapper</link>
37
(<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
38
const <link linkend="gchar">gchar</link> *uid,
39
const <link linkend="gchar">gchar</link> *part_spec,
40
<link linkend="CamelDataWrapper">CamelDataWrapper</link> *wrapper,
41
<link linkend="CamelException">CamelException</link> *ex);
42
<link linkend="CamelStream">CamelStream</link> * <link linkend="camel-imap-message-cache-get">camel_imap_message_cache_get</link> (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
43
const <link linkend="gchar">gchar</link> *uid,
44
const <link linkend="gchar">gchar</link> *part_spec,
45
<link linkend="CamelException">CamelException</link> *ex);
46
<link linkend="gchar">gchar</link> * <link linkend="camel-imap-message-cache-get-filename">camel_imap_message_cache_get_filename</link>
47
(<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
48
const <link linkend="gchar">gchar</link> *uid,
49
const <link linkend="gchar">gchar</link> *part_spec,
50
<link linkend="CamelException">CamelException</link> *ex);
51
<link linkend="void">void</link> <link linkend="camel-imap-message-cache-remove">camel_imap_message_cache_remove</link> (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
52
const <link linkend="gchar">gchar</link> *uid);
53
<link linkend="void">void</link> <link linkend="camel-imap-message-cache-clear">camel_imap_message_cache_clear</link> (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache);
54
<link linkend="void">void</link> <link linkend="camel-imap-message-cache-copy">camel_imap_message_cache_copy</link> (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *source,
55
const <link linkend="gchar">gchar</link> *source_uid,
56
<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *dest,
57
const <link linkend="gchar">gchar</link> *dest_uid,
58
<link linkend="CamelException">CamelException</link> *ex);
59
<link linkend="gboolean">gboolean</link> <link linkend="camel-imap-message-cache-delete">camel_imap_message_cache_delete</link> (const <link linkend="gchar">gchar</link> *path,
60
<link linkend="CamelException">CamelException</link> *ex);
61
<link linkend="GPtrArray">GPtrArray</link> * <link linkend="camel-imap-message-cache-filter-cached">camel_imap_message_cache_filter_cached</link>
62
(<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *,
63
<link linkend="GPtrArray">GPtrArray</link> *uids,
64
<link linkend="CamelException">CamelException</link> *ex);
76
<refsect1 id="camel-CamelImapMessageCache.description" role="desc">
77
<title role="desc.title">Description</title>
82
<refsect1 id="camel-CamelImapMessageCache.details" role="details">
83
<title role="details.title">Details</title>
84
<refsect2 id="CamelImapMessageCache" role="struct">
85
<title>struct CamelImapMessageCache</title>
86
<indexterm zone="CamelImapMessageCache"><primary sortas="CamelImapMessageCache">CamelImapMessageCache</primary></indexterm><programlisting>struct CamelImapMessageCache {
87
CamelObject parent_object;
90
/* parts contains two sorts of objects.
91
* If the key contains '.' then it is a stream (also reverse-indexed in
93
* Otherwise it is a g_ptr_array containing the subparts the message
94
* has. (e.g. 0., or 0.MIME.1).
96
/* cached contains streams for recently accessed messages */
97
GHashTable *parts, *cached;
103
<refsect2 id="camel-imap-message-cache-new" role="function">
104
<title>camel_imap_message_cache_new ()</title>
105
<indexterm zone="camel-imap-message-cache-new"><primary sortas="camel_imap_message_cache_new">camel_imap_message_cache_new</primary></indexterm><programlisting><link linkend="CamelImapMessageCache">CamelImapMessageCache</link> * camel_imap_message_cache_new (const <link linkend="gchar">gchar</link> *path,
106
<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
107
<link linkend="CamelException">CamelException</link> *ex);</programlisting>
111
</para><variablelist role="params">
112
<varlistentry><term><parameter>path</parameter> :</term>
113
<listitem><simpara> directory to use for storage
114
</simpara></listitem></varlistentry>
115
<varlistentry><term><parameter>summary</parameter> :</term>
116
<listitem><simpara> CamelFolderSummary for the folder we are caching
117
</simpara></listitem></varlistentry>
118
<varlistentry><term><parameter>ex</parameter> :</term>
119
<listitem><simpara> a CamelException
120
</simpara></listitem></varlistentry>
121
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a new CamelImapMessageCache object using <parameter>path</parameter> for
122
storage. If cache files already exist in <parameter>path</parameter>, then any that do not
123
correspond to messages in <parameter>summary</parameter> will be deleted.
124
<parameter>path</parameter> is scanned for its contents, which means creating a cache object can be
125
expensive, but the parts hash is immediately usable.
126
</simpara></listitem></varlistentry>
127
</variablelist></refsect2>
128
<refsect2 id="camel-imap-message-cache-set-path" role="function">
129
<title>camel_imap_message_cache_set_path ()</title>
130
<indexterm zone="camel-imap-message-cache-set-path"><primary sortas="camel_imap_message_cache_set_path">camel_imap_message_cache_set_path</primary></indexterm><programlisting><link linkend="void">void</link> camel_imap_message_cache_set_path (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
131
const <link linkend="gchar">gchar</link> *path);</programlisting>
133
Set the path used for the message cache.</para>
135
</para><variablelist role="params">
136
<varlistentry><term><parameter>cache</parameter> :</term>
138
</simpara></listitem></varlistentry>
139
<varlistentry><term><parameter>path</parameter> :</term>
141
</simpara></listitem></varlistentry>
142
</variablelist></refsect2>
143
<refsect2 id="camel-imap-message-cache-max-uid" role="function">
144
<title>camel_imap_message_cache_max_uid ()</title>
145
<indexterm zone="camel-imap-message-cache-max-uid"><primary sortas="camel_imap_message_cache_max_uid">camel_imap_message_cache_max_uid</primary></indexterm><programlisting><link linkend="guint32">guint32</link> camel_imap_message_cache_max_uid (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache);</programlisting>
149
</para><variablelist role="params">
150
<varlistentry><term><parameter>cache</parameter> :</term>
151
<listitem><simpara> the cache
152
</simpara></listitem></varlistentry>
153
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the largest (real) UID in the cache.
154
</simpara></listitem></varlistentry>
155
</variablelist></refsect2>
156
<refsect2 id="camel-imap-message-cache-insert" role="function">
157
<title>camel_imap_message_cache_insert ()</title>
158
<indexterm zone="camel-imap-message-cache-insert"><primary sortas="camel_imap_message_cache_insert">camel_imap_message_cache_insert</primary></indexterm><programlisting><link linkend="CamelStream">CamelStream</link> * camel_imap_message_cache_insert (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
159
const <link linkend="gchar">gchar</link> *uid,
160
const <link linkend="gchar">gchar</link> *part_spec,
161
const <link linkend="gchar">gchar</link> *data,
162
<link linkend="gint">gint</link> len,
163
<link linkend="CamelException">CamelException</link> *ex);</programlisting>
165
Caches the provided data into <parameter>cache</parameter>.</para>
167
</para><variablelist role="params">
168
<varlistentry><term><parameter>cache</parameter> :</term>
169
<listitem><simpara> the cache
170
</simpara></listitem></varlistentry>
171
<varlistentry><term><parameter>uid</parameter> :</term>
172
<listitem><simpara> UID of the message data to cache
173
</simpara></listitem></varlistentry>
174
<varlistentry><term><parameter>part_spec</parameter> :</term>
175
<listitem><simpara> the IMAP part_spec of the data
176
</simpara></listitem></varlistentry>
177
<varlistentry><term><parameter>data</parameter> :</term>
178
<listitem><simpara> the data
179
</simpara></listitem></varlistentry>
180
<varlistentry><term><parameter>len</parameter> :</term>
181
<listitem><simpara> length of <parameter>data</parameter>
182
</simpara></listitem></varlistentry>
183
<varlistentry><term><parameter>ex</parameter> :</term>
185
</simpara></listitem></varlistentry>
186
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a CamelStream containing the cached data, which the
188
</simpara></listitem></varlistentry>
189
</variablelist></refsect2>
190
<refsect2 id="camel-imap-message-cache-insert-stream" role="function">
191
<title>camel_imap_message_cache_insert_stream ()</title>
192
<indexterm zone="camel-imap-message-cache-insert-stream"><primary sortas="camel_imap_message_cache_insert_stream">camel_imap_message_cache_insert_stream</primary></indexterm><programlisting><link linkend="void">void</link> camel_imap_message_cache_insert_stream
193
(<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
194
const <link linkend="gchar">gchar</link> *uid,
195
const <link linkend="gchar">gchar</link> *part_spec,
196
<link linkend="CamelStream">CamelStream</link> *data_stream,
197
<link linkend="CamelException">CamelException</link> *ex);</programlisting>
199
Caches the provided data into <parameter>cache</parameter>.</para>
201
</para><variablelist role="params">
202
<varlistentry><term><parameter>cache</parameter> :</term>
203
<listitem><simpara> the cache
204
</simpara></listitem></varlistentry>
205
<varlistentry><term><parameter>uid</parameter> :</term>
206
<listitem><simpara> UID of the message data to cache
207
</simpara></listitem></varlistentry>
208
<varlistentry><term><parameter>part_spec</parameter> :</term>
209
<listitem><simpara> the IMAP part_spec of the data
210
</simpara></listitem></varlistentry>
211
<varlistentry><term><parameter>data_stream</parameter> :</term>
212
<listitem><simpara> the stream to cache
213
</simpara></listitem></varlistentry>
214
<varlistentry><term><parameter>ex</parameter> :</term>
216
</simpara></listitem></varlistentry>
217
</variablelist></refsect2>
218
<refsect2 id="camel-imap-message-cache-insert-wrapper" role="function">
219
<title>camel_imap_message_cache_insert_wrapper ()</title>
220
<indexterm zone="camel-imap-message-cache-insert-wrapper"><primary sortas="camel_imap_message_cache_insert_wrapper">camel_imap_message_cache_insert_wrapper</primary></indexterm><programlisting><link linkend="void">void</link> camel_imap_message_cache_insert_wrapper
221
(<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
222
const <link linkend="gchar">gchar</link> *uid,
223
const <link linkend="gchar">gchar</link> *part_spec,
224
<link linkend="CamelDataWrapper">CamelDataWrapper</link> *wrapper,
225
<link linkend="CamelException">CamelException</link> *ex);</programlisting>
227
Caches the provided data into <parameter>cache</parameter>.</para>
229
</para><variablelist role="params">
230
<varlistentry><term><parameter>cache</parameter> :</term>
231
<listitem><simpara> the cache
232
</simpara></listitem></varlistentry>
233
<varlistentry><term><parameter>uid</parameter> :</term>
234
<listitem><simpara> UID of the message data to cache
235
</simpara></listitem></varlistentry>
236
<varlistentry><term><parameter>part_spec</parameter> :</term>
237
<listitem><simpara> the IMAP part_spec of the data
238
</simpara></listitem></varlistentry>
239
<varlistentry><term><parameter>wrapper</parameter> :</term>
240
<listitem><simpara> the wrapper to cache
241
</simpara></listitem></varlistentry>
242
<varlistentry><term><parameter>ex</parameter> :</term>
244
</simpara></listitem></varlistentry>
245
</variablelist></refsect2>
246
<refsect2 id="camel-imap-message-cache-get" role="function">
247
<title>camel_imap_message_cache_get ()</title>
248
<indexterm zone="camel-imap-message-cache-get"><primary sortas="camel_imap_message_cache_get">camel_imap_message_cache_get</primary></indexterm><programlisting><link linkend="CamelStream">CamelStream</link> * camel_imap_message_cache_get (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
249
const <link linkend="gchar">gchar</link> *uid,
250
const <link linkend="gchar">gchar</link> *part_spec,
251
<link linkend="CamelException">CamelException</link> *ex);</programlisting>
255
</para><variablelist role="params">
256
<varlistentry><term><parameter>cache</parameter> :</term>
257
<listitem><simpara> the cache
258
</simpara></listitem></varlistentry>
259
<varlistentry><term><parameter>uid</parameter> :</term>
260
<listitem><simpara> the UID of the data to get
261
</simpara></listitem></varlistentry>
262
<varlistentry><term><parameter>part_spec</parameter> :</term>
263
<listitem><simpara> the part_spec of the data to get
264
</simpara></listitem></varlistentry>
265
<varlistentry><term><parameter>ex</parameter> :</term>
266
<listitem><simpara> exception
267
</simpara></listitem></varlistentry>
268
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a CamelStream containing the cached data (which the
269
caller must unref), or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if that data is not cached.
270
</simpara></listitem></varlistentry>
271
</variablelist></refsect2>
272
<refsect2 id="camel-imap-message-cache-get-filename" role="function">
273
<title>camel_imap_message_cache_get_filename ()</title>
274
<indexterm zone="camel-imap-message-cache-get-filename"><primary sortas="camel_imap_message_cache_get_filename">camel_imap_message_cache_get_filename</primary></indexterm><programlisting><link linkend="gchar">gchar</link> * camel_imap_message_cache_get_filename
275
(<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
276
const <link linkend="gchar">gchar</link> *uid,
277
const <link linkend="gchar">gchar</link> *part_spec,
278
<link linkend="CamelException">CamelException</link> *ex);</programlisting>
282
</para><variablelist role="params">
283
<varlistentry><term><parameter>cache</parameter> :</term>
284
<listitem><simpara> the cache
285
</simpara></listitem></varlistentry>
286
<varlistentry><term><parameter>uid</parameter> :</term>
287
<listitem><simpara> the UID of the data to get
288
</simpara></listitem></varlistentry>
289
<varlistentry><term><parameter>part_spec</parameter> :</term>
290
<listitem><simpara> the part_spec of the data to get
291
</simpara></listitem></varlistentry>
292
<varlistentry><term><parameter>ex</parameter> :</term>
293
<listitem><simpara> exception
294
</simpara></listitem></varlistentry>
295
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the filename of a cache item
296
</simpara></listitem></varlistentry>
297
</variablelist></refsect2>
298
<refsect2 id="camel-imap-message-cache-remove" role="function">
299
<title>camel_imap_message_cache_remove ()</title>
300
<indexterm zone="camel-imap-message-cache-remove"><primary sortas="camel_imap_message_cache_remove">camel_imap_message_cache_remove</primary></indexterm><programlisting><link linkend="void">void</link> camel_imap_message_cache_remove (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache,
301
const <link linkend="gchar">gchar</link> *uid);</programlisting>
303
Removes all data associated with <parameter>uid</parameter> from <parameter>cache</parameter>.</para>
305
</para><variablelist role="params">
306
<varlistentry><term><parameter>cache</parameter> :</term>
307
<listitem><simpara> the cache
308
</simpara></listitem></varlistentry>
309
<varlistentry><term><parameter>uid</parameter> :</term>
310
<listitem><simpara> UID of the data to remove
311
</simpara></listitem></varlistentry>
312
</variablelist></refsect2>
313
<refsect2 id="camel-imap-message-cache-clear" role="function">
314
<title>camel_imap_message_cache_clear ()</title>
315
<indexterm zone="camel-imap-message-cache-clear"><primary sortas="camel_imap_message_cache_clear">camel_imap_message_cache_clear</primary></indexterm><programlisting><link linkend="void">void</link> camel_imap_message_cache_clear (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *cache);</programlisting>
317
Removes all cached data from <parameter>cache</parameter>.</para>
319
</para><variablelist role="params">
320
<varlistentry><term><parameter>cache</parameter> :</term>
321
<listitem><simpara> the cache
322
</simpara></listitem></varlistentry>
323
</variablelist></refsect2>
324
<refsect2 id="camel-imap-message-cache-copy" role="function">
325
<title>camel_imap_message_cache_copy ()</title>
326
<indexterm zone="camel-imap-message-cache-copy"><primary sortas="camel_imap_message_cache_copy">camel_imap_message_cache_copy</primary></indexterm><programlisting><link linkend="void">void</link> camel_imap_message_cache_copy (<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *source,
327
const <link linkend="gchar">gchar</link> *source_uid,
328
<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *dest,
329
const <link linkend="gchar">gchar</link> *dest_uid,
330
<link linkend="CamelException">CamelException</link> *ex);</programlisting>
332
Copies all cached parts from <parameter>source_uid</parameter> in <parameter>source</parameter> to <parameter>dest_uid</parameter> in
333
<parameter>destination</parameter>.</para>
335
</para><variablelist role="params">
336
<varlistentry><term><parameter>source</parameter> :</term>
337
<listitem><simpara> the source message cache
338
</simpara></listitem></varlistentry>
339
<varlistentry><term><parameter>source_uid</parameter> :</term>
340
<listitem><simpara> UID of a message in <parameter>source</parameter>
341
</simpara></listitem></varlistentry>
342
<varlistentry><term><parameter>dest</parameter> :</term>
343
<listitem><simpara> the destination message cache
344
</simpara></listitem></varlistentry>
345
<varlistentry><term><parameter>dest_uid</parameter> :</term>
346
<listitem><simpara> UID of the message in <parameter>dest</parameter>
347
</simpara></listitem></varlistentry>
348
<varlistentry><term><parameter>ex</parameter> :</term>
350
</simpara></listitem></varlistentry>
351
</variablelist></refsect2>
352
<refsect2 id="camel-imap-message-cache-delete" role="function">
353
<title>camel_imap_message_cache_delete ()</title>
354
<indexterm zone="camel-imap-message-cache-delete"><primary sortas="camel_imap_message_cache_delete">camel_imap_message_cache_delete</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> camel_imap_message_cache_delete (const <link linkend="gchar">gchar</link> *path,
355
<link linkend="CamelException">CamelException</link> *ex);</programlisting>
357
All the files under this directory would be deleted</para>
359
</para><variablelist role="params">
360
<varlistentry><term><parameter>path</parameter> :</term>
361
<listitem><simpara> directory to use for storage
362
</simpara></listitem></varlistentry>
363
<varlistentry><term><parameter>ex</parameter> :</term>
364
<listitem><simpara> a CamelException
365
</simpara></listitem></varlistentry>
366
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
367
</simpara></listitem></varlistentry>
368
</variablelist></refsect2>
369
<refsect2 id="camel-imap-message-cache-filter-cached" role="function">
370
<title>camel_imap_message_cache_filter_cached ()</title>
371
<indexterm zone="camel-imap-message-cache-filter-cached"><primary sortas="camel_imap_message_cache_filter_cached">camel_imap_message_cache_filter_cached</primary></indexterm><programlisting><link linkend="GPtrArray">GPtrArray</link> * camel_imap_message_cache_filter_cached
372
(<link linkend="CamelImapMessageCache">CamelImapMessageCache</link> *,
373
<link linkend="GPtrArray">GPtrArray</link> *uids,
374
<link linkend="CamelException">CamelException</link> *ex);</programlisting>
376
</para><variablelist role="params">
377
<varlistentry><term><parameter>Param1</parameter> :</term>
379
</simpara></listitem></varlistentry>
380
<varlistentry><term><parameter>uids</parameter> :</term>
382
</simpara></listitem></varlistentry>
383
<varlistentry><term><parameter>ex</parameter> :</term>
385
</simpara></listitem></varlistentry>
386
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
387
</simpara></listitem></varlistentry>
388
</variablelist></refsect2>