![]() |
![]() |
![]() |
Evolution API Reference: libedataserver, utility library | ![]() |
---|---|---|---|---|
EDListNode; EDList; #define E_DLIST_INITIALISER (l) 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); EMCache; EMCacheNode; 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); EMsgPort; EMsg; EMsgPort* e_msgport_new (void); void e_msgport_destroy (EMsgPort *mp); int e_msgport_fd (EMsgPort *mp); struct PRFileDesc* e_msgport_prfd (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); EThread; enum e_thread_t; 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); EMutex; enum 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); int e_mutex_cond_wait (void *cond, EMutex *m);
typedef struct { struct _EDListNode *head; struct _EDListNode *tail; struct _EDListNode *tailpred; } EDList;
#define E_DLIST_INITIALISER(l) { (EDListNode *)&l.tail, NULL, (EDListNode *)&l.head }
|
typedef struct { struct _EMCacheNode *next, *prev; char *key; int ref_count; time_t stamp; } EMCacheNode;
EMCache* em_cache_new (time_t timeout, size_t nodesize, GFreeFunc nodefree);
|
|
|
|
|
|
Returns : |
EMCacheNode* em_cache_lookup (EMCache *emc, const char *key);
|
|
|
|
Returns : |
EMCacheNode* em_cache_node_new (EMCache *emc, const char *key);
|
|
|
|
Returns : |
typedef struct _EThread EThread;
EThread
is deprecated and should not be used in newly-written code.
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;
e_thread_t
is deprecated and should not be used in newly-written code.
void (*EThreadFunc) (EThread *, EMsg *, void *data);
EThreadFunc
is deprecated and should not be used in newly-written code.
|
|
|
|
|
EThread* e_thread_new (e_thread_t type);
e_thread_new
is deprecated and should not be used in newly-written code.
|
|
Returns : |
void e_thread_destroy (EThread *e);
e_thread_destroy
is deprecated and should not be used in newly-written code.
|
void e_thread_set_queue_limit (EThread *e, int limit);
e_thread_set_queue_limit
is deprecated and should not be used in newly-written code.
|
|
|
void e_thread_set_msg_lost (EThread *e, EThreadFunc destroy, void *data);
e_thread_set_msg_lost
is deprecated and should not be used in newly-written code.
|
|
|
|
|
void e_thread_set_msg_destroy (EThread *e, EThreadFunc destroy, void *data);
e_thread_set_msg_destroy
is deprecated and should not be used in newly-written code.
|
|
|
|
|
void e_thread_set_reply_port (EThread *e, EMsgPort *reply_port);
e_thread_set_reply_port
is deprecated and should not be used in newly-written code.
|
|
|
void e_thread_set_msg_received (EThread *e, EThreadFunc received, void *data);
e_thread_set_msg_received
is deprecated and should not be used in newly-written code.
|
|
|
|
|
void e_thread_put (EThread *e, EMsg *msg);
e_thread_put
is deprecated and should not be used in newly-written code.
|
|
|
int e_thread_busy (EThread *e);
e_thread_busy
is deprecated and should not be used in newly-written code.
|
|
Returns : |
typedef struct _EMutex EMutex;
EMutex
is deprecated and should not be used in newly-written code.
typedef enum _e_mutex_t { E_MUTEX_SIMPLE, /* == pthread_mutex */ E_MUTEX_REC, /* recursive mutex */ } e_mutex_t;
e_mutex_t
is deprecated and should not be used in newly-written code.
EMutex* e_mutex_new (e_mutex_t type);
e_mutex_new
is deprecated and should not be used in newly-written code.
|
|
Returns : |
int e_mutex_destroy (EMutex *m);
e_mutex_destroy
is deprecated and should not be used in newly-written code.
|
|
Returns : |
int e_mutex_lock (EMutex *m);
e_mutex_lock
is deprecated and should not be used in newly-written code.
|
|
Returns : |
int e_mutex_unlock (EMutex *m);
e_mutex_unlock
is deprecated and should not be used in newly-written code.
|
|
Returns : |
void e_mutex_assert_locked (EMutex *m);
e_mutex_assert_locked
is deprecated and should not be used in newly-written code.
|
int e_mutex_cond_wait (void *cond, EMutex *m);
e_mutex_cond_wait
is deprecated and should not be used in newly-written code.
|
|
|
|
Returns : |