Castor3D 0.16.0
Multiplatform 3D engine
Types publics | Liste de tous les membres
Référence du modèle de la classe castor::ResourceCacheT< ResT, KeyT, TraitsT >

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

#include <ResourceCache.hpp>

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

Types publics

using ElementT = ResT
 
using ElementKeyT = KeyT
 
using ElementCacheTraitsT = TraitsT
 
using ElementCacheT = ResourceCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >
 
using ElementPtrT = typename ElementCacheT::ElementPtrT
 
using ElementObsT = typename ElementCacheT::ElementObsT
 
using ElementContT = typename ElementCacheT::ElementContT
 
using ElementInitialiserT = typename ElementCacheT::ElementInitialiserT
 
using ElementCleanerT = typename ElementCacheT::ElementCleanerT
 
using ElementMergerT = typename ElementCacheT::ElementMergerT
 
- Types publics hérités de castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >
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

 ResourceCacheT (LoggerInstance &logger, ElementInitialiserT initialise=ElementInitialiserT{}, ElementCleanerT clean=ElementCleanerT{}, ElementMergerT merge=ElementMergerT{})
 
- Fonctions membres publiques hérités de castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >
 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é.
 
template<typename FuncType >
void forEach (FuncType func) const
 
template<typename FuncType >
void forEach (FuncType func)
 
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
 
void lock () const
 
void unlock () const noexcept
 
auto begin () noexcept
 
auto begin () const noexcept
 
auto end () noexcept
 
auto end () const noexcept
 
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
 

Membres hérités additionnels

- Types protégés hérités de castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >
using MutexT = castor::RecursiveMutex
 
- Fonctions membres protégées hérités de castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >
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 hérités de castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >
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::ResourceCacheT< ResT, KeyT, TraitsT >

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

Documentation des définitions de type membres

◆ ElementCacheT

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

◆ ElementCacheTraitsT

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

◆ ElementCleanerT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheT< ResT, KeyT, TraitsT >::ElementCleanerT = typename ElementCacheT::ElementCleanerT

◆ ElementContT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheT< ResT, KeyT, TraitsT >::ElementContT = typename ElementCacheT::ElementContT

◆ ElementInitialiserT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheT< ResT, KeyT, TraitsT >::ElementInitialiserT = typename ElementCacheT::ElementInitialiserT

◆ ElementKeyT

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

◆ ElementMergerT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheT< ResT, KeyT, TraitsT >::ElementMergerT = typename ElementCacheT::ElementMergerT

◆ ElementObsT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheT< ResT, KeyT, TraitsT >::ElementObsT = typename ElementCacheT::ElementObsT

◆ ElementPtrT

template<typename ResT , typename KeyT , typename TraitsT >
using castor::ResourceCacheT< ResT, KeyT, TraitsT >::ElementPtrT = typename ElementCacheT::ElementPtrT

◆ ElementT

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

Documentation des constructeurs et destructeur

◆ ResourceCacheT()

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

name Construction/Desctruction.


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