[evolution-data-server] Add camel_imapx_folder_process_status_response().
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Add camel_imapx_folder_process_status_response().
- Date: Thu, 8 Aug 2013 13:27:25 +0000 (UTC)
commit 3f643ffe29ca31323a3101256d75cadcd81dd5bb
Author: Matthew Barnes <mbarnes redhat com>
Date: Thu Aug 8 15:12:42 2013 +0200
Add camel_imapx_folder_process_status_response().
Updates the folder's local status information from the STATUS response.
camel/camel-imapx-folder.c | 29 +++++++++++++++++++++++++++++
camel/camel-imapx-folder.h | 5 +++++
camel/camel-imapx-server.c | 15 ++-------------
docs/reference/camel/camel-sections.txt | 1 +
4 files changed, 37 insertions(+), 13 deletions(-)
---
diff --git a/camel/camel-imapx-folder.c b/camel/camel-imapx-folder.c
index b3ce6c0..dabd397 100644
--- a/camel/camel-imapx-folder.c
+++ b/camel/camel-imapx-folder.c
@@ -1262,3 +1262,32 @@ camel_imapx_folder_add_move_to_real_trash (CamelIMAPXFolder *folder,
g_mutex_unlock (&folder->priv->move_to_hash_table_lock);
}
+/**
+ * camel_imapx_folder_process_status_response:
+ * @folder: a #CamelIMAPXFolder
+ * @response: a #CamelIMAPXStatusResponse
+ *
+ * Updates @folder's local status information from @response.
+ *
+ * Since: 3.10
+ **/
+void
+camel_imapx_folder_process_status_response (CamelIMAPXFolder *folder,
+ CamelIMAPXStatusResponse *response)
+{
+ g_return_if_fail (CAMEL_IS_IMAPX_FOLDER (folder));
+ g_return_if_fail (CAMEL_IS_IMAPX_STATUS_RESPONSE (response));
+
+ /* XXX Should be using some sort of locking here. */
+
+ folder->exists_on_server =
+ camel_imapx_status_response_get_messages (response);
+ folder->unread_on_server =
+ camel_imapx_status_response_get_unseen (response);
+ folder->uidnext_on_server =
+ camel_imapx_status_response_get_uidnext (response);
+ folder->uidvalidity_on_server =
+ camel_imapx_status_response_get_uidvalidity (response);
+ folder->modseq_on_server =
+ camel_imapx_status_response_get_highestmodseq (response);
+}
diff --git a/camel/camel-imapx-folder.h b/camel/camel-imapx-folder.h
index ab26a9e..4322983 100644
--- a/camel/camel-imapx-folder.h
+++ b/camel/camel-imapx-folder.h
@@ -33,6 +33,8 @@
#include <camel/camel-folder-search.h>
#include <camel/camel-store.h>
+#include <camel/camel-imapx-status-response.h>
+
/* Standard GObject macros */
#define CAMEL_TYPE_IMAPX_FOLDER \
(camel_imapx_folder_get_type ())
@@ -101,6 +103,9 @@ void camel_imapx_folder_add_move_to_real_junk
void camel_imapx_folder_add_move_to_real_trash
(CamelIMAPXFolder *folder,
const gchar *message_uid);
+void camel_imapx_folder_process_status_response
+ (CamelIMAPXFolder *folder,
+ CamelIMAPXStatusResponse *response);
G_END_DECLS
diff --git a/camel/camel-imapx-server.c b/camel/camel-imapx-server.c
index e27d9b3..301dcf5 100644
--- a/camel/camel-imapx-server.c
+++ b/camel/camel-imapx-server.c
@@ -2243,11 +2243,7 @@ imapx_untagged_status (CamelIMAPXServer *is,
CamelIMAPXStore *store;
CamelFolder *folder = NULL;
const gchar *mailbox;
- guint32 messages;
- guint32 uidnext;
guint32 uidvalidity;
- guint32 unseen;
- guint64 highestmodseq;
GError *local_error = NULL;
g_return_val_if_fail (CAMEL_IS_IMAPX_SERVER (is), FALSE);
@@ -2258,11 +2254,7 @@ imapx_untagged_status (CamelIMAPXServer *is,
return FALSE;
mailbox = camel_imapx_status_response_get_mailbox (response);
- messages = camel_imapx_status_response_get_messages (response);
- uidnext = camel_imapx_status_response_get_uidnext (response);
uidvalidity = camel_imapx_status_response_get_uidvalidity (response);
- unseen = camel_imapx_status_response_get_unseen (response);
- highestmodseq = camel_imapx_status_response_get_highestmodseq (response);
store = camel_imapx_server_ref_store (is);
@@ -2294,11 +2286,8 @@ imapx_untagged_status (CamelIMAPXServer *is,
imapx_summary = CAMEL_IMAPX_SUMMARY (folder->summary);
imapx_folder = CAMEL_IMAPX_FOLDER (folder);
- imapx_folder->exists_on_server = messages;
- imapx_folder->unread_on_server = unseen;
- imapx_folder->modseq_on_server = highestmodseq;
- imapx_folder->uidvalidity_on_server = uidvalidity;
- imapx_folder->uidnext_on_server = uidnext;
+ camel_imapx_folder_process_status_response (
+ imapx_folder, response);
if (uidvalidity > 0 && uidvalidity != imapx_summary->validity)
invalidate_local_cache (imapx_folder, uidvalidity);
diff --git a/docs/reference/camel/camel-sections.txt b/docs/reference/camel/camel-sections.txt
index 50e3516..430eef1 100644
--- a/docs/reference/camel/camel-sections.txt
+++ b/docs/reference/camel/camel-sections.txt
@@ -778,6 +778,7 @@ camel_imapx_folder_dup_quota_root_names
camel_imapx_folder_set_quota_root_names
camel_imapx_folder_add_move_to_real_junk
camel_imapx_folder_add_move_to_real_trash
+camel_imapx_folder_process_status_response
<SUBSECTION Standard>
CAMEL_IMAPX_FOLDER
CAMEL_IS_IMAPX_FOLDER
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]