aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/nntp/camel-nntp-store.h
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2004-06-03 17:29:08 +0800
committerMichael Zucci <zucchi@src.gnome.org>2004-06-03 17:29:08 +0800
commit0a7400e900f9235cf6ef73a8978433178a5b8f0c (patch)
tree53f1ce1f63eff31afa5e3ef0c607a9af806cd441 /camel/providers/nntp/camel-nntp-store.h
parentf60455997beaa2374f20921d2e874f70d08b4bb4 (diff)
downloadgsoc2013-evolution-0a7400e900f9235cf6ef73a8978433178a5b8f0c.tar
gsoc2013-evolution-0a7400e900f9235cf6ef73a8978433178a5b8f0c.tar.gz
gsoc2013-evolution-0a7400e900f9235cf6ef73a8978433178a5b8f0c.tar.bz2
gsoc2013-evolution-0a7400e900f9235cf6ef73a8978433178a5b8f0c.tar.lz
gsoc2013-evolution-0a7400e900f9235cf6ef73a8978433178a5b8f0c.tar.xz
gsoc2013-evolution-0a7400e900f9235cf6ef73a8978433178a5b8f0c.tar.zst
gsoc2013-evolution-0a7400e900f9235cf6ef73a8978433178a5b8f0c.zip
only save the summary, don't update from server, thats what refresh info
2004-06-03 Not Zed <NotZed@Ximian.com> * providers/nntp/camel-nntp-folder.c (nntp_folder_sync_online): only save the summary, don't update from server, thats what refresh info does. (nntp_folder_download_message): fix exception handling. (nntp_folder_cache_message): same. (nntp_folder_get_message): ditto, plus major cleanup. (nntp_folder_download_message): take combined uid so it can cache and lookup properly. duh. * providers/nntp/camel-nntp-store.c (nntp_store_get_subscribed_folder_info): if not fast, then open the folder, and update it. Yeah i've given up trying to worry about performance vs usability. * providers/nntp/camel-nntp-summary.c (camel_nntp_summary_check): update the storesummary if we update the folder summary. Hmm, isn't duplicated data meant to be a bad thing? :P * providers/nntp/camel-nntp-store.c (camel_nntp_store_set_folder): removed, now handled by nntp_command. (nntp_connected): removed, now handled by nntp_command. * camel-string-utils.c (camel_tolower): added ascii to-lower function. (camel_toupper): and upper, for completeness. * camel-store-summary.c (CAMEL_STORE_SUMMARY_VERSION): bumped file version by 1. This is a mess, version 1 files treated the bitfield 'flags' with bit number values not bits. Messy. * providers/nntp/camel-nntp-store-summary.c (store_info_save): write last/first count. (CAMEL_NNTP_STORE_SUMMARY_VERSION): bump version to 1. (store_info_load): if we're loading >= version 1, then load last/first counts. * providers/nntp/camel-nntp-store.c (nntp_store_get_folder_info_all): pass the whole line to store_info_from_line, dont strip last/first info. (nntp_store_info_update): renamed from info_new_from_line. only add if not present. handle updates, try and handle unread counts and readonly status. 2004-06-02 Not Zed <NotZed@Ximian.com> * providers/nntp/camel-nntp-store.c: setup xover once we've started. * providers/nntp/camel-nntp-summary.c: (xover_setup): moved to nntp store. * providers/nntp/camel-nntp-folder.c (folder_check) (folder_check_free, camel_nntp_folder_new): remove async summary stuff. * providers/nntp/camel-nntp-store.c (camel_nntp_command): take exception argument again, and folder argument. do retry logic and auth logic differently. (camel_nntp_raw_command): raw command interface, dont try reconnect or anything fancy. pass i/o errors straight out, etc. (camel_nntp_try_authenticate): change to return return codes & take exception. * providers/nntp/camel-nntp-summary.c (camel_nntp_summary_new): just take path argument. (camel_nntp_summary_check): take a store, and a folder name. (add_range_head, add_range_xover): remove the time based update events, they never had any effect anyway. Take store argument. (xover_setup): take store argument. * camel-folder-search.c (search_match_threads): remove debug. svn path=/trunk/; revision=26164
Diffstat (limited to 'camel/providers/nntp/camel-nntp-store.h')
-rw-r--r--camel/providers/nntp/camel-nntp-store.h44
1 files changed, 29 insertions, 15 deletions
diff --git a/camel/providers/nntp/camel-nntp-store.h b/camel/providers/nntp/camel-nntp-store.h
index 10a56dcc89..0e68f4ae57 100644
--- a/camel/providers/nntp/camel-nntp-store.h
+++ b/camel/providers/nntp/camel-nntp-store.h
@@ -30,18 +30,14 @@ extern "C" {
#pragma }
#endif /* __cplusplus */
-#include <camel/camel-store.h>
-#include <camel/camel-stream-mem.h>
-#include <camel/camel-data-cache.h>
-#include <camel/camel-exception.h>
-#include <camel/camel-folder.h>
-
#include <camel/camel-disco-store.h>
-#include <camel/camel-disco-folder.h>
#include "camel-nntp-stream.h"
#include "camel-nntp-store-summary.h"
+struct _CamelNNTPFolder;
+struct _CamelException;
+
#define CAMEL_NNTP_STORE_TYPE (camel_nntp_store_get_type ())
#define CAMEL_NNTP_STORE(obj) (CAMEL_CHECK_CAST((obj), CAMEL_NNTP_STORE_TYPE, CamelNNTPStore))
#define CAMEL_NNTP_STORE_CLASS(k) (CAMEL_CHECK_CLASS_CAST ((k), CAMEL_NNTP_STORE_TYPE, CamelNNTPStoreClass))
@@ -59,6 +55,20 @@ extern "C" {
typedef struct _CamelNNTPStore CamelNNTPStore;
typedef struct _CamelNNTPStoreClass CamelNNTPStoreClass;
+enum _xover_t {
+ XOVER_STRING = 0,
+ XOVER_MSGID,
+ XOVER_SIZE,
+};
+
+struct _xover_header {
+ struct _xover_header *next;
+
+ const char *name;
+ unsigned int skip:8;
+ enum _xover_t type:8;
+};
+
struct _CamelNNTPStore {
CamelDiscoStore parent_object;
@@ -66,17 +76,20 @@ struct _CamelNNTPStore {
guint32 extensions;
- gboolean posting_allowed;
- gboolean do_short_folder_notation, folder_hierarchy_relative;
+ unsigned int posting_allowed:1;
+ unsigned int do_short_folder_notation:1;
+ unsigned int folder_hierarchy_relative:1;
- CamelNNTPStoreSummary *summary;
+ struct _CamelNNTPStoreSummary *summary;
- CamelNNTPStream *stream;
- CamelStreamMem *mem;
+ struct _CamelNNTPStream *stream;
+ struct _CamelStreamMem *mem;
- CamelDataCache *cache;
+ struct _CamelDataCache *cache;
char *current_folder, *storage_path, *base_url;
+
+ struct _xover_header *xover;
};
struct _CamelNNTPStoreClass {
@@ -87,8 +100,9 @@ struct _CamelNNTPStoreClass {
/* Standard Camel function */
CamelType camel_nntp_store_get_type (void);
-int camel_nntp_command(CamelNNTPStore *store, char **line, const char *fmt, ...);
-int camel_nntp_store_set_folder(CamelNNTPStore *store, CamelFolder *folder, CamelFolderChangeInfo *changes, CamelException *ex);
+int camel_nntp_raw_commandv (CamelNNTPStore *store, struct _CamelException *ex, char **line, const char *fmt, va_list ap);
+int camel_nntp_raw_command(CamelNNTPStore *store, struct _CamelException *ex, char **line, const char *fmt, ...);
+int camel_nntp_command (CamelNNTPStore *store, struct _CamelException *ex, struct _CamelNNTPFolder *folder, char **line, const char *fmt, ...);
#ifdef __cplusplus
}