00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __C_CREATEREPOLIB_COMPRESSION_WRAPPER_H__
00021 #define __C_CREATEREPOLIB_COMPRESSION_WRAPPER_H__
00022
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026
00033 typedef enum {
00034 CR_CW_AUTO_DETECT_COMPRESSION,
00035 CR_CW_UNKNOWN_COMPRESSION,
00036 CR_CW_NO_COMPRESSION,
00037 CR_CW_GZ_COMPRESSION,
00038 CR_CW_BZ2_COMPRESSION,
00039 CR_CW_XZ_COMPRESSION,
00040 } cr_CompressionType;
00041
00045 typedef enum {
00046 CR_CW_MODE_READ,
00047 CR_CW_MODE_WRITE
00048 } cr_OpenMode;
00049
00050
00054 typedef struct {
00055 cr_CompressionType type;
00056 void *FILE;
00057 cr_OpenMode mode;
00058 } CR_FILE;
00059
00061 #define CR_CW_OK 0
00062 #define CR_CW_ERR -1
00071 const char *cr_compression_suffix(cr_CompressionType comtype);
00072
00078 cr_CompressionType cr_detect_compression(const char* filename);
00079
00087 CR_FILE *cr_open(const char *filename,
00088 cr_OpenMode mode,
00089 cr_CompressionType comtype);
00090
00098 int cr_read(CR_FILE *cr_file, void *buffer, unsigned int len);
00099
00108 int cr_write(CR_FILE *cr_file, const void *buffer, unsigned int len);
00109
00116 int cr_puts(CR_FILE *cr_file, const char *str);
00117
00125 int cr_printf(CR_FILE *cr_file, const char *format, ...);
00126
00132 int cr_close(CR_FILE *cr_file);
00133
00134 #ifdef __cplusplus
00135 }
00136 #endif
00137
00138 #endif