carb::assets::ScopedSnapshot¶
Defined in carb/assets/AssetsTypes.h
-
template<class
Type
>
classcarb::assets
::
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 withget()
.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 befalse
; 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-constructable.
- 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.
-