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_SENTINEL,
00049 } cr_XmlParserWarningType;
00050
00067 typedef int (*cr_XmlParserNewPkgCb)(cr_Package **pkg,
00068 const char *pkgId,
00069 const char *name,
00070 const char *arch,
00071 void *cbdata,
00072 GError **err);
00073
00080 typedef int (*cr_XmlParserPkgCb)(cr_Package *pkg,
00081 void *cbdata,
00082 GError **err);
00083
00094 typedef int (*cr_XmlParserWarningCb)(cr_XmlParserWarningType type,
00095 char *msg,
00096 void *cbdata,
00097 GError **err);
00098
00115 int cr_xml_parse_primary(const char *path,
00116 cr_XmlParserNewPkgCb newpkgcb,
00117 void *newpkgcb_data,
00118 cr_XmlParserPkgCb pkgcb,
00119 void *pkgcb_data,
00120 cr_XmlParserWarningCb warningcb,
00121 void *warningcb_data,
00122 int do_files,
00123 GError **err);
00124
00140 int cr_xml_parse_filelists(const char *path,
00141 cr_XmlParserNewPkgCb newpkgcb,
00142 void *newpkgcb_data,
00143 cr_XmlParserPkgCb pkgcb,
00144 void *pkgcb_data,
00145 cr_XmlParserWarningCb warningcb,
00146 void *warningcb_data,
00147 GError **err);
00148
00164 int cr_xml_parse_other(const char *path,
00165 cr_XmlParserNewPkgCb newpkgcb,
00166 void *newpkgcb_data,
00167 cr_XmlParserPkgCb pkgcb,
00168 void *pkgcb_data,
00169 cr_XmlParserWarningCb warningcb,
00170 void *warningcb_data,
00171 GError **err);
00172
00181 int
00182 cr_xml_parse_repomd(const char *path,
00183 cr_Repomd *repomd,
00184 cr_XmlParserWarningCb warningcb,
00185 void *warningcb_data,
00186 GError **err);
00187
00196 int
00197 cr_xml_parse_updateinfo(const char *path,
00198 cr_UpdateInfo *updateinfo,
00199 cr_XmlParserWarningCb warningcb,
00200 void *warningcb_data,
00201 GError **err);
00202
00205 #ifdef __cplusplus
00206 }
00207 #endif
00208
00209 #endif