#ifndef COMPRESSION_H
#define COMPRESSION_H  1


/* ========================================================================== */
/* Include files */

#include "config.h"


#if !CFG_CMPR_DISABLE


/*! \addtogroup COMPRESSION */
/* @{ */


/* ========================================================================== */
/* Constants */

/*! \name Compression algorithms */
/*@{*/
#  define CMPR_ALG_DEFLATE  0x0001U  /*!< \brief DEFLATE according to RFC1951 */
/*@}*/


/* @} */


/* ========================================================================== */
/* Function prototypes */

extern void*  cmpr_stream_constructor(unsigned int, int,
                             ssize_t  (*tx_send)(int, const void*, size_t, int),
                             ssize_t  (*rx_recv)(int, void*, size_t, int) );
extern void  cmpr_stream_destructor(void*);
extern posix_ssize_t  cmpr_send(void*, const void*, size_t);
extern int  cmpr_flush(void*);
extern int  cmpr_terminate(void*);
extern posix_ssize_t  cmpr_recv(void*, void*, size_t, int);
extern int  cmpr_init(void);
extern void  cmpr_exit(void);


#endif  /* !CFG_CMPR_DISABLE */


#endif  /* COMPRESSION_H */

/* EOF */
