Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
|
Helper class for systems that have an expensive cacheable conversion process when loading files. More...
#include <CacheLoader.h>
Public Member Functions | |
CCacheLoader (PIVFS vfs, const std::wstring &fileExtension) | |
Status | TryLoadingCached (const VfsPath &sourcePath, const MD5 &initialHash, u32 version, VfsPath &loadPath) |
Attempts to find a valid cached which can be loaded. More... | |
bool | CanUseArchiveCache (const VfsPath &sourcePath, const VfsPath &archiveCachePath) |
Determines whether we can safely use the archived cache file, or need to re-convert the source file. More... | |
VfsPath | ArchiveCachePath (const VfsPath &sourcePath) const |
Return the path of the archive cache for the given source file. More... | |
VfsPath | LooseCachePath (const VfsPath &sourcePath, const MD5 &initialHash, u32 version) |
Return the path of the loose cache for the given source file. More... | |
Private Attributes | |
PIVFS | m_VFS |
std::wstring | m_FileExtension |
Helper class for systems that have an expensive cacheable conversion process when loading files.
Conversion output can be automatically cached as loose files, indexed by a hash of the file's timestamp and size plus any other data the caller provides. This allows developers and modders to easily produce new files, with the conversion happening transparently.
For release packages, files can be precached by appending ".cached.{extension}" to their name, which will be used instead of doing runtime conversion. These cache files will typically be packed into an archive for faster loading; if no archive cache is available then the source file will be converted and stored as a loose cache file instead.
CCacheLoader::CCacheLoader | ( | PIVFS | vfs, |
const std::wstring & | fileExtension | ||
) |
Return the path of the archive cache for the given source file.
bool CCacheLoader::CanUseArchiveCache | ( | const VfsPath & | sourcePath, |
const VfsPath & | archiveCachePath | ||
) |
Determines whether we can safely use the archived cache file, or need to re-convert the source file.
VfsPath CCacheLoader::LooseCachePath | ( | const VfsPath & | sourcePath, |
const MD5 & | initialHash, | ||
u32 | version | ||
) |
Return the path of the loose cache for the given source file.
Status CCacheLoader::TryLoadingCached | ( | const VfsPath & | sourcePath, |
const MD5 & | initialHash, | ||
u32 | version, | ||
VfsPath & | loadPath | ||
) |
Attempts to find a valid cached which can be loaded.
Returns INFO::OK and sets loadPath to the cached file if there is one. Returns INFO::SKIPPED and sets loadPath to the desire loose cache name if there isn't one. Returns a value < 0 on error (e.g. the source file doesn't exist). No error is logged or thrown.
|
private |
|
private |