aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/imap/camel-imap-folder.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2000-07-25 10:42:11 +0800
committerDan Winship <danw@src.gnome.org>2000-07-25 10:42:11 +0800
commit72183d80ecaa52aef8b45e9857d2464ad3e624ca (patch)
tree076ae2a90662000ed4f643609486ed0441dd2fed /camel/providers/imap/camel-imap-folder.c
parent58eab08d844f38038991580fea08a7b123d4169c (diff)
downloadgsoc2013-evolution-72183d80ecaa52aef8b45e9857d2464ad3e624ca.tar.gz
gsoc2013-evolution-72183d80ecaa52aef8b45e9857d2464ad3e624ca.tar.zst
gsoc2013-evolution-72183d80ecaa52aef8b45e9857d2464ad3e624ca.zip
Remove exceptions from a number of methods that work on what ought to be
* camel-folder.c: Remove exceptions from a number of methods that work on what ought to be static data: get_parent_folder, get_parent_store, get_message_count, get_unread_message_count, get_permanent_flags, get_message_flags, set_message_flags, get_message_user_flag, set_message_user_flag, get_uids, get_summary, get_subfolder_names. Turn camel_folder_delete_message into a macro. (Mostly a pull-up from the camel-async branch.) * providers/{imap,mbox,nntp,pop3,vee}: Update for CamelFolder changes svn path=/trunk/; revision=4303
Diffstat (limited to 'camel/providers/imap/camel-imap-folder.c')
-rw-r--r--camel/providers/imap/camel-imap-folder.c97
1 files changed, 28 insertions, 69 deletions
diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c
index 3dab6179cb..a8e4a7d602 100644
--- a/camel/providers/imap/camel-imap-folder.c
+++ b/camel/providers/imap/camel-imap-folder.c
@@ -69,35 +69,31 @@ static void imap_sync (CamelFolder *folder, gboolean expunge, CamelException *ex
static void imap_expunge (CamelFolder *folder, CamelException *ex);
static gint imap_get_message_count_internal (CamelFolder *folder, CamelException *ex);
-static gint imap_get_message_count (CamelFolder *folder, CamelException *ex);
-static gint imap_get_unread_message_count (CamelFolder *folder, CamelException *ex);
+static gint imap_get_message_count (CamelFolder *folder);
+static gint imap_get_unread_message_count (CamelFolder *folder);
static CamelMimeMessage *imap_get_message (CamelFolder *folder, const gchar *uid, CamelException *ex);
static void imap_append_message (CamelFolder *folder, CamelMimeMessage *message, guint32 flags, CamelException *ex);
static void imap_copy_message_to (CamelFolder *source, const char *uid, CamelFolder *destination, CamelException *ex);
static void imap_move_message_to (CamelFolder *source, const char *uid, CamelFolder *destination, CamelException *ex);
-static void imap_delete_message (CamelFolder *folder, const gchar *uid, CamelException *ex);
static gboolean imap_parse_subfolder_line (gchar *buf, gchar *namespace, gchar **flags, gchar **sep, gchar **folder);
static GPtrArray *imap_get_subfolder_names_internal (CamelFolder *folder, CamelException *ex);
-static GPtrArray *imap_get_subfolder_names (CamelFolder *folder, CamelException *ex);
+static GPtrArray *imap_get_subfolder_names (CamelFolder *folder);
-static GPtrArray *imap_get_uids (CamelFolder *folder, CamelException *ex);
+static GPtrArray *imap_get_uids (CamelFolder *folder);
static GPtrArray *imap_get_summary_internal (CamelFolder *folder, CamelException *ex);
-static GPtrArray *imap_get_summary (CamelFolder *folder, CamelException *ex);
+static GPtrArray *imap_get_summary (CamelFolder *folder);
static const CamelMessageInfo *imap_get_message_info (CamelFolder *folder, const char *uid);
static GPtrArray *imap_search_by_expression (CamelFolder *folder, const char *expression, CamelException *ex);
/* flag methods */
-static guint32 imap_get_permanent_flags (CamelFolder *folder, CamelException *ex);
-static guint32 imap_get_message_flags (CamelFolder *folder, const char *uid, CamelException *ex);
-static void imap_set_message_flags (CamelFolder *folder, const char *uid, guint32 flags, guint32 set,
- CamelException *ex);
-static gboolean imap_get_message_user_flag (CamelFolder *folder, const char *uid, const char *name,
- CamelException *ex);
+static guint32 imap_get_message_flags (CamelFolder *folder, const char *uid);
+static void imap_set_message_flags (CamelFolder *folder, const char *uid, guint32 flags, guint32 set);
+static gboolean imap_get_message_user_flag (CamelFolder *folder, const char *uid, const char *name);
static void imap_set_message_user_flag (CamelFolder *folder, const char *uid, const char *name,
- gboolean value, CamelException *ex);
+ gboolean value);
static void
@@ -118,13 +114,12 @@ camel_imap_folder_class_init (CamelImapFolderClass *camel_imap_folder_class)
camel_folder_class->get_uids = imap_get_uids;
camel_folder_class->free_uids = camel_folder_free_nop;
camel_folder_class->get_subfolder_names = imap_get_subfolder_names;
- camel_folder_class->free_subfolder_names = camel_folder_free_deep;
+ camel_folder_class->free_subfolder_names = camel_folder_free_nop;
camel_folder_class->get_message_count = imap_get_message_count;
camel_folder_class->get_unread_message_count = imap_get_unread_message_count;
camel_folder_class->get_message = imap_get_message;
camel_folder_class->append_message = imap_append_message;
- camel_folder_class->delete_message = imap_delete_message;
camel_folder_class->copy_message_to = imap_copy_message_to;
camel_folder_class->move_message_to = imap_move_message_to;
@@ -134,7 +129,6 @@ camel_imap_folder_class_init (CamelImapFolderClass *camel_imap_folder_class)
camel_folder_class->search_by_expression = imap_search_by_expression;
- camel_folder_class->get_permanent_flags = imap_get_permanent_flags;
camel_folder_class->get_message_flags = imap_get_message_flags;
camel_folder_class->set_message_flags = imap_set_message_flags;
camel_folder_class->get_message_user_flag = imap_get_message_user_flag;
@@ -416,7 +410,7 @@ imap_get_message_count_internal (CamelFolder *folder, CamelException *ex)
}
static gint
-imap_get_message_count (CamelFolder *folder, CamelException *ex)
+imap_get_message_count (CamelFolder *folder)
{
CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
@@ -427,7 +421,7 @@ imap_get_message_count (CamelFolder *folder, CamelException *ex)
}
static gint
-imap_get_unread_message_count (CamelFolder *folder, CamelException *ex)
+imap_get_unread_message_count (CamelFolder *folder)
{
CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
CamelMessageInfo *info;
@@ -440,7 +434,7 @@ imap_get_unread_message_count (CamelFolder *folder, CamelException *ex)
if (!imap_folder->summary)
return 0;
- infolist = imap_get_summary (folder, ex);
+ infolist = imap_get_summary (folder);
for (i = 0; i < infolist->len; i++) {
info = (CamelMessageInfo *) g_ptr_array_index (infolist, i);
@@ -600,19 +594,19 @@ imap_move_message_to (CamelFolder *source, const char *uid, CamelFolder *destina
return;
}
- imap_set_message_flags (source, uid, CAMEL_MESSAGE_DELETED, ~(info->flags), ex);
+ imap_set_message_flags (source, uid, CAMEL_MESSAGE_DELETED, ~(info->flags));
camel_imap_folder_changed (destination, ex);
}
static GPtrArray *
-imap_get_uids (CamelFolder *folder, CamelException *ex)
+imap_get_uids (CamelFolder *folder)
{
CamelMessageInfo *info;
GPtrArray *array, *infolist;
gint i, count;
- infolist = imap_get_summary (folder, ex);
+ infolist = imap_get_summary (folder);
count = infolist->len;
array = g_ptr_array_new ();
@@ -763,30 +757,13 @@ imap_get_subfolder_names_internal (CamelFolder *folder, CamelException *ex)
}
static GPtrArray *
-imap_get_subfolder_names (CamelFolder *folder, CamelException *ex)
+imap_get_subfolder_names (CamelFolder *folder)
{
CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
return imap_folder->lsub;
}
-static void
-imap_delete_message (CamelFolder *folder, const gchar *uid, CamelException *ex)
-{
- CamelMessageInfo *info;
-
- if (!(info = (CamelMessageInfo *)imap_get_message_info (folder, uid))) {
- CamelService *service = CAMEL_SERVICE (folder->parent_store);
-
- camel_exception_setv (ex, CAMEL_EXCEPTION_SERVICE_UNAVAILABLE,
- "Could not set flags for message %s on IMAP server %s: %s",
- uid, service->url->host, "Unknown error");
- return;
- }
-
- imap_set_message_flags (folder, uid, CAMEL_MESSAGE_DELETED, ~(info->flags), ex);
-}
-
static CamelMimeMessage *
imap_get_message (CamelFolder *folder, const gchar *uid, CamelException *ex)
{
@@ -1181,7 +1158,7 @@ imap_get_summary_internal (CamelFolder *folder, CamelException *ex)
}
static GPtrArray *
-imap_get_summary (CamelFolder *folder, CamelException *ex)
+imap_get_summary (CamelFolder *folder)
{
CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
@@ -1204,6 +1181,7 @@ imap_get_message_info (CamelFolder *folder, const char *uid)
if (imap_folder->summary) {
int max, i;
+ /* FIXME: use a hash table like the mbox provider does */
max = imap_folder->summary->len;
for (i = 0; i < max; i++) {
info = g_ptr_array_index (imap_folder->summary, i);
@@ -1417,42 +1395,23 @@ imap_search_by_expression (CamelFolder *folder, const char *expression, CamelExc
}
static guint32
-imap_get_permanent_flags (CamelFolder *folder, CamelException *ex)
-{
- /* return permamnant flags */
- return folder->permanent_flags;
-}
-
-static guint32
-imap_get_message_flags (CamelFolder *folder, const char *uid, CamelException *ex)
+imap_get_message_flags (CamelFolder *folder, const char *uid)
{
- CamelMessageInfo *info;
+ const CamelMessageInfo *info;
- if (!(info = (CamelMessageInfo *)imap_get_message_info (folder, uid))) {
- CamelService *service = CAMEL_SERVICE (folder->parent_store);
-
- camel_exception_setv (ex, CAMEL_EXCEPTION_SERVICE_UNAVAILABLE,
- "Could not get flags for message %s on IMAP server %s: %s",
- uid, service->url->host, "Unknown error");
- return 0;
- }
+ info = imap_get_message_info (folder, uid);
+ g_return_val_if_fail (info != NULL, 0);
return info->flags;
}
static void
-imap_set_message_flags (CamelFolder *folder, const char *uid, guint32 flags, guint32 set, CamelException *ex)
+imap_set_message_flags (CamelFolder *folder, const char *uid, guint32 flags, guint32 set)
{
CamelMessageInfo *info;
- if (!(info = (CamelMessageInfo *)imap_get_message_info (folder, uid))) {
- CamelService *service = CAMEL_SERVICE (folder->parent_store);
-
- camel_exception_setv (ex, CAMEL_EXCEPTION_SERVICE_UNAVAILABLE,
- "Could not set flags for message %s on IMAP server %s: %s",
- uid, service->url->host, "Unknown error");
- return;
- }
+ info = (CamelMessageInfo*)imap_get_message_info (folder, uid);
+ g_return_if_fail (info != NULL);
info->flags = (info->flags & ~flags) | (set & flags) | CAMEL_MESSAGE_FOLDER_FLAGGED;
@@ -1460,13 +1419,13 @@ imap_set_message_flags (CamelFolder *folder, const char *uid, guint32 flags, gui
}
static gboolean
-imap_get_message_user_flag (CamelFolder *folder, const char *uid, const char *name, CamelException *ex)
+imap_get_message_user_flag (CamelFolder *folder, const char *uid, const char *name)
{
return FALSE;
}
static void
-imap_set_message_user_flag (CamelFolder *folder, const char *uid, const char *name, gboolean value, CamelException *ex)
+imap_set_message_user_flag (CamelFolder *folder, const char *uid, const char *name, gboolean value)
{
gtk_signal_emit_by_name (GTK_OBJECT (folder), "message_changed", uid);
}