Castor3D  ..
Types publics | Fonctions membres publiques | 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 >:
+ Graphe de collaboration de Castor3D::CacheBase< ElementType, KeyType >:

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 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 &p_engine, Producer &&p_produce, Initialiser &&p_initialise, Cleaner &&p_clean, Merger &&p_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 ()
 
template<typename ... Parameters>
ElementPtr Create (Key const &p_name, Parameters &&... p_parameters)
 Crée un élément. Plus de détails...
 
ElementPtr Add (Key const &p_name, ElementPtr p_element)
 Retire un élément à partir d'un nom. Plus de détails...
 
template<typename ... Parameters>
ElementPtr Add (Key const &p_name, Parameters &&... p_parameters)
 Crée un élément. Plus de détails...
 
void Remove (Key const &p_name)
 Retire un élément à partir d'un nom. Plus de détails...
 
void MergeInto (MyCacheType &p_destination)
 
template<typename FuncType >
void ForEach (FuncType p_func) const
 Applique une fonction à tous les éléments de ce cache. Plus de détails...
 
template<typename FuncType >
void ForEach (FuncType p_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 &p_name) const
 
ElementPtr Find (Key const &p_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
 

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.

Auteur
Sylvain DOREMUS
Date
13/10/2015
Version
0.8.0

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

◆ 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 p_engine,
Producer &&  p_produce,
Initialiser &&  p_initialise,
Cleaner &&  p_clean,
Merger &&  p_merge 
)
inline

Constructeur.

Paramètres
[in]p_engineLe moteur.
[in]p_produceLe créateur d'objet.
[in]p_initialiseL'initialiseur d'objet.
[in]p_cleanLe nettoyeur d'objet.
[in]p_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 &  p_name,
ElementPtr  p_element 
)
inline

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

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

◆ Add() [2/2]

template<typename ElementType, typename KeyType>
template<typename ... Parameters>
ElementPtr Castor3D::CacheBase< ElementType, KeyType >::Add ( Key const &  p_name,
Parameters &&...  p_parameters 
)
inline

Crée un élément.

Paramètres
[in]p_nameLe nom d'élément.
[in]p_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< Plugin, 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 &  p_name,
Parameters &&...  p_parameters 
)
inline

Crée un élément.

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

◆ 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 &  p_name) const
inline

Cherche un élément par son nom.

Paramètres
[in]p_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  p_func) const
inline

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

Paramètres
[in]p_funcLa fonction.

◆ ForEach() [2/2]

template<typename ElementType, typename KeyType>
template<typename FuncType >
void Castor3D::CacheBase< ElementType, KeyType >::ForEach ( FuncType  p_func)
inline

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

Paramètres
[in]p_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
Renvoie
L'Engine.

Référencé par Castor3D::CacheBase< Plugin, Castor::String >::Add().

+ Voici le graphe des appelants de cette fonction :

◆ Has()

template<typename ElementType, typename KeyType>
bool Castor3D::CacheBase< ElementType, KeyType >::Has ( Key const &  p_name) const
inline
Paramètres
[in]p_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 ( )
inline
Renvoie
true si le cache est vide.

◆ lock()

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

Locke le mutex de la collection.

◆ MergeInto()

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

◆ Remove()

template<typename ElementType, typename KeyType>
void Castor3D::CacheBase< ElementType, KeyType >::Remove ( Key const &  p_name)
inline

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

Paramètres
[in]p_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

◆ m_merge

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

◆ m_produce

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

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