Faro Engine 0.0.0.b519570 (main)
Loading...
Searching...
No Matches
Resource.hpp
Go to the documentation of this file.
1#pragma once
2#include <Primitives.hpp>
3#include <ThreadSafety.hpp>
4
13
14namespace Faro
15{
16 class DataStream;
17
19 {
20 friend class ResourceManager;
21 public:
23 virtual ~IResource();
24
25 void ClaimResource();
26 void ReleaseResource();
27 bool IsResourceClaimed();
28
30 bool IsAvailable();
31
32 protected:
33 virtual void InitResource() = 0;
34 virtual void DestroyResource() = 0;
36
37 void NotifyNewState(ResourceState state);
38
39 private:
40 uint32 claims = 0;
42 DataStream* stream = nullptr;
43 };
44}
ResourceState
Definition Resource.hpp:6
@ RS_PendingDestroy
Definition Resource.hpp:11
@ RS_Unknown
Definition Resource.hpp:7
@ RS_Queued
Definition Resource.hpp:8
@ RS_Loading
Definition Resource.hpp:9
@ RS_Available
Definition Resource.hpp:10
Interface that reads and writes data to and from a stream.
Definition Stream.hpp:21
Definition Resource.hpp:19
void NotifyNewState(ResourceState state)
Definition Resource.cpp:57
bool IsResourceClaimed()
Definition Resource.cpp:37
void ClaimResource()
Definition Resource.cpp:16
virtual ~IResource()
Definition Resource.cpp:11
void ReleaseResource()
Definition Resource.cpp:26
ResourceState GetResourceState()
Definition Resource.cpp:42
bool IsAvailable()
Definition Resource.cpp:47
virtual void DestroyResource()=0
DataStream * GetDataStream()
Definition Resource.cpp:52
virtual void InitResource()=0
Definition ResourceManager.hpp:15
Container class providing thread-safe access to the internal object.
Definition ThreadSafety.hpp:24
Definition Array.hpp:8
uint32_t uint32
Definition Primitives.hpp:12