1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 /* camel-folder.h: Abstract class for an email folder 3 * 4 * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) 5 * 6 * This library is free software: you can redistribute it and/or modify it 7 * under the terms of the GNU Lesser General Public License as published by 8 * the Free Software Foundation. 9 * 10 * This library is distributed in the hope that it will be useful, but 11 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 13 * for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with this library. If not, see <http://www.gnu.org/licenses/>. 17 * 18 * Authors: Bertrand Guiheneuf <bertrand@helixcode.com> 19 * Michael Zucchi <notzed@ximian.com> 20 */ 21 22 #if !defined (__CAMEL_H_INSIDE__) && !defined (CAMEL_COMPILATION) 23 #error "Only <camel/camel.h> can be included directly." 24 #endif 25 26 #ifndef CAMEL_FOLDER_H 27 #define CAMEL_FOLDER_H 28 29 #include <camel/camel-enums.h> 30 #include <camel/camel-folder-summary.h> 31 #include <camel/camel-object.h> 32 33 /* Standard GObject macros */ 34 #define CAMEL_TYPE_FOLDER \ 35 (camel_folder_get_type ()) 36 #define CAMEL_FOLDER(obj) \ 37 (G_TYPE_CHECK_INSTANCE_CAST \ 38 ((obj), CAMEL_TYPE_FOLDER, CamelFolder)) 39 #define CAMEL_FOLDER_CLASS(cls) \ 40 (G_TYPE_CHECK_CLASS_CAST \ 41 ((cls), CAMEL_TYPE_FOLDER, CamelFolderClass)) 42 #define CAMEL_IS_FOLDER(obj) \ 43 (G_TYPE_CHECK_INSTANCE_TYPE \ 44 ((obj), CAMEL_TYPE_FOLDER)) 45 #define CAMEL_IS_FOLDER_CLASS(cls) \ 46 (G_TYPE_CHECK_CLASS_TYPE \ 47 ((cls), CAMEL_TYPE_FOLDER)) 48 #define CAMEL_FOLDER_GET_CLASS(obj) \ 49 (G_TYPE_INSTANCE_GET_CLASS \ 50 ((obj), CAMEL_TYPE_FOLDER, CamelFolderClass)) 51 52 #define CAMEL_TYPE_FOLDER_CHANGE_INFO (camel_folder_change_info_get_type ()) 53 54 /** 55 * CAMEL_FOLDER_ERROR: 56 * 57 * Since: 2.32 58 **/ 59 #define CAMEL_FOLDER_ERROR \ 60 (camel_folder_error_quark ()) 61 62 G_BEGIN_DECLS 63 64 struct _CamelStore; 65 66 typedef struct _CamelFolderChangeInfo CamelFolderChangeInfo; 67 typedef struct _CamelFolderChangeInfoPrivate CamelFolderChangeInfoPrivate; 68 69 typedef struct _CamelFolder CamelFolder; 70 typedef struct _CamelFolderClass CamelFolderClass; 71 typedef struct _CamelFolderPrivate CamelFolderPrivate; 72 73 /** 74 * CamelFolderError: 75 * @CAMEL_FOLDER_ERROR_INVALID: a generic error about invalid operation with the folder 76 * @CAMEL_FOLDER_ERROR_INVALID_STATE: the folder is in an invalid state 77 * @CAMEL_FOLDER_ERROR_NON_EMPTY: the folder is not empty 78 * @CAMEL_FOLDER_ERROR_NON_UID: requested UID is not a UID 79 * @CAMEL_FOLDER_ERROR_INSUFFICIENT_PERMISSION: insufficient permissions for the requested operation 80 * @CAMEL_FOLDER_ERROR_INVALID_PATH: the folder path is invalid 81 * @CAMEL_FOLDER_ERROR_INVALID_UID: requested UID is invalid/cannot be found 82 * @CAMEL_FOLDER_ERROR_SUMMARY_INVALID: the folder's summary is invalid/broken 83 * 84 * Since: 2.32 85 **/ 86 typedef enum { 87 CAMEL_FOLDER_ERROR_INVALID, 88 CAMEL_FOLDER_ERROR_INVALID_STATE, 89 CAMEL_FOLDER_ERROR_NON_EMPTY, 90 CAMEL_FOLDER_ERROR_NON_UID, 91 CAMEL_FOLDER_ERROR_INSUFFICIENT_PERMISSION, 92 CAMEL_FOLDER_ERROR_INVALID_PATH, 93 CAMEL_FOLDER_ERROR_INVALID_UID, 94 CAMEL_FOLDER_ERROR_SUMMARY_INVALID 95 } CamelFolderError; 96 97 /** 98 * CamelFetchType: 99 * @CAMEL_FETCH_OLD_MESSAGES: fetch old messages 100 * @CAMEL_FETCH_NEW_MESSAGES: fetch new messages 101 * 102 * Since: 3.4 103 **/ 104 typedef enum { 105 CAMEL_FETCH_OLD_MESSAGES, 106 CAMEL_FETCH_NEW_MESSAGES 107 } CamelFetchType; 108 109 struct _CamelFolderChangeInfo { 110 GPtrArray *uid_added; 111 GPtrArray *uid_removed; 112 GPtrArray *uid_changed; 113 GPtrArray *uid_recent; 114 115 /*< private >*/ 116 CamelFolderChangeInfoPrivate *priv; 117 }; 118 119 typedef struct _CamelFolderQuotaInfo CamelFolderQuotaInfo; 120 121 /** 122 * CamelFolderQuotaInfo: 123 * @name: name, aka identification, of the quota type 124 * @used: how many bytes is currently in use 125 * @total: what is the maximum quota to use 126 * @next: a reference to a follwing #CamelFolderQuotaInfo 127 * 128 * Since: 2.24 129 **/ 130 struct _CamelFolderQuotaInfo { 131 gchar *name; 132 guint64 used; 133 guint64 total; 134 135 struct _CamelFolderQuotaInfo *next; 136 }; 137 138 struct _CamelFolder { 139 CamelObject parent; 140 CamelFolderPrivate *priv; 141 }; 142 143 struct _CamelFolderClass { 144 CamelObjectClass parent_class; 145 146 /* Non-Blocking Methods */ 147 gint (*get_message_count) (CamelFolder *folder); 148 guint32 (*get_permanent_flags) (CamelFolder *folder); 149 guint32 (*get_message_flags) (CamelFolder *folder, 150 const gchar *uid); 151 gboolean (*set_message_flags) (CamelFolder *folder, 152 const gchar *uid, 153 guint32 mask, 154 guint32 set); 155 gboolean (*get_message_user_flag)(CamelFolder *folder, 156 const gchar *uid, 157 const gchar *name); 158 void (*set_message_user_flag)(CamelFolder *folder, 159 const gchar *uid, 160 const gchar *name, 161 gboolean value); 162 const gchar * (*get_message_user_tag) (CamelFolder *folder, 163 const gchar *uid, 164 const gchar *name); 165 void (*set_message_user_tag) (CamelFolder *folder, 166 const gchar *uid, 167 const gchar *name, 168 const gchar *value); 169 GPtrArray * (*get_uids) (CamelFolder *folder); 170 void (*free_uids) (CamelFolder *folder, 171 GPtrArray *array); 172 gint (*cmp_uids) (CamelFolder *folder, 173 const gchar *uid1, 174 const gchar *uid2); 175 void (*sort_uids) (CamelFolder *folder, 176 GPtrArray *uids); 177 GPtrArray * (*get_summary) (CamelFolder *folder); 178 void (*free_summary) (CamelFolder *folder, 179 GPtrArray *array); 180 gboolean (*has_search_capability)(CamelFolder *folder); 181 GPtrArray * (*search_by_expression) (CamelFolder *folder, 182 const gchar *expression, 183 GCancellable *cancellable, 184 GError **error); 185 GPtrArray * (*search_by_uids) (CamelFolder *folder, 186 const gchar *expression, 187 GPtrArray *uids, 188 GCancellable *cancellable, 189 GError **error); 190 void (*search_free) (CamelFolder *folder, 191 GPtrArray *result); 192 CamelMessageInfo * 193 (*get_message_info) (CamelFolder *folder, 194 const gchar *uid); 195 void (*delete_) (CamelFolder *folder); 196 void (*rename) (CamelFolder *folder, 197 const gchar *new_name); 198 void (*freeze) (CamelFolder *folder); 199 void (*thaw) (CamelFolder *folder); 200 gboolean (*is_frozen) (CamelFolder *folder); 201 guint32 (*count_by_expression) (CamelFolder *folder, 202 const gchar *expression, 203 GCancellable *cancellable, 204 GError **error); 205 GPtrArray * (*get_uncached_uids) (CamelFolder *folder, 206 GPtrArray *uids, 207 GError **error); 208 gchar * (*get_filename) (CamelFolder *folder, 209 const gchar *uid, 210 GError **error); 211 CamelMimeMessage * 212 (*get_message_cached) (CamelFolder *folder, 213 const gchar *message_uid, 214 GCancellable *cancellable); 215 216 /* Synchronous I/O Methods */ 217 gboolean (*append_message_sync) (CamelFolder *folder, 218 CamelMimeMessage *message, 219 CamelMessageInfo *info, 220 gchar **appended_uid, 221 GCancellable *cancellable, 222 GError **error); 223 gboolean (*expunge_sync) (CamelFolder *folder, 224 GCancellable *cancellable, 225 GError **error); 226 CamelMimeMessage * 227 (*get_message_sync) (CamelFolder *folder, 228 const gchar *message_uid, 229 GCancellable *cancellable, 230 GError **error); 231 CamelFolderQuotaInfo * 232 (*get_quota_info_sync) (CamelFolder *folder, 233 GCancellable *cancellable, 234 GError **error); 235 gboolean (*purge_message_cache_sync) 236 (CamelFolder *folder, 237 gchar *start_uid, 238 gchar *end_uid, 239 GCancellable *cancellable, 240 GError **error); 241 gboolean (*refresh_info_sync) (CamelFolder *folder, 242 GCancellable *cancellable, 243 GError **error); 244 gboolean (*synchronize_sync) (CamelFolder *folder, 245 gboolean expunge, 246 GCancellable *cancellable, 247 GError **error); 248 gboolean (*synchronize_message_sync) 249 (CamelFolder *folder, 250 const gchar *message_uid, 251 GCancellable *cancellable, 252 GError **error); 253 gboolean (*transfer_messages_to_sync) 254 (CamelFolder *source, 255 GPtrArray *message_uids, 256 CamelFolder *destination, 257 gboolean delete_originals, 258 GPtrArray **transferred_uids, 259 GCancellable *cancellable, 260 GError **error); 261 void (*prepare_content_refresh) 262 (CamelFolder *folder); 263 264 /* Padding for future expansion */ 265 gpointer reserved_methods[20]; 266 267 /* Signals */ 268 void (*changed) (CamelFolder *folder, 269 CamelFolderChangeInfo *changes); 270 void (*deleted) (CamelFolder *folder); 271 void (*renamed) (CamelFolder *folder, 272 const gchar *old_name); 273 274 /* Padding for future expansion */ 275 gpointer reserved_signals[20]; 276 }; 277 278 GType camel_folder_get_type (void); 279 GQuark camel_folder_error_quark (void) G_GNUC_CONST; 280 void camel_folder_set_lock_async (CamelFolder *folder, 281 gboolean skip_folder_lock); 282 struct _CamelStore * 283 camel_folder_get_parent_store (CamelFolder *folder); 284 CamelFolderSummary * 285 camel_folder_get_folder_summary (CamelFolder *folder); 286 void camel_folder_take_folder_summary 287 (CamelFolder *folder, 288 CamelFolderSummary *summary); 289 const gchar * camel_folder_get_full_name (CamelFolder *folder); 290 gchar * camel_folder_dup_full_name (CamelFolder *folder); 291 void camel_folder_set_full_name (CamelFolder *folder, 292 const gchar *full_name); 293 const gchar * camel_folder_get_display_name (CamelFolder *folder); 294 gchar * camel_folder_dup_display_name (CamelFolder *folder); 295 void camel_folder_set_display_name (CamelFolder *folder, 296 const gchar *display_name); 297 const gchar * camel_folder_get_description (CamelFolder *folder); 298 gchar * camel_folder_dup_description (CamelFolder *folder); 299 void camel_folder_set_description (CamelFolder *folder, 300 const gchar *description); 301 guint32 camel_folder_get_flags (CamelFolder *folder); 302 void camel_folder_set_flags (CamelFolder *folder, 303 guint32 folder_flags); 304 CamelThreeState camel_folder_get_mark_seen (CamelFolder *folder); 305 void camel_folder_set_mark_seen (CamelFolder *folder, 306 CamelThreeState mark_seen); 307 gint camel_folder_get_mark_seen_timeout 308 (CamelFolder *folder); 309 void camel_folder_set_mark_seen_timeout 310 (CamelFolder *folder, 311 gint timeout); 312 guint32 camel_folder_get_permanent_flags 313 (CamelFolder *folder); 314 #ifndef CAMEL_DISABLE_DEPRECATED 315 guint32 camel_folder_get_message_flags (CamelFolder *folder, 316 const gchar *uid); 317 gboolean camel_folder_set_message_flags (CamelFolder *folder, 318 const gchar *uid, 319 guint32 mask, 320 guint32 set); 321 gboolean camel_folder_get_message_user_flag 322 (CamelFolder *folder, 323 const gchar *uid, 324 const gchar *name); 325 void camel_folder_set_message_user_flag 326 (CamelFolder *folder, 327 const gchar *uid, 328 const gchar *name, 329 gboolean value); 330 const gchar * camel_folder_get_message_user_tag 331 (CamelFolder *folder, 332 const gchar *uid, 333 const gchar *name); 334 void camel_folder_set_message_user_tag 335 (CamelFolder *folder, 336 const gchar *uid, 337 const gchar *name, 338 const gchar *value); 339 #endif /* CAMEL_DISABLE_DEPRECATED */ 340 gboolean camel_folder_has_summary_capability 341 (CamelFolder *folder); 342 gint camel_folder_get_message_count (CamelFolder *folder); 343 #ifndef CAMEL_DISABLE_DEPRECATED 344 gint camel_folder_get_unread_message_count 345 (CamelFolder *folder); 346 #endif 347 gint camel_folder_get_deleted_message_count 348 (CamelFolder *folder); 349 GPtrArray * camel_folder_get_summary (CamelFolder *folder); 350 void camel_folder_free_summary (CamelFolder *folder, 351 GPtrArray *array); 352 353 #define camel_folder_delete_message(folder, uid) \ 354 (camel_folder_set_message_flags ( \ 355 folder, uid, \ 356 CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN, \ 357 CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN)) 358 359 GPtrArray * camel_folder_get_uids (CamelFolder *folder); 360 void camel_folder_free_uids (CamelFolder *folder, 361 GPtrArray *array); 362 GPtrArray * camel_folder_get_uncached_uids (CamelFolder *folder, 363 GPtrArray *uids, 364 GError **error); 365 gint camel_folder_cmp_uids (CamelFolder *folder, 366 const gchar *uid1, 367 const gchar *uid2); 368 void camel_folder_sort_uids (CamelFolder *folder, 369 GPtrArray *uids); 370 GPtrArray * camel_folder_search_by_expression 371 (CamelFolder *folder, 372 const gchar *expression, 373 GCancellable *cancellable, 374 GError **error); 375 GPtrArray * camel_folder_search_by_uids (CamelFolder *folder, 376 const gchar *expression, 377 GPtrArray *uids, 378 GCancellable *cancellable, 379 GError **error); 380 void camel_folder_search_free (CamelFolder *folder, 381 GPtrArray *result); 382 guint32 camel_folder_count_by_expression (CamelFolder *folder, 383 const gchar *expression, 384 GCancellable *cancellable, 385 GError **error); 386 CamelMessageInfo * 387 camel_folder_get_message_info (CamelFolder *folder, 388 const gchar *uid); 389 void camel_folder_delete (CamelFolder *folder); 390 void camel_folder_rename (CamelFolder *folder, 391 const gchar *new_name); 392 void camel_folder_changed (CamelFolder *folder, 393 CamelFolderChangeInfo *changes); 394 void camel_folder_freeze (CamelFolder *folder); 395 void camel_folder_thaw (CamelFolder *folder); 396 gboolean camel_folder_is_frozen (CamelFolder *folder); 397 gint camel_folder_get_frozen_count (CamelFolder *folder); 398 399 GType camel_folder_quota_info_get_type (void) G_GNUC_CONST; 400 CamelFolderQuotaInfo * 401 camel_folder_quota_info_new (const gchar *name, 402 guint64 used, 403 guint64 total); 404 CamelFolderQuotaInfo * 405 camel_folder_quota_info_clone (const CamelFolderQuotaInfo *info); 406 void camel_folder_quota_info_free (CamelFolderQuotaInfo *info); 407 void camel_folder_free_shallow (CamelFolder *folder, 408 GPtrArray *array); 409 void camel_folder_free_deep (CamelFolder *folder, 410 GPtrArray *array); 411 gchar * camel_folder_get_filename (CamelFolder *folder, 412 const gchar *uid, 413 GError **error); 414 void camel_folder_lock (CamelFolder *folder); 415 void camel_folder_unlock (CamelFolder *folder); 416 417 gboolean camel_folder_append_message_sync 418 (CamelFolder *folder, 419 CamelMimeMessage *message, 420 CamelMessageInfo *info, 421 gchar **appended_uid, 422 GCancellable *cancellable, 423 GError **error); 424 void camel_folder_append_message (CamelFolder *folder, 425 CamelMimeMessage *message, 426 CamelMessageInfo *info, 427 gint io_priority, 428 GCancellable *cancellable, 429 GAsyncReadyCallback callback, 430 gpointer user_data); 431 gboolean camel_folder_append_message_finish 432 (CamelFolder *folder, 433 GAsyncResult *result, 434 gchar **appended_uid, 435 GError **error); 436 gboolean camel_folder_expunge_sync (CamelFolder *folder, 437 GCancellable *cancellable, 438 GError **error); 439 void camel_folder_expunge (CamelFolder *folder, 440 gint io_priority, 441 GCancellable *cancellable, 442 GAsyncReadyCallback callback, 443 gpointer user_data); 444 gboolean camel_folder_expunge_finish (CamelFolder *folder, 445 GAsyncResult *result, 446 GError **error); 447 CamelMimeMessage * 448 camel_folder_get_message_sync (CamelFolder *folder, 449 const gchar *message_uid, 450 GCancellable *cancellable, 451 GError **error); 452 void camel_folder_get_message (CamelFolder *folder, 453 const gchar *message_uid, 454 gint io_priority, 455 GCancellable *cancellable, 456 GAsyncReadyCallback callback, 457 gpointer user_data); 458 CamelMimeMessage * 459 camel_folder_get_message_finish (CamelFolder *folder, 460 GAsyncResult *result, 461 GError **error); 462 CamelMimeMessage * 463 camel_folder_get_message_cached (CamelFolder *folder, 464 const gchar *message_uid, 465 GCancellable *cancellable); 466 CamelFolderQuotaInfo * 467 camel_folder_get_quota_info_sync 468 (CamelFolder *folder, 469 GCancellable *cancellable, 470 GError **error); 471 void camel_folder_get_quota_info (CamelFolder *folder, 472 gint io_priority, 473 GCancellable *cancellable, 474 GAsyncReadyCallback callback, 475 gpointer user_data); 476 CamelFolderQuotaInfo * 477 camel_folder_get_quota_info_finish 478 (CamelFolder *folder, 479 GAsyncResult *result, 480 GError **error); 481 gboolean camel_folder_purge_message_cache_sync 482 (CamelFolder *folder, 483 gchar *start_uid, 484 gchar *end_uid, 485 GCancellable *cancellable, 486 GError **error); 487 void camel_folder_purge_message_cache 488 (CamelFolder *folder, 489 gchar *start_uid, 490 gchar *end_uid, 491 gint io_priority, 492 GCancellable *cancellable, 493 GAsyncReadyCallback callback, 494 gpointer user_data); 495 gboolean camel_folder_purge_message_cache_finish 496 (CamelFolder *folder, 497 GAsyncResult *result, 498 GError **error); 499 gboolean camel_folder_refresh_info_sync (CamelFolder *folder, 500 GCancellable *cancellable, 501 GError **error); 502 void camel_folder_refresh_info (CamelFolder *folder, 503 gint io_priority, 504 GCancellable *cancellable, 505 GAsyncReadyCallback callback, 506 gpointer user_data); 507 gboolean camel_folder_refresh_info_finish 508 (CamelFolder *folder, 509 GAsyncResult *result, 510 GError **error); 511 gboolean camel_folder_synchronize_sync (CamelFolder *folder, 512 gboolean expunge, 513 GCancellable *cancellable, 514 GError **error); 515 void camel_folder_synchronize (CamelFolder *folder, 516 gboolean expunge, 517 gint io_priority, 518 GCancellable *cancellable, 519 GAsyncReadyCallback callback, 520 gpointer user_data); 521 gboolean camel_folder_synchronize_finish (CamelFolder *folder, 522 GAsyncResult *result, 523 GError **error); 524 gboolean camel_folder_synchronize_message_sync 525 (CamelFolder *folder, 526 const gchar *message_uid, 527 GCancellable *cancellable, 528 GError **error); 529 void camel_folder_synchronize_message 530 (CamelFolder *folder, 531 const gchar *message_uid, 532 gint io_priority, 533 GCancellable *cancellable, 534 GAsyncReadyCallback callback, 535 gpointer user_data); 536 gboolean camel_folder_synchronize_message_finish 537 (CamelFolder *folder, 538 GAsyncResult *result, 539 GError **error); 540 gboolean camel_folder_transfer_messages_to_sync 541 (CamelFolder *source, 542 GPtrArray *message_uids, 543 CamelFolder *destination, 544 gboolean delete_originals, 545 GPtrArray **transferred_uids, 546 GCancellable *cancellable, 547 GError **error); 548 void camel_folder_transfer_messages_to 549 (CamelFolder *source, 550 GPtrArray *message_uids, 551 CamelFolder *destination, 552 gboolean delete_originals, 553 gint io_priority, 554 GCancellable *cancellable, 555 GAsyncReadyCallback callback, 556 gpointer user_data); 557 gboolean camel_folder_transfer_messages_to_finish 558 (CamelFolder *source, 559 GAsyncResult *result, 560 GPtrArray **transferred_uids, 561 GError **error); 562 void camel_folder_prepare_content_refresh 563 (CamelFolder *folder); 564 565 /* update functions for change info */ 566 GType camel_folder_change_info_get_type 567 (void) G_GNUC_CONST; 568 CamelFolderChangeInfo * 569 camel_folder_change_info_new (void); 570 CamelFolderChangeInfo * 571 camel_folder_change_info_copy (CamelFolderChangeInfo *src); 572 void camel_folder_change_info_clear (CamelFolderChangeInfo *info); 573 void camel_folder_change_info_free (CamelFolderChangeInfo *info); 574 gboolean camel_folder_change_info_changed (CamelFolderChangeInfo *info); 575 GPtrArray * camel_folder_change_info_get_added_uids 576 (CamelFolderChangeInfo *info); 577 GPtrArray * camel_folder_change_info_get_removed_uids 578 (CamelFolderChangeInfo *info); 579 GPtrArray * camel_folder_change_info_get_changed_uids 580 (CamelFolderChangeInfo *info); 581 GPtrArray * camel_folder_change_info_get_recent_uids 582 (CamelFolderChangeInfo *info); 583 584 /* for building diff's automatically */ 585 void camel_folder_change_info_add_source 586 (CamelFolderChangeInfo *info, 587 const gchar *uid); 588 void camel_folder_change_info_add_source_list 589 (CamelFolderChangeInfo *info, 590 const GPtrArray *list); 591 void camel_folder_change_info_add_update 592 (CamelFolderChangeInfo *info, 593 const gchar *uid); 594 void camel_folder_change_info_add_update_list 595 (CamelFolderChangeInfo *info, 596 const GPtrArray *list); 597 void camel_folder_change_info_build_diff 598 (CamelFolderChangeInfo *info); 599 600 /* for manipulating diff's directly */ 601 void camel_folder_change_info_cat (CamelFolderChangeInfo *info, 602 CamelFolderChangeInfo *src); 603 void camel_folder_change_info_add_uid (CamelFolderChangeInfo *info, 604 const gchar *uid); 605 void camel_folder_change_info_remove_uid 606 (CamelFolderChangeInfo *info, 607 const gchar *uid); 608 void camel_folder_change_info_change_uid 609 (CamelFolderChangeInfo *info, 610 const gchar *uid); 611 void camel_folder_change_info_recent_uid 612 (CamelFolderChangeInfo *info, 613 const gchar *uid); 614 615 G_END_DECLS 616 617 #endif /* CAMEL_FOLDER_H */ 618