bmz.h

Go to the documentation of this file.
00001 
00020 #ifndef HYPERTABLE_BMZ_H
00021 #define HYPERTABLE_BMZ_H
00022 
00023 #include "Common/compat-c.h"
00024 
00025 #define BMZ_VER_NUM             0x0110
00026 #define BMZ_VER_MAJOR           (BMZ_VER_NUM >> 12)
00027 #define BMZ_VER_MINOR           ((BMZ_VER_NUM >> 8) & 0xf)
00028 #define BMZ_VER_RELEASE         ((BMZ_VER_NUM >> 4) & 0xf)
00029 #define BMZ_VER_PATCH           (BMZ_VER_NUM & 0xf)
00030 
00031 /* Error codes */
00032 #define BMZ_E_OK                0
00033 #define BMZ_E_ERROR           (-1)
00034 #define BMZ_E_INPUT_OVERRUN   (-4)
00035 #define BMZ_E_OUTPUT_OVERRUN  (-5)
00036 
00037 
00038 /* APIs */
00039 
00043 HT_EXTERN(int)
00044 bmz_init();
00045 
00060 HT_EXTERN(int)
00061 bmz_pack(const void *in, size_t in_len, void *out, size_t *out_len_p,
00062          size_t offset, size_t fp_len, unsigned flags, void *work_mem);
00063 
00075 HT_EXTERN(int)
00076 bmz_unpack(const void *in, size_t in_len, void *out, size_t *out_len_p,
00077            void *work_mem);
00078 
00084 HT_EXTERN(size_t)
00085 bmz_pack_buflen(size_t in_len);
00086 
00096 HT_EXTERN(size_t)
00097 bmz_pack_worklen(size_t in_len, size_t fp_len);
00098 
00104 HT_EXTERN(size_t)
00105 bmz_unpack_worklen(size_t out_len);
00106 
00112 HT_EXTERN(int)
00113 bmz_set_verbosity(int verbosity);
00114 
00117 typedef void (*BmzOutProc)(const char *msg, size_t len);
00118 
00121 typedef void (*BmzDieProc)(const char *msg) HT_NORETURN;
00122 
00128 HT_EXTERN(BmzOutProc)
00129 bmz_set_out_proc(BmzOutProc proc);
00130 
00136 HT_EXTERN(BmzDieProc)
00137 bmz_set_die_proc(BmzDieProc proc);
00138 
00144 HT_EXTERN(unsigned)
00145 bmz_checksum(const void *in, size_t in_len);
00146 
00147 HT_EXTERN(unsigned)
00148 bmz_update_checksum(unsigned s, const void *in, size_t in_len);
00149 
00150 #endif /* HYPERTABLE_BMZ_H */
00151 /* vim: et sw=2
00152  */

Generated on Sat Aug 15 08:52:18 2009 for hypertable by  doxygen 1.5.9