[evolution-data-server] Implement sync message
- From: Chenthill Palanisamy <pchen src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Implement sync message
- Date: Fri, 26 Feb 2010 20:39:54 +0000 (UTC)
commit 92c10e0c6fffc77eef78ab713c56ab52ed68eae9
Author: Chenthill Palanisamy <pchenthill novell com>
Date: Sat Feb 27 02:10:54 2010 +0530
Implement sync message
camel/providers/imapx/camel-imapx-folder.c | 13 +++++++++++++
camel/providers/imapx/camel-imapx-server.c | 18 ++++++++++++++++++
camel/providers/imapx/camel-imapx-server.h | 1 +
3 files changed, 32 insertions(+), 0 deletions(-)
---
diff --git a/camel/providers/imapx/camel-imapx-folder.c b/camel/providers/imapx/camel-imapx-folder.c
index 002282a..3ed3dd6 100644
--- a/camel/providers/imapx/camel-imapx-folder.c
+++ b/camel/providers/imapx/camel-imapx-folder.c
@@ -224,6 +224,18 @@ imapx_get_message (CamelFolder *folder, const gchar *uid, CamelException *ex)
}
static void
+imapx_sync_message (CamelFolder *folder, const gchar *uid, CamelException *ex)
+{
+ CamelIMAPXStore *istore = (CamelIMAPXStore *)folder->parent_store;
+
+ if (CAMEL_OFFLINE_STORE (istore)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL)
+ return;
+
+ if (istore->server && camel_imapx_server_connect (istore->server, 1))
+ camel_imapx_server_sync_message (istore->server, folder, uid, ex);
+}
+
+static void
imapx_transfer_messages_to (CamelFolder *source, GPtrArray *uids,
CamelFolder *dest, GPtrArray **transferred_uids,
gboolean delete_originals, CamelException *ex)
@@ -395,6 +407,7 @@ imap_folder_class_init (CamelIMAPXFolderClass *klass)
((CamelFolderClass *)klass)->expunge = imapx_expunge;
((CamelFolderClass *)klass)->get_message = imapx_get_message;
+ ((CamelFolderClass *)klass)->sync_message = imapx_sync_message;
((CamelFolderClass *)klass)->append_message = imapx_append_message;
((CamelFolderClass *)klass)->transfer_messages_to = imapx_transfer_messages_to;
((CamelFolderClass *)klass)->get_filename = imapx_get_filename;
diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
index a752cb6..fd37a62 100644
--- a/camel/providers/imapx/camel-imapx-server.c
+++ b/camel/providers/imapx/camel-imapx-server.c
@@ -3730,6 +3730,24 @@ camel_imapx_server_get_message(CamelIMAPXServer *is, CamelFolder *folder, const
}
void
+camel_imapx_server_sync_message (CamelIMAPXServer *is, CamelFolder *folder, const gchar *uid, CamelException *ex)
+{
+ gchar *cache_file = NULL;
+ CamelIMAPXFolder *ifolder = (CamelIMAPXFolder *) folder;
+ CamelStream *stream;
+
+ cache_file = camel_data_cache_get_filename (ifolder->cache, "cur", uid, NULL);
+ if (g_file_test (cache_file, G_FILE_TEST_EXISTS)) {
+ g_free (cache_file);
+ return;
+ }
+
+ stream = imapx_server_get_message (is, folder, uid, 10, ex);
+ if (stream)
+ camel_object_unref(stream);
+}
+
+void
camel_imapx_server_copy_message (CamelIMAPXServer *is, CamelFolder *source, CamelFolder *dest, GPtrArray *uids, gboolean delete_originals, CamelException *ex)
{
CamelIMAPXJob *job;
diff --git a/camel/providers/imapx/camel-imapx-server.h b/camel/providers/imapx/camel-imapx-server.h
index 5d98ef1..20ca075 100644
--- a/camel/providers/imapx/camel-imapx-server.h
+++ b/camel/providers/imapx/camel-imapx-server.h
@@ -120,5 +120,6 @@ void camel_imapx_server_noop (CamelIMAPXServer *is, CamelFolder *folder, CamelEx
CamelStream *camel_imapx_server_get_message(CamelIMAPXServer *is, CamelFolder *folder, const gchar *uid, struct _CamelException *ex);
void camel_imapx_server_copy_message (CamelIMAPXServer *is, CamelFolder *source, CamelFolder *dest, GPtrArray *uids, gboolean delete_originals, CamelException *ex);
void camel_imapx_server_append_message(CamelIMAPXServer *is, CamelFolder *folder, struct _CamelMimeMessage *message, const struct _CamelMessageInfo *mi, CamelException *ex);
+void camel_imapx_server_sync_message (CamelIMAPXServer *is, CamelFolder *folder, const gchar *uid, CamelException *ex);
#endif /* _CAMEL_IMAPX_SERVER_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]