Files
envi-code/SourceCode/Code2026/tg_shs/inc/subgeo/TWArchive.h
T
2026-09-28 15:28:50 +08:00

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