ioapi_buf.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /* ioapi_buf.h -- IO base function header for compress/uncompress .zip
  2. files using zlib + zip or unzip API
  3. This version of ioapi is designed to buffer IO.
  4. Copyright (C) 2012-2017 Nathan Moinvaziri
  5. https://github.com/nmoinvaz/minizip
  6. This program is distributed under the terms of the same license as zlib.
  7. See the accompanying LICENSE file for the full text of the license.
  8. */
  9. #ifndef _IOAPI_BUF_H
  10. #define _IOAPI_BUF_H
  11. #include <stdio.h>
  12. #include <stdlib.h>
  13. #include <string.h>
  14. #include "zlib.h"
  15. #include "ioapi.h"
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. voidpf ZCALLBACK fopen_buf_func(voidpf opaque, const char* filename, int mode);
  20. voidpf ZCALLBACK fopen64_buf_func(voidpf opaque, const void* filename, int mode);
  21. voidpf ZCALLBACK fopendisk_buf_func(voidpf opaque, voidpf stream_cd, uint32_t number_disk, int mode);
  22. voidpf ZCALLBACK fopendisk64_buf_func(voidpf opaque, voidpf stream_cd, uint32_t number_disk, int mode);
  23. uint32_t ZCALLBACK fread_buf_func(voidpf opaque, voidpf stream, void* buf, uint32_t size);
  24. uint32_t ZCALLBACK fwrite_buf_func(voidpf opaque, voidpf stream, const void* buf, uint32_t size);
  25. long ZCALLBACK ftell_buf_func(voidpf opaque, voidpf stream);
  26. uint64_t ZCALLBACK ftell64_buf_func(voidpf opaque, voidpf stream);
  27. long ZCALLBACK fseek_buf_func(voidpf opaque, voidpf stream, uint32_t offset, int origin);
  28. long ZCALLBACK fseek64_buf_func(voidpf opaque, voidpf stream, uint64_t offset, int origin);
  29. int ZCALLBACK fclose_buf_func(voidpf opaque,voidpf stream);
  30. int ZCALLBACK ferror_buf_func(voidpf opaque,voidpf stream);
  31. typedef struct ourbuffer_s {
  32. zlib_filefunc_def filefunc;
  33. zlib_filefunc64_def filefunc64;
  34. } ourbuffer_t;
  35. void fill_buffer_filefunc(zlib_filefunc_def* pzlib_filefunc_def, ourbuffer_t *ourbuf);
  36. void fill_buffer_filefunc64(zlib_filefunc64_def* pzlib_filefunc_def, ourbuffer_t *ourbuf);
  37. #ifdef __cplusplus
  38. }
  39. #endif
  40. #endif