35 #ifndef AIMS_COMPRESSION_LZ_H
36 #define AIMS_COMPRESSION_LZ_H
44 #define LZBUFMASK ( (LZBUFSIZE) - 1 )
56 static int _wrap(
size_t pos );
57 static int _distance(
int diff );
60 void _toBuf(
const byte*,
size_t sz );
61 void _bufCpy(
byte* dst,
int pos,
size_t sz );
62 int _nMatch(
int pos,
const byte* p,
int nLimit );
81 size_t compress(
byte* dst,
const byte* src,
size_t sz );
88 uint _updateTable(
uint hash,
const byte* src,
uint pos,
int len );
109 int _get(
const byte*& src,
const byte* srcEnd,
int n );
157 int end = begin + sz;
161 memcpy(
_buf + begin, src, left );
162 memcpy(
_buf, src + left, sz - left );
165 memcpy(
_buf + begin, src, sz );
174 int begin =
_wrap( pos );
175 int end = begin + sz;
179 memcpy( dst,
_buf + begin, left );
180 memcpy( dst + left,
_buf, sz - left );
183 memcpy( dst,
_buf + begin, sz );
static int _wrap(size_t pos)
int _nMatch(int pos, const byte *p, int nLimit)
void _bufCpy(byte *dst, int pos, size_t sz)
static int _distance(int diff)
static size_t calcMaxBuf(size_t rawSz)
size_t compress(byte *dst, const byte *src, size_t sz)
bool decompress(byte *dst, size_t *dstSz, const byte *src, size_t *srcSz)
static size_t calcMaxBuf(size_t rawSz)