XBufferIO

Inherited from NULL

Inherited by NULL

Friend class NULL

Description

XBufferIO是为文件IO构建的工具类,它从内存中开辟一块内存专门用于缓冲写入文件或从文件中读取的内容,在缓冲区满的时候一次性写出或读入新的文件内容,以提高文件IO的速度,从而有效避免频繁的硬盘IO操作所导致的性能瓶颈。

Members

Public interface


Path m_strPath

被处理文件的路径

DBVersion m_Version

被处理文件的版本号

void* m_pFp

被处理文件的句柄

int64 m_liSize

读入文件的大小

int m_iOpenMode

文件打开的模式,分为二进制读取、二进制写出、文本读取、文本写出四种模式。

char * m_pBuf

内容缓冲区地址

int m_iBufSize

内容缓冲区大小

int m_iBufMode

缓冲区模式,二进制或者文本

char m_cKeyPrefix

文件模式下,关键字的前导字符

int m_iEncode

文本模式下的文本编码

char * g_curBufPos

在缓冲区中的文件内容的当前访问地址

size_t g_iBufFreeSize

缓冲区剩余空间大小

int64 m_DoneSize

已经处理完的文件内容总大小(不包含缓冲区中的内容)


XBufferIO(XBufferIOType type,const char * path = 0,int buf_size = MEG)

~XBufferIO()

void * getFileHandle()

bool open(IOFlag f)

bool isEnd()

void close()

TypeID getEncode()

XBufferIOType type()

int64 size()

void setPath(const char * path)

int64 getCurPos()

void setTotalSize(int64 t_size)

void setCurPos(int64 pos, bool bRead = false)

void setKeywordPrefix(char c)

bool pumpBuffer(bool bReverse = false)

void jumpBufferEnd()

bool backward(int size)

bool forward(int size)

void resetBuffer()

void flushBuffer()

void setBufferSize(int size)

void showProgress()

void writeChar(char c)

char readChar()

const DBVersion & getVersion()

void setVersion(int major, int minor, int sub, int build)