31 #include "comps_doc_types.h"
32 #include "comps_getset.h"
33 #include "comps_dict.h"
35 #include "comps_set.h"
37 #include "comps_hslist.h"
38 #include "comps_utils.h"
40 #include <libxml/encoding.h>
41 #include <libxml/xmlwriter.h>
42 #include <libxml/tree.h>
44 COMPS_Prop * __comps_doccat_get_prop(
void *cat,
const char *key);
45 COMPS_Prop * __comps_docenv_get_prop(
void *env,
const char *key);
46 COMPS_Prop * __comps_docgroup_get_prop(
void *group,
const char *key);
49 void __comps_doc_char_setter(
void **attr,
char *val,
char copy);
50 char __comps_doc_add_lobject(COMPS_Doc *doc,
char *parent,
void *obj,
51 void(*obj_destructor)(
void*));
52 COMPS_List* __comps_get_lobject(COMPS_Doc *doc,
const char *obj);
53 void __comps_set_lobject(COMPS_Doc *doc,
const char *obj,
COMPS_List *lobj);
54 char __comps_doc_remove_lobject(COMPS_Doc *doc,
char *parent,
void *obj);
56 COMPS_Dict* __comps_get_dobject(COMPS_Doc *doc,
const char *obj);
57 void __comps_set_dobject(COMPS_Doc *doc,
const char *obj, COMPS_Dict *dobj);
58 char __comps_doc_add_dobject(COMPS_Doc *doc,
char *parent,
char *key,
61 COMPS_MDict* __comps_get_mdobject(COMPS_Doc *doc,
const char *obj);
62 void __comps_set_mdobject(COMPS_Doc *doc,
const char *obj, COMPS_MDict *mdobj);
63 char __comps_doc_add_mdobject(COMPS_Doc *doc,
char *parent,
char *key,
66 void __comps_doc_add_lang_prop(COMPS_Dict *dict,
char *lang,
char *prop,
68 void __comps_doc_add_prop(COMPS_Dict *dict,
char *key, COMPS_Prop * prop);
69 char __comps_doc_write_simple_prop(xmlTextWriterPtr writer,
char *prop,
71 void __comps_doc_write_lang_prop(xmlTextWriterPtr writer, COMPS_Dict *lang_dict,
75 void comps2xml_f(COMPS_Doc * doc,
char *filename,
char stdoutredirect);
76 char *comps2xml_str(COMPS_Doc *doc);
78 COMPS_Doc *comps_doc_create(
const char *encoding);
79 void comps_doc_init(COMPS_Doc *doc);
80 void comps_doc_clear(COMPS_Doc *doc);
81 void comps_doc_destroy(COMPS_Doc **doc);
82 void comps_doc_destroy_v(
void *doc);
85 COMPS_List *comps_doc_categories(COMPS_Doc *doc);
86 COMPS_List *comps_doc_environments(COMPS_Doc *doc);
87 COMPS_Dict *comps_doc_langpacks(COMPS_Doc *doc);
88 COMPS_MDict *comps_doc_whiteout(COMPS_Doc *doc);
89 COMPS_MDict *comps_doc_blacklist(COMPS_Doc *doc);
91 void comps_doc_set_groups(COMPS_Doc *doc,
COMPS_List *groups);
92 void comps_doc_set_cats(COMPS_Doc *doc,
COMPS_List *cats);
93 void comps_doc_set_envs(COMPS_Doc *doc,
COMPS_List *envs);
94 void comps_doc_set_langpacks(COMPS_Doc *doc, COMPS_Dict *langs);
95 void comps_doc_set_whiteout(COMPS_Doc *doc, COMPS_MDict *whiteout);
96 void comps_doc_set_blacklist(COMPS_Doc *doc, COMPS_MDict *blist);
98 void comps_doc_set_groups_v(
void *doc,
COMPS_List *groups);
99 void comps_doc_set_cats_v(
void *doc,
COMPS_List *cats);
100 void comps_doc_set_envs_v(
void *doc,
COMPS_List *envs);
101 void comps_doc_set_langpacks_v(
void *doc, COMPS_Dict *langs);
102 void comps_doc_set_whiteout_v(
void *doc, COMPS_MDict *whiteout);
103 void comps_doc_set_blacklist_v(
void *doc, COMPS_MDict *blist);
105 COMPS_List *comps_doc_categories_v(
void *doc);
106 COMPS_List *comps_doc_environments_v(
void *doc);
107 COMPS_Dict *comps_doc_langpacks_v(
void *doc);
108 COMPS_MDict *comps_doc_whiteout_v(
void *doc);
109 COMPS_MDict *comps_doc_blacklist_v(
void *doc);
111 char comps_doc_add_group(COMPS_Doc *doc, COMPS_DocGroup *group);
112 char comps_doc_add_category(COMPS_Doc *doc, COMPS_DocCategory *category);
113 char comps_doc_add_env(COMPS_Doc *doc, COMPS_DocEnv *env);
114 char comps_doc_add_langpack(COMPS_Doc *doc,
char *name,
char *install);
115 char comps_doc_add_blacklist(COMPS_Doc *doc,
char *name,
char *arch);
116 char comps_doc_add_whiteout(COMPS_Doc *doc,
char *requires,
char *package);
118 COMPS_List* comps_doc_get_groups(COMPS_Doc *doc,
char *
id,
char *name,
119 char *desc,
char *lang);
120 COMPS_List* comps_doc_get_categories(COMPS_Doc *doc,
char *
id,
char *name,
121 char *desc,
char *lang);
122 COMPS_List* comps_doc_get_envs(COMPS_Doc *doc,
char *
id,
char *name,
123 char *desc,
char *lang);
125 char comps_doc_del_group(COMPS_Doc *doc, COMPS_DocGroup *group);
126 char comps_doc_del_category(COMPS_Doc *doc, COMPS_DocCategory *category);
127 char comps_doc_del_env(COMPS_Doc * doc, COMPS_DocEnv *env);
129 void comps_doc_xml(COMPS_Doc * doc, xmlTextWriterPtr writer);
130 COMPS_Doc* comps_doc_union(COMPS_Doc *c1, COMPS_Doc *c2);
131 COMPS_Doc* comps_doc_intersect(COMPS_Doc *c1, COMPS_Doc *c2);
132 char comps_doc_cmp(COMPS_Doc *c1, COMPS_Doc *c2);
134 COMPS_DocGroup* comps_docgroup_create();
135 void comps_docgroup_destroy(
void *group);
136 void comps_docgroup_set_id(COMPS_DocGroup *group,
char *
id,
char copy);
137 void comps_docgroup_set_name(COMPS_DocGroup *group,
char *name,
139 void comps_docgroup_add_lang_name(COMPS_DocGroup *group,
char *lang,
char *name,
141 void comps_docgroup_set_desc(COMPS_DocGroup *group,
char *desc,
143 void comps_docgroup_add_lang_desc(COMPS_DocGroup *group,
char *lang,
char *desc,
145 void comps_docgroup_set_default(COMPS_DocGroup *group,
unsigned def);
146 void comps_docgroup_set_uservisible(COMPS_DocGroup *group,
147 unsigned uservisible);
148 void comps_docgroup_set_displayorder(COMPS_DocGroup *group,
149 unsigned display_order);
150 void comps_docgroup_set_langonly(COMPS_DocGroup *group,
char *langonly,
152 void comps_docgroup_add_package(COMPS_DocGroup *group,
153 COMPS_DocGroupPackage *package);
154 COMPS_List* comps_docgroup_get_packages(COMPS_DocGroup *group,
char *name,
155 COMPS_PackageType type);
156 void comps_docgroup_xml(COMPS_DocGroup *group, xmlTextWriterPtr writer,
158 COMPS_DocGroup* comps_docgroup_union(COMPS_DocGroup *g1, COMPS_DocGroup *g2);
159 COMPS_DocGroup* comps_docgroup_intersect(COMPS_DocGroup *g1,
161 COMPS_DocGroup* comps_docgroup_clone(COMPS_DocGroup *g);
162 char __comps_docgroup_idcmp(
void* g1,
void *g2);
163 char comps_docgroup_cmp(COMPS_DocGroup *g1, COMPS_DocGroup *g2);
164 char comps_docgroup_cmp_v(
void *g1,
void *g2);
167 COMPS_DocCategory* comps_doccategory_create();
168 void comps_doccategory_destroy(
void *category);
169 void comps_doccategory_set_id(COMPS_DocCategory *category,
char *
id,
char copy);
170 void comps_doccategory_set_name(COMPS_DocCategory *category,
char *name,
172 void comps_doccategory_add_lang_name(COMPS_DocCategory *category,
char *lang,
173 char *name,
char copy);
174 void comps_doccategory_set_desc(COMPS_DocCategory *category,
char *desc,
176 void comps_doccategory_add_lang_desc(COMPS_DocCategory *category,
char *lang,
177 char *desc,
char copy);
178 void comps_doccategory_set_displayorder(COMPS_DocCategory *category,
180 void comps_doccategory_add_groupid(COMPS_DocCategory *category,
181 COMPS_DocGroupId *groupid);
182 void comps_doccategory_xml(COMPS_DocCategory *cat, xmlTextWriterPtr writer,
184 COMPS_DocCategory* comps_doccategory_union(COMPS_DocCategory *c1,
185 COMPS_DocCategory *c2);
186 COMPS_DocCategory* comps_doccategory_intersect(COMPS_DocCategory *c1,
187 COMPS_DocCategory *c2);
188 COMPS_DocCategory* comps_doccategory_clone(COMPS_DocCategory *c);
189 char __comps_doccategory_idcmp(
void* cat1,
void *cat2);
190 char comps_doccategory_cmp(COMPS_DocCategory *c1, COMPS_DocCategory *c2);
191 char comps_doccategory_cmp_v(
void *c1,
void *c2);
193 COMPS_DocEnv *comps_docenv_create();
194 void comps_docenv_destroy(
void *env);
195 void comps_docenv_set_id(COMPS_DocEnv * env,
char *
id,
char copy);
196 void comps_docenv_set_name(COMPS_DocEnv * env,
char *name,
char copy);
197 void comps_docenv_add_lang_name(COMPS_DocEnv *env,
char *lang,
198 char *name,
char copy);
199 void comps_docenv_set_desc(COMPS_DocEnv * env,
char *desc,
char copy);
200 void comps_docenv_add_lang_desc(COMPS_DocEnv *env,
char *lang,
201 char *desc,
char copy);
202 void comps_docenv_set_displayorder(COMPS_DocEnv *env,
int display_order);
203 void comps_docenv_add_optionid(COMPS_DocEnv *env,
204 COMPS_DocGroupId *optionid);
205 void comps_docenv_add_groupid(COMPS_DocEnv *env,
206 COMPS_DocGroupId *groupid);
207 void comps_docenv_xml(COMPS_DocEnv *env, xmlTextWriterPtr writer,
209 COMPS_DocEnv* comps_docenv_union(COMPS_DocEnv *e1, COMPS_DocEnv *e2);
210 COMPS_DocEnv* comps_docenv_intersect(COMPS_DocEnv *e1, COMPS_DocEnv *e2);
211 COMPS_DocEnv* comps_docenv_clone(COMPS_DocEnv *g);
212 char __comps_docenv_idcmp(
void* e1,
void *e2);
213 char comps_docenv_cmp(COMPS_DocEnv *e1, COMPS_DocEnv *e2);
214 char comps_docenv_cmp_v(
void *e1,
void *e2);
216 COMPS_DocGroupPackage* comps_docpackage_create();
217 COMPS_DocGroupPackage* comps_docpackage_clone(COMPS_DocGroupPackage * pkg);
218 void comps_docpackage_set_name(COMPS_DocGroupPackage *package,
char *name,
220 void comps_docpackage_set_type(COMPS_DocGroupPackage *package,
221 COMPS_PackageType type);
222 void comps_docpackage_set_requires(COMPS_DocGroupPackage *package,
223 char *requires,
char copy);
225 void comps_docpackage_destroy(
void *pkg);
226 void comps_docpackage_xml(COMPS_DocGroupPackage *pkg, xmlTextWriterPtr writer,
228 char comps_docpackage_cmp(
void* pkg1,
void *pkg2);
229 const char* comps_docpackage_type_str(COMPS_PackageType type);
231 COMPS_DocGroupId* comps_docgroupid_create();
232 COMPS_DocGroupId* comps_docgroupid_clone(COMPS_DocGroupId * groupid);
233 void comps_docgroupid_set_name(COMPS_DocGroupId *groupid,
char *name,
char copy);
234 void comps_docgroupid_set_default(COMPS_DocGroupId *groupid,
char def);
235 char comps_docgroupid_cmp(
void* gid1,
void *gid2);
236 void comps_docgroupid_destroy(
void *groupid);