huffypacker.h

来自「有关huffman的程序对大家学习数据结构有好处但不是所有人都用得上」· C头文件 代码 · 共 46 行

H
46
字号
// HuffyPacker.h: interface for the HuffyPacker class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_HUFFYPACKER_H__8794A12F_F48A_4566_93C7_7B081B65E32D__INCLUDED_)
#define AFX_HUFFYPACKER_H__8794A12F_F48A_4566_93C7_7B081B65E32D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "ProgressListener.h"
#include "WinLog.h"

#define HUFFYMAJORVER 1
#define HUFFYMINORVER 0

class HuffyPacker  
{
public:
	HuffyPacker();
	virtual ~HuffyPacker();

	void SetUIHelpers(ProgressListener *NewListener, WinLog *NewLogTarget);
	void SetFileNames(const char *InFileName, const char *OutFileName);

	unsigned int Encode();
	unsigned int Decode();

	static unsigned int ThreadEncoder(void *Self);
	static unsigned int ThreadDecoder(void *Self);

private:
	char *InFN, *OutFN;
	ProgressListener *MyListener;
	WinLog *MyLog;

	void WritePackedHeader(FILE *TargetFile, unsigned int OrigSize);
	unsigned char ReadPackedHeader(FILE *SourceFile, unsigned int &RetOrigSize);

	FILE *Loggedfopen(const char *FileName, bool Read);
	unsigned int GetFileLength(const char *FileName);
};

#endif // !defined(AFX_HUFFYPACKER_H__8794A12F_F48A_4566_93C7_7B081B65E32D__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?