CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::MemoryResourceData Class Referencefinal

#include <CeresEngine/Resource/Resource.hpp>

Inheritance diagram for CeresEngine::MemoryResourceData:
CeresEngine::ResourceData CeresEngine::RefCounted< ResourceData >

Public Member Functions

 MemoryResourceData (ResourceManager &resourceManager) noexcept
 Creates a new MemoryResourceData instance.
 
 ~MemoryResourceData () noexcept final=default
 MemoryResourceData virtual destructor.
 
ResourceStreamDatacreateStream (const ResourceStreamFlags &flags=ResourceStreamFlag::Default) override
 Creates a new resource stream.
 
ResourceStreamDataPtr getStream (const ResourceStreamID &streamID) const override
 Gets a resource by it's stream ID.
 
Vector< ResourceStreamDataPtrgetStreams () const override
 Gets a list of streams that are owned by this resource.
 
void destroyStream (ResourceStreamData &stream) override
 Destroys a stream by ID.
 
- Public Member Functions inherited from CeresEngine::ResourceData
 ResourceData (ResourceManager &resourceManager) noexcept
 Creates a new ResourceData instance.
 
virtual ~ResourceData () noexcept=default
 ResourceData virtual destructor.
 
- Public Member Functions inherited from CeresEngine::RefCounted< ResourceData >
 RefCounted (Args &&... args)
 Creates a new RefCounted object and constructs a new Deleter by forwarding Args to it.
 
void retain () noexcept
 Retains the object by increment it's reference count by one.
 
bool release () noexcept
 Relases the object by decrementing it's reference count by one.
 

Private Types

using StreamMap = HashMap< ResourceStreamID, ResourceStreamDataPtr >
 

Private Attributes

LockedObject< StreamMap, SharedMutexmStreams
 The known resource streams.
 

Additional Inherited Members

- Public Attributes inherited from CeresEngine::ResourceData
ResourceManagermanager
 The resource manager that owns the resource.
 
const PackagePtr package = nullptr
 The package from which the resource was loaded from.
 
const ResourceID id = ResourceID::null
 The resource UUID, if registered with a resource manager.
 
const WeakResourceHandle< Resourcehandle = nullptr
 A weak handle to the resource.
 
const WeakResourceHandle< Resourceparent = nullptr
 A parent resource to which this resource is attached to.
 
SPtr< ResourceMetadatametadata = nullptr
 A pointer to the user-defined resource metadata.
 

Member Typedef Documentation

◆ StreamMap

Constructor & Destructor Documentation

◆ MemoryResourceData()

CeresEngine::MemoryResourceData::MemoryResourceData ( ResourceManager resourceManager)
inlineexplicitnoexcept

Creates a new MemoryResourceData instance.

Parameters
resourceManagerThe resource manager instance that owns this resource data object.

◆ ~MemoryResourceData()

CeresEngine::MemoryResourceData::~MemoryResourceData ( )
finaldefaultnoexcept

MemoryResourceData virtual destructor.

Member Function Documentation

◆ createStream()

ResourceStreamData & CeresEngine::MemoryResourceData::createStream ( const ResourceStreamFlags flags = ResourceStreamFlag::Default)
overridevirtual

Creates a new resource stream.

Parameters
streamIDThe ID of the stream to be created or replaced.
Returns
An async task that will return the newly created resource stream.

Implements CeresEngine::ResourceData.

◆ destroyStream()

void CeresEngine::MemoryResourceData::destroyStream ( ResourceStreamData stream)
overridevirtual

Destroys a stream by ID.

Parameters
streamIDThe ID of the stream to be returned.

Implements CeresEngine::ResourceData.

◆ getStream()

ResourceStreamDataPtr CeresEngine::MemoryResourceData::getStream ( const ResourceStreamID streamID) const
overridevirtual

Gets a resource by it's stream ID.

Parameters
streamIDThe ID of the stream to be fetched.
Returns
A pointer to the stream data.

Implements CeresEngine::ResourceData.

◆ getStreams()

Vector< ResourceStreamDataPtr > CeresEngine::MemoryResourceData::getStreams ( ) const
overridevirtual

Gets a list of streams that are owned by this resource.

Implements CeresEngine::ResourceData.

Member Data Documentation

◆ mStreams

LockedObject<StreamMap, SharedMutex> CeresEngine::MemoryResourceData::mStreams
private

The known resource streams.


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