Cogs.Core
ResourceHandle.cpp
1#include "ResourceHandle.h"
2
3#include "ResourceBase.h"
4
6
8{
10}
11
13{
14 if (otherResource) otherResource->increment();
15
16 resetInternal(otherResource);
17}
18
19ResourceId Cogs::Core::ResourceHandleBase::getId() const { return resource ? resource->getId() : NoResourceId; }
20
22{
23 if (resource) resource->decrement();
24
25 resource = otherResource;
26}
Base class for engine resources.
Definition: ResourceBase.h:107
void decrement()
Decrement the reference count of the resource.
Definition: ResourceBase.h:342
void increment()
Increments the reference count of the resource.
Definition: ResourceBase.h:323
Resource handle base class handling reference counting of resources derived from ResourceBase.
static const ResourceHandleBase NoHandle
Provided as shorthand for empty resource handles.
void reset(ResourceBase *otherResource)
Reset the contents of this instance to the given handle and resource.
ResourceId getId() const
Get the resource id of the held resource.
~ResourceHandleBase()
Destructs a handle, and if a resource is held, releases the reference to this resource.
void resetInternal(ResourceBase *otherResource)
Reset the contents of this instance to the given handle and resource.
ResourceBase * resource
Pointer to held resource.