00001
00023 #ifndef _LIBCOMPREX_IO_H_
00024 #define _LIBCOMPREX_IO_H_
00025
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029
00030 #include <libcomprex/file.h>
00031 #include <libcomprex/fp.h>
00032 #include <libcomprex/types.h>
00033
00041 CxFile *cxMakeFile(const char *filename);
00042
00056 CxFP *cxOpenFile(const char *path, CxAccessMode mode);
00057
00071 CxFP *cxOpenFileHandle(CxFile *file, CxAccessMode mode);
00072
00085 CxFP *cxOpenStream(FILE *stream);
00086
00100 CxFP *cxOpenBuffer(char *buffer, size_t size);
00101
00114 void cxClose(CxFP *fp);
00115
00131 size_t cxRead(void *ptr, size_t size, size_t nmemb, CxFP *fp);
00132
00148 size_t cxWrite(const void *ptr, size_t size, size_t nmemb, CxFP *fp);
00149
00164 char *cxGets(char *buffer, size_t size, CxFP *fp);
00165
00176 void cxSeek(CxFP *fp, long offset, int whence);
00177
00186 void cxRewind(CxFP *fp);
00187
00198 long cxTell(CxFP *fp);
00199
00209 void cxClearErr(CxFP *fp);
00210
00222 int cxEof(CxFP *fp);
00223
00235 int cxError(CxFP *fp);
00236
00249 const char *cxStrError(CxFP *fp, int errnum);
00250
00260 CxStatus cxExtractFile(CxFile *file, const char *destPath);
00261
00262 #ifdef __cplusplus
00263 }
00264 #endif
00265
00266 #endif