Castor3D 0.16.0
Multiplatform 3D engine
Types publics | Fonctions membres publiques | Types protégés | Fonctions membres protégées | Attributs protégés | Liste de tous les membres
Référence du modèle de la classe castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >

Classe de base pour un cache d'éléments. Plus de détails...

#include <ResourceCacheBase.hpp>

Graphe d'héritage de castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >:
Inheritance graph
[légende]
Graphe de collaboration de castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >:
Collaboration graph
[légende]

Types publics

using ElementT = ResT
 
using ElementKeyT = KeyT
 
using ElementCacheTraitsT = TraitsT
 
using ElementCacheBaseT = ResourceCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >
 
using ElementCacheT = typename ElementCacheTraitsT::ElementCacheT
 
using ElementPtrT = typename ElementCacheTraitsT::ElementPtrT
 
using ElementObsT = typename ElementCacheTraitsT::ElementObsT
 
using ElementContT = typename ElementCacheTraitsT::ElementContT
 
using ElementInitialiserT = typename ElementCacheTraitsT::ElementInitialiserT
 
using ElementCleanerT = typename ElementCacheTraitsT::ElementCleanerT
 
using ElementMergerT = typename ElementCacheTraitsT::ElementMergerT
 

Fonctions membres publiques

 ResourceCacheBaseT (ResourceCacheBaseT const &)=delete
 
ResourceCacheBaseToperator= (ResourceCacheBaseT const &)=delete
 
 ResourceCacheBaseT (ResourceCacheBaseT &&) noexcept=delete
 
ResourceCacheBaseToperator= (ResourceCacheBaseT &&) noexcept=delete
 
void cleanup () noexcept
 Met tous les éléments à nettoyer.
 
void clear () noexcept
 Vide la collection.
 
template<typename ... ParametersT>
ElementPtrT create (ElementKeyT const &name, ParametersT &&... parameters) const
 Crée un élément.
 
ElementObsT tryAdd (ElementKeyT const &name, ElementPtrT &element, bool initialise=false)
 Ajoute un élément.
 
ElementObsT tryAddNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=false)
 Ajoute un élément.
 
ElementObsT add (ElementKeyT const &name, ElementPtrT &element, bool initialise=true)
 Version journalisante de tryAdd.
 
ElementObsT addNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=true)
 Version journalisante de tryAdd.
 
template<typename ... ParametersT>
ElementObsT tryAdd (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters)
 Ajoute un élément, construict sur place.
 
template<typename ... ParametersT>
ElementObsT tryAddNoLock (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters)
 Ajoute un élément, construict sur place.
 
template<typename ... ParametersT>
ElementObsT add (ElementKeyT const &name, ParametersT &&... parameters)
 Version journalisante de tryAdd.
 
template<typename ... ParametersT>
ElementObsT addNoLock (ElementKeyT const &name, ParametersT &&... parameters)
 Version journalisante de tryAdd.
 
ElementPtrT tryRemove (ElementKeyT const &name, bool cleanup=false) noexcept
 Retire un élément à partir d'un nom.
 
ElementPtrT tryRemoveNoLock (ElementKeyT const &name, bool cleanup=false) noexcept
 Retire un élément à partir d'un nom.
 
ElementPtrT remove (ElementKeyT const &name, bool cleanup=false) noexcept
 Version journalisante de tryAdd.
 
ElementPtrT removeNoLock (ElementKeyT const &name, bool cleanup=false) noexcept
 Version journalisante de tryAdd.
 
void rename (ElementKeyT const &oldName, ElementKeyT const &newName)
 Renomme une ressource.
 
ElementObsT tryFind (ElementKeyT const &name) const noexcept
 Cherche un élément par son nom.
 
ElementObsT tryFindNoLock (ElementKeyT const &name) const noexcept
 Cherche un élément par son nom.
 
ElementObsT find (ElementKeyT const &name) const
 Version journalisante de tryAdd.
 
ElementObsT findNoLock (ElementKeyT const &name) const
 Version journalisante de tryAdd.
 
void mergeInto (ElementCacheBaseT &destination)
 Met les éléments de ce cache dans ceux de celui donné.
 
Boucle verrouillée.
template<typename FuncType >
void forEach (FuncType func) const
 
template<typename FuncType >
void forEach (FuncType func)
 
Accesseurs.
uint32_t getObjectCount () const noexcept
 
