![]() |
Public API Reference |
![]() |
Generic cache for resources. More...
#include <csutil/genericresourcecache.h>
Inherited by CS::RenderManager::StandardPortalSetup_Base::PersistentData::BoxClipperCacheRefCounted.
Public Member Functions | |
T * | AddActive (const T &value, const ReuseConditionAddParameter &reuseParam=ReuseConditionAddParameter(), const PurgeConditionAddParameter &purgeParam=PurgeConditionAddParameter()) |
Add a resource as currently active. | |
void | AdvanceTime (TimeType time) |
Advance the time kept by the cache. | |
void | Clear (bool instaClear=false) |
Clear all cached resources. | |
PurgeCondition::StoredAuxiliaryInfo * | GetPurgeAuxiliary (T *entry) |
Request the auxiliary information data of the purge condition mixin for a cache entry. | |
ReuseCondition::StoredAuxiliaryInfo * | GetReuseAuxiliary (T *entry) |
Request the auxiliary information data of the reuse condition mixin for a cache entry. | |
void | NudgeLastUsedTime (T *data) |
Change the last used time of a resource to the current time. | |
T * | Query (const ResourceSortingKeyType &key=ResourceSortingKeyType(), bool exact=false) |
Query a resource. Returns 0 if none is available. | |
void | RemoveActive (T *data) |
Free up a resource which is currently "active". | |
void | SetAvailable (T *data) |
Manually mark a resource that is currently "active" as "available". | |
Public Attributes | |
TimeType | agedPurgeInterval |
Interval for the aged resource scan. | |
Protected Attributes | |
bool | clearReq |
Whether a "clear" is pending. | |
TimeType | lastPurgeAged |
The last time the momentarily available resources were scanned for "aged" (long time unused) resources that could be freed. |
Generic cache for resources.
It can cache frequently needed, reuseable data, can fetch cached resources based on a given sorting (not just exact matches, also resources that are bigger than some given key) and free resources that were cached but not used for some time.
Definition at line 292 of file genericresourcecache.h.
T* CS::Utility::GenericResourceCache< T, _TimeType, _ResourceSorting, _ReuseCondition, _PurgeCondition >::AddActive | ( | const T & | value, |
const ReuseConditionAddParameter & | reuseParam = ReuseConditionAddParameter () , |
||
const PurgeConditionAddParameter & | purgeParam = PurgeConditionAddParameter () |
||
) | [inline] |
Add a resource as currently active.
(But will be reused once possible.)
Definition at line 633 of file genericresourcecache.h.
void CS::Utility::GenericResourceCache< T, _TimeType, _ResourceSorting, _ReuseCondition, _PurgeCondition >::AdvanceTime | ( | TimeType | time | ) | [inline] |
Advance the time kept by the cache.
Determines what resources can be reused or even freed.
Definition at line 558 of file genericresourcecache.h.
void CS::Utility::GenericResourceCache< T, _TimeType, _ResourceSorting, _ReuseCondition, _PurgeCondition >::Clear | ( | bool | instaClear = false | ) | [inline] |
Clear all cached resources.
instaClear immediately clears all resources when set, if not, clearing is delayed until the next AdvanceTime() call (useful when resources may still be in use).
Definition at line 517 of file genericresourcecache.h.
PurgeCondition::StoredAuxiliaryInfo* CS::Utility::GenericResourceCache< T, _TimeType, _ResourceSorting, _ReuseCondition, _PurgeCondition >::GetPurgeAuxiliary | ( | T * | entry | ) | [inline] |
Request the auxiliary information data of the purge condition mixin for a cache entry.
Definition at line 702 of file genericresourcecache.h.
ReuseCondition::StoredAuxiliaryInfo* CS::Utility::GenericResourceCache< T, _TimeType, _ResourceSorting, _ReuseCondition, _PurgeCondition >::GetReuseAuxiliary | ( | T * | entry | ) | [inline] |
Request the auxiliary information data of the reuse condition mixin for a cache entry.
Definition at line 692 of file genericresourcecache.h.
void CS::Utility::GenericResourceCache< T, _TimeType, _ResourceSorting, _ReuseCondition, _PurgeCondition >::NudgeLastUsedTime | ( | T * | data | ) | [inline] |
Change the last used time of a resource to the current time.
Can be used to prevent resources which are tracked as "available" from being purged.
Definition at line 654 of file genericresourcecache.h.
T* CS::Utility::GenericResourceCache< T, _TimeType, _ResourceSorting, _ReuseCondition, _PurgeCondition >::Query | ( | const ResourceSortingKeyType & | key = ResourceSortingKeyType() , |
bool | exact = false |
||
) | [inline] |
Query a resource. Returns 0 if none is available.
Definition at line 608 of file genericresourcecache.h.
void CS::Utility::GenericResourceCache< T, _TimeType, _ResourceSorting, _ReuseCondition, _PurgeCondition >::RemoveActive | ( | T * | data | ) | [inline] |
Free up a resource which is currently "active".
Definition at line 680 of file genericresourcecache.h.
void CS::Utility::GenericResourceCache< T, _TimeType, _ResourceSorting, _ReuseCondition, _PurgeCondition >::SetAvailable | ( | T * | data | ) | [inline] |
Manually mark a resource that is currently "active" as "available".
Definition at line 668 of file genericresourcecache.h.
TimeType CS::Utility::GenericResourceCache< T, _TimeType, _ResourceSorting, _ReuseCondition, _PurgeCondition >::agedPurgeInterval |
Interval for the aged resource scan.
Definition at line 496 of file genericresourcecache.h.
bool CS::Utility::GenericResourceCache< T, _TimeType, _ResourceSorting, _ReuseCondition, _PurgeCondition >::clearReq [protected] |
Whether a "clear" is pending.
Definition at line 443 of file genericresourcecache.h.
TimeType CS::Utility::GenericResourceCache< T, _TimeType, _ResourceSorting, _ReuseCondition, _PurgeCondition >::lastPurgeAged [protected] |
The last time the momentarily available resources were scanned for "aged" (long time unused) resources that could be freed.
Definition at line 441 of file genericresourcecache.h.