[evolution-data-server] Add camel_imapx_folder_copy_message_map().



commit 134aaa35973523bb54319d1ad61ad9dd4cae74e9
Author: Matthew Barnes <mbarnes redhat com>
Date:   Fri Oct 4 13:14:21 2013 -0400

    Add camel_imapx_folder_copy_message_map().
    
    Returns a GSequence of 32-bit integers representing the locally cached
    mapping of message sequence numbers to unique identifiers.

 camel/camel-imapx-folder.c              |   39 +++++++++++++++++++++++++++++++
 camel/camel-imapx-folder.h              |    2 +
 docs/reference/camel/camel-sections.txt |    1 +
 3 files changed, 42 insertions(+), 0 deletions(-)
---
diff --git a/camel/camel-imapx-folder.c b/camel/camel-imapx-folder.c
index 5a1f31f..8bcdf67 100644
--- a/camel/camel-imapx-folder.c
+++ b/camel/camel-imapx-folder.c
@@ -1201,6 +1201,45 @@ camel_imapx_folder_set_quota_root_names (CamelIMAPXFolder *folder,
 }
 
 /**
+ * camel_imapx_folder_copy_message_map:
+ * @folder: a #CamelIMAPXFolder
+ *
+ * Returns a #GSequence of 32-bit integers representing the locally cached
+ * mapping of message sequence numbers to unique identifiers.
+ *
+ * Free the returns #GSequence with g_sequence_free().
+ *
+ * Returns: a #GSequence
+ *
+ * Since: 3.12
+ **/
+GSequence *
+camel_imapx_folder_copy_message_map (CamelIMAPXFolder *folder)
+{
+       CamelFolderSummary *summary;
+       GSequence *message_map;
+       GPtrArray *array;
+       guint ii;
+
+       g_return_val_if_fail (CAMEL_IS_IMAPX_FOLDER (folder), NULL);
+
+       summary = CAMEL_FOLDER (folder)->summary;
+       array = camel_folder_summary_get_array (summary);
+       camel_folder_sort_uids (CAMEL_FOLDER (folder), array);
+
+       message_map = g_sequence_new (NULL);
+
+       for (ii = 0; ii < array->len; ii++) {
+               guint32 uid = strtoul (array->pdata[ii], NULL, 10);
+               g_sequence_append (message_map, GUINT_TO_POINTER (uid));
+       }
+
+       camel_folder_summary_free_array (array);
+
+       return message_map;
+}
+
+/**
  * camel_imapx_folder_add_move_to_real_junk:
  * @folder: a #CamelIMAPXFolder
  * @message_uid: a message UID
diff --git a/camel/camel-imapx-folder.h b/camel/camel-imapx-folder.h
index ccebbc4..a4acec0 100644
--- a/camel/camel-imapx-folder.h
+++ b/camel/camel-imapx-folder.h
@@ -96,6 +96,8 @@ gchar **      camel_imapx_folder_dup_quota_root_names
 void           camel_imapx_folder_set_quota_root_names
                                                (CamelIMAPXFolder *folder,
                                                 const gchar **quota_root_names);
+GSequence *    camel_imapx_folder_copy_message_map
+                                               (CamelIMAPXFolder *folder);
 void           camel_imapx_folder_add_move_to_real_junk
                                                (CamelIMAPXFolder *folder,
                                                 const gchar *message_uid);
diff --git a/docs/reference/camel/camel-sections.txt b/docs/reference/camel/camel-sections.txt
index 9c076bb..073c543 100644
--- a/docs/reference/camel/camel-sections.txt
+++ b/docs/reference/camel/camel-sections.txt
@@ -783,6 +783,7 @@ CamelIMAPXFolder
 camel_imapx_folder_new
 camel_imapx_folder_dup_quota_root_names
 camel_imapx_folder_set_quota_root_names
+camel_imapx_folder_copy_message_map
 camel_imapx_folder_add_move_to_real_junk
 camel_imapx_folder_add_move_to_real_trash
 camel_imapx_folder_invalidate_local_cache


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]