Castor3D
0.11.0
Multiplatform 3D engine
|
Classe de base pour un cache d'éléments. Plus de détails...
Types publics | |
using | MyCacheType = CacheBase< ElementType, KeyType > |
using | MyCacheTraits = typename MyCacheType::MyCacheTraits |
using | Element = typename MyCacheType::Element |
using | Key = typename MyCacheType::Key |
using | Collection = typename MyCacheType::Collection |
using | LockType = typename MyCacheType::LockType |
using | ElementPtr = typename MyCacheType::ElementPtr |
using | Producer = typename MyCacheType::Producer |
using | Initialiser = typename MyCacheType::Initialiser |
using | Cleaner = typename MyCacheType::Cleaner |
using | Merger = typename MyCacheType::Merger |
Types publics hérités de castor3d::CacheBase< ElementType, KeyType > | |
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 | |
Cache (Engine &engine, Producer &&produce, Initialiser &&initialise=Initialiser{}, Cleaner &&clean=Cleaner{}, Merger &&merge=Merger{}) | |
Constructeur. Plus de détails... | |
~Cache () | |
Destructeur. Plus de détails... | |
Fonctions membres publiques hérités de castor3d::CacheBase< ElementType, KeyType > | |
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 |
Engine * | getEngine () 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 |
Membres hérités additionnels | |
Fonctions membres protégées hérités de castor3d::CacheBase< ElementType, KeyType > | |
void | doReportCreation (castor::String const &name) |
void | doReportDuplicate (castor::String const &name) |
void | doReportNull () |
Attributs protégés hérités de castor3d::CacheBase< ElementType, KeyType > | |
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::Cache< ElementType, KeyType >::Cleaner = typename MyCacheType::Cleaner |
using castor3d::Cache< ElementType, KeyType >::Collection = typename MyCacheType::Collection |
using castor3d::Cache< ElementType, KeyType >::Element = typename MyCacheType::Element |
using castor3d::Cache< ElementType, KeyType >::ElementPtr = typename MyCacheType::ElementPtr |
using castor3d::Cache< ElementType, KeyType >::Initialiser = typename MyCacheType::Initialiser |
using castor3d::Cache< ElementType, KeyType >::Key = typename MyCacheType::Key |
using castor3d::Cache< ElementType, KeyType >::LockType = typename MyCacheType::LockType |
using castor3d::Cache< ElementType, KeyType >::Merger = typename MyCacheType::Merger |
using castor3d::Cache< ElementType, KeyType >::MyCacheTraits = typename MyCacheType::MyCacheTraits |
using castor3d::Cache< ElementType, KeyType >::MyCacheType = CacheBase< ElementType, KeyType > |
using castor3d::Cache< ElementType, KeyType >::Producer = typename MyCacheType::Producer |
|
inline |
Constructeur.
[in] | engine | Le moteur. |
[in] | produce | Le créateur d'objet. |
[in] | initialise | L'initialiseur d'objet. |
[in] | clean | Le nettoyeur d'objet. |
[in] | merge | Le fusionneur de collection d'objets. |
|
inline |
Destructeur.