first commit
This commit is contained in:
39
inc/hgl/io/InputStream.h
Normal file
39
inc/hgl/io/InputStream.h
Normal file
@@ -0,0 +1,39 @@
|
||||
#ifndef HGL_IO_INPUT_STREAM_INCLUDE
|
||||
#define HGL_IO_INPUT_STREAM_INCLUDE
|
||||
|
||||
#include<hgl/type/DataType.h>
|
||||
#include<hgl/io/SeekAccess.h>
|
||||
namespace hgl
|
||||
{
|
||||
namespace io
|
||||
{
|
||||
/**
|
||||
* 数据输入流基类
|
||||
*/
|
||||
class InputStream:public SeekAccess ///数据输入流基类
|
||||
{
|
||||
public:
|
||||
|
||||
virtual ~InputStream()=default;
|
||||
|
||||
virtual void Close()=0; ///<关闭输入流
|
||||
|
||||
virtual int64 Read(void *,int64)=0; ///<读取数据
|
||||
virtual int64 Peek(void *,int64)=0; ///<预览数据
|
||||
virtual int64 ReadFully(void *buf,int64 buf_size){return Read(buf,buf_size);} ///<充分读取,保证读取到指定长度的数据(不计算超时)
|
||||
|
||||
virtual bool CanRestart()const=0; ///<是否可以复位
|
||||
virtual bool CanSeek()const=0; ///<是否可以定位
|
||||
virtual bool CanSize()const=0; ///<是否可以取得尺寸
|
||||
virtual bool CanPeek()const=0; ///<是否可以预览数据
|
||||
|
||||
virtual bool Restart()=0; ///<复位访问指针
|
||||
virtual int64 Skip(int64)=0; ///<跳过指定字节不访问
|
||||
virtual int64 Seek(int64,SeekOrigin=SeekOrigin::Begin)=0; ///<移动访问指针
|
||||
virtual int64 Tell()const=0; ///<返回当前访问位置
|
||||
virtual int64 GetSize()const=0; ///<取得流长度
|
||||
virtual int64 Available()const=0; ///<剩下的可以不受阻塞访问的字节数
|
||||
};//class InputStream
|
||||
}//namespace io
|
||||
}//namespace hgl
|
||||
#endif//HGL_IO_INPUT_STREAM_INCLUDE
|
Reference in New Issue
Block a user