26 #include "comps_log.h" 27 #include "comps_types.h" 31 #include "comps_validate.h" 32 #include "comps_default.h" 44 #define COMPS_DOC_GETOBJLIST(OBJS) COMPS_ObjList* CONCAT(comps_doc_, OBJS)\ 47 ret = (COMPS_ObjList*)comps_objdict_get(doc->objects, #OBJS);\ 49 ret = COMPS_OBJECT_CREATE(COMPS_ObjList, NULL);\ 50 comps_objdict_set_x(doc->objects, #OBJS, (COMPS_Object*)ret);\ 51 ret = (COMPS_ObjList*)comps_object_incref((COMPS_Object*)ret);\ 57 #define HEAD_COMPS_DOC_GETOBJLIST(OBJS) COMPS_ObjList* CONCAT(comps_doc_, OBJS)\ 61 #define COMPS_DOC_SETOBJLIST(OBJS) void CONCAT(comps_doc_set_, OBJS)\ 63 COMPS_ObjList *list){\ 64 comps_objdict_set(doc->objects, #OBJS, (COMPS_Object*)list);\ 67 #define HEAD_COMPS_DOC_SETOBJLIST(OBJS) void CONCAT(comps_doc_set_, OBJS)\ 72 #define COMPS_DOC_GETOBJDICT(OBJNAME) COMPS_ObjDict* CONCAT(comps_doc_, OBJNAME)\ 75 ret = (COMPS_ObjDict*)comps_objdict_get(doc->objects, #OBJNAME);\ 77 ret = COMPS_OBJECT_CREATE(COMPS_ObjDict, NULL);\ 78 comps_objdict_set_x(doc->objects, #OBJNAME, (COMPS_Object*)ret);\ 79 ret = (COMPS_ObjDict*)comps_object_incref((COMPS_Object*)ret);\ 84 #define HEAD_COMPS_DOC_GETOBJDICT(OBJNAME) COMPS_ObjDict* CONCAT(comps_doc_, OBJNAME)\ 88 #define COMPS_DOC_GETOBJMDICT(OBJNAME) COMPS_ObjMDict* CONCAT(comps_doc_, OBJNAME)\ 91 ret = (COMPS_ObjMDict*)comps_objdict_get(doc->objects, #OBJNAME);\ 93 ret = COMPS_OBJECT_CREATE(COMPS_ObjMDict, NULL);\ 94 comps_objdict_set_x(doc->objects, #OBJNAME, (COMPS_Object*)ret);\ 95 ret = (COMPS_ObjMDict*)comps_object_incref((COMPS_Object*)ret);\ 100 #define HEAD_COMPS_DOC_GETOBJMDICT(OBJNAME) COMPS_ObjMDict* CONCAT(comps_doc_, OBJNAME)\ 104 #define COMPS_DOC_SETOBJDICT(OBJS) void CONCAT(comps_doc_set_, OBJS)\ 106 COMPS_ObjDict *dict){\ 107 comps_objdict_set(doc->objects, #OBJS, (COMPS_Object*)dict);\ 110 #define HEAD_COMPS_DOC_SETOBJDICT(OBJS) void CONCAT(comps_doc_set_, OBJS)\ 112 COMPS_ObjDict *dict); 115 #define COMPS_DOC_SETOBJMDICT(OBJS) void CONCAT(comps_doc_set_, OBJS)\ 117 COMPS_ObjMDict *dict){\ 118 comps_objdict_set(doc->objects, #OBJS, (COMPS_Object*)dict);\ 121 #define HEAD_COMPS_DOC_SETOBJMDICT(OBJS) void CONCAT(comps_doc_set_, OBJS)\ 123 COMPS_ObjMDict *dict); 127 #define COMPS_DOC_ADDOBJLIST(OBJS, OBJNAME, OBJTYPE) void CONCAT(comps_doc_add_,\ 132 ret = (COMPS_ObjList*)comps_objdict_get(doc->objects, #OBJS);\ 134 ret = COMPS_OBJECT_CREATE(COMPS_ObjList, NULL);\ 135 comps_objdict_set(doc->objects, #OBJS, (COMPS_Object*)ret);\ 138 comps_objlist_append_x(ret, (COMPS_Object*)obj);\ 139 COMPS_OBJECT_DESTROY(ret);\ 142 #define HEAD_COMPS_DOC_ADDOBJLIST(OBJNAME, OBJTYPE) void CONCAT(comps_doc_add_,\ 148 #define COMPS_DOC_ADDOBJDICT(OBJS, OBJNAME) void CONCAT(comps_doc_add_,\ 154 ret = (COMPS_ObjDict*)comps_objdict_get(doc->objects, #OBJS);\ 156 ret = COMPS_OBJECT_CREATE(COMPS_ObjDict, NULL);\ 157 comps_objdict_set(doc->objects, #OBJS, (COMPS_Object*)ret);\ 159 comps_objdict_set_x(ret, key, (COMPS_Object*)obj);\ 160 COMPS_OBJECT_DESTROY(ret);\ 163 #define HEAD_COMPS_DOC_ADDOBJDICT(OBJNAME) void CONCAT(comps_doc_add_,\ 171 #define COMPS_DOC_ADDOBJMDICT(OBJS, OBJNAME) void CONCAT(comps_doc_add_,\ 176 COMPS_ObjMDict *ret;\ 177 ret = (COMPS_ObjMDict*)comps_objdict_get(doc->objects, #OBJS);\ 179 ret = COMPS_OBJECT_CREATE(COMPS_ObjMDict, NULL);\ 180 comps_objdict_set(doc->objects, #OBJS, (COMPS_Object*)ret);\ 182 comps_objmdict_set_x(ret, key, (COMPS_Object*)obj);\ 183 COMPS_OBJECT_DESTROY(ret);\ 186 #define HEAD_COMPS_DOC_ADDOBJMDICT(OBJNAME) void CONCAT(comps_doc_add_,\ 193 #define COMPS_DOC_GETPROP(OBJ,TYPE) CONCAT(TYPE,CONCAT(* ,CONCAT(comps_doc_, OBJ)))\ 196 ret = (COMPS_Str*)comps_objdict_get(doc->objects, #OBJ);\ 198 ret = COMPS_OBJECT_CREATE(TYPE, NULL);\ 199 comps_objdict_set_x(doc->objects, #OBJ, (COMPS_Object*)ret);\ 200 ret = (TYPE*)comps_object_incref((COMPS_Object*)ret);\ 206 #define HEAD_COMPS_DOC_GETPROP(OBJ, TYPE) CONCAT(TYPE,CONCAT(*,CONCAT(comps_doc_, OBJS)))\ 211 #define COMPS_DOC_SETPROP(OBJ, TYPE) void CONCAT(comps_doc_set_, OBJ)\ 214 comps_objdict_set(doc->objects, #OBJ, (COMPS_Object*)value);\ 220 #define HEAD_COMPS_DOC_SETPROP(OBJ, TYPE) void CONCAT(comps_doc_set_, OBJ)\ 274 HEAD_COMPS_DOC_GETOBJLIST(groups)
279 HEAD_COMPS_DOC_GETOBJLIST(categories)
284 HEAD_COMPS_DOC_GETOBJLIST(environments)
289 HEAD_COMPS_DOC_GETOBJDICT(langpacks)
294 HEAD_COMPS_DOC_GETOBJMDICT(blacklist)
299 HEAD_COMPS_DOC_GETOBJMDICT(whiteout)
313 HEAD_COMPS_DOC_SETOBJLIST(groups)
321 HEAD_COMPS_DOC_SETOBJLIST(categories)
329 HEAD_COMPS_DOC_SETOBJLIST(environments)
337 HEAD_COMPS_DOC_SETOBJDICT(langpacks)
345 HEAD_COMPS_DOC_SETOBJMDICT(blacklist)
353 HEAD_COMPS_DOC_SETOBJMDICT(whiteout)
403 HEAD_COMPS_DOC_ADDOBJMDICT(blacklist)
413 HEAD_COMPS_DOC_ADDOBJMDICT(whiteout)
432 char *desc,
char *lang,
int flags);
434 char *desc,
char *lang,
int flags);
436 char *desc,
char *lang,
int flags);
454 COMPS_XMLOptions *xml_options,
455 COMPS_DefaultsOptions *def_options);
462 COMPS_DefaultsOptions *def_options);
485 extern COMPS_ValRuleGeneric* COMPS_Doc_ValidateRules[];
COMPS_Doc * comps_doc_union(COMPS_Doc *c1, COMPS_Doc *c2)
#define COMPS_Object_HEAD
Definition: comps_obj.h:86
COMPS_Object header file.
COMPS_DocCategory header file.
Definition: comps_obj.h:124
Definition: comps_objlist.h:41
#define COMPS_Object_TAIL(obj)
insert "extern COMPS_ObjectInfo <obj>_ObjInfo" statement. Use this macro in combination with COMPS_OB...
Definition: comps_obj.h:89
COMPS_DocGroup header file.
void comps_doc_create(COMPS_Doc *doc, COMPS_Object **args)
void comps_doc_copy(COMPS_Doc *doc_dst, COMPS_Doc *doc_src)
Definition: comps_obj.h:143
void comps_doc_destroy(COMPS_Doc *doc)
COMPS_DocGroup HEAD_COMPS_DOC_ADDOBJLIST(category, COMPS_DocCategory) HEAD_COMPS_DOC_ADDOBJLIST(environment
Definition: comps_docenv.h:18
Libcomps dictionary and multi-dictionary. COMPS_ObjDict and COMPS_ObjMDict are both derivates of COMP...
A Documented file. Details.
COMPS_Str * encoding
Definition: comps_doc.h:235
COMPS_DocGroup COMPS_DocEnv HEAD_COMPS_DOC_ADDOBJDICT(langpack) HEAD_COMPS_DOC_ADDOBJMDICT(blacklist) HEAD_COMPS_DOC_ADDOBJMDICT(whiteout) HEAD_COMPS_DOC_SETPROP(lang
COMPS_Log * log
Definition: comps_doc.h:232
signed char comps2xml_f(COMPS_Doc *doc, char *filename, char stdoutredirect, COMPS_XMLOptions *xml_options, COMPS_DefaultsOptions *def_options)
Definition: comps_docgroup.h:49
char * comps2xml_str(COMPS_Doc *doc, COMPS_XMLOptions *options, COMPS_DefaultsOptions *def_options)
COMPS_DocEnv header file.
Definition: comps_doccategory.h:49
COMPS_ObjDict * objects
Definition: comps_doc.h:231
Definition: comps_doc.h:229
signed char comps_doc_cmp_u(COMPS_Object *obj1, COMPS_Object *obj2)