Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
Asset::Record< Key, AssetClass > Struct Template Reference

Internal storage for one asset entry managed by AssetManager. More...

#include <Asset.h>

Collaboration diagram for Asset::Record< Key, AssetClass >:

Public Types

using Result = LoadResult<Key, AssetClass>

Public Member Functions

 Record (Key key)
 Creates an unloaded record for an asset key.
void resetFuture ()
 Starts a new ready future for the current generation.

Public Attributes

Key key
 Asset lookup key for this record.
std::unique_ptr< AssetClass > asset
 Owned payload instance, or nullptr while no payload is available.
LoadState state = UNLOADED
 Current CPU loading state for the record.
uint64_t generation = 0
 Monotonic version incremented when the payload lifecycle restarts.
std::string lastError
 Last failure message reported for this record.
std::shared_ptr< std::promise< Result > > readyPromise
 Promise used by AssetManager to complete readyFuture.
std::shared_future< ResultreadyFuture
 Shared future resolved when the current generation succeeds or fails.
bool readyPromiseResolved = false
 True after readyPromise has been resolved for the current generation.

Detailed Description

template<typename Key, typename AssetClass>
struct Asset::Record< Key, AssetClass >

Internal storage for one asset entry managed by AssetManager.

A record keeps the stable identity of an asset key while the payload changes over time. Asset::Ref instances hold weak references to records so they stay valid across payload replacement and unload operations until the manager clears the record itself.

Template Parameters
KeyAsset lookup key type.
AssetClassAsset payload type.

Definition at line 104 of file Asset.h.

Member Typedef Documentation

◆ Result

template<typename Key, typename AssetClass>
using Asset::Record< Key, AssetClass >::Result = LoadResult<Key, AssetClass>

Definition at line 106 of file Asset.h.

Constructor & Destructor Documentation

◆ Record()

template<typename Key, typename AssetClass>
Asset::Record< Key, AssetClass >::Record ( Key key)
inlineexplicit

Creates an unloaded record for an asset key.

Parameters
keyAsset key stored by this record.

Definition at line 112 of file Asset.h.

References key, and resetFuture().

Here is the call graph for this function:

Member Function Documentation

◆ resetFuture()

template<typename Key, typename AssetClass>
void Asset::Record< Key, AssetClass >::resetFuture ( )
inline

Starts a new ready future for the current generation.

Definition at line 120 of file Asset.h.

References readyFuture, readyPromise, and readyPromiseResolved.

Referenced by Record().

Here is the caller graph for this function:

Member Data Documentation

◆ asset

template<typename Key, typename AssetClass>
std::unique_ptr<AssetClass> Asset::Record< Key, AssetClass >::asset

Owned payload instance, or nullptr while no payload is available.

Definition at line 135 of file Asset.h.

◆ generation

template<typename Key, typename AssetClass>
uint64_t Asset::Record< Key, AssetClass >::generation = 0

Monotonic version incremented when the payload lifecycle restarts.

Definition at line 145 of file Asset.h.

◆ key

template<typename Key, typename AssetClass>
Key Asset::Record< Key, AssetClass >::key

Asset lookup key for this record.

Definition at line 130 of file Asset.h.

Referenced by Record().

◆ lastError

template<typename Key, typename AssetClass>
std::string Asset::Record< Key, AssetClass >::lastError

Last failure message reported for this record.

Definition at line 150 of file Asset.h.

◆ readyFuture

template<typename Key, typename AssetClass>
std::shared_future<Result> Asset::Record< Key, AssetClass >::readyFuture

Shared future resolved when the current generation succeeds or fails.

Definition at line 160 of file Asset.h.

Referenced by resetFuture().

◆ readyPromise

template<typename Key, typename AssetClass>
std::shared_ptr<std::promise<Result> > Asset::Record< Key, AssetClass >::readyPromise

Promise used by AssetManager to complete readyFuture.

Definition at line 155 of file Asset.h.

Referenced by resetFuture().

◆ readyPromiseResolved

template<typename Key, typename AssetClass>
bool Asset::Record< Key, AssetClass >::readyPromiseResolved = false

True after readyPromise has been resolved for the current generation.

Definition at line 165 of file Asset.h.

Referenced by resetFuture().

◆ state

template<typename Key, typename AssetClass>
LoadState Asset::Record< Key, AssetClass >::state = UNLOADED

Current CPU loading state for the record.

Definition at line 140 of file Asset.h.


The documentation for this struct was generated from the following file:
  • /home/magerbeton/Documents/gl3-vulkan/Engine/include/Engine/Core/Asset.h