carb::assets::ScopedSnapshot

Defined in carb/assets/AssetsUtils.h

template<class Type>
class ScopedSnapshot

A scoped snapshot, this automatically releases the snapshot when it goes out of scope.

A RAII-style helper class to manage the result of IAssets::acquireSnapshot().

operator bool() can be used to test if the asset successfully acquired. getReason() can be used to check why an asset failed to load. If the asset successfully loaded, it can be obtained with get().

Public Functions

ScopedSnapshot() = default

Default Constructor; produces an empty object.

inline ScopedSnapshot(std::nullptr_t)

nullptr Constructor; produces an empty object

inline ScopedSnapshot(IAssets *assets, Id assetId)

Constructs a ScopedSnapshot for the given asset ID.

If snapshot acquisition fails, *this will be false; use getReason() to determine why.

Parameters
  • assets – The IAssets interface

  • assetId – The asset ID to acquire a snapshot for.

inline ~ScopedSnapshot()

Destructor.

inline ScopedSnapshot(ScopedSnapshot &&other)

ScopedSnapshot is move-constructible.

Parameters

other – The other ScopedSnapshot to move from; other will be empty.

inline ScopedSnapshot &operator=(ScopedSnapshot &&other)

Move-assignment operator.

Parameters

other – The other ScopedSnapshot to move from; other will be empty.

Returns

*this

inline Type *get()

Obtain the asset data from the snapshot.

Returns

The loaded asset if the asset load was successful; nullptr otherwise.

inline const Type *get() const

Obtain the asset data from the snapshot.

Returns

The loaded asset if the asset load was successful; nullptr otherwise.

inline Type *operator->()

Dereference-access operator.

Returns

The loaded asset; malformed if *this == false.

inline const Type *operator->() const

Dereference-access operator.

Returns

The loaded asset; malformed if *this == false.

inline Type &operator*()

Dereference operator.

Returns

A reference to the loaded asset; malformed if *this == false.

inline const Type &operator*() const

Dereference operator.

Returns

A reference to the loaded asset; malformed if *this == false.

inline explicit constexpr operator bool() const noexcept

Test if the asset snapshot successfully loaded.

Returns

true if the asset snapshot successfully loaded and its value can be retrieved via get(); false otherwise.

inline Reason getReason() const

Obtain the current asset status.

Returns

the Reason status code based on acquiring the snapshot. An empty ScopedSnapshot will return Reason::eFailed.