![]() |
ShitEngine 1.4.2
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
|
类型化缓存 —— 统一「查缓存 → 工厂创建 → 加载 → 插入」模式 更多...
#include <ResourceManager.h>
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 |
类型化缓存 —— 统一「查缓存 → 工厂创建 → 加载 → 插入」模式
加载失败不缓存:下次请求重试(文件后补/修复后自愈)。 经 TypedCacheBase 基类进入管理器注册表(无跨 DLL 模板实例化问题)。
| using HashType = typename ResourceTraits<Res>::HashType |
| using KeyType = typename ResourceTraits<Res>::KeyType |
|
inlineexplicit |
|
inlineoverridevirtual |
实现了 TypedCacheBase.
|
inline |
|
inlineoverridevirtual |
遍历缓存内全部资源封装(uuid 查询用;顺序不保证)
实现了 TypedCacheBase.
|
inline |
查缓存命中直接返回;未命中用 traits 工厂创建并 load(),成功才入缓存
|
inlineoverridevirtual |
实现了 TypedCacheBase.
|
inlineoverridevirtual |
日志用类型名(来自 ResourceTraits<T>::kTypeName)
实现了 TypedCacheBase.
|
inline |