uint32_t getObjectCountNoLock () const noexcept
 
String const & getObjectTypeName () const noexcept
 
bool has (ElementKeyT const &name) const noexcept
 
bool hasNoLock (ElementKeyT const &name) const noexcept
 
bool isEmpty () const noexcept
 
bool isEmptyNoLock () const noexcept
 
Verrouillage de mutex.
void lock () const
 
void unlock () const noexcept
 
Itération.
auto begin () noexcept
 
auto begin () const noexcept
 
auto end () noexcept
 
auto end () const noexcept
 
Logging.
void reportCreation (String const &name) const
 
void reportAdded (String const &name) const
 
void reportDuplicate (String const &name) const
 
void reportNull () const
 
void reportUnknown (String const &name) const
 

Types protégés

using MutexT = castor::RecursiveMutex
 

Fonctions membres protégées

void doCleanupNoLock () const noexcept
 
void doClearNoLock () noexcept
 
template<typename ... ParametersT>
ElementPtrT doCreateT (ElementKeyT const &name, ParametersT &&... parameters) const
 
ElementObsT doTryAddNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=true)
 
ElementObsT doAddNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=true)
 
template<typename ... ParametersT>
ElementObsT doTryAddNoLockT (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters)
 
template<typename ... ParametersT>
ElementObsT doAddNoLockT (ElementKeyT const &name, ParametersT &&... parameters)
 
ElementPtrT doTryRemoveNoLock (ElementKeyT const &name, bool cleanup=false) noexcept
 
ElementObsT doTryFindNoLock (ElementKeyT const &name) const noexcept
 
 ResourceCacheBaseT (LoggerInstance &logger, ElementInitialiserT initialise=ElementInitialiserT{}, ElementCleanerT clean=ElementCleanerT{}, ElementMergerT merge=ElementMergerT{})
 
virtual ~ResourceCacheBaseT () noexcept=default
 

Attributs protégés

LoggerInstancem_logger
 
CheckedMutexT< MutexTm_mutex
 
ElementContT m_resources
 
ElementInitialiserT m_initialise
 
ElementCleanerT m_clean
 
ElementMergerT m_merge
 

Description détaillée

template<typename ResT, typename KeyT, typename TraitsT>
class castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >

Classe de base pour un cache d'éléments.

Documentation des définitions de type membres

◆ ElementCacheBaseT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ElementCacheBaseT = ResourceCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >

◆ ElementCacheT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ElementCacheT = typename ElementCacheTraitsT::ElementCacheT

◆ ElementCacheTraitsT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ElementCacheTraitsT = TraitsT

◆ ElementCleanerT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ElementCleanerT = typename ElementCacheTraitsT::ElementCleanerT

◆ ElementContT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ElementContT = typename ElementCacheTraitsT::ElementContT

◆ ElementInitialiserT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ElementInitialiserT = typename ElementCacheTraitsT::ElementInitialiserT

◆ ElementKeyT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ElementKeyT = KeyT

◆ ElementMergerT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ElementMergerT = typename ElementCacheTraitsT::ElementMergerT

◆ ElementObsT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ElementObsT = typename ElementCacheTraitsT::ElementObsT

◆ ElementPtrT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ElementPtrT = typename ElementCacheTraitsT::ElementPtrT

◆ ElementT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ElementT = ResT

◆ MutexT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::MutexT = castor::RecursiveMutex
protected

Documentation des constructeurs et destructeur

◆ ResourceCacheBaseT() [1/3]

template<typename ResT , typename KeyT , typename TraitsT >
castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ResourceCacheBaseT ( ResourceCacheBaseT< ResT, KeyT, TraitsT > const & )
delete

◆ ResourceCacheBaseT() [2/3]

template<typename ResT , typename KeyT , typename TraitsT >
castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ResourceCacheBaseT ( ResourceCacheBaseT< ResT, KeyT, TraitsT > && )
deletenoexcept

◆ ResourceCacheBaseT() [3/3]

template<typename ResT , typename KeyT , typename TraitsT >
castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::ResourceCacheBaseT ( LoggerInstance & logger,
ElementInitialiserT initialise = ElementInitialiserT{},
ElementCleanerT clean = ElementCleanerT{},
ElementMergerT merge = ElementMergerT{} )
inlineexplicitprotected

name Construction/Desctruction.

◆ ~ResourceCacheBaseT()

