diff options
author | bertrand <Bertrand.Guiheneuf@aful.org> | 1999-10-14 05:16:55 +0800 |
---|---|---|
committer | Bertrand Guiheneuf <bertrand@src.gnome.org> | 1999-10-14 05:16:55 +0800 |
commit | bf9f54f9615c1b7b5c8ce5c434d0f78a99f5845b (patch) | |
tree | 056d9ba033cc1559f9f2f853031bde4d5d2c4a29 /camel/camel-folder.c | |
parent | 7c604052f5ab4824264a9630b7a18aa04d76d5a6 (diff) | |
download | gsoc2013-evolution-bf9f54f9615c1b7b5c8ce5c434d0f78a99f5845b.tar gsoc2013-evolution-bf9f54f9615c1b7b5c8ce5c434d0f78a99f5845b.tar.gz gsoc2013-evolution-bf9f54f9615c1b7b5c8ce5c434d0f78a99f5845b.tar.bz2 gsoc2013-evolution-bf9f54f9615c1b7b5c8ce5c434d0f78a99f5845b.tar.lz gsoc2013-evolution-bf9f54f9615c1b7b5c8ce5c434d0f78a99f5845b.tar.xz gsoc2013-evolution-bf9f54f9615c1b7b5c8ce5c434d0f78a99f5845b.tar.zst gsoc2013-evolution-bf9f54f9615c1b7b5c8ce5c434d0f78a99f5845b.zip |
A lot of changes. The thread proxy mechanism
is now functional. The signal proxy needs to be tested
though. The thread proxy folder is being implemented.
A rough summary :
1999-10-13 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-folder.c (camel_folder_close): the
folder->close method is now asynchronous.
* camel/camel-folder-pt-proxy.c (_folder_open_cb):
(_open):
(_folder_open_cb):
(_open):
open/close method implemented in the thread proxy
folder. More to come.
* camel/camel-exception.c (camel_exception_xfer):
new utility func.
* camel/camel-marshal-utils.c: some new marshallers
* camel/camel-folder-pt-proxy.c: Some explanations
on the thread proxy system.
1999-10-11 bertrand <Bertrand.Guiheneuf@aful.org>
* camel/camel-marshal-utils.c:
camel/camel-marshal-utils.h:
Handles operation marshalling.
* camel/camel-thread-proxy.c:
camel/camel-thread-proxy.h:
new files. Generic proxy system.
* camel/camel-folder-pt-proxy.c
moved all proxy related code in dedicated files.
(camel_folder_pt_proxy_init):
removed proxy initialisation code
(_finalize):
removed proxy finalization code
* camel/camel-exception.c
(camel_exception_new):
(camel_exception_set):
(camel_exception_free):
New funcs.
svn path=/trunk/; revision=1328
Diffstat (limited to 'camel/camel-folder.c')
-rw-r--r-- | camel/camel-folder.c | 68 |
1 files changed, 46 insertions, 22 deletions
diff --git a/camel/camel-folder.c b/camel/camel-folder.c index f887d83ad0..ef37bb8c7b 100644 --- a/camel/camel-folder.c +++ b/camel/camel-folder.c @@ -36,7 +36,11 @@ static void _open (CamelFolder *folder, CamelFolderAsyncCallback callback, gpointer user_data, CamelException *ex); -static void _close (CamelFolder *folder, gboolean expunge, CamelException *ex); +static void _close (CamelFolder *folder, + gboolean expunge, + CamelFolderAsyncCallback callback, + gpointer user_data, + CamelException *ex); static void _set_name (CamelFolder *folder, const gchar *name, CamelException *ex); /* static void _set_full_name (CamelFolder *folder, const gchar *name); */ static const gchar *_get_name (CamelFolder *folder, CamelException *ex); @@ -189,13 +193,7 @@ _init_with_store (CamelFolder *folder, CamelStore *parent_store, CamelException -/** - * _open: Open a folder - * @folder: The folder object - * @mode: open mode (R/W/RW ?) - * - * - **/ + static void _open (CamelFolder *folder, CamelFolderOpenMode mode, @@ -207,7 +205,19 @@ _open (CamelFolder *folder, /* folder->open_mode = mode; */ } - +/** + * camel_folder_open: Open a folder + * @folder: The folder object + * @mode: open mode (R/W/RW ?) + * @callback: function to call when the operation is over + * @user_data: data to pass to the callback + * @ex: exception object + * + * Open a folder in a given mode. When the opration is over + * the callback is called and the client program can determine + * if the operation suceeded by examining the exception. + * + **/ void camel_folder_open (CamelFolder *folder, CamelFolderOpenMode mode, @@ -220,25 +230,39 @@ camel_folder_open (CamelFolder *folder, -/** - * _close:Close a folder. - * @folder: - * @expunge: if TRUE, the flagged message are deleted. - * - * Put a folder in its closed state, and possibly - * expunge the flagged messages. - **/ + static void -_close (CamelFolder *folder, gboolean expunge, CamelException *ex) -{ - if (expunge) camel_folder_expunge (folder, FALSE, ex); +_close (CamelFolder *folder, + gboolean expunge, + CamelFolderAsyncCallback callback, + gpointer user_data, + CamelException *ex) +{ folder->open_state = FOLDER_CLOSE; } +/** + * camel_folder_close: Close a folder. + * @folder: The folder object + * @expunge: if TRUE, the flagged message are deleted. + * @callback: function to call when the operation is over + * @user_data: data to pass to the callback + * @ex: exception object + * + * Put a folder in its closed state, and possibly + * expunge the flagged messages. The callback is called + * when the operation is over and the client program can determine + * if the operation suceeded by examining the exception. + * + **/ void -camel_folder_close (CamelFolder *folder, gboolean expunge, CamelException *ex) +camel_folder_close (CamelFolder *folder, + gboolean expunge, + CamelFolderAsyncCallback callback, + gpointer user_data, + CamelException *ex) { - CF_CLASS(folder)->close (folder, expunge, ex); + CF_CLASS(folder)->close (folder, expunge, callback, user_data, ex); } |