00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __C_CREATEREPOLIB_XML_FILE_H__
00021 #define __C_CREATEREPOLIB_XML_FILE_H__
00022
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026
00027 #include <glib.h>
00028 #include "compression_wrapper.h"
00029 #include "package.h"
00030
00038 typedef enum {
00039 CR_XMLFILE_PRIMARY,
00040 CR_XMLFILE_FILELISTS,
00041 CR_XMLFILE_OTHER,
00042 CR_XMLFILE_PRESTODELTA,
00043 CR_XMLFILE_UPDATEINFO,
00044 CR_XMLFILE_SENTINEL,
00045 } cr_XmlFileType;
00046
00049 typedef struct {
00050 CR_FILE *f;
00052 cr_XmlFileType type;
00054 int header;
00056 int footer;
00058 long pkgs;
00060 } cr_XmlFile;
00061
00068 #define cr_xmlfile_open_primary(FILENAME, COMTYPE, ERR) \
00069 cr_xmlfile_open(FILENAME, CR_XMLFILE_PRIMARY, COMTYPE, ERR)
00070
00078 #define cr_xmlfile_sopen_primary(FILENAME, COMTYPE, STAT, ERR) \
00079 cr_xmlfile_sopen(FILENAME, CR_XMLFILE_PRIMARY, COMTYPE, STAT, ERR)
00080
00087 #define cr_xmlfile_open_filelists(FILENAME, COMTYPE, ERR) \
00088 cr_xmlfile_open(FILENAME, CR_XMLFILE_FILELISTS, COMTYPE, ERR)
00089
00097 #define cr_xmlfile_sopen_filelists(FILENAME, COMTYPE, STAT, ERR) \
00098 cr_xmlfile_sopen(FILENAME, CR_XMLFILE_FILELISTS, COMTYPE, STAT, ERR)
00099
00106 #define cr_xmlfile_open_other(FILENAME, COMTYPE, ERR) \
00107 cr_xmlfile_open(FILENAME, CR_XMLFILE_OTHER, COMTYPE, ERR)
00108
00116 #define cr_xmlfile_sopen_other(FILENAME, COMTYPE, STAT, ERR) \
00117 cr_xmlfile_sopen(FILENAME, CR_XMLFILE_OTHER, COMTYPE, STAT, ERR)
00118
00125 #define cr_xmlfile_open_prestodelta(FILENAME, COMTYPE, ERR) \
00126 cr_xmlfile_open(FILENAME, CR_XMLFILE_PRESTODELTA, COMTYPE, ERR)
00127
00135 #define cr_xmlfile_sopen_prestodelta(FILENAME, COMTYPE, STAT, ERR) \
00136 cr_xmlfile_sopen(FILENAME, CR_XMLFILE_PRESTODELTA, COMTYPE, STAT, ERR)
00137
00144 #define cr_xmlfile_open_updateinfo(FILENAME, COMTYPE, ERR) \
00145 cr_xmlfile_open(FILENAME, CR_XMLFILE_UPDATEINFO, COMTYPE, ERR)
00146
00154 #define cr_xmlfile_sopen_updateinfo(FILENAME, COMTYPE, STAT, ERR) \
00155 cr_xmlfile_sopen(FILENAME, CR_XMLFILE_UPDATEINFO, COMTYPE, STAT, ERR)
00156
00166 #define cr_xmlfile_open(FILENAME, TYPE, COMTYPE, ERR) \
00167 cr_xmlfile_sopen(FILENAME, TYPE, COMTYPE, NULL, ERR)
00168
00179 cr_XmlFile *cr_xmlfile_sopen(const char *filename,
00180 cr_XmlFileType type,
00181 cr_CompressionType comtype,
00182 cr_ContentStat *stat,
00183 GError **err);
00184
00193 int cr_xmlfile_set_num_of_pkgs(cr_XmlFile *f, long num, GError **err);
00194
00201 int cr_xmlfile_add_pkg(cr_XmlFile *f, cr_Package *pkg, GError **err);
00202
00215 int cr_xmlfile_add_chunk(cr_XmlFile *f, const char *chunk, GError **err);
00216
00222 int cr_xmlfile_close(cr_XmlFile *f, GError **err);
00223
00224
00227 #ifdef __cplusplus
00228 }
00229 #endif
00230
00231 #endif