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 "package.h"
00028 #include "repomd.h"
00029
00035 #define CR_CB_RET_OK 0
00036 #define CR_CB_RET_ERR 1
00040 typedef enum {
00041 CR_XML_WARNING_UNKNOWNTAG,
00042 CR_XML_WARNING_MISSINGATTR,
00043 CR_XML_WARNING_UNKNOWNVAL,
00044 CR_XML_WARNING_BADATTRVAL,
00045 CR_XML_WARNING_MISSINGVAL,
00046 CR_XML_WARNING_SENTINEL,
00047 } cr_XmlParserWarningType;
00048
00065 typedef int (*cr_XmlParserNewPkgCb)(cr_Package **pkg,
00066 const char *pkgId,
00067 const char *name,
00068 const char *arch,
00069 void *cbdata,
00070 GError **err);
00071
00078 typedef int (*cr_XmlParserPkgCb)(cr_Package *pkg,
00079 void *cbdata,
00080 GError **err);
00081
00092 typedef int (*cr_XmlParserWarningCb)(cr_XmlParserWarningType type,
00093 char *msg,
00094 void *cbdata,
00095 GError **err);
00096
00113 int cr_xml_parse_primary(const char *path,
00114 cr_XmlParserNewPkgCb newpkgcb,
00115 void *newpkgcb_data,
00116 cr_XmlParserPkgCb pkgcb,
00117 void *pkgcb_data,
00118 cr_XmlParserWarningCb warningcb,
00119 void *warningcb_data,
00120 int do_files,
00121 GError **err);
00122
00138 int cr_xml_parse_filelists(const char *path,
00139 cr_XmlParserNewPkgCb newpkgcb,
00140 void *newpkgcb_data,
00141 cr_XmlParserPkgCb pkgcb,
00142 void *pkgcb_data,
00143 cr_XmlParserWarningCb warningcb,
00144 void *warningcb_data,
00145 GError **err);
00146
00162 int cr_xml_parse_other(const char *path,
00163 cr_XmlParserNewPkgCb newpkgcb,
00164 void *newpkgcb_data,
00165 cr_XmlParserPkgCb pkgcb,
00166 void *pkgcb_data,
00167 cr_XmlParserWarningCb warningcb,
00168 void *warningcb_data,
00169 GError **err);
00170
00179 int
00180 cr_xml_parse_repomd(const char *path,
00181 cr_Repomd *repomd,
00182 cr_XmlParserWarningCb warningcb,
00183 void *warningcb_data,
00184 GError **err);
00185
00188 #ifdef __cplusplus
00189 }
00190 #endif
00191
00192 #endif