lzma.h

来自「LZMA压缩/解压缩」· C头文件 代码 · 共 56 行

H
56
字号
/*************************************************
程序:江浩
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 + =
减小字号Ctrl + -
显示快捷键?