Class for efficiently managing loaded resources.
More...
#include <ResourceManager.h>
|
| ResourceManager () |
| Class constructor.
|
|
| ~ResourceManager () |
| Class destructor.
|
|
int | addResource (const ResourceId &resource_id, const ResourceType &resource) |
| Add resource to manager. More...
|
|
virtual void | release (int id) |
| Release a resource with identifier id. More...
|
|
void | releaseAll (int id) |
| Release all resources with identifier id. More...
|
|
const ResourceType & | get (int id) const |
| Get resource with identifier id. More...
|
|
ResourceType & | get (int id) |
| Get resource with identifier id. More...
|
|
const ResourceId & | getId (int id) const |
| Get ResourceId of resource with identifier id. More...
|
|
bool | isLoaded (int id) const |
| Returns wether the resource with identifier id is loaded. More...
|
|
bool | isLoaded (const ResourceId &resource_id) const |
| Returns wether the resource with ResourceId resource_id is loaded. More...
|
|
bool | isLoaded (const ResourceId &resource_id, int &id) const |
| Returns wether the resource with ResourceId resource_id is loaded and if it is loaded, puts the ResourceManager id in id. More...
|
|
int | countResourceUsage (int id) const |
| Returns number of active requests for resource id. More...
|
|
int | size () const |
| Returns number of resources currently loaded. More...
|
|
int | resourceCount () const |
| Returns number of all resources ever loaded. More...
|
|
void | clear () |
| Release all resources.
|
|
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
class hb::ResourceManager< ManagerType, ResourceType, ResourceId, Hash >
Class for efficiently managing loaded resources.
- Template Parameters
-
ManagerType | Type of the ResourceManager. |
ResourceType | Type of the resource being managed. |
ResourceId | Type of the unique id of the resource being managed. |
Hash | Hash method for the ResourceId. |
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
int hb::ResourceManager< ManagerType, ResourceType, ResourceId, Hash >::addResource |
( |
const ResourceId & |
resource_id, |
|
|
const ResourceType & |
resource |
|
) |
| |
|
inline |
Add resource to manager.
- Parameters
-
resource_id | Unique id of the resource being added. |
resource | The resource being added. |
- Returns
- ResourceManager identifier for the resource.
If a resource with the same resource_id is already registered, its usage count will be incremented and the resource won't be stored again.
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
int hb::ResourceManager< ManagerType, ResourceType, ResourceId, Hash >::countResourceUsage |
( |
int |
id | ) |
const |
|
inline |
Returns number of active requests for resource id.
- Parameters
-
- Returns
- Usage count of the resource.
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
const ResourceType& hb::ResourceManager< ManagerType, ResourceType, ResourceId, Hash >::get |
( |
int |
id | ) |
const |
|
inline |
Get resource with identifier id.
- Parameters
-
- Returns
- Constant reference to the resource.
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
ResourceType& hb::ResourceManager< ManagerType, ResourceType, ResourceId, Hash >::get |
( |
int |
id | ) |
|
|
inline |
Get resource with identifier id.
- Parameters
-
- Returns
- Reference to the resource.
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
const ResourceId& hb::ResourceManager< ManagerType, ResourceType, ResourceId, Hash >::getId |
( |
int |
id | ) |
const |
|
inline |
Get ResourceId of resource with identifier id.
- Parameters
-
- Returns
- ResourceId of the resource with identifier id.
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
static ManagerType* hb::ResourceManager< ManagerType, ResourceType, ResourceId, Hash >::instance |
( |
| ) |
|
|
inlinestatic |
Get the singleton instance.
- Returns
- ManagerType singleton instance.
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
bool hb::ResourceManager< ManagerType, ResourceType, ResourceId, Hash >::isLoaded |
( |
int |
id | ) |
const |
|
inline |
Returns wether the resource with identifier id is loaded.
- Parameters
-
- Returns
- Is resource with identifier id loaded.
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
bool hb::ResourceManager< ManagerType, ResourceType, ResourceId, Hash >::isLoaded |
( |
const ResourceId & |
resource_id | ) |
const |
|
inline |
Returns wether the resource with ResourceId resource_id is loaded.
- Parameters
-
resource_id | Unique id of the resource. |
- Returns
- Is resource with ResourceId resource_id loaded.
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
bool hb::ResourceManager< ManagerType, ResourceType, ResourceId, Hash >::isLoaded |
( |
const ResourceId & |
resource_id, |
|
|
int & |
id |
|
) |
| const |
|
inline |
Returns wether the resource with ResourceId resource_id is loaded and if it is loaded, puts the ResourceManager id in id.
- Parameters
-
resource_id | Unique id of the resource. |
- Returns
- Is resource with ResourceId resource_id loaded.
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
virtual void hb::ResourceManager< ManagerType, ResourceType, ResourceId, Hash >::release |
( |
int |
id | ) |
|
|
inlinevirtual |
Release a resource with identifier id.
- Parameters
-
If there is registered more than one usage of the resource, its counter will be decresed and the resource won't be deleted until its usage count reaches 0.
Reimplemented in hb::TextureManager.
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
Release all resources with identifier id.
- Parameters
-
Removes the resource with identifier id, ignoring if it has more usages.
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
int hb::ResourceManager< ManagerType, ResourceType, ResourceId, Hash >::resourceCount |
( |
| ) |
const |
|
inline |
Returns number of all resources ever loaded.
- Returns
- Number of all resources ever loaded (Not counting usages).
template<typename ManagerType, typename ResourceType, typename ResourceId, typename Hash = std::hash<ResourceId>>
Returns number of resources currently loaded.
- Returns
- Number of resources currently loaded (Not counting usages).
The documentation for this class was generated from the following file: