00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __C_CREATEREPOLIB_XML_PARSER_H__
00021 #define __C_CREATEREPOLIB_XML_PARSER_H__
00022
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026
00027 #include <glib.h>
00028 #include "package.h"
00029 #include "repomd.h"
00030 #include "updateinfo.h"
00031
00037 #define CR_CB_RET_OK 0
00038 #define CR_CB_RET_ERR 1
00042 typedef enum {
00043 CR_XML_WARNING_UNKNOWNTAG,
00044 CR_XML_WARNING_MISSINGATTR,
00045 CR_XML_WARNING_UNKNOWNVAL,
00046 CR_XML_WARNING_BADATTRVAL,
00047 CR_XML_WARNING_MISSINGVAL,
00048 CR_XML_WARNING_BADMDTYPE,
00049 CR_XML_WARNING_SENTINEL,
00050 } cr_XmlParserWarningType;
00051
00068 typedef int (*cr_XmlParserNewPkgCb)(cr_Package **pkg,
00069 const char *pkgId,
00070 const char *name,
00071 const char *arch,
00072 void *cbdata,
00073 GError **err);
00074
00081 typedef int (*cr_XmlParserPkgCb)(cr_Package *pkg,
00082 void *cbdata,
00083 GError **err);
00084
00095 typedef int (*cr_XmlParserWarningCb)(cr_XmlParserWarningType type,
00096 char *msg,
00097 void *cbdata,
00098 GError **err);
00099
00116 int cr_xml_parse_primary(const char *path,
00117 cr_XmlParserNewPkgCb newpkgcb,
00118 void *newpkgcb_data,
00119 cr_XmlParserPkgCb pkgcb,
00120 void *pkgcb_data,
00121 cr_XmlParserWarningCb warningcb,
00122 void *warningcb_data,
00123 int do_files,
00124 GError **err);
00125
00141 int cr_xml_parse_filelists(const char *path,
00142 cr_XmlParserNewPkgCb newpkgcb,
00143 void *newpkgcb_data,
00144 cr_XmlParserPkgCb pkgcb,
00145 void *pkgcb_data,
00146 cr_XmlParserWarningCb warningcb,
00147 void *warningcb_data,
00148 GError **err);
00149
00165 int cr_xml_parse_other(const char *path,
00166 cr_XmlParserNewPkgCb newpkgcb,
00167 void *newpkgcb_data,
00168 cr_XmlParserPkgCb pkgcb,
00169 void *pkgcb_data,
00170 cr_XmlParserWarningCb warningcb,
00171 void *warningcb_data,
00172 GError **err);
00173
00182 int
00183 cr_xml_parse_repomd(const char *path,
00184 cr_Repomd *repomd,
00185 cr_XmlParserWarningCb warningcb,
00186 void *warningcb_data,
00187 GError **err);
00188
00197 int
00198 cr_xml_parse_updateinfo(const char *path,
00199 cr_UpdateInfo *updateinfo,
00200 cr_XmlParserWarningCb warningcb,
00201 void *warningcb_data,
00202 GError **err);
00203
00206 #ifdef __cplusplus
00207 }
00208 #endif
00209
00210 #endif