aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-msgport.h
diff options
context:
space:
mode:
authornobody <nobody@localhost>2004-02-20 06:12:23 +0800
committernobody <nobody@localhost>2004-02-20 06:12:23 +0800
commit6e41182b061501f088266d3e92865a87ae60790d (patch)
treebffa47fdc79aea9fac623ec3666dc457671082b5 /e-util/e-msgport.h
parent65500ade9a6cd497eeffa32253beebb0d0508c54 (diff)
downloadgsoc2013-evolution-GAL_1_99_11.tar.gz
gsoc2013-evolution-GAL_1_99_11.tar.zst
gsoc2013-evolution-GAL_1_99_11.zip
This commit was manufactured by cvs2svn to create tag 'GAL_1_99_11'.GAL_1_99_11
svn path=/tags/GAL_1_99_11/; revision=24803
Diffstat (limited to 'e-util/e-msgport.h')
-rw-r--r--e-util/e-msgport.h111
1 files changed, 0 insertions, 111 deletions
diff --git a/e-util/e-msgport.h b/e-util/e-msgport.h
deleted file mode 100644
index 6347564c0f..0000000000
--- a/e-util/e-msgport.h
+++ /dev/null
@@ -1,111 +0,0 @@
-
-#ifndef _E_MSGPORT_H
-#define _E_MSGPORT_H
-
-#include <time.h>
-#include <glib.h>
-
-/* double-linked list yeah another one, deal */
-typedef struct _EDListNode {
- struct _EDListNode *next;
- struct _EDListNode *prev;
-} EDListNode;
-
-typedef struct _EDList {
- struct _EDListNode *head;
- struct _EDListNode *tail;
- struct _EDListNode *tailpred;
-} EDList;
-
-#define E_DLIST_INITIALISER(l) { (EDListNode *)&l.tail, 0, (EDListNode *)&l.head }
-
-void e_dlist_init(EDList *v);
-EDListNode *e_dlist_addhead(EDList *l, EDListNode *n);
-EDListNode *e_dlist_addtail(EDList *l, EDListNode *n);
-EDListNode *e_dlist_remove(EDListNode *n);
-EDListNode *e_dlist_remhead(EDList *l);
-EDListNode *e_dlist_remtail(EDList *l);
-int e_dlist_empty(EDList *l);
-int e_dlist_length(EDList *l);
-
-/* a time-based cache */
-typedef struct _EMCache EMCache;
-typedef struct _EMCacheNode EMCacheNode;
-
-/* subclass this for your data nodes, EMCache is opaque */
-struct _EMCacheNode {
- struct _EMCacheNode *next, *prev;
- char *key;
- int ref_count;
- time_t stamp;
-};
-
-EMCache *em_cache_new(time_t timeout, size_t nodesize, GFreeFunc nodefree);
-void em_cache_destroy(EMCache *emc);
-EMCacheNode *em_cache_lookup(EMCache *emc, const char *key);
-EMCacheNode *em_cache_node_new(EMCache *emc, const char *key);
-void em_cache_node_unref(EMCache *emc, EMCacheNode *n);
-void em_cache_add(EMCache *emc, EMCacheNode *n);
-void em_cache_clear(EMCache *emc);
-
-/* message ports - a simple inter-thread 'ipc' primitive */
-/* opaque handle */
-typedef struct _EMsgPort EMsgPort;
-
-/* header for any message */
-typedef struct _EMsg {
- EDListNode ln;
- EMsgPort *reply_port;
-} EMsg;
-
-EMsgPort *e_msgport_new(void);
-void e_msgport_destroy(EMsgPort *mp);
-/* get a fd that can be used to wait on the port asynchronously */
-int e_msgport_fd(EMsgPort *mp);
-void e_msgport_put(EMsgPort *mp, EMsg *msg);
-EMsg *e_msgport_wait(EMsgPort *mp);
-EMsg *e_msgport_get(EMsgPort *mp);
-void e_msgport_reply(EMsg *msg);
-#ifdef HAVE_NSS
-struct PRFileDesc *e_msgport_prfd(EMsgPort *mp);
-#endif
-
-/* e threads, a server thread with a message based request-response, and flexible queuing */
-typedef struct _EThread EThread;
-
-typedef enum {
- E_THREAD_QUEUE = 0, /* run one by one, until done, if the queue_limit is reached, discard new request */
- E_THREAD_DROP, /* run one by one, until done, if the queue_limit is reached, discard oldest requests */
- E_THREAD_NEW, /* always run in a new thread, if the queue limit is reached, new requests are
- stored in the queue until a thread becomes available for it, creating a thread pool */
-} e_thread_t;
-
-typedef void (*EThreadFunc)(EThread *, EMsg *, void *data);
-
-EThread *e_thread_new(e_thread_t type);
-void e_thread_destroy(EThread *e);
-void e_thread_set_queue_limit(EThread *e, int limit);
-void e_thread_set_msg_lost(EThread *e, EThreadFunc destroy, void *data);
-void e_thread_set_msg_destroy(EThread *e, EThreadFunc destroy, void *data);
-void e_thread_set_reply_port(EThread *e, EMsgPort *reply_port);
-void e_thread_set_msg_received(EThread *e, EThreadFunc received, void *data);
-void e_thread_put(EThread *e, EMsg *msg);
-int e_thread_busy(EThread *e);
-
-/* sigh, another mutex interface, this one allows different mutex types, portably */
-typedef struct _EMutex EMutex;
-
-typedef enum _e_mutex_t {
- E_MUTEX_SIMPLE, /* == pthread_mutex */
- E_MUTEX_REC, /* recursive mutex */
-} e_mutex_t;
-
-EMutex *e_mutex_new(e_mutex_t type);
-int e_mutex_destroy(EMutex *m);
-int e_mutex_lock(EMutex *m);
-int e_mutex_unlock(EMutex *m);
-void e_mutex_assert_locked(EMutex *m);
-/* this uses pthread cond's */
-int e_mutex_cond_wait(void *cond, EMutex *m);
-
-#endif