Castor3D  0.11.0
Multiplatform 3D engine
Types publics | Fonctions membres publiques | Fonctions membres protégées | Attributs protégés | Liste de tous les membres
Référence du modèle de la classe castor3d::CacheBase< ElementType, KeyType >

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

Graphe d'héritage de castor3d::CacheBase< ElementType, KeyType >:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::CacheBase< ElementType, KeyType >:
Collaboration graph
[légende]

Types publics

using MyCacheType = CacheBase< ElementType, KeyType >
 
using MyCacheTraits = CacheTraits< ElementType, KeyType >
 
using Element = ElementType
 
using Key = KeyType
 
using Collection = castor::Collection< Element, Key >
 
using LockType = std::unique_lock< Collection >
 
using ElementPtr = std::shared_ptr< Element >
 
using Producer = typename MyCacheTraits::Producer
 
using Merger = typename MyCacheTraits::Merger
 
using Initialiser = ElementInitialiser< Element >
 
using Cleaner = ElementCleaner< Element >
 

Fonctions membres publiques

 CacheBase (Engine &engine, Producer &&produce, Initialiser &&initialise, Cleaner &&clean, Merger &&merge)
 Constructeur. Plus de détails...
 
 ~CacheBase ()
 Destructeur. Plus de détails...
 
void cleanup ()
 Met tous les éléments à nettoyer. Plus de détails...
 
void clear ()
 Vide la collection. Plus de détails...
 
bool isEmpty () const
 
template<typename ... Parameters>
ElementPtr create (Key const &name, Parameters &&... parameters)
 Crée un élément. Plus de détails...
 
ElementPtr add (Key const &name, ElementPtr element)
 Retire un élément à partir d'un nom. Plus de détails...
 
template<typename ... Parameters>
ElementPtr add (Key const &name, Parameters &&... parameters)
 Crée un élément. Plus de détails...
 
void remove (Key const &name)
 Retire un élément à partir d'un nom. Plus de détails...
 
void mergeInto (MyCacheType &destination)
 
template<typename FuncType >
void forEach (FuncType func) const
 Applique une fonction à tous les éléments de ce cache. Plus de détails...
 
template<typename FuncType >
void forEach (FuncType func)
 Applique une fonction à tous les éléments de ce cache. Plus de détails...
 
uint32_t getObjectCount () const
 
EnginegetEngine () const
 
castor::String const & getObjectTypeName () const
 
bool has (Key const &name) const
 
ElementPtr find (Key const &name) const
 Cherche un élément par son nom. Plus de détails...
 
void lock () const
 Locke le mutex de la collection. Plus de détails...
 
void unlock () const
 Délocke le mutex de la collection. Plus de détails...
 
auto begin ()
 
auto begin () const
 
auto end ()
 
auto end () const
 

Fonctions membres protégées

void doReportCreation (castor::String const &name)
 
void doReportDuplicate (castor::String const &name)
 
void doReportNull ()
 

Attributs protégés

Enginem_engine
 
Collection m_elements
 
Producer m_produce
 
Initialiser m_initialise
 
Cleaner m_clean
 
Merger m_merge
 

Description détaillée

template<typename ElementType, typename KeyType>
class castor3d::CacheBase< ElementType, KeyType >

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

Documentation des définitions de type membres

◆ Cleaner

template<typename ElementType, typename KeyType>
using castor3d::CacheBase< ElementType, KeyType >::Cleaner = ElementCleaner< Element >

◆ Collection

template<typename ElementType, typename KeyType>
using castor3d::CacheBase< ElementType, KeyType >::Collection = castor::Collection< Element, Key >

◆ Element

template<typename ElementType, typename KeyType>
using castor3d::CacheBase< ElementType, KeyType >::Element = ElementType

◆ ElementPtr

template<typename ElementType, typename KeyType>
using castor3d::CacheBase< ElementType, KeyType >::ElementPtr = std::shared_ptr< Element >

◆ Initialiser

template<typename ElementType, typename KeyType>
using castor3d::CacheBase< ElementType, KeyType >::Initialiser = ElementInitialiser< Element >

◆ Key

template<typename ElementType, typename KeyType>
using castor3d::CacheBase< ElementType, KeyType >::Key = KeyType

◆ LockType

template<typename ElementType, typename KeyType>
using castor3d::CacheBase< ElementType, KeyType >::LockType = std::unique_lock< Collection >

◆ Merger

