#ifndef __UTIL_FILE_BUF_H__
#define __UTIL_FILE_BUF_H__

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

	virtual bool Load(const char * filename, int extra_bytes = 0);
	virtual void Free();

	// 此函数将内部的buf_清为NULL，析构的时候就不会释放此内存，
	// 外面必须通过 buf() 得到指针，并负责释放工作
	void Clear();

	unsigned char *buf()	{ return buf_; }

	// 获得的len，包括了extra_bytes
	long len()				{ return len_; }


private:
	unsigned char * buf_;
	long	   len_;
};

#endif