template<typename ResT , typename KeyT , typename TraitsT >
virtual castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::~ResourceCacheBaseT ( )
protectedvirtualdefaultnoexcept

Documentation des fonctions membres

◆ add() [1/2]

template<typename ResT , typename KeyT , typename TraitsT >
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::add ( ElementKeyT const & name,
ElementPtrT & element,
bool initialise = true )
inline

Version journalisante de tryAdd.

Paramètres
[in]nameLe nom de la ressource.
[in,out]elementLa ressource, vidée en cas d'ajout (le cache en prend la responsabilité).
[in]initialisetrue pour initialiser l'élément ajouté (aucun effect sur les doublons).
Renvoie
L'élément réel (ajouté, ou original du doublon).

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doAddNoLock(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::lock(), et castor::makeUniqueLock().

Référencé par castor3d::Engine::addFont(), castor3d::Engine::addImage(), castor3d::Engine::addNewFont(), et castor3d::Engine::addNewImage().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ add() [2/2]

template<typename ResT , typename KeyT , typename TraitsT >
template<typename ... ParametersT>
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::add ( ElementKeyT const & name,
ParametersT &&... parameters )
inline

Version journalisante de tryAdd.

Paramètres
[in]nameLe nom d'élément.
[in]parametersLes autres paramètres de construction.
Renvoie
L'élément réel (ajouté, ou original du doublon).

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doAddNoLockT(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::lock(), et castor::makeUniqueLock().

Voici le graphe d'appel pour cette fonction :

◆ addNoLock() [1/2]

template<typename ResT , typename KeyT , typename TraitsT >
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::addNoLock ( ElementKeyT const & name,
ElementPtrT & element,
bool initialise = true )
inline

Version journalisante de tryAdd.

Paramètres
[in]nameLe nom de la ressource.
[in,out]elementLa ressource, vidée en cas d'ajout (le cache en prend la responsabilité).
[in]initialisetrue pour initialiser l'élément ajouté (aucun effect sur les doublons).
Renvoie
L'élément réel (ajouté, ou original du doublon).

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doAddNoLock().

Voici le graphe d'appel pour cette fonction :

◆ addNoLock() [2/2]

template<typename ResT , typename KeyT , typename TraitsT >
template<typename ... ParametersT>
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::addNoLock ( ElementKeyT const & name,
ParametersT &&... parameters )
inline

Version journalisante de tryAdd.

Paramètres
[in]nameLe nom d'élément.
[in]parametersLes autres paramètres de construction.
Renvoie
L'élément réel (ajouté, ou original du doublon).

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doAddNoLockT().

Voici le graphe d'appel pour cette fonction :

◆ begin() [1/2]

template<typename ResT , typename KeyT , typename TraitsT >
auto castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::begin ( ) const
inlinenoexcept

◆ begin() [2/2]

template<typename ResT , typename KeyT , typename TraitsT >
auto castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::begin ( )
inlinenoexcept

◆ cleanup()

template<typename ResT , typename KeyT , typename TraitsT >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::cleanup ( )
inlinenoexcept

◆ clear()

template<typename ResT , typename KeyT , typename TraitsT >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::clear ( )
inlinenoexcept

◆ create()

template<typename ResT , typename KeyT , typename TraitsT >
template<typename ... ParametersT>
ElementPtrT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::create ( ElementKeyT const & name,
ParametersT &&... parameters ) const
inline

Crée un élément.

Paramètres
[in]nameLe nom d'élément.
[in]parametersLes autres paramètres de construction.
Renvoie
L'élément créé.

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doCreateT(), et castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::reportCreation().

Référencé par castor3d::Engine::createFont(), et castor3d::Engine::createImage().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ doAddNoLock()

template<typename ResT , typename KeyT , typename TraitsT >
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doAddNoLock ( ElementKeyT const & name,
ElementPtrT & element,
bool initialise = true )
inlineprotected

◆ doAddNoLockT()

template<typename ResT , typename KeyT , typename TraitsT >
template<typename ... ParametersT>
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doAddNoLockT ( ElementKeyT const & name,
ParametersT &&... parameters )
inlineprotected

◆ doCleanupNoLock()

template<typename ResT , typename KeyT , typename TraitsT >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doCleanupNoLock ( ) const
inlineprotectednoexcept

◆ doClearNoLock()

template<typename ResT , typename KeyT , typename TraitsT >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doClearNoLock ( )
inlineprotectednoexcept

◆ doCreateT()

template<typename ResT , typename KeyT , typename TraitsT >
template<typename ... ParametersT>
ElementPtrT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doCreateT ( ElementKeyT const & name,
ParametersT &&... parameters ) const
inlineprotected

◆ doTryAddNoLock()

template<typename ResT , typename KeyT , typename TraitsT >
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryAddNoLock ( ElementKeyT const & name,
ElementPtrT & element,
bool initialise = true )
inlineprotected

◆ doTryAddNoLockT()

template<typename ResT , typename KeyT , typename TraitsT >
template<typename ... ParametersT>
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryAddNoLockT ( ElementKeyT const & name,
bool initialise,
ElementObsT & created,
ParametersT &&... parameters )
inlineprotected

◆ doTryFindNoLock()

template<typename ResT , typename KeyT , typename TraitsT >
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryFindNoLock ( ElementKeyT const & name) const
inlineprotectednoexcept

◆ doTryRemoveNoLock()

template<typename ResT , typename KeyT , typename TraitsT >
ElementPtrT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryRemoveNoLock ( ElementKeyT const & name,
bool cleanup = false )
inlineprotectednoexcept

◆ end() [1/2]

template<typename ResT , typename KeyT , typename TraitsT >
auto castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::end ( ) const
inlinenoexcept

◆ end() [2/2]

template<typename ResT , typename KeyT , typename TraitsT >
auto castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::end ( )
inlinenoexcept

◆ find()

template<typename ResT , typename KeyT , typename TraitsT >
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::find ( ElementKeyT const & name) const
inline

Version journalisante de tryAdd.

Paramètres
[in]nameLe nom d'élément.
Renvoie
L'élément trouvé, nullptr si non trouvé.

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryFindNoLock(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::lock(), castor::makeUniqueLock(), et castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::reportUnknown().

Référencé par castor3d::Engine::findFont(), et castor3d::Engine::findImage().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ findNoLock()

template<typename ResT , typename KeyT , typename TraitsT >
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::findNoLock ( ElementKeyT const & name) const
inline

Version journalisante de tryAdd.

Paramètres
[in]nameLe nom d'élément.
Renvoie
L'élément trouvé, nullptr si non trouvé.

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryFindNoLock(), et castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::reportUnknown().

Voici le graphe d'appel pour cette fonction :

◆ forEach() [1/2]

template<typename ResT , typename KeyT , typename TraitsT >
template<typename FuncType >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::forEach ( FuncType func)
inline

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::lock(), et castor::makeUniqueLock().

Voici le graphe d'appel pour cette fonction :

◆ forEach() [2/2]

template<typename ResT , typename KeyT , typename TraitsT >
template<typename FuncType >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::forEach ( FuncType func) const
inline

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::lock(), et castor::makeUniqueLock().

Voici le graphe d'appel pour cette fonction :

◆ getObjectCount()

template<typename ResT , typename KeyT , typename TraitsT >
uint32_t castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::getObjectCount ( ) const
inlinenoexcept

◆ getObjectCountNoLock()

template<typename ResT , typename KeyT , typename TraitsT >
uint32_t castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::getObjectCountNoLock ( ) const
inlinenoexcept

◆ getObjectTypeName()

template<typename ResT , typename KeyT , typename TraitsT >
String const & castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::getObjectTypeName ( ) const
inlinenoexcept

◆ has()

template<typename ResT , typename KeyT , typename TraitsT >
bool castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::has ( ElementKeyT const & name) const
inlinenoexcept

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::tryFind().

Référencé par castor3d::Engine::hasFont(), et castor3d::Engine::hasImage().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ hasNoLock()

template<typename ResT , typename KeyT , typename TraitsT >
bool castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::hasNoLock ( ElementKeyT const & name) const
inlinenoexcept

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::tryFindNoLock().

Voici le graphe d'appel pour cette fonction :

◆ isEmpty()

template<typename ResT , typename KeyT , typename TraitsT >
bool castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::isEmpty ( ) const
inlinenoexcept

◆ isEmptyNoLock()

template<typename ResT , typename KeyT , typename TraitsT >
bool castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::isEmptyNoLock ( ) const
inlinenoexcept

◆ lock()

template<typename ResT , typename KeyT , typename TraitsT >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::lock ( ) const
inline

◆ mergeInto()

template<typename ResT , typename KeyT , typename TraitsT >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::mergeInto ( ElementCacheBaseT & destination)
inline

Met les éléments de ce cache dans ceux de celui donné.

Paramètres
[out]destinationLe cache de destination.

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doClearNoLock(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::lock(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::m_merge, et castor::makeUniqueLock().

Voici le graphe d'appel pour cette fonction :

◆ operator=() [1/2]

template<typename ResT , typename KeyT , typename TraitsT >
ResourceCacheBaseT & castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::operator= ( ResourceCacheBaseT< ResT, KeyT, TraitsT > && )
deletenoexcept

◆ operator=() [2/2]

template<typename ResT , typename KeyT , typename TraitsT >
ResourceCacheBaseT & castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::operator= ( ResourceCacheBaseT< ResT, KeyT, TraitsT > const & )
delete

◆ remove()

template<typename ResT , typename KeyT , typename TraitsT >
ElementPtrT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::remove ( ElementKeyT const & name,
bool cleanup = false )
inlinenoexcept

Version journalisante de tryAdd.

Paramètres
[in]nameLe nom d'élément.
[in]cleanuptrue si l'évènement doit être nettoyé.

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::cleanup(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryRemoveNoLock(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::lock(), castor::makeUniqueLock(), et castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::reportUnknown().

Référencé par castor3d::Engine::removeFont(), et castor3d::Engine::removeImage().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ removeNoLock()

template<typename ResT , typename KeyT , typename TraitsT >
ElementPtrT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::removeNoLock ( ElementKeyT const & name,
bool cleanup = false )
inlinenoexcept

Version journalisante de tryAdd.

Paramètres
[in]nameLe nom d'élément.
[in]cleanuptrue si l'évènement doit être nettoyé.

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::cleanup(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryRemoveNoLock(), et castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::reportUnknown().

Voici le graphe d'appel pour cette fonction :

◆ rename()

template<typename ResT , typename KeyT , typename TraitsT >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::rename ( ElementKeyT const & oldName,
ElementKeyT const & newName )
inline

Renomme une ressource.

Paramètres
[in]oldNameLe nom actuel de l'élément.
[in]newNameLe nouveau nom de l'élément.

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::lock(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::m_resources, castor::makeUniqueLock(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::reportDuplicate(), et castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::reportUnknown().

Voici le graphe d'appel pour cette fonction :

◆ reportAdded()

template<typename ResT , typename KeyT , typename TraitsT >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::reportAdded ( String const & name) const
inline

◆ reportCreation()

template<typename ResT , typename KeyT , typename TraitsT >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::reportCreation ( String const & name) const
inline

◆ reportDuplicate()

template<typename ResT , typename KeyT , typename TraitsT >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::reportDuplicate ( String const & name) const
inline

◆ reportNull()

template<typename ResT , typename KeyT , typename TraitsT >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::reportNull ( ) const
inline

◆ reportUnknown()

template<typename ResT , typename KeyT , typename TraitsT >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::reportUnknown ( String const & name) const
inline

◆ tryAdd() [1/2]

template<typename ResT , typename KeyT , typename TraitsT >
template<typename ... ParametersT>
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::tryAdd ( ElementKeyT const & name,
bool initialise,
ElementObsT & created,
ParametersT &&... parameters )
inline

Ajoute un élément, construict sur place.

Paramètres
[in]nameLe nom d'élément.
[in]initialisetrue pour initialiser l'élément ajouté (aucun effect sur les doublons).
[out]createdL'élément créé.
[in]parametersLes autres paramètres de construction.
Renvoie
L'élément réel (ajouté, ou original du doublon).

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryAddNoLockT(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::lock(), et castor::makeUniqueLock().

Voici le graphe d'appel pour cette fonction :

◆ tryAdd() [2/2]

template<typename ResT , typename KeyT , typename TraitsT >
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::tryAdd ( ElementKeyT const & name,
ElementPtrT & element,
bool initialise = false )
inline

Ajoute un élément.

Paramètres
[in]nameLe nom d'élément.
[in,out]elementLa ressource, vidée en cas d'ajout (le cache en prend la responsabilité).
[in]initialisetrue pour initialiser l'élément ajouté (aucun effect sur les doublons).
Renvoie
L'élément réel (ajouté, ou original du doublon).

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryAddNoLock(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::lock(), et castor::makeUniqueLock().

Référencé par castor3d::Engine::tryAddImage().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ tryAddNoLock() [1/2]

template<typename ResT , typename KeyT , typename TraitsT >
template<typename ... ParametersT>
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::tryAddNoLock ( ElementKeyT const & name,
bool initialise,
ElementObsT & created,
ParametersT &&... parameters )
inline

Ajoute un élément, construict sur place.

Paramètres
[in]nameLe nom d'élément.
[in]initialisetrue pour initialiser l'élément ajouté (aucun effect sur les doublons).
[out]createdL'élément créé.
[in]parametersLes autres paramètres de construction.
Renvoie
L'élément réel (ajouté, ou original du doublon).

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryAddNoLockT().

Voici le graphe d'appel pour cette fonction :

◆ tryAddNoLock() [2/2]

template<typename ResT , typename KeyT , typename TraitsT >
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::tryAddNoLock ( ElementKeyT const & name,
ElementPtrT & element,
bool initialise = false )
inline

Ajoute un élément.

Paramètres
[in]nameLe nom d'élément.
[in,out]elementLa ressource, vidée en cas d'ajout (le cache en prend la responsabilité).
[in]initialisetrue pour initialiser l'élément ajouté (aucun effect sur les doublons).
Renvoie
L'élément réel (ajouté, ou original du doublon).

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryAddNoLock().

Voici le graphe d'appel pour cette fonction :

◆ tryFind()

template<typename ResT , typename KeyT , typename TraitsT >
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::tryFind ( ElementKeyT const & name) const
inlinenoexcept

Cherche un élément par son nom.

Paramètres
[in]nameLe nom d'élément.
Renvoie
L'élément trouvé, nullptr si non trouvé.

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryFindNoLock(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::lock(), et castor::makeUniqueLock().

Référencé par castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::has(), castor3d::Engine::tryFindFont(), et castor3d::Engine::tryFindImage().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ tryFindNoLock()

template<typename ResT , typename KeyT , typename TraitsT >
ElementObsT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::tryFindNoLock ( ElementKeyT const & name) const
inlinenoexcept

Cherche un élément par son nom.

Paramètres
[in]nameLe nom d'élément.
Renvoie
L'élément trouvé, nullptr si non trouvé.

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryFindNoLock().

Référencé par castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::hasNoLock().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ tryRemove()

template<typename ResT , typename KeyT , typename TraitsT >
ElementPtrT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::tryRemove ( ElementKeyT const & name,
bool cleanup = false )
inlinenoexcept

Retire un élément à partir d'un nom.

Paramètres
[in]nameLe nom d'élément.
[in]cleanuptrue si l'évènement doit être nettoyé.

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::cleanup(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryRemoveNoLock(), castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::lock(), et castor::makeUniqueLock().

Voici le graphe d'appel pour cette fonction :

◆ tryRemoveNoLock()

template<typename ResT , typename KeyT , typename TraitsT >
ElementPtrT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::tryRemoveNoLock ( ElementKeyT const & name,
bool cleanup = false )
inlinenoexcept

Retire un élément à partir d'un nom.

Paramètres
[in]nameLe nom d'élément.
[in]cleanuptrue si l'évènement doit être nettoyé.

Références castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::cleanup(), et castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::doTryRemoveNoLock().

Voici le graphe d'appel pour cette fonction :

◆ unlock()

template<typename ResT , typename KeyT , typename TraitsT >
void castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::unlock ( ) const
inlinenoexcept

Documentation des données membres

◆ m_clean

template<typename ResT , typename KeyT , typename TraitsT >
ElementCleanerT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::m_clean
protected

◆ m_initialise

template<typename ResT , typename KeyT , typename TraitsT >
ElementInitialiserT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::m_initialise
protected

◆ m_logger

template<typename ResT , typename KeyT , typename TraitsT >
LoggerInstance& castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::m_logger
protected

◆ m_merge

template<typename ResT , typename KeyT , typename TraitsT >
ElementMergerT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::m_merge
protected

Le fusionneur de collection d'éléments.

Référencé par castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::mergeInto().

◆ m_mutex

template<typename ResT , typename KeyT , typename TraitsT >
CheckedMutexT< MutexT > castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::m_mutex
protected

◆ m_resources

template<typename ResT , typename KeyT , typename TraitsT >
ElementContT castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >::m_resources
mutableprotected

La documentation de cette classe a été générée à partir des fichiers suivants :