template<typename ElementType, typename KeyType>
using castor3d::CacheBase< ElementType, KeyType >::Merger = typename MyCacheTraits::Merger

◆ MyCacheTraits

template<typename ElementType, typename KeyType>
using castor3d::CacheBase< ElementType, KeyType >::MyCacheTraits = CacheTraits< ElementType, KeyType >

◆ MyCacheType

template<typename ElementType, typename KeyType>
using castor3d::CacheBase< ElementType, KeyType >::MyCacheType = CacheBase< ElementType, KeyType >

◆ Producer

template<typename ElementType, typename KeyType>
using castor3d::CacheBase< ElementType, KeyType >::Producer = typename MyCacheTraits::Producer

Documentation des constructeurs et destructeur

◆ CacheBase()

template<typename ElementType, typename KeyType>
castor3d::CacheBase< ElementType, KeyType >::CacheBase ( Engine engine,
Producer &&  produce,
Initialiser &&  initialise,
Cleaner &&  clean,
Merger &&  merge 
)
inline

Constructeur.

Paramètres
[in]engineLe moteur.
[in]produceLe créateur d'objet.
[in]initialiseL'initialiseur d'objet.
[in]cleanLe nettoyeur d'objet.
[in]mergeLe fusionneur de collection d'objets.

◆ ~CacheBase()

template<typename ElementType, typename KeyType>
castor3d::CacheBase< ElementType, KeyType >::~CacheBase ( )
inline

Destructeur.

Documentation des fonctions membres

◆ add() [1/2]

template<typename ElementType, typename KeyType>
ElementPtr castor3d::CacheBase< ElementType, KeyType >::add ( Key const &  name,
ElementPtr  element 
)
inline

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

Paramètres
[in]nameLe nom d'élément.
[in]elementL'élément.

Référencé par castor3d::Cache< Overlay, castor::String >::add().

Voici le graphe des appelants de cette fonction :

◆ add() [2/2]

template<typename ElementType, typename KeyType>
template<typename ... Parameters>
ElementPtr castor3d::CacheBase< ElementType, KeyType >::add ( Key const &  name,
Parameters &&...  parameters 
)
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éé.

◆ begin() [1/2]

template<typename ElementType, typename KeyType>
auto castor3d::CacheBase< ElementType, KeyType >::begin ( )
inline
Renvoie
L'itérateur sur le début de la collection.

◆ begin() [2/2]

template<typename ElementType, typename KeyType>
auto castor3d::CacheBase< ElementType, KeyType >::begin ( ) const
inline
Renvoie
L'itérateur sur le début de la collection.

◆ cleanup()

template<typename ElementType, typename KeyType>
void castor3d::CacheBase< ElementType, KeyType >::cleanup ( )
inline

Met tous les éléments à nettoyer.

◆ clear()

template<typename ElementType, typename KeyType>
void castor3d::CacheBase< ElementType, KeyType >::clear ( )
inline

Vide la collection.

Référencé par castor3d::CacheBase< Overlay, castor::String >::mergeInto().

Voici le graphe des appelants de cette fonction :

◆ create()

template<typename ElementType, typename KeyType>
template<typename ... Parameters>
ElementPtr castor3d::CacheBase< ElementType, KeyType >::create ( Key const &  name,
Parameters &&...  parameters 
)
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érencé par castor3d::CacheBase< Overlay, castor::String >::add().

Voici le graphe des appelants de cette fonction :

◆ doReportCreation()

template<typename ElementType, typename KeyType>
void castor3d::CacheBase< ElementType, KeyType >::doReportCreation ( castor::String const &  name)
inlineprotected

Référencé par castor3d::CacheBase< Overlay, castor::String >::add(), et castor3d::CacheBase< Overlay, castor::String >::create().

Voici le graphe des appelants de cette fonction :

◆ doReportDuplicate()

template<typename ElementType, typename KeyType>
void castor3d::CacheBase< ElementType, KeyType >::doReportDuplicate ( castor::String const &  name)
inlineprotected

Référencé par castor3d::CacheBase< Overlay, castor::String >::add().

Voici le graphe des appelants de cette fonction :

◆ doReportNull()

template<typename ElementType, typename KeyType>
void castor3d::CacheBase< ElementType, KeyType >::doReportNull ( )
inlineprotected

Référencé par castor3d::CacheBase< Overlay, castor::String >::add().

Voici le graphe des appelants de cette fonction :

◆ end() [1/2]

template<typename ElementType, typename KeyType>
auto castor3d::CacheBase< ElementType, KeyType >::end ( )
inline
Renvoie
L'itérateur sur la fin de la collection.

◆ end() [2/2]

template<typename ElementType, typename KeyType>
auto castor3d::CacheBase< ElementType, KeyType >::end ( ) const
inline
Renvoie
L'itérateur sur la fin de la collection.

◆ find()

template<typename ElementType, typename KeyType>
ElementPtr castor3d::CacheBase< ElementType, KeyType >::find ( Key const &  name) const
inline

Cherche un élément par son nom.

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

◆ forEach() [1/2]

template<typename ElementType, typename KeyType>
template<typename FuncType >
void castor3d::CacheBase< ElementType, KeyType >::forEach ( FuncType  func) const
inline

Applique une fonction à tous les éléments de ce cache.

Paramètres
[in]funcLa fonction.

◆ forEach() [2/2]

template<typename ElementType, typename KeyType>
template<typename FuncType >
void castor3d::CacheBase< ElementType, KeyType >::forEach ( FuncType  func)
inline

Applique une fonction à tous les éléments de ce cache.

Paramètres
[in]funcLa fonction.

◆ getEngine()

template<typename ElementType, typename KeyType>
Engine* castor3d::CacheBase< ElementType, KeyType >::getEngine ( ) const
inline
Renvoie
L'Engine.

◆ getObjectCount()

template<typename ElementType, typename KeyType>
uint32_t castor3d::CacheBase< ElementType, KeyType >::getObjectCount ( ) const
inline
Renvoie
Le nombre d'éléments.

◆ getObjectTypeName()

template<typename ElementType, typename KeyType>
castor::String const& castor3d::CacheBase< ElementType, KeyType >::getObjectTypeName ( ) const
inline

◆ has()

template<typename ElementType, typename KeyType>
bool castor3d::CacheBase< ElementType, KeyType >::has ( Key const &  name) const
inline
Paramètres
[in]nameLe nom d'élément.
Renvoie
true Si un élément avec le nom donné existe.

◆ isEmpty()

template<typename ElementType, typename KeyType>
bool castor3d::CacheBase< ElementType, KeyType >::isEmpty ( ) const
inline
Renvoie
true si le cache est vide.

◆ lock()

template<typename ElementType, typename KeyType>
void castor3d::CacheBase< ElementType, KeyType >::lock ( ) const
inline

◆ mergeInto()

template<typename ElementType, typename KeyType>
void castor3d::CacheBase< ElementType, KeyType >::mergeInto ( MyCacheType destination)
inline
Renvoie
Met les éléments de ce cache dans ceux de celui donné.
Paramètres
[out]destinationLe cache de destination.

◆ remove()

template<typename ElementType, typename KeyType>
void castor3d::CacheBase< ElementType, KeyType >::remove ( Key const &  name)
inline

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

Paramètres
[in]nameLe nom d'élément.

◆ unlock()

template<typename ElementType, typename KeyType>
void castor3d::CacheBase< ElementType, KeyType >::unlock ( ) const
inline

Délocke le mutex de la collection.

Documentation des données membres

◆ m_clean

template<typename ElementType, typename KeyType>
Cleaner castor3d::CacheBase< ElementType, KeyType >::m_clean
protected

◆ m_elements

template<typename ElementType, typename KeyType>
Collection castor3d::CacheBase< ElementType, KeyType >::m_elements
mutableprotected

◆ m_engine

template<typename ElementType, typename KeyType>
Engine& castor3d::CacheBase< ElementType, KeyType >::m_engine
protected

◆ m_initialise

template<typename ElementType, typename KeyType>
Initialiser castor3d::CacheBase< ElementType, KeyType >::m_initialise
protected

L'initaliseur d'éléments.

Référencé par castor3d::CacheBase< Overlay, castor::String >::add().

◆ m_merge

template<typename ElementType, typename KeyType>
Merger castor3d::CacheBase< ElementType, KeyType >::m_merge
protected

Le fusionneur de collection d'éléments.

Référencé par castor3d::CacheBase< Overlay, castor::String >::mergeInto().

◆ m_produce

template<typename ElementType, typename KeyType>
Producer castor3d::CacheBase< ElementType, KeyType >::m_produce
protected

Le créateur d'éléments.

Référencé par castor3d::CacheBase< Overlay, castor::String >::create().


La documentation de cette classe a été générée à partir du fichier suivant :