comp.h
上传用户:yisoukefu
上传日期:2020-08-09
资源大小:39506k
文件大小:2k
源码类别:

其他游戏

开发平台:

Visual C++

  1. #ifndef HEADER_COMP_H
  2. #define HEADER_COMP_H
  3. #include <openssl/crypto.h>
  4. #ifdef  __cplusplus
  5. extern "C" {
  6. #endif
  7. typedef struct comp_ctx_st COMP_CTX;
  8. typedef struct comp_method_st
  9. {
  10. int type; /* NID for compression library */
  11. const char *name; /* A text string to identify the library */
  12. int (*init)(COMP_CTX *ctx);
  13. void (*finish)(COMP_CTX *ctx);
  14. int (*compress)(COMP_CTX *ctx,
  15. unsigned char *out, unsigned int olen,
  16. unsigned char *in, unsigned int ilen);
  17. int (*expand)(COMP_CTX *ctx,
  18.       unsigned char *out, unsigned int olen,
  19.       unsigned char *in, unsigned int ilen);
  20. /* The following two do NOTHING, but are kept for backward compatibility */
  21. long (*ctrl)(void);
  22. long (*callback_ctrl)(void);
  23. } COMP_METHOD;
  24. struct comp_ctx_st
  25. {
  26. COMP_METHOD *meth;
  27. unsigned long compress_in;
  28. unsigned long compress_out;
  29. unsigned long expand_in;
  30. unsigned long expand_out;
  31. CRYPTO_EX_DATA ex_data;
  32. };
  33. COMP_CTX *COMP_CTX_new(COMP_METHOD *meth);
  34. void COMP_CTX_free(COMP_CTX *ctx);
  35. int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen,
  36. unsigned char *in, int ilen);
  37. int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen,
  38. unsigned char *in, int ilen);
  39. COMP_METHOD *COMP_rle(void );
  40. COMP_METHOD *COMP_zlib(void );
  41. /* BEGIN ERROR CODES */
  42. /* The following lines are auto generated by the script mkerr.pl. Any changes
  43.  * made after this point may be overwritten when the script is next run.
  44.  */
  45. void ERR_load_COMP_strings(void);
  46. /* Error codes for the COMP functions. */
  47. /* Function codes. */
  48. /* Reason codes. */
  49. #ifdef  __cplusplus
  50. }
  51. #endif
  52. #endif