aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-folder-pt-proxy.h
diff options
context:
space:
mode:
authorbertrand <Bertrand.Guiheneuf@aful.org>1999-10-14 05:16:55 +0800
committerBertrand Guiheneuf <bertrand@src.gnome.org>1999-10-14 05:16:55 +0800
commitbf9f54f9615c1b7b5c8ce5c434d0f78a99f5845b (patch)
tree056d9ba033cc1559f9f2f853031bde4d5d2c4a29 /camel/camel-folder-pt-proxy.h
parent7c604052f5ab4824264a9630b7a18aa04d76d5a6 (diff)
downloadgsoc2013-evolution-bf9f54f9615c1b7b5c8ce5c434d0f78a99f5845b.tar.gz
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-pt-proxy.h')
-rw-r--r--camel/camel-folder-pt-proxy.h54
1 files changed, 28 insertions, 26 deletions
diff --git a/camel/camel-folder-pt-proxy.h b/camel/camel-folder-pt-proxy.h
index e540c78d4b..285306af71 100644
--- a/camel/camel-folder-pt-proxy.h
+++ b/camel/camel-folder-pt-proxy.h
@@ -28,8 +28,15 @@
#ifndef CAMEL_FOLDER_PT_PROXY_H
#define CAMEL_FOLDER_PT_PROXY_H 1
+
+#ifdef __cplusplus
+extern "C" {
+#pragma }
+#endif /* __cplusplus }*/
+
#include "camel-folder.h"
#include "camel-op-queue.h"
+#include "camel-thread-proxy.h"
#define CAMEL_FOLDER_PT_PROXY_TYPE (camel_folder_pt_proxy_get_type ())
@@ -37,47 +44,42 @@
#define CAMEL_FOLDER_PT_PROXY_CLASS(k) (GTK_CHECK_CLASS_CAST ((k), CAMEL_FOLDER_PT_PROXY_TYPE, CamelFolderPtProxyClass))
#define IS_CAMEL_FOLDER_PT_PROXY(o) (GTK_CHECK_TYPE((o), CAMEL_FOLDER_PT_PROXY_TYPE))
-typedef struct {
- guint signal_id;
- GtkArg *args;
-} PtProxySignaData;
-
-
+typedef struct _CamelFolderPtProxy CamelFolderPtProxy;
typedef struct {
+ CamelFolderAsyncCallback real_callback;
+ CamelFolderPtProxy *proxy_folder;
+ CamelException *ex;
+ gpointer real_user_data;
+} _ProxyCbUserData;
+
+struct _CamelFolderPtProxy {
CamelFolder parent;
- gchar *real_url;
+ /* private fields */
CamelFolder *real_folder;
-
- CamelOpQueue *op_queue;
- gint pipe_client_fd;
- gint pipe_server_fd;
- GIOChannel *notify_source;
-
- /* used for signal proxy */
- GMutex *signal_data_mutex;
- GCond *signal_data_cond;
- PtProxySignaData signal_data;
-} CamelFolderPtProxy;
+ CamelThreadProxy *proxy_object;
+ CamelException *thread_ex;
+ _ProxyCbUserData *pud;
+
+};
typedef struct {
CamelFolderClass parent_class;
+ /* functions and callbacks definition (for marshalling) */
CamelFuncDef *open_func_def;
+ CamelFuncDef *open_cb_def;
+ CamelFuncDef *close_func_def;
+ CamelFuncDef *close_cb_def;
} CamelFolderPtProxyClass;
-/* some marshallers */
-void camel_marshal_NONE__POINTER_INT (CamelFunc func,
- GtkArg *args);
-
-void camel_marshal_NONE__POINTER_INT_POINTER (CamelFunc func,
- GtkArg *args);
-
-
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
#endif /* CAMEL_FOLDER_PT_PROXY_H */