ShitEngine 1.4.2
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
载入中...
搜索中...
未找到
TypedResourceCache< Res > 模板类 参考

类型化缓存 —— 统一「查缓存 → 工厂创建 → 加载 → 插入」模式 更多...

#include <ResourceManager.h>

类 TypedResourceCache< Res > 继承关系图:
TypedCacheBase

Public 类型

using KeyType = typename ResourceTraits<Res>::KeyType
using HashType = typename ResourceTraits<Res>::HashType

Public 成员函数

 TypedResourceCache (ResourceManager &owner)
Res * getOrLoad (const KeyType &key)
 查缓存命中直接返回;未命中用 traits 工厂创建并 load(),成功才入缓存
Res * find (const KeyType &key) const
bool unload (const KeyType &key)
void clear () override
size_t size () const override
std::string_view typeName () const override
 日志用类型名(来自 ResourceTraits<T>::kTypeName)
void forEachResource (const std::function< void(Resource *)> &fn) const override
 遍历缓存内全部资源封装(uuid 查询用;顺序不保证)
Public 成员函数 继承自 TypedCacheBase
virtual ~TypedCacheBase ()=default

详细描述

template<typename Res>
class Shit::TypedResourceCache< Res >

类型化缓存 —— 统一「查缓存 → 工厂创建 → 加载 → 插入」模式

加载失败不缓存:下次请求重试(文件后补/修复后自愈)。 经 TypedCacheBase 基类进入管理器注册表(无跨 DLL 模板实例化问题)。

成员类型定义说明

◆ HashType

template<typename Res>
using HashType = typename ResourceTraits<Res>::HashType

◆ KeyType

template<typename Res>
using KeyType = typename ResourceTraits<Res>::KeyType

构造及析构函数说明

◆ TypedResourceCache()

template<typename Res>
TypedResourceCache ( ResourceManager & owner)
inlineexplicit

成员函数说明

◆ clear()

template<typename Res>
void clear ( )
inlineoverridevirtual

实现了 TypedCacheBase.

◆ find()

template<typename Res>
Res * find ( const KeyType & key) const
inline

◆ forEachResource()

template<typename Res>
void forEachResource ( const std::function< void(Resource *)> & fn) const
inlineoverridevirtual

遍历缓存内全部资源封装(uuid 查询用;顺序不保证)

实现了 TypedCacheBase.

◆ getOrLoad()

template<typename Res>
Res * getOrLoad ( const KeyType & key)
inline

查缓存命中直接返回;未命中用 traits 工厂创建并 load(),成功才入缓存

◆ size()

template<typename Res>
size_t size ( ) const
inlineoverridevirtual

实现了 TypedCacheBase.

◆ typeName()

template<typename Res>
std::string_view typeName ( ) const
inlineoverridevirtual

日志用类型名(来自 ResourceTraits<T>::kTypeName)

实现了 TypedCacheBase.

◆ unload()

template<typename Res>
bool unload ( const KeyType & key)
inline

该类的文档由以下文件生成: