diff options
author | Dan Winship <danw@src.gnome.org> | 2001-05-30 01:08:53 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-05-30 01:08:53 +0800 |
commit | 11ea26d0e33405490795a766406d5e065b6b9234 (patch) | |
tree | be249f7528c0a8b17cdd0890d40684f12eeb50e5 /camel/camel-disco-store.h | |
parent | efabbb93c9f61e583d835d1735834cc5bd0ce63c (diff) | |
download | gsoc2013-evolution-11ea26d0e33405490795a766406d5e065b6b9234.tar gsoc2013-evolution-11ea26d0e33405490795a766406d5e065b6b9234.tar.gz gsoc2013-evolution-11ea26d0e33405490795a766406d5e065b6b9234.tar.bz2 gsoc2013-evolution-11ea26d0e33405490795a766406d5e065b6b9234.tar.lz gsoc2013-evolution-11ea26d0e33405490795a766406d5e065b6b9234.tar.xz gsoc2013-evolution-11ea26d0e33405490795a766406d5e065b6b9234.tar.zst gsoc2013-evolution-11ea26d0e33405490795a766406d5e065b6b9234.zip |
Code for logging and replaying offline operations.
* camel-disco-diary.c: Code for logging and replaying offline
operations.
* camel-disco-store.c (disco_construct): Set disco->status here
(where we can base it on the session's offline status) rather than
at init time.
(disco_connect): If we connect online and have a non-empty diary,
switch to RESYNCING mode and replay the diary to the server.
(disco_get_folder, disco_get_folder_info): Add _resyncing
variants.
* camel-disco-folder.c (disco_sync, disco_expunge_uids,
disco_append_message, disco_copy_messages_to,
disco_move_messages_to): Add _resyncing variants to switches.
(disco_expunge_uids, disco_append_message, disco_copy_messages_to,
disco_move_messages_to): Remove #ifdef'ed out diary code: let the
provider do it.
(disco_append_message): Redo the append methods to no longer
return the UID, since we're no longer doing the logging from here.
svn path=/trunk/; revision=10040
Diffstat (limited to 'camel/camel-disco-store.h')
-rw-r--r-- | camel/camel-disco-store.h | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/camel/camel-disco-store.h b/camel/camel-disco-store.h index cb40cf4590..73ba677c34 100644 --- a/camel/camel-disco-store.h +++ b/camel/camel-disco-store.h @@ -42,15 +42,14 @@ extern "C" { typedef enum { CAMEL_DISCO_STORE_ONLINE, CAMEL_DISCO_STORE_OFFLINE, -#ifdef NOTYET CAMEL_DISCO_STORE_RESYNCING -#endif } CamelDiscoStoreStatus; struct _CamelDiscoStore { CamelRemoteStore parent_object; CamelDiscoStoreStatus status; + CamelDiscoDiary *diary; }; @@ -62,6 +61,7 @@ typedef struct { CamelException *); gboolean (*can_work_offline) (CamelDiscoStore *); + gboolean (*connect_online) (CamelService *, CamelException *); gboolean (*connect_offline) (CamelService *, @@ -80,16 +80,24 @@ typedef struct { const char *name, guint32 flags, CamelException *ex); - - CamelFolderInfo * (*get_folder_info_online) (CamelStore *store, - const char *top, - guint32 flags, - CamelException *ex); - CamelFolderInfo * (*get_folder_info_offline) (CamelStore *store, - const char *top, + CamelFolder * (*get_folder_resyncing) (CamelStore *store, + const char *name, guint32 flags, CamelException *ex); + CamelFolderInfo * (*get_folder_info_online) (CamelStore *store, + const char *top, + guint32 flags, + CamelException *ex); + CamelFolderInfo * (*get_folder_info_offline) (CamelStore *store, + const char *top, + guint32 flags, + CamelException *ex); + CamelFolderInfo * (*get_folder_info_resyncing) (CamelStore *store, + const char *top, + guint32 flags, + CamelException *ex); + } CamelDiscoStoreClass; @@ -103,6 +111,7 @@ void camel_disco_store_set_status (CamelDiscoStore *, CamelException *); gboolean camel_disco_store_can_work_offline (CamelDiscoStore *); + /* Convenience functions */ gboolean camel_disco_store_check_online (CamelDiscoStore *store, CamelException *ex); |