CMAssetsManage/inc/hgl/asset/AssetSource.h

60 lines
1.5 KiB
C
Raw Permalink Normal View History

2025-05-10 00:59:52 +08:00
#pragma once
2020-01-12 19:33:39 +08:00
2020-09-05 18:35:56 +08:00
#include<hgl/type/String.h>
2020-01-13 11:18:25 +08:00
2020-01-12 19:33:39 +08:00
namespace hgl
{
2020-01-13 11:18:25 +08:00
namespace io
{
class InputStream;
}//namespace io
2025-05-10 00:59:52 +08:00
namespace asset
2020-01-12 19:33:39 +08:00
{
2020-01-13 11:18:25 +08:00
/**
*
*/
2025-05-10 01:08:28 +08:00
enum class AssetIndexType
2020-01-13 11:18:25 +08:00
{
2025-05-10 01:08:28 +08:00
Unknow=0, ///<未知类型
ID, ///<ID
Name, ///<字符串名称
2020-01-13 11:18:25 +08:00
2025-05-10 01:08:28 +08:00
ENUM_CLASS_RANGE(ID,Name)
};//enum class AssetIndexType
2020-01-13 11:18:25 +08:00
/**
*
*/
2025-05-10 00:59:52 +08:00
class AssetSource
2020-01-13 11:18:25 +08:00
{
2025-01-07 12:34:01 +08:00
U8String uri_short_name;
2020-01-13 11:18:25 +08:00
public:
2025-01-07 12:34:01 +08:00
const U8String &GetURI()const{return uri_short_name;}
2020-01-13 11:18:25 +08:00
public:
2025-05-10 00:59:52 +08:00
AssetSource(const U8String &);
virtual ~AssetSource();
2020-01-13 11:18:25 +08:00
virtual bool hasAnonymousAccess ()const{return false;}
virtual bool hasNameAccess ()const{return false;}
virtual bool hasIDAccess ()const{return false;}
virtual bool hasPositionAccess ()const{return false;}
public:
2025-01-07 12:34:01 +08:00
virtual io::InputStream * Open (const U8String &){return nullptr;}
2025-05-10 00:59:52 +08:00
virtual AssetSource * CreateSubSource (const U8String &){return nullptr;}
};//class AssetSource
2020-01-13 11:18:25 +08:00
2025-05-10 00:59:52 +08:00
AssetSource *CreateSourceByFilesystem(const U8String &sn,const OSString &pathname,const bool only_read);
2020-01-13 11:18:25 +08:00
2025-05-10 00:59:52 +08:00
AssetSource *GetSource(const U8String &uri_short_name);
2020-01-13 11:18:25 +08:00
2025-01-07 12:34:01 +08:00
io::InputStream *GetAssets(const U8String &uri);
2025-05-10 00:59:52 +08:00
}//namespace asset
2020-01-12 19:33:39 +08:00
}//namespace hgl