ezEngine  Release 25.03
ezResourceLock< RESOURCE_TYPE > Class Template Reference

Helper class to acquire and release a resource safely. More...

#include <ResourceLock.h>

Public Member Functions

EZ_ALWAYS_INLINE ezResourceLock (const ezTypedResourceHandle< RESOURCE_TYPE > &hResource, ezResourceAcquireMode mode, const ezTypedResourceHandle< RESOURCE_TYPE > &hFallbackResource=ezTypedResourceHandle< RESOURCE_TYPE >())
 
 ezResourceLock (const ezResourceLock &)=delete
 
 ezResourceLock (ezResourceLock &&other)
 
EZ_ALWAYS_INLINE RESOURCE_TYPE * operator-> ()
 
const EZ_ALWAYS_INLINE RESOURCE_TYPE * operator-> () const
 
EZ_ALWAYS_INLINE bool IsValid () const
 
EZ_ALWAYS_INLINE operator bool () const
 
EZ_ALWAYS_INLINE ezResourceAcquireResult GetAcquireResult () const
 
const EZ_ALWAYS_INLINE RESOURCE_TYPE * GetPointer () const
 
EZ_ALWAYS_INLINE RESOURCE_TYPE * GetPointerNonConst () const
 

Detailed Description

template<class RESOURCE_TYPE>
class ezResourceLock< RESOURCE_TYPE >

Helper class to acquire and release a resource safely.

The constructor calls ezResourceManager::BeginAcquireResource, the destructor makes sure to call ezResourceManager::EndAcquireResource. The instance of this class can be used like a pointer to the resource.

Whether the acquisition succeeded or returned a loading fallback, missing fallback or even no result, at all, can be retrieved through GetAcquireResult().

Note
If a resource is missing, but no missing fallback is specified for the resource type, the code will fail with an assertion, unless you used ezResourceAcquireMode::BlockTillLoaded_NeverFail. Only then will the error be silently ignored and the acquire result will be ezResourceAcquireResult::None.
See also
ezResourceManager::BeginAcquireResource()
ezResourceAcquireMode
ezResourceAcquireResult

The documentation for this class was generated from the following file: