Castor3D
..
|
Classe de base pour un cache d'éléments. Plus de détails...
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 |
Engine * | GetEngine () 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 | |
Engine & | m_engine |
Collection | m_elements |
Producer | m_produce |
Initialiser | m_initialise |
Cleaner | m_clean |
Merger | m_merge |
Classe de base pour un cache d'éléments.
using Castor3D::CacheBase< ElementType, KeyType >::Cleaner = ElementCleaner< Element > |
using Castor3D::CacheBase< ElementType, KeyType >::Collection = Castor::Collection< Element, Key > |
using Castor3D::CacheBase< ElementType, KeyType >::Element = ElementType |
using Castor3D::CacheBase< ElementType, KeyType >::ElementPtr = std::shared_ptr< Element > |
using Castor3D::CacheBase< ElementType, KeyType >::Initialiser = ElementInitialiser< Element > |
using Castor3D::CacheBase< ElementType, KeyType >::Key = KeyType |
using Castor3D::CacheBase< ElementType, KeyType >::Merger = typename MyCacheTraits::Merger |
using Castor3D::CacheBase< ElementType, KeyType >::MyCacheTraits = CacheTraits< ElementType, KeyType > |
using Castor3D::CacheBase< ElementType, KeyType >::MyCacheType = CacheBase< ElementType, KeyType > |
using Castor3D::CacheBase< ElementType, KeyType >::Producer = typename MyCacheTraits::Producer |
|
inline |
Constructeur.
[in] | p_engine | Le moteur. |
[in] | p_produce | Le créateur d'objet. |
[in] | p_initialise | L'initialiseur d'objet. |
[in] | p_clean | Le nettoyeur d'objet. |
[in] | p_merge | Le fusionneur de collection d'objets. |
|
inline |
Destructeur.
|
inline |
Retire un élément à partir d'un nom.
[in] | p_name | Le nom d'élément. |
[in] | p_element | L'élément. |
|
inline |
Crée un élément.
[in] | p_name | Le nom d'élément. |
[in] | p_parameters | Les autres paramètres de construction. |
|
inline |
|
inline |
|
inline |
Met tous les éléments à nettoyer.
|
inline |
Vide la collection.
Référencé par Castor3D::CacheBase< Plugin, Castor::String >::MergeInto().
|
inline |
Crée un élément.
[in] | p_name | Le nom d'élément. |
[in] | p_parameters | Les autres paramètres de construction. |
|
inline |
|
inline |
|
inline |
Cherche un élément par son nom.
[in] | p_name | Le nom d'élément. |
|
inline |
Applique une fonction à tous les éléments de ce cache.
[in] | p_func | La fonction. |
|
inline |
Applique une fonction à tous les éléments de ce cache.
[in] | p_func | La fonction. |
|
inline |
|
inline |
|
inline |
Référencé par Castor3D::CacheBase< Plugin, Castor::String >::Add().
|
inline |
[in] | p_name | Le nom d'élément. |
true
Si un élément avec le nom donné existe.
|
inline |
true
si le cache est vide.
|
inline |
Locke le mutex de la collection.
|
inline |
[out] | p_destination | Le cache de destination. |
|
inline |
Retire un élément à partir d'un nom.
[in] | p_name | Le nom d'élément. |
|
inline |
Délocke le mutex de la collection.
|
protected |
Le nettoyeur d'éléments.
Référencé par Castor3D::CacheBase< Plugin, Castor::String >::CacheBase(), et Castor3D::CacheBase< Plugin, Castor::String >::Cleanup().
|
mutableprotected |
La collection d'éléments.
Référencé par Castor3D::CacheBase< Plugin, Castor::String >::Add(), Castor3D::CacheBase< Plugin, Castor::String >::begin(), Castor3D::CacheBase< Plugin, Castor::String >::Cleanup(), Castor3D::CacheBase< Plugin, Castor::String >::Clear(), Castor3D::CacheBase< Plugin, Castor::String >::end(), Castor3D::CacheBase< Plugin, Castor::String >::Find(), Castor3D::CacheBase< Plugin, Castor::String >::ForEach(), Castor3D::CacheBase< Plugin, Castor::String >::GetObjectCount(), Castor3D::CacheBase< Plugin, Castor::String >::Has(), Castor3D::CacheBase< Plugin, Castor::String >::IsEmpty(), Castor3D::CacheBase< Plugin, Castor::String >::lock(), Castor3D::CacheBase< Plugin, Castor::String >::MergeInto(), Castor3D::CacheBase< Plugin, Castor::String >::Remove(), et Castor3D::CacheBase< Plugin, Castor::String >::unlock().
|
protected |
Le moteur.
Référencé par Castor3D::CacheBase< Plugin, Castor::String >::GetEngine().
|
protected |
L'initaliseur d'éléments.
Référencé par Castor3D::CacheBase< Plugin, Castor::String >::Add(), et Castor3D::CacheBase< Plugin, Castor::String >::CacheBase().
|
protected |
Le fusionneur de collection d'éléments.
Référencé par Castor3D::CacheBase< Plugin, Castor::String >::CacheBase(), et Castor3D::CacheBase< Plugin, Castor::String >::MergeInto().
|
protected |
Le créateur d'éléments.
Référencé par Castor3D::CacheBase< Plugin, Castor::String >::Add(), Castor3D::CacheBase< Plugin, Castor::String >::CacheBase(), et Castor3D::CacheBase< Plugin, Castor::String >::Create().