| 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 : |