save works
This commit is contained in:
parent
f4b1ba4cd7
commit
acfbec875b
51 changed files with 622 additions and 1175 deletions
|
|
@ -6,6 +6,6 @@
|
|||
|
||||
#include "xce/types.h"
|
||||
|
||||
extern xce_config_t *makeConfig(xce_config_t *);
|
||||
extern xce_config_t* makeConfig(var, xce_config_t*);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -9,10 +9,6 @@
|
|||
#include "xlist.h"
|
||||
#include "zarray.h"
|
||||
|
||||
typedef struct {
|
||||
kvmgr_t groups;
|
||||
} groupmgr_t;
|
||||
|
||||
extern xce_group_t* makeGroup(var, xce_group_config_t*, char*);
|
||||
extern int groupmgr_init(var*, int, int);
|
||||
extern void groupmgr_fini(var);
|
||||
|
|
|
|||
|
|
@ -13,63 +13,6 @@ typedef enum {
|
|||
KVMGR_KEY_STRING
|
||||
} kvmgr_key_type_t;
|
||||
|
||||
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 int32_t kvmgr_put(kvmgr_t*, void*, int, 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 xce_resource_t* resmgr_lock_byid(resmgr_t*, int, 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*);
|
||||
|
||||
typedef struct {
|
||||
kvmgr_key_type_t key_type;
|
||||
unsigned int dynamic : 1;
|
||||
|
|
|
|||
|
|
@ -1,76 +0,0 @@
|
|||
#if !defined(__OBJMGR_H__)
|
||||
|
||||
#define __OBJMGR_H__
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "htab.h"
|
||||
#include "mylock.h"
|
||||
#include "zarray.h"
|
||||
|
||||
#define OBJ_MAGIC (0x4a424f58)
|
||||
|
||||
#define OBJREF_NOP \
|
||||
(0) /* ref obj without lock, \
|
||||
* just keep object alive */
|
||||
#define OBJREF_READ (1) /* ref obj with read lock */
|
||||
#define OBJREF_UPDATE (2) /* ref obj with write lock */
|
||||
|
||||
typedef void* (*obj_create_fn_t)(void*, void*, va_list);
|
||||
typedef void (*obj_fini_fn_t)(void*);
|
||||
typedef void (*objtype_fini_fn_t)(void*);
|
||||
|
||||
typedef struct {
|
||||
char* type; /* name of type */
|
||||
mylock_t lock;
|
||||
obj_create_fn_t fn_create; /* function to initialize object */
|
||||
obj_fini_fn_t fn_fini; /* function to finalize obj */
|
||||
objtype_fini_fn_t fn_type_fini; /* function to finalize typeinfo */
|
||||
void* typedata; /* extra information for type */
|
||||
} objtype_t;
|
||||
|
||||
typedef struct {
|
||||
uint32_t magic;
|
||||
uint32_t nref;
|
||||
my_rwlock_t rwlock;
|
||||
mylock_t lock;
|
||||
objtype_t* type;
|
||||
int32_t exdata;
|
||||
uint32_t nread : 28;
|
||||
uint32_t nwrite : 4;
|
||||
} myobj_t;
|
||||
|
||||
typedef struct {
|
||||
mylock_t lock;
|
||||
htab_t names;
|
||||
zarray_t types;
|
||||
} objmgr_t;
|
||||
|
||||
#define MYOBJ_TO_OBJ(type, myobj) ((type)(((char*)myobj) + sizeof(myobj_t)))
|
||||
|
||||
#define TO_MYOBJ(obj) ((myobj_t*)(((char*)obj) - sizeof(myobj_t)))
|
||||
|
||||
#define DEREF_OBJ(obj) \
|
||||
if ((obj) != NULL) { \
|
||||
obj_deref(obj); \
|
||||
(obj) = NULL; \
|
||||
}
|
||||
|
||||
extern int objmgr_init(objmgr_t*);
|
||||
extern void objmgr_fini(objmgr_t*);
|
||||
extern int objmgr_register(objmgr_t*, objtype_t*);
|
||||
extern int obj_init(objmgr_t*, objtype_t*, int32_t, myobj_t*);
|
||||
extern void* create_obj_by_typeid(objmgr_t*, int, ...);
|
||||
extern void* create_obj_by_typename(objmgr_t*, char*, ...);
|
||||
extern void* obj_ref(void*, int);
|
||||
extern void obj_deref(void*);
|
||||
extern int typeid_of_name(objmgr_t*, char*);
|
||||
extern objmgr_t* objmgr_get_default();
|
||||
extern int objmgr_set_default(objmgr_t*);
|
||||
extern myobj_t* obj_alloc(size_t);
|
||||
|
||||
#endif
|
||||
|
|
@ -6,6 +6,6 @@
|
|||
|
||||
#include "xce/types.h"
|
||||
|
||||
extern xce_resource_t* makeResource(xce_resource_t*);
|
||||
extern xce_resource_t* makeResource(var, xce_resource_t*);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
#include "xce/errnox.h"
|
||||
#include "xce/types.h"
|
||||
|
||||
#define CONTAINER_OF(P, T, F) ((T*)(((char*)(P)) - offsetof(T, F)))
|
||||
|
||||
#define MAKE_JOBID(cluster, apiserver, timestamp, tag, sequence) \
|
||||
((((uint64_t)cluster) << CLUSTER_ID_SHIFT) \
|
||||
| (((uint64_t)apiserver) << APISERVER_ID_SHIFT) \
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@
|
|||
#include "myconf.h"
|
||||
#include "mylock.h"
|
||||
#include "netio.h"
|
||||
#include "objmgr.h"
|
||||
#include "vtaskmgr.h"
|
||||
#include "xce/types.h"
|
||||
#include "xlist.h"
|
||||
|
|
@ -94,7 +93,6 @@ typedef struct {
|
|||
xce_peerinfo_t* myhost;
|
||||
hooksys_t hooksys;
|
||||
iomgr_t iomgr;
|
||||
objmgr_t objmgr;
|
||||
zarray_t endpoints;
|
||||
endpoint_t ep;
|
||||
zarray_t configs;
|
||||
|
|
@ -111,8 +109,6 @@ typedef struct {
|
|||
var workermgr;
|
||||
var qmgr;
|
||||
var configmgr;
|
||||
kvmgr_t ugmgr;
|
||||
kvmgr_t hgmgr;
|
||||
vtaskmgr_t vtaskmgr;
|
||||
cbuf_t wbuf;
|
||||
int running;
|
||||
|
|
|
|||
|
|
@ -11,11 +11,10 @@
|
|||
#include "kvmgr.h"
|
||||
#include "xce/types.h"
|
||||
|
||||
extern int build_consumer(xce_consumer_t**, groupmgr_t*, xce_consumer_type_t,
|
||||
int, xce_group_config_t*, char*);
|
||||
extern int build_consumer(xce_consumer_t**, var, xce_consumer_type_t, int,
|
||||
xce_group_config_t*, char*);
|
||||
extern void kill_consumer(xce_consumer_t*);
|
||||
extern int build_limit(xce_limit_t**, groupmgr_t*, groupmgr_t*, groupmgr_t*,
|
||||
groupmgr_t*, xce_limit_config_t*);
|
||||
extern int build_limit(xce_limit_t**, var, var, var, var, xce_limit_config_t*);
|
||||
extern int match_limit(xce_limit_t*, int, ...);
|
||||
extern int build_vres_name(char**, xce_limit_t*, char*, char*, char*);
|
||||
extern int is_host_based_limit(var, xce_limit_t*);
|
||||
|
|
|
|||
|
|
@ -4,25 +4,6 @@
|
|||
|
||||
#include <rtti.h>
|
||||
|
||||
#include "objmgr.h"
|
||||
|
||||
typedef struct {
|
||||
htab_t tab;
|
||||
zarray_t strings;
|
||||
} xstring_typedata_t;
|
||||
|
||||
#define XSTRING_OBJ_TYPE_HTAB(obj) \
|
||||
(((xstring_typedata_t*)obj->type->typedata)->tab)
|
||||
#define XSTRING_OBJ_TYPE_STRINGS(obj) \
|
||||
(((xstring_typedata_t*)obj->type->typedata)->strings)
|
||||
|
||||
#define XSTRING_TYPE_HTAB(type) (((xstring_typedata_t*)type->typedata)->tab)
|
||||
|
||||
#define XSTRING_TYPE_STRINGS(type) \
|
||||
(((xstring_typedata_t*)type->typedata)->strings)
|
||||
|
||||
extern int register_xstring(objmgr_t*, int, int);
|
||||
|
||||
extern int xstring_table_init(int);
|
||||
extern void xstring_table_fini();
|
||||
extern char* makeString(char*);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue