compress_zlib.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /* Copyright (c) 2003, Roger Dingledine
  2. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
  3. * Copyright (c) 2007-2017, The Tor Project, Inc. */
  4. /* See LICENSE for licensing information */
  5. /**
  6. * \file compress_zlib.h
  7. * \brief Header for compress_zlib.c
  8. **/
  9. #ifndef TOR_COMPRESS_ZLIB_H
  10. #define TOR_COMPRESS_ZLIB_H
  11. int
  12. tor_zlib_method_supported(void);
  13. const char *
  14. tor_zlib_get_version_str(void);
  15. const char *
  16. tor_zlib_get_header_version_str(void);
  17. int
  18. tor_zlib_compress(char **out, size_t *out_len,
  19. const char *in, size_t in_len,
  20. compress_method_t method);
  21. int
  22. tor_zlib_uncompress(char **out, size_t *out_len,
  23. const char *in, size_t in_len,
  24. compress_method_t method,
  25. int complete_only,
  26. int protocol_warn_level);
  27. /** Internal state for an incremental zlib/gzip compression/decompression. */
  28. typedef struct tor_zlib_compress_state_t tor_zlib_compress_state_t;
  29. tor_zlib_compress_state_t *
  30. tor_zlib_compress_new(int compress,
  31. compress_method_t method,
  32. compression_level_t compression_level);
  33. tor_compress_output_t
  34. tor_zlib_compress_process(tor_zlib_compress_state_t *state,
  35. char **out, size_t *out_len,
  36. const char **in, size_t *in_len,
  37. int finish);
  38. void
  39. tor_zlib_compress_free(tor_zlib_compress_state_t *state);
  40. size_t
  41. tor_zlib_compress_state_size(const tor_zlib_compress_state_t *state);
  42. size_t
  43. tor_zlib_get_total_allocation(void);
  44. #endif // TOR_COMPRESS_ZLIB_H.