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

📄 memzone.h

📁 可移植的xml库。已经在windows和linux上测试通过。只使用C++ Runtine
💻 H
字号:
#ifndef LIBXML_MEMZONE_H
#define LIBXML_MEMZONE_H

//memzone.h

class CMemZone
{
	char *m_buf;
	unsigned m_used;
	unsigned m_total;
	unsigned m_limit;
	void init();
public:
	CMemZone();
	~CMemZone();

	operator char*() const;
	operator const char*() const;
	char& operator[](unsigned idx);

	unsigned getUsed() const;
	unsigned getTotal() const;
	unsigned getLimit() const;

	void setLimit(unsigned limit);

	void clean();
	void clear();
	int grow(unsigned g);
	int growTo(unsigned to);

	int append(const char *p,unsigned bytes=0);
	int preppend(const char *p,unsigned bytes=0);
	int insert(unsigned idx,const char *p,unsigned bytes=0,bool behind=true);

	void trimLeft(unsigned n);
	void trimRight(unsigned n);
	void trimMiddle(unsigned start,unsigned n);
};

inline void CMemZone::init(){memset(this,0,sizeof(*this));}
inline void CMemZone::clear()
{
	m_used=0;
	if(m_total) memset(m_buf,0,m_total);
}
inline CMemZone::operator char*() const{return (char *)m_buf;}
inline CMemZone::operator const char*() const{return m_buf;}
inline char& CMemZone::operator[](unsigned idx)
{
	assert(idx<m_total);
	return m_buf[idx];
}
inline unsigned CMemZone::getUsed() const{return m_used;}
inline unsigned CMemZone::getTotal() const{return m_total;}
inline unsigned CMemZone::getLimit() const{return m_limit;}
inline void CMemZone::setLimit(unsigned limit){m_limit=limit;}

#endif//LIBXML_MEMZONE_H

⌨️ 快捷键说明

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