CMCore/inc/hgl/io/SeekAccess.h

37 lines
1.7 KiB
C
Raw Normal View History

2019-08-19 19:19:58 +08:00
#ifndef HGL_IO_SEEK_ACCESS_INCLUDE
#define HGL_IO_SEEK_ACCESS_INCLUDE
#include<hgl/type/DataType.h>
namespace hgl
{
namespace io
{
enum class SeekOrigin /// 资源偏移方向枚举
{
Begin=0, ///<从资源最开始处开始offset必须大于0。移到资源的offset位置
Current, ///<从资源当前位置开始移到资源的Position+offset位置
End ///<从资源的结束位置开始offset必须小于0表示结束前的字符数
};//enum SeekOrigin
/**
* 访
*/
class SeekAccess
{
public:
virtual ~SeekAccess()=default;
virtual bool CanRestart()const=0; ///<是否可以复位
virtual bool CanSeek()const=0; ///<是否可以定位
virtual bool CanSize()const=0; ///<是否可以取得尺寸
virtual bool Restart()=0; ///<复位访问指针
virtual int64 Seek(int64,SeekOrigin=SeekOrigin::Begin)=0; ///<移动访问指针
virtual int64 Tell()const=0; ///<返回当前访问位置
virtual int64 GetSize()const=0; ///<取得文件长度
};//class SeekAccess
}//namespace io
}//namespace hgl
#endif//HGL_IO_SEEK_ACCESS_INCLUDE