A Documented file. Details. More...
#include <stdio.h>
#include <stdarg.h>
#include "comps_doc_types.h"
#include "comps_getset.h"
#include "comps_dict.h"
#include "comps_list.h"
#include "comps_set.h"
#include "comps_logger.h"
#include "comps_hslist.h"
#include "comps_utils.h"
#include <libxml/encoding.h>
#include <libxml/xmlwriter.h>
#include <libxml/tree.h>
Go to the source code of this file.
Functions | |
void | comps2xml_f (COMPS_Doc *doc, char *filename, char stdoutredirect) |
char * | comps2xml_str (COMPS_Doc *doc) |
COMPS_Doc * | comps_doc_create (const char *encoding) |
void | comps_doc_init (COMPS_Doc *doc) |
void | comps_doc_clear (COMPS_Doc *doc) |
void | comps_doc_destroy (COMPS_Doc **doc) |
void | comps_doc_destroy_v (void *doc) |
COMPS_List * | comps_doc_groups (COMPS_Doc *doc) |
COMPS_List * | comps_doc_categories (COMPS_Doc *doc) |
COMPS_List * | comps_doc_environments (COMPS_Doc *doc) |
COMPS_Dict * | comps_doc_langpacks (COMPS_Doc *doc) |
COMPS_MDict * | comps_doc_whiteout (COMPS_Doc *doc) |
COMPS_MDict * | comps_doc_blacklist (COMPS_Doc *doc) |
void | comps_doc_set_groups (COMPS_Doc *doc, COMPS_List *groups) |
void | comps_doc_set_cats (COMPS_Doc *doc, COMPS_List *cats) |
void | comps_doc_set_envs (COMPS_Doc *doc, COMPS_List *envs) |
void | comps_doc_set_langpacks (COMPS_Doc *doc, COMPS_Dict *langs) |
void | comps_doc_set_whiteout (COMPS_Doc *doc, COMPS_MDict *whiteout) |
void | comps_doc_set_blacklist (COMPS_Doc *doc, COMPS_MDict *blist) |
void | comps_doc_set_groups_v (void *doc, COMPS_List *groups) |
void | comps_doc_set_cats_v (void *doc, COMPS_List *cats) |
void | comps_doc_set_envs_v (void *doc, COMPS_List *envs) |
void | comps_doc_set_langpacks_v (void *doc, COMPS_Dict *langs) |
void | comps_doc_set_whiteout_v (void *doc, COMPS_MDict *whiteout) |
void | comps_doc_set_blacklist_v (void *doc, COMPS_MDict *blist) |
COMPS_List * | comps_doc_groups_v (void *doc) |
COMPS_List * | comps_doc_categories_v (void *doc) |
COMPS_List * | comps_doc_environments_v (void *doc) |
COMPS_Dict * | comps_doc_langpacks_v (void *doc) |
COMPS_MDict * | comps_doc_whiteout_v (void *doc) |
COMPS_MDict * | comps_doc_blacklist_v (void *doc) |
char | comps_doc_add_group (COMPS_Doc *doc, COMPS_DocGroup *group) |
char | comps_doc_add_category (COMPS_Doc *doc, COMPS_DocCategory *category) |
char | comps_doc_add_env (COMPS_Doc *doc, COMPS_DocEnv *env) |
char | comps_doc_add_langpack (COMPS_Doc *doc, char *name, char *install) |
char | comps_doc_add_blacklist (COMPS_Doc *doc, char *name, char *arch) |
char | comps_doc_add_whiteout (COMPS_Doc *doc, char *requires, char *package) |
COMPS_List * | comps_doc_get_groups (COMPS_Doc *doc, char *id, char *name, char *desc, char *lang) |
COMPS_List * | comps_doc_get_categories (COMPS_Doc *doc, char *id, char *name, char *desc, char *lang) |
COMPS_List * | comps_doc_get_envs (COMPS_Doc *doc, char *id, char *name, char *desc, char *lang) |
char | comps_doc_del_group (COMPS_Doc *doc, COMPS_DocGroup *group) |
char | comps_doc_del_category (COMPS_Doc *doc, COMPS_DocCategory *category) |
char | comps_doc_del_env (COMPS_Doc *doc, COMPS_DocEnv *env) |
void | comps_doc_xml (COMPS_Doc *doc, xmlTextWriterPtr writer) |
COMPS_Doc * | comps_doc_union (COMPS_Doc *c1, COMPS_Doc *c2) |
COMPS_Doc * | comps_doc_intersect (COMPS_Doc *c1, COMPS_Doc *c2) |
char | comps_doc_cmp (COMPS_Doc *c1, COMPS_Doc *c2) |
COMPS_DocGroup * | comps_docgroup_create () |
void | comps_docgroup_destroy (void *group) |
void | comps_docgroup_set_id (COMPS_DocGroup *group, char *id, char copy) |
void | comps_docgroup_set_name (COMPS_DocGroup *group, char *name, char copy) |
void | comps_docgroup_add_lang_name (COMPS_DocGroup *group, char *lang, char *name, char copy) |
void | comps_docgroup_set_desc (COMPS_DocGroup *group, char *desc, char copy) |
void | comps_docgroup_add_lang_desc (COMPS_DocGroup *group, char *lang, char *desc, char copy) |
void | comps_docgroup_set_default (COMPS_DocGroup *group, unsigned def) |
void | comps_docgroup_set_uservisible (COMPS_DocGroup *group, unsigned uservisible) |
void | comps_docgroup_set_displayorder (COMPS_DocGroup *group, unsigned display_order) |
void | comps_docgroup_set_langonly (COMPS_DocGroup *group, char *langonly, char copy) |
void | comps_docgroup_add_package (COMPS_DocGroup *group, COMPS_DocGroupPackage *package) |
COMPS_List * | comps_docgroup_get_packages (COMPS_DocGroup *group, char *name, COMPS_PackageType type) |
void | comps_docgroup_xml (COMPS_DocGroup *group, xmlTextWriterPtr writer, COMPS_Logger *log) |
COMPS_DocGroup * | comps_docgroup_union (COMPS_DocGroup *g1, COMPS_DocGroup *g2) |
COMPS_DocGroup * | comps_docgroup_intersect (COMPS_DocGroup *g1, COMPS_DocGroup *g2) |
COMPS_DocGroup * | comps_docgroup_clone (COMPS_DocGroup *g) |
char | comps_docgroup_cmp (COMPS_DocGroup *g1, COMPS_DocGroup *g2) |
char | comps_docgroup_cmp_v (void *g1, void *g2) |
COMPS_DocCategory * | comps_doccategory_create () |
void | comps_doccategory_destroy (void *category) |
void | comps_doccategory_set_id (COMPS_DocCategory *category, char *id, char copy) |
void | comps_doccategory_set_name (COMPS_DocCategory *category, char *name, char copy) |
void | comps_doccategory_add_lang_name (COMPS_DocCategory *category, char *lang, char *name, char copy) |
void | comps_doccategory_set_desc (COMPS_DocCategory *category, char *desc, char copy) |
void | comps_doccategory_add_lang_desc (COMPS_DocCategory *category, char *lang, char *desc, char copy) |
void | comps_doccategory_set_displayorder (COMPS_DocCategory *category, int display_order) |
void | comps_doccategory_add_groupid (COMPS_DocCategory *category, COMPS_DocGroupId *groupid) |
void | comps_doccategory_xml (COMPS_DocCategory *cat, xmlTextWriterPtr writer, COMPS_Logger *log) |
COMPS_DocCategory * | comps_doccategory_union (COMPS_DocCategory *c1, COMPS_DocCategory *c2) |
COMPS_DocCategory * | comps_doccategory_intersect (COMPS_DocCategory *c1, COMPS_DocCategory *c2) |
COMPS_DocCategory * | comps_doccategory_clone (COMPS_DocCategory *c) |
char | comps_doccategory_cmp (COMPS_DocCategory *c1, COMPS_DocCategory *c2) |
char | comps_doccategory_cmp_v (void *c1, void *c2) |
COMPS_DocEnv * | comps_docenv_create () |
void | comps_docenv_destroy (void *env) |
void | comps_docenv_set_id (COMPS_DocEnv *env, char *id, char copy) |
void | comps_docenv_set_name (COMPS_DocEnv *env, char *name, char copy) |
void | comps_docenv_add_lang_name (COMPS_DocEnv *env, char *lang, char *name, char copy) |
void | comps_docenv_set_desc (COMPS_DocEnv *env, char *desc, char copy) |
void | comps_docenv_add_lang_desc (COMPS_DocEnv *env, char *lang, char *desc, char copy) |
void | comps_docenv_set_displayorder (COMPS_DocEnv *env, int display_order) |
void | comps_docenv_add_optionid (COMPS_DocEnv *env, COMPS_DocGroupId *optionid) |
void | comps_docenv_add_groupid (COMPS_DocEnv *env, COMPS_DocGroupId *groupid) |
void | comps_docenv_xml (COMPS_DocEnv *env, xmlTextWriterPtr writer, COMPS_Logger *log) |
COMPS_DocEnv * | comps_docenv_union (COMPS_DocEnv *e1, COMPS_DocEnv *e2) |
COMPS_DocEnv * | comps_docenv_intersect (COMPS_DocEnv *e1, COMPS_DocEnv *e2) |
COMPS_DocEnv * | comps_docenv_clone (COMPS_DocEnv *g) |
char | comps_docenv_cmp (COMPS_DocEnv *e1, COMPS_DocEnv *e2) |
char | comps_docenv_cmp_v (void *e1, void *e2) |
COMPS_DocGroupPackage * | comps_docpackage_create () |
COMPS_DocGroupPackage * | comps_docpackage_clone (COMPS_DocGroupPackage *pkg) |
void | comps_docpackage_set_name (COMPS_DocGroupPackage *package, char *name, char copy) |
void | comps_docpackage_set_type (COMPS_DocGroupPackage *package, COMPS_PackageType type) |
void | comps_docpackage_set_requires (COMPS_DocGroupPackage *package, char *requires, char copy) |
void | comps_docpackage_destroy (void *pkg) |
void | comps_docpackage_xml (COMPS_DocGroupPackage *pkg, xmlTextWriterPtr writer, COMPS_Logger *log) |
char | comps_docpackage_cmp (void *pkg1, void *pkg2) |
const char * | comps_docpackage_type_str (COMPS_PackageType type) |
COMPS_DocGroupId * | comps_docgroupid_create () |
COMPS_DocGroupId * | comps_docgroupid_clone (COMPS_DocGroupId *groupid) |
void | comps_docgroupid_set_name (COMPS_DocGroupId *groupid, char *name, char copy) |
void | comps_docgroupid_set_default (COMPS_DocGroupId *groupid, char def) |
char | comps_docgroupid_cmp (void *gid1, void *gid2) |
void | comps_docgroupid_destroy (void *groupid) |
A Documented file. Details.
void comps2xml_f | ( | COMPS_Doc * | doc, |
char * | filename, | ||
char | stdoutredirect | ||
) |
Export COMPS_Doc object to xml file
doc | * COMPS_Doc object |
filename | output filename |
char* comps2xml_str | ( | COMPS_Doc * | doc | ) |
Export COMPS_Doc object to string. Result need to be freed.
doc | * COMPS_Doc object |
|
inline |
Clear all data in COMPS_Doc object
doc | COMPS_Doc object |
COMPS_Doc* comps_doc_create | ( | const char * | encoding | ) |
void comps_doc_destroy | ( | COMPS_Doc ** | doc | ) |
COMPS_Doc destructor Destroy COMPS_Doc object set its reference to NULL
doc | reference to COMPS_Doc object |
COMPS_List* comps_doc_get_categories | ( | COMPS_Doc * | doc, |
char * | id, | ||
char * | name, | ||
char * | desc, | ||
char * | lang | ||
) |
Get list of categories from COMPS_Doc object matching passed arguments Matching is evaluated by AND style (id-match && name-mach && desc-match) Result is only shadow filter of original list (if you destroy original list shadow list will become invalid)
doc | COMPS_Doc object |
id | category id which is compared against other categories ids. NULL means exclusion from final matching filter |
name | category name which is compared against other categories names NULL means exclusion from final matching filter |
desc | category description which is compared against other categories descriptions NULL means exclusion from final matching filter |
COMPS_List* comps_doc_get_envs | ( | COMPS_Doc * | doc, |
char * | id, | ||
char * | name, | ||
char * | desc, | ||
char * | lang | ||
) |
Get list of environments from COMPS_Doc object matching passed arguments Matching is evaluated by AND style (id-match && name-mach && desc-match). Result is only shadow filter of original list (if you destroy original list shadow list will become invalid)
doc | COMPS_Doc object |
id | environment id which is compared against other environment ids. NULL means exclusion from final matching filter |
name | environment name which is compared against other environments names NULL means exclusion from final matching filter |
desc | environment description which is compared against other environments descriptions NULL means exclusion from final matching filter |
COMPS_List* comps_doc_get_groups | ( | COMPS_Doc * | doc, |
char * | id, | ||
char * | name, | ||
char * | desc, | ||
char * | lang | ||
) |
Get list of groups from COMPS_Doc object matching passed arguments Matching is evaluated by AND style (id-match && name-mach && desc-match) Result is only shadow filter of original list (if you destroy original list shadow list will become invalid)
doc | COMPS_Doc object |
id | group id which is compared against other groups ids. NULL means exclusion from final matching filter |
name | group name which is compared against other groups names NULL means exclusion from final matching filter |
desc | group description which is compared against other groups description NULL means exclusion from final matching filter |
|
inline |
COMPS_Doc initializer
doc | COMPS_Doc object |
COMPS_Doc* comps_doc_intersect | ( | COMPS_Doc * | c1, |
COMPS_Doc * | c2 | ||
) |
Make intersection of two existing COMPS_Doc objects. Result intersection is completly new COMPS_Doc object (deep copy of those two). Intersection is made by objects ids. Objects of intersection is created by intersecting specific objects.
c1 | COMPS_Doc object |
c2 | COMPS_Doc object |
COMPS_Doc* comps_doc_union | ( | COMPS_Doc * | c1, |
COMPS_Doc * | c2 | ||
) |
Make union of two existing COMPS_Doc objects. Result union is completly new COMPS_Doc object (deep copy of those two). If both of COMPS_Doc objects contain groups,categories or environments object with same id, resulting group/category/environment object is created by union of incrimined groups/categories/environments objects.
c1 | COMPS_Doc object |
c2 | COMPS_Doc object |
void comps_doccategory_add_groupid | ( | COMPS_DocCategory * | category, |
COMPS_DocGroupId * | groupid | ||
) |
Add new groupid to category. If copy param is 1, copy passed id buffer to new buffer and set description to newly created buffer. If copy param is 0, only reassign buffer pointer
category | COMPS_DocCategory object |
id | new groupid |
copy | copy indicator |
COMPS_DocCategory* comps_doccategory_clone | ( | COMPS_DocCategory * | c | ) |
Make deep copy of category
c | COMPS_DocCategory object |
COMPS_DocCategory* comps_doccategory_create | ( | ) |
COMPS_DocCategory constructor
void comps_doccategory_destroy | ( | void * | category | ) |
COMPS_DocCategory destructor
category | COMPS_DocCategory object |
COMPS_DocCategory* comps_doccategory_intersect | ( | COMPS_DocCategory * | c1, |
COMPS_DocCategory * | c2 | ||
) |
Intersect two categories and return completly new COMPS_DocCategory object of intersection result. Name, id, description intersect policy: if name/id/desc of one category isn't set, result will have name/id/decs of other one. if name/id/desc is set in both categories, result will have name/id/desc of first category otherwise name/ids/desc won't be set in result
c1 | COMPS_DocCategory object |
c2 | COMPS_DocCategory object |
|
inline |
Set category description. If copy param is 1, copy passed id buffer to new buffer and set description to newly created buffer. If copy param is 0, only reassign buffer pointer
category | COMPS_DocCategory object |
desc | new category id |
copy | copy indicator |
|
inline |
Set category display order
category | COMPS_DocCategory object |
display_order | new display_order of category |
|
inline |
Set category id. If copy param is 1, copy passed id buffer to new buffer and set id to newly created buffer. If copy param is 0, only reassign buffer pointer
category | COMPS_DocCategory object |
id | id new category id |
copy | copy indicator |
|
inline |
Set category name. If copy param is 1, copy passed id buffer to new buffer and set name to newly created buffer. If copy param is 0, only reassign buffer pointer
category | COMPS_DocCategory object |
name | new category name |
copy | copy indicator |
COMPS_DocCategory* comps_doccategory_union | ( | COMPS_DocCategory * | c1, |
COMPS_DocCategory * | c2 | ||
) |
Union two categories and return completly new COMPS_DocCategory object of union result. Name, id, description union policy: if name/id/desc of one category isn't set, result will have name/id/decs of other one. if name/id/desc is set in both categories, result will have name/id/desc of first category otherwise name/ids/desc won't be set in result
c1 | COMPS_DocCategory object |
c2 | COMPS_DocCategory object |
void comps_docenv_add_groupid | ( | COMPS_DocEnv * | env, |
COMPS_DocGroupId * | groupid | ||
) |
Add new groupid to environment. If copy param is 1, copy passed id buffer to new buffer and set description to newly created buffer. If copy param is 0, only reassign buffer pointer
env | COMPS_DocEnvironment object |
id | new groupid |
copy | copy indicator |
void comps_docenv_add_optionid | ( | COMPS_DocEnv * | env, |
COMPS_DocGroupId * | optionid | ||
) |
Add new optionid to environment. If copy param is 1, copy passed id buffer to new buffer and set description to newly created buffer. If copy param is 0, only reassign buffer pointer
env | COMPS_DocEnvironment object |
id | new optionid |
copy | copy indicator |
COMPS_DocEnv* comps_docenv_clone | ( | COMPS_DocEnv * | e | ) |
Make deep copy of environment
e | COMPS_DocEnv object |
COMPS_DocEnv* comps_docenv_create | ( | ) |
COMPS_DocEnv constructor
void comps_docenv_destroy | ( | void * | env | ) |
COMPS_DocEnv destructor
env | COMPS_DocEnv object |
COMPS_DocEnv* comps_docenv_intersect | ( | COMPS_DocEnv * | e1, |
COMPS_DocEnv * | e2 | ||
) |
Intersect two environments and return completly new COMPS_DocCategory object of intersection result. Name, id, description intersect policy: if name/id/desc of one environment isn't set, result will have name/id/decs of other one. if name/id/desc is set in both environments, result will have name/id/desc of first environment otherwise name/ids/desc won't be set in result
e1 | COMPS_DocEnv object |
e2 | COMPS_DocEnv object |
|
inline |
Set environment description. If copy param is 1, copy passed description buffer to new buffer and set description to newly created buffer. If copy param is 0, only reassign buffer pointer
env | COMPS_DocEnvironment object |
desc | new environment description |
copy | copy indicator |
|
inline |
Set display order of COMPS_DocEnv object
env | COMPS_DocEnv object |
display_order | new environment display order |
|
inline |
Set environment id. If copy param is 1, copy passed id buffer to new buffer and set id to newly created buffer. If copy param is 0, only reassign buffer pointer
env | COMPS_DocEnvironment object |
id | new environment id |
copy | copy indicator |
|
inline |
Set environment name. If copy param is 1, copy passed name buffer to new buffer and set name to newly created buffer. If copy param is 0, only reassign buffer pointer
env | COMPS_DocEnvironment object |
name | new environment name |
copy | copy indicator |
COMPS_DocEnv* comps_docenv_union | ( | COMPS_DocEnv * | e1, |
COMPS_DocEnv * | e2 | ||
) |
Union two environment and return completly new COMPS_DocEnv object of union result. Name, id, description union policy: if name/id/desc of one environment isn't set, result will have name/id/decs of other one. if name/id/desc is set in both environments, result will have name/id/desc of first environment otherwise name/ids/desc won't be set in result
e1 | COMPS_DocEnv object |
e2 | COMPS_DocEnv object |
void comps_docgroup_add_package | ( | COMPS_DocGroup * | group, |
COMPS_DocGroupPackage * | package | ||
) |
Add COMPS_DocGroupPackage object to group
group | COMPS_DocGroup object |
package | COMPS_DocGroupPackage object |
COMPS_DocGroup* comps_docgroup_clone | ( | COMPS_DocGroup * | g | ) |
Deep copy of COMPS_DocGroup object
g | COMPS_DocGroup object |
COMPS_DocGroup* comps_docgroup_create | ( | ) |
COMPS_DocGroup constructor
void comps_docgroup_destroy | ( | void * | group | ) |
COMPS_DocGroup destructor
group | COMPS_DocGroup object |
COMPS_List* comps_docgroup_get_packages | ( | COMPS_DocGroup * | group, |
char * | name, | ||
COMPS_PackageType | type | ||
) |
Get COMPS_List of COMPS_DocGroupPackage objects matching specified package name and type (AND matching - match name && match type). Returned list is only shadow filter of original list (if original is destroyed, result is invalid)
group | COMPS_DocGroup object |
name | filtered name of package |
type | filtered type of package |
COMPS_DocGroup* comps_docgroup_intersect | ( | COMPS_DocGroup * | g1, |
COMPS_DocGroup * | g2 | ||
) |
Intersect two groups and return completly new COMPS_DocGroup object of intersection result. Packages in groups are compared by name and type. Name, id, description intersect policy: if name/id/desc of one group isn't set, result will have name/id/decs of other one. if name/id/desc is set in both groups, result will have name/id/desc of first group otherwise name/ids/desc won't be set in result
g1 | COMPS_DocGroup object |
g2 | COMPS_DocGroup object |
|
inline |
Set group default flag
group | COMPS_DocGroup |
def | default flag |
|
inline |
Set group description. If copy param is 1, copy passed description buffer to new buffer and set description to newly created buffer. If copy param is 0, only reassign buffer pointer
group | COMPS_DocGroup object |
desc | new group description |
copy | if copy indicator |
|
inline |
Set group id. If copy param is 1, copy passed id buffer to new buffer and set id to newly created buffer. If copy param is 0, only reassign buffer pointer
group | COMPS_DocGroup object |
id | new group id @)param copy if copy indicator |
|
inline |
Set group lang_only flag
group | COMPS_DocGroup |
langonly | flag |
|
inline |
Set group name. If copy param is 1, copy passed name buffer to new buffer and set name to newly created buffer. If copy param is 0, only reassign buffer pointer
group | COMPS_DocGroup object |
name | new group name |
copy | if copy indicator |
|
inline |
Set group uservisible flag
group | COMPS_DocGroup |
uservisible | flag |
COMPS_DocGroup* comps_docgroup_union | ( | COMPS_DocGroup * | g1, |
COMPS_DocGroup * | g2 | ||
) |
Union two groups and return completly new COMPS_DocGroup object of union result. Packages in groups are compared by name and type. Name, id, description union policy: if name/id/desc of one group isn't set, result will have name/id/decs of other one. if name/id/desc is set in both groups, result will have name/id/desc of first group otherwise name/ids/desc won't be set in result
g1 | COMPS_DocGroup object |
g2 | COMPS_DocGroup object |
COMPS_DocGroupPackage* comps_docpackage_clone | ( | COMPS_DocGroupPackage * | pkg | ) |
Deep copy COMPS_DocGroupPackage
pkg | COMPS_DocGroupPackage object |
char comps_docpackage_cmp | ( | void * | pkg1, |
void * | pkg2 | ||
) |
Compare two COMPS_DocGroupPackage objects
pkg1 | COMPS_DocGroupPackage object |
pkg2 | COMPS_DocGroupPackage object |
|
inline |
COMPS_DocGroupPackage constructor
void comps_docpackage_destroy | ( | void * | pkg | ) |
COMPS_DocGroupPackage destructor
pkg | COMPS_DocGroupPackage object |
|
inline |
Set package name. If copy param is 1, copy passed name buffer to new buffer and set name to newly created buffer. If copy param is 0, only reassign buffer pointer
package | COMPS_DocGroupPackage object |
name | new package name |
copy | copy indicator |
|
inline |
Set COMPS_DocGroupPackage type
package | COMPS_DocGroupPackage object |
type | new package type |