CMGDK r49-rc2
公有成员 | 公有属性 | 保护成员
hgl::Stream类参考

流式数据访问基类 更多...

#include <Stream.H>

继承图,类hgl::Stream
hgl::FileStream hgl::MemStream hgl::network::HTTPStream hgl::network::RecvBufferStream hgl::PartStream

所有成员的列表。

公有成员

virtual ~Stream ()
int64 Read (void *ptr, int64 size)
int64 Write (const void *ptr, int64 size)
virtual int64 Seek (int64, SeekOrigin=soBegin)
bool Eof ()
 STREAM_RW (char, Char)
 STREAM_RW (bool, Bool)
 STREAM_RW (int8, Int8)
 STREAM_RW (int16, Int16)
 STREAM_RW (int32, Int32)
 STREAM_RW (int64, Int64)
 STREAM_RW (uint8, Uint8)
 STREAM_RW (uint16, Uint16)
 STREAM_RW (uint32, Uint32)
 STREAM_RW (uint64, Uint64)
 STREAM_RW (wchar_t, WideChar)
 STREAM_RW (float, Float)
 STREAM_RW (double, Double)
bool ReadString (wchar_t *, int)
bool ReadString (WideString &)
bool WriteString (const wchar_t *, int)
bool WriteString (const wchar_t *str)
bool WriteString (const WideString &ws)
bool ReadObject (DataObject *)
bool WriteObject (DataObject *)
template<typename T >
bool Read (T &value)
template<typename T >
bool Read (T *)
template<typename T >
bool Write (const T &value)
template<typename T >
bool Write (T *)
template<typename T >
bool Write (const T *)
template<typename T >
bool ReadArray (T *value, int count)
template<typename T >
bool ReadArray (T **, int count)
template<typename T >
bool WriteArray (T *value, int count)
template<typename T >
bool WriteArray (T **, int count)
template<typename T >
bool WriteArray (const T **, int count)
template<typename T >
void operator>> (T &value)
template<typename T >
void operator>> (T *)
template<typename T >
void operator<< (const T &value)
template<typename T >
void operator<< (T *)
template<typename T >
void operator<< (const T *)

公有属性

Property< bool > CanSeek
 当前流是否可定位
Property< bool > CanRead
 当前流是否可读
Property< bool > CanWrite
 当前流是否可写
Property< int64Position
 该属性可以访问流的当前位置,如果是-1表示无法操作
Property< int64Size
 该属性可以访问流的大小,如果为-1表示无法控制

保护成员

virtual bool GetCanSeek ()=0
virtual bool GetCanRead ()=0
virtual bool GetCanWrite ()=0
virtual int64 _Read (void *buf, int64 size)=0
virtual int64 _Write (const void *buf, int64 size)=0

详细描述

流式数据访问基类

Stream是可以从各种存储介质(内存、文件、网络等等)中读出与写入流式数据的抽象基类。

Stream类不能被实例化,它必须依靠子类中重载的各种抽象方法来实现所有的功能。


构造及析构函数文档

virtual hgl::Stream::~Stream ( ) [inline, virtual]

成员函数文档

virtual int64 hgl::Stream::_Read ( void *  buf,
int64  size 
) [protected, pure virtual]
virtual int64 hgl::Stream::_Write ( const void *  buf,
int64  size 
) [protected, pure virtual]
bool hgl::Stream::Eof ( ) [inline]
virtual bool hgl::Stream::GetCanRead ( ) [protected, pure virtual]
virtual bool hgl::Stream::GetCanSeek ( ) [protected, pure virtual]
virtual bool hgl::Stream::GetCanWrite ( ) [protected, pure virtual]
template<typename T >
void hgl::Stream::operator<< ( const T &  value) [inline]
template<typename T >
void hgl::Stream::operator<< ( T *  ) [inline]
template<typename T >
void hgl::Stream::operator<< ( const T *  ) [inline]
template<typename T >
void hgl::Stream::operator>> ( T *  ) [inline]
template<typename T >
void hgl::Stream::operator>> ( T &  value) [inline]
int64 hgl::Stream::Read ( void *  ptr,
int64  size 
) [inline]

从流中读取指定长度的数据

参数:
ptr一个内存指针,用来存放读出的数据
size要读出的数据长度
返回:
>0 成功读取出来的数据长度
-1 流已读取结束
-2 流不可读或出现错误
template<typename T >
bool hgl::Stream::Read ( T &  value) [inline]
template<typename T >
bool hgl::Stream::Read ( T *  ) [inline]
template<typename T >
bool hgl::Stream::ReadArray ( T *  value,
int  count 
) [inline]
template<typename T >
bool hgl::Stream::ReadArray ( T **  ,
int  count 
) [inline]
bool hgl::Stream::ReadObject ( DataObject obj)

从流中读取一个数据对象

参数:
obj要读取的对象
返回:
是否读取成功
bool hgl::Stream::ReadString ( wchar_t *  str,
int  max_limit 
)

从流中读取一个Pascal LongString格式字符串

参数:
str用来保存读取出的字符串用内存指针
max_limit最大长度限制
返回:
是否成功
bool hgl::Stream::ReadString ( WideString str)

从流中读取一个Pascal LongString格式字符串

参数:
str用来保存读取出的字符串用内存指针
返回:
是否成功
int64 hgl::Stream::Seek ( int64  offset,
SeekOrigin  so = soBegin 
) [virtual]

移动流读取或写入的当前位置

参数:
offset移动的偏移量
so移动的方法
返回:
移动后的位置
参见:
SeekOrigin

hgl::FileStream重载。

hgl::Stream::STREAM_RW ( uint8  ,
Uint8   
)
hgl::Stream::STREAM_RW ( float  ,
Float   
)
hgl::Stream::STREAM_RW ( bool  ,
Bool   
)
hgl::Stream::STREAM_RW ( uint16  ,
Uint16   
)
hgl::Stream::STREAM_RW ( double  ,
Double   
)
hgl::Stream::STREAM_RW ( uint64  ,
Uint64   
)
hgl::Stream::STREAM_RW ( char  ,
Char   
)
hgl::Stream::STREAM_RW ( uint32  ,
Uint32   
)
hgl::Stream::STREAM_RW ( wchar_t  ,
WideChar   
)
hgl::Stream::STREAM_RW ( int8  ,
Int8   
)
hgl::Stream::STREAM_RW ( int64  ,
Int64   
)
hgl::Stream::STREAM_RW ( int16  ,
Int16   
)
hgl::Stream::STREAM_RW ( int32  ,
Int32   
)
template<typename T >
bool hgl::Stream::Write ( const T *  ) [inline]
int64 hgl::Stream::Write ( const void *  ptr,
int64  size 
) [inline]

向流中写入指定长度的数据

参数:
ptr一个内存指针,用来存放要写入的数据
size要写入的数据长度
返回:
成功写入的数据长度
-1 可写空间已满
-2 流不可写
template<typename T >
bool hgl::Stream::Write ( T *  ) [inline]
template<typename T >
bool hgl::Stream::Write ( const T &  value) [inline]
template<typename T >
bool hgl::Stream::WriteArray ( T **  ,
int  count 
) [inline]
template<typename T >
bool hgl::Stream::WriteArray ( const T **  ,
int  count 
) [inline]
template<typename T >
bool hgl::Stream::WriteArray ( T *  value,
int  count 
) [inline]
bool hgl::Stream::WriteObject ( DataObject obj)

向流中写入一个数据对象

参数:
obj要写入的对象
返回:
是否写入成功
bool hgl::Stream::WriteString ( const wchar_t *  str) [inline]
bool hgl::Stream::WriteString ( const wchar_t *  str,
int  len 
)

向流中写入一个Pascal LongString格式的字符串

参数:
str要写入的字符串内存指针
返回:
写入是否成功
bool hgl::Stream::WriteString ( const WideString ws) [inline]

成员数据文档

当前流是否可读

当前流是否可定位

当前流是否可写

该属性可以访问流的当前位置,如果是-1表示无法操作

该属性可以访问流的大小,如果为-1表示无法控制


该类的文档由以下文件生成:
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义