#if !defined(__KVMGR_H__) #define __KVMGR_H__ 1 #include "htab.h" #include "mylock.h" #include "xce/types.h" #include "xlist.h" #include "zarray.h" typedef struct { mylock_t lock; htab_t htab; zarray_t data; } kvmgr_t; typedef struct { kvmgr_t resdef; int nshared; int nunshared; } resmgr_t; typedef struct { kvmgr_t queues; } qmgr_t; typedef struct { kvmgr_t jobs; } jobmgr_t; typedef struct { kvmgr_t workers; } workermgr_t; extern int kvmgr_init(kvmgr_t*, hash_key_fn_t, int, int, zarray_item_killer_t); extern void kvmgr_fini(kvmgr_t*); extern void* kvmgr_lock(kvmgr_t*, void*, int); extern void* kvmgr_lock_byid(kvmgr_t*, int, int); extern int32_t kvmgr_add(kvmgr_t*, void*, void*); extern void kvmgr_del(kvmgr_t*, void*); extern int kvmgr_iter(kvmgr_t*, zarray_iter_skip_fn_t, xlist_t*, void*); extern int resmgr_init(resmgr_t*, int, int, zarray_item_killer_t); extern void resmgr_fini(resmgr_t*); extern int32_t resmgr_add_res(resmgr_t*, xce_resource_t*); extern xce_resource_t* resmgr_lockres(resmgr_t*, char*, int); extern void resmgr_del_res(resmgr_t*, xce_resource_t*); extern int resmgr_iter(resmgr_t*, xlist_t*, void*); extern void qmgr_fini(qmgr_t*); extern int qmgr_init(qmgr_t*, int, int, zarray_item_killer_t); extern int qmgr_add(qmgr_t*, queue_t*); extern queue_t* qmgr_lockq(qmgr_t*, char*, int); extern void qmgr_delq(qmgr_t*, queue_t*); extern int qmgr_iter(qmgr_t*, xlist_t*, void*); extern int jobmgr_init(jobmgr_t*, int, int, zarray_item_killer_t); extern void jobmgr_fini(jobmgr_t*); extern int workermgr_init(workermgr_t*, int, int, zarray_item_killer_t); extern void workermgr_fini(workermgr_t*); extern int workermgr_add(workermgr_t*, worker_t*); extern worker_t* workermgr_lock(workermgr_t*, char*, int); extern worker_t* workermgr_lock_byid(workermgr_t*, int, int); extern void workermgr_del(workermgr_t*, worker_t*); #endif