00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00029 #ifndef COMPS_OBJDICT_H
00030 #define COMPS_OBJDICT_H
00031
00032 #include "comps_objradix.h"
00033 #include "comps_objmradix.h"
00034
00035 typedef COMPS_ObjRTree COMPS_ObjDict;
00036 COMPS_Object_TAIL(COMPS_ObjDict);
00037
00038 typedef COMPS_ObjMRTree COMPS_ObjMDict;
00039 COMPS_Object_TAIL(COMPS_ObjMDict);
00040
00041 COMPS_ObjDict* comps_objdict_create();
00042 COMPS_ObjMDict* comps_objmdict_create();
00043
00044
00045 void comps_objdict_destroy(COMPS_ObjDict *rt);
00046 void comps_objdict_destroy_v(void *rt);
00047 void comps_objmdict_destroy(COMPS_ObjMDict *rt);
00048 void comps_objmdict_destroy_v(void *rt);
00066 void comps_objdict_set(COMPS_ObjDict *rt, char *key, COMPS_Object *data);
00067
00078 void comps_objdict_set_x(COMPS_ObjDict *rt, char *key, COMPS_Object *data);
00079
00087 void comps_objdict_set_n(COMPS_ObjDict *rt, char *key, unsigned int len,
00088 COMPS_Object *data);
00102 void comps_objmdict_set(COMPS_ObjMDict *rt, char *key, COMPS_Object *data);
00103
00113 void comps_objmdict_set_x(COMPS_ObjMDict *rt, char *key, COMPS_Object *data);
00114
00122 void comps_objmdict_set_n(COMPS_ObjMDict *rt, char *key, unsigned int len,
00123 COMPS_Object *data);
00138 COMPS_Object* comps_objdict_get(COMPS_ObjDict *rt, const char *key);
00139
00149 COMPS_Object* comps_objdict_get_x(COMPS_ObjRTree * rt, const char * key);
00163 COMPS_ObjList * comps_objmdict_get(COMPS_ObjMDict *rt, const char *key);
00175 void comps_objdict_unset(COMPS_ObjDict * rt, const char * key);
00187 void comps_objmdict_unset(COMPS_ObjMDict * rt, const char * key);
00195 void comps_objdict_clear(COMPS_ObjDict * rt);
00203 void comps_objmdict_clear(COMPS_ObjMDict * rt);
00212 COMPS_HSList * comps_objdict_values(COMPS_ObjDict * rt);
00221 COMPS_HSList * comps_objmdict_values(COMPS_ObjMDict * rt);
00235 void comps_objdict_values_walk(COMPS_ObjRTree * rt, void* udata,
00236 void (*walk_f)(void*, COMPS_Object*));
00250 void comps_objmdict_values_walk(COMPS_ObjMDict *rt, void *udata,
00251 void (*walk_f)(void*, void*));
00264 COMPS_ObjDict* comps_objdict_clone(COMPS_ObjDict *rt);
00266 void * comps_objdict_clone_v(void * rt);
00267
00278 COMPS_ObjMDict* comps_objmdict_clone(COMPS_ObjMDict *rt);
00280 void* comps_objmdict_clone_v(void *rt);
00281
00289 COMPS_HSList* comps_objmdict_keys(COMPS_ObjMDict *rt);
00299 COMPS_HSList* comps_objdict_keys(COMPS_ObjDict *rt);
00300
00306 COMPS_HSList* comps_objdict_pairs(COMPS_ObjDict *rt);
00316 COMPS_HSList* comps_objmdict_pairs(COMPS_ObjMDict *rt);
00321
00322
00333 COMPS_ObjDict* comps_objdict_union(COMPS_ObjDict *d1, COMPS_ObjDict *d2);
00335 #endif