00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef COMPS_DOCCATEGORY_H
00021 #define COMPS_DOCCATEGORY_H
00022
00023 #include "comps_obj.h"
00024 #include "comps_objdict.h"
00025 #include "comps_objlist.h"
00026 #include "comps_utils.h"
00027 #include "comps_docgroupid.h"
00028 #include "comps_validate.h"
00029 #include "comps_radix.h"
00030 #include "comps_log.h"
00031 #include "comps_default.h"
00032
00033 #include <stddef.h>
00034 #include <assert.h>
00035
00049 typedef struct {
00050 COMPS_Object_HEAD;
00051 COMPS_ObjDict *properties;
00052 COMPS_ObjDict *name_by_lang;
00053 COMPS_ObjDict *desc_by_lang;
00055 COMPS_ObjList *group_ids;
00057 } COMPS_DocCategory;
00058 COMPS_Object_TAIL(COMPS_DocCategory);
00059
00060
00061
00062
00063
00064
00075 HEAD_COMPS_STRPROP_SETTER(category, COMPS_DocCategory, id)
00076
00077
00082 HEAD_COMPS_STRPROP_SETTER(category, COMPS_DocCategory, name)
00083
00089 HEAD_COMPS_STRPROP_SETTER(category, COMPS_DocCategory, desc)
00090
00096 HEAD_COMPS_NUMPROP_SETTER(category, COMPS_DocCategory,
00097 display_order)
00110 HEAD_COMPS_PROP_GETTER(category, COMPS_DocCategory, id)
00111 HEAD_COMPS_PROP_GETTER_OBJ(category, id)
00112
00118 HEAD_COMPS_PROP_GETTER(category, COMPS_DocCategory, name)
00119
00125 HEAD_COMPS_PROP_GETTER(category, COMPS_DocCategory, desc)
00126
00132 HEAD_COMPS_PROP_GETTER(category, COMPS_DocCategory, display_order)
00145 HEAD_COMPS_DOCOBJ_GETOBJLIST(doccategory, COMPS_DocCategory, group_ids, group_ids)
00159 HEAD_COMPS_DOCOBJ_SETOBJLIST(doccategory, COMPS_DocCategory, group_ids, group_ids)
00162 HEAD_COMPS_DOCOBJ_GETARCHES(doccategory, COMPS_DocCategory)
00163 HEAD_COMPS_DOCOBJ_SETARCHES(doccategory, COMPS_DocCategory)
00164
00165 char __comps_doccategory_idcmp(void *c1, void *c2);
00166
00172 signed char comps_doccategory_cmp_u(COMPS_Object *cat1, COMPS_Object *cat2);
00173
00179 void comps_doccategory_add_groupid(COMPS_DocCategory *cat,
00180 COMPS_DocGroupId *gid);
00181
00187 COMPS_DocCategory* comps_doccategory_union(COMPS_DocCategory *c1,
00188 COMPS_DocCategory *c2);
00189
00195 COMPS_DocCategory* comps_doccategory_intersect(COMPS_DocCategory *c1,
00196 COMPS_DocCategory *c2);
00197
00198 signed char comps_doccategory_xml(COMPS_DocCategory *category,
00199 xmlTextWriterPtr writer, COMPS_Log *log,
00200 COMPS_XMLOptions *xml_options,
00201 COMPS_DefaultsOptions *def_options);
00202 COMPS_DocCategory* comps_doccategory_arch_filter(COMPS_DocCategory *source,
00203 COMPS_ObjList *arches);
00204
00205 extern COMPS_ValRuleGeneric* COMPS_DocCategory_ValidateRules[];
00206 #endif