⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lzma.h

📁 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 + -