forked from lei.chen/myxce
66 lines
2 KiB
C
66 lines
2 KiB
C
#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
|