106 lines
2.3 KiB
C++
106 lines
2.3 KiB
C++
//-----------------------------------------------------------------------------+
|
|
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
|
|
// = FileName : TWArchive.h
|
|
// = Version : ver2.0
|
|
// = Author : xlc
|
|
// = CreateDate : 2002-09-09
|
|
// = Description: 类的声明
|
|
// = Maintainers:
|
|
//
|
|
//-----------------------------------------------------------------------------+
|
|
#ifndef _TWARCHIVE_H_
|
|
#define _TWARCHIVE_H_
|
|
|
|
//数据流
|
|
class GEOAPI TWArchive
|
|
{
|
|
public:
|
|
|
|
TWArchive();
|
|
|
|
virtual ~TWArchive();
|
|
|
|
//清空并初始化为初始状态
|
|
virtual void Clear();
|
|
|
|
//移动游标
|
|
virtual void MoveTo(long i);
|
|
|
|
//当前游标处读取数据,不移动游标
|
|
virtual void Read(void *p, long size) = 0;
|
|
|
|
//当前游标处写入数据,自动增长数据长度!不移动游标
|
|
virtual void Write(void *p, long size) = 0;
|
|
|
|
long GetLength()const;
|
|
|
|
long GetCur()const;
|
|
|
|
bool IsOut()const;
|
|
|
|
//移动游标
|
|
void MoveToFirst();
|
|
|
|
void MoveToLast();
|
|
|
|
void MoveOut();
|
|
|
|
void MoveToNext(long step = 1);
|
|
|
|
void MoveToPre(long step = 1);
|
|
|
|
//当前游标位置读取,不移动游标
|
|
void Read(char &val);
|
|
void Read(bool &val);
|
|
void Read(short &val);
|
|
void Read(int &val);
|
|
void Read(long &val);
|
|
void Read(float &val);
|
|
void Read(double &val);
|
|
void Read(long double &val);
|
|
|
|
//当前游标位置写,不移动游标
|
|
void Write(char val);
|
|
void Write(bool val);
|
|
void Write(short val);
|
|
void Write(int val);
|
|
void Write(long val);
|
|
void Write(float val);
|
|
void Write(double val);
|
|
void Write(long double val);
|
|
|
|
//末尾添加并后移游标
|
|
void Append(void *p,long size);
|
|
|
|
TWArchive& operator << (char val);
|
|
TWArchive& operator << (bool val);
|
|
TWArchive& operator << (short val);
|
|
TWArchive& operator << (int val);
|
|
TWArchive& operator << (long val);
|
|
TWArchive& operator << (float val);
|
|
TWArchive& operator << (double val);
|
|
TWArchive& operator << (long double val);
|
|
|
|
//当前游标位置读数据并后移游标
|
|
TWArchive& operator >> (char &val);
|
|
TWArchive& operator >> (bool &val);
|
|
TWArchive& operator >> (short &val);
|
|
TWArchive& operator >> (int &val);
|
|
TWArchive& operator >> (long &val);
|
|
TWArchive& operator >> (float &val);
|
|
TWArchive& operator >> (double &val);
|
|
TWArchive& operator >> (long double &val);
|
|
|
|
bool operator > (const TWArchive &ar)const;
|
|
bool operator < (const TWArchive &ar)const;
|
|
|
|
protected:
|
|
|
|
//字节数
|
|
long m_iLength;
|
|
|
|
//游标,始终>=0!
|
|
long m_iCur;
|
|
};
|
|
|
|
#endif |