📄 lzma.h
字号:
/*************************************************
程序:江浩
2009.02
邮箱:jhandwy@163.com
版权申明:可以无条件使用
如果您有什么好的意见和建议,可以和我Email联系:)
**************************************************/
//---------------------------------------------------------------------------
#ifndef _LZMA_H_
#define _LZMA_H_
//---------------------------------------------------------------------------
namespace JHCommonLib
{
class LZMA
{
public:
virtual ~LZMA();
//nBufferNum表示解压后内容的缓冲区数量,
//数量越大,多线程情况下并法度约高,但耗内存越大
static LZMA* newInstance(int nBufferNum = 5, int nLevel = 4);
//设置未压缩数据的最大长度
virtual void setMaxUncompressedDataLength(size_t nLength) = 0;//默认10MB
//缓冲区解锁
virtual void unlockBuffer(int nBuffID) = 0;
/***************解压缩接口*********************************/
virtual int getUnCompressedSize(const unsigned char* pchrCompressedData) = 0;
virtual bool decompress(const unsigned char* pchrCompressedData, size_t nInSize, unsigned char* pchrOut, size_t* pnOutSize/*in:缓冲大小,out:写入数据长度*/) = 0;
//使用缓冲区存储解压缩后的内容,返回缓冲区,
//缓冲区返回后处于加锁状态,使用结束后,需解锁
virtual const unsigned char* decompress(const unsigned char* pchrCompressedData, size_t nInSize, size_t* pnOutSize/*解压缩后数据长度*/, int* pnBuffID/*缓冲区标记*/) = 0;
/********************************************************/
/***************压缩接口*********************************/
virtual bool compress(const unsigned char* pchrData, size_t nDataSize, unsigned char* pchrCompressedDataBuffer, size_t* pnOutSize/*in:缓冲大小,out:写入数据长度*/) = 0;
//使用缓冲区存储压缩后的内容
//缓冲区返回后处于加锁状态,使用结束后,需解锁
virtual const unsigned char* compress(const unsigned char* pchrData, size_t nDataSize, size_t *pnCompressedDataSize, int* pnBuffID) = 0;
/********************************************************/
virtual const char* getLastError() = 0;
};
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -