00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef COMPS_DOCGROUP_H
00021 #define COMPS_DOCGROUP_H
00022
00023 #include "comps_utils.h"
00024 #include "comps_obj.h"
00025 #include "comps_objdict.h"
00026 #include "comps_objlist.h"
00027 #include "comps_docpackage.h"
00028 #include "comps_validate.h"
00029 #include "comps_radix.h"
00030 #include "comps_default.h"
00031
00032 #include <stddef.h>
00033 #include <assert.h>
00034
00049 typedef struct {
00050 COMPS_Object_HEAD;
00051 COMPS_ObjDict *properties;
00053 COMPS_ObjDict *name_by_lang;
00055 COMPS_ObjDict *desc_by_lang;
00057 COMPS_ObjList *packages;
00059 } COMPS_DocGroup;
00060
00061
00062
00063
00064
00074 HEAD_COMPS_STRPROP_SETTER(group, COMPS_DocGroup, id)
00075
00076
00081 HEAD_COMPS_STRPROP_SETTER(group, COMPS_DocGroup, name)
00082
00088 HEAD_COMPS_STRPROP_SETTER(group, COMPS_DocGroup, desc)
00089
00095 HEAD_COMPS_NUMPROP_SETTER(group, COMPS_DocGroup, def)
00096
00102 HEAD_COMPS_NUMPROP_SETTER(group, COMPS_DocGroup, uservisible)
00103
00109 HEAD_COMPS_NUMPROP_SETTER(group, COMPS_DocGroup, biarchonly)
00110
00116 HEAD_COMPS_NUMPROP_SETTER(group, COMPS_DocGroup, display_order)
00117
00123 HEAD_COMPS_STRPROP_SETTER(group, COMPS_DocGroup, langonly)
00136 HEAD_COMPS_PROP_GETTER(group, COMPS_DocGroup, id)
00137 HEAD_COMPS_PROP_GETTER_OBJ(group, id)
00138
00144 HEAD_COMPS_PROP_GETTER(group, COMPS_DocGroup, name)
00145
00151 HEAD_COMPS_PROP_GETTER(group, COMPS_DocGroup, desc)
00152
00158 HEAD_COMPS_PROP_GETTER(group, COMPS_DocGroup, def)
00159
00165 HEAD_COMPS_PROP_GETTER(group, COMPS_DocGroup, uservisible)
00166
00172 HEAD_COMPS_PROP_GETTER(group, COMPS_DocGroup, biarchonly)
00173
00179 HEAD_COMPS_PROP_GETTER(group, COMPS_DocGroup, display_order)
00180
00186 HEAD_COMPS_PROP_GETTER(group, COMPS_DocGroup, langonly)
00199 HEAD_COMPS_DOCOBJ_GETOBJLIST(docgroup, COMPS_DocGroup, packages, packages)
00213 HEAD_COMPS_DOCOBJ_SETOBJLIST(docgroup, COMPS_DocGroup, packages, packages)
00216 HEAD_COMPS_DOCOBJ_GETARCHES(docgroup, COMPS_DocGroup)
00217 HEAD_COMPS_DOCOBJ_SETARCHES(docgroup, COMPS_DocGroup)
00218
00219 signed char comps_docgroup_cmp_u(COMPS_Object *group1, COMPS_Object *group2);
00220 char __comps_docgroup_idcmp(void *g1, void *g2);
00221
00227 void comps_docgroup_add_package(COMPS_DocGroup *group,
00228 COMPS_DocGroupPackage *package);
00229
00238 COMPS_ObjList* comps_docgroup_get_packages(COMPS_DocGroup *group, char *name,
00239 COMPS_PackageType type);
00240
00246 COMPS_DocGroup* comps_docgroup_union(COMPS_DocGroup *g1, COMPS_DocGroup *g2);
00247
00253 COMPS_DocGroup* comps_docgroup_intersect(COMPS_DocGroup *g1,
00254 COMPS_DocGroup *g2);
00255
00256 signed char comps_docgroup_xml(COMPS_DocGroup *group, xmlTextWriterPtr writer,
00257 COMPS_Log *log, COMPS_XMLOptions *xml_options,
00258 COMPS_DefaultsOptions *def_options);
00259
00260 COMPS_DocGroup* comps_docgroup_arch_filter(COMPS_DocGroup *source,
00261 COMPS_ObjList *arches);
00262
00263 extern COMPS_ObjectInfo COMPS_DocGroup_ObjInfo;
00264 extern COMPS_ValRuleGeneric* COMPS_DocGroup_ValidateRules[];
00265
00266 #endif