Castor3D 0.16.0
Multiplatform 3D engine
Types publics | Fonctions membres publiques | Attributs publics | Types protégés | Fonctions membres protégées | Attributs protégés | Amis | Liste de tous les membres
Référence du modèle de la classe castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >

#include <ObjectCacheBase.hpp>

Graphe d'héritage de castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >:
Collaboration graph
[légende]

Types publics

using OnChangedFunction = castor::Function< void() >
 
using OnChanged = castor::SignalT< OnChangedFunction >
 
- Types publics hérités de castor::ResourceCacheBaseT< ObjT, KeyT, TraitsT >
using ElementT
 
using ElementKeyT
 
using ElementCacheTraitsT
 
using ElementCacheBaseT
 
using ElementCacheT
 
using ElementPtrT
 
using ElementObsT
 
using ElementContT
 
using ElementInitialiserT
 
using ElementCleanerT
 
using ElementMergerT
 

Fonctions membres publiques

void mergeInto (ElementObjectCacheT &destination)
 Met les éléments de ce cache dans ceux de celui donné.
 
EnginegetEngine () const noexcept
 
castor::String const & getObjectTypeName () const noexcept
 
- Fonctions membres publiques hérités de castor::OwnedBy< Scene >
Scene * getOwner () const
 L'objet propriétaire.
 
- Fonctions membres publiques hérités de castor::ResourceCacheBaseT< ObjT, KeyT, TraitsT >
 ResourceCacheBaseT (ResourceCacheBaseT const &)=delete
 
 ResourceCacheBaseT (ResourceCacheBaseT &&) noexcept=delete
 
ResourceCacheBaseToperator= (ResourceCacheBaseT const &)=delete
 
ResourceCacheBaseToperator= (ResourceCacheBaseT &&) noexcept=delete
 
void cleanup () noexcept
 Met tous les éléments à nettoyer.
 
void clear () noexcept
 Vide la collection.
 
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 tryAdd (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters)
 Ajoute un élément, construict sur place.
 
ElementObsT tryAddNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=false)
 Ajoute un élément.
 
ElementObsT tryAddNoLock (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters)
 Ajoute un élément, construict sur place.
 
ElementObsT add (ElementKeyT const &name, ElementPtrT &element, bool initialise=true)
 Version journalisante de tryAdd.
 
ElementObsT add (ElementKeyT const &name, ParametersT &&... parameters)
 Version journalisante de tryAdd.
 
ElementObsT addNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=true)
 Version journalisante de tryAdd.
 
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é.
 
void forEach (FuncType func) const
 
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
 

Attributs publics

OnChanged onChanged
 

Types protégés

using ElementT = ObjT
 
using ElementKeyT = KeyT
 
using ElementCacheTraitsT = TraitsT
 
using ElementCacheT = castor::ResourceCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >
 
using ElementCacheBaseT = ElementCacheT
 
using ElementObjectCacheT = ObjectCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >
 
using ElementPtrT = ObjectPtrT< ElementT, ElementKeyT >
 
using ElementObsT = ObjectObsT< ElementT, ElementKeyT >
 
using ElementContT = ObjectContT< ElementT, ElementKeyT >
 
using ElementInitialiserT = ObjectInitialiserT< ElementT, ElementKeyT >
 
using ElementCleanerT = ObjectCleanerT< ElementT, ElementKeyT >
 
using ElementMergerT = ObjectMergerT< ElementT, ElementKeyT >
 
using ElementAttacherT = ObjectAttacherT< ElementT, ElementKeyT >
 
using ElementDetacherT = ObjectDetacherT< ElementT, ElementKeyT >
 
- Types protégés hérités de castor::ResourceCacheBaseT< ObjT, KeyT, TraitsT >
using MutexT
 

Fonctions membres protégées

 ObjectCacheBaseT (Scene &scene, SceneNodeRPtr rootNode, SceneNodeRPtr rootCameraNode, SceneNodeRPtr rootObjectNode, ElementInitialiserT initialise=ElementInitialiserT{}, ElementCleanerT clean=ElementCleanerT{}, ElementMergerT merge=ElementMergerT{}, ElementAttacherT attach=ElementAttacherT{}, ElementDetacherT detach=ElementDetacherT{})
 Constructeur.
 
- Fonctions membres protégées hérités de castor::OwnedBy< Scene >
 OwnedBy (Scene &owner)
 Constructeur.
 
- Fonctions membres protégées hérités de castor::ResourceCacheBaseT< ObjT, KeyT, TraitsT >
void doCleanupNoLock () const noexcept
 
void doClearNoLock () noexcept
 
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)
 
ElementObsT doTryAddNoLockT (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters)
 
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

Enginem_engine
 
SceneNodeRPtr m_rootNode
 
SceneNodeRPtr m_rootCameraNode
 
SceneNodeRPtr m_rootObjectNode
 
ElementMergerT m_merge
 
ElementAttacherT m_attach
 
ElementDetacherT m_detach
 
- Attributs protégés hérités de castor::ResourceCacheBaseT< ObjT, KeyT, TraitsT >
LoggerInstancem_logger
 
CheckedMutexT< MutexTm_mutex
 
ElementContT m_resources
 
ElementInitialiserT m_initialise
 
ElementCleanerT m_clean
 
ElementMergerT m_merge
 

Amis

class Scene
 

Description détaillée

template<typename ObjT, typename KeyT, typename TraitsT>
class castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >

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

Documentation des définitions de type membres

◆ ElementAttacherT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementAttacherT = ObjectAttacherT< ElementT, ElementKeyT >
protected

◆ ElementCacheBaseT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementCacheBaseT = ElementCacheT
protected

◆ ElementCacheT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementCacheT = castor::ResourceCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >
protected

◆ ElementCacheTraitsT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementCacheTraitsT = TraitsT
protected

◆ ElementCleanerT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementCleanerT = ObjectCleanerT< ElementT, ElementKeyT >
protected

◆ ElementContT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementContT = ObjectContT< ElementT, ElementKeyT >
protected

◆ ElementDetacherT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementDetacherT = ObjectDetacherT< ElementT, ElementKeyT >
protected

◆ ElementInitialiserT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementInitialiserT = ObjectInitialiserT< ElementT, ElementKeyT >
protected

◆ ElementKeyT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementKeyT = KeyT
protected

◆ ElementMergerT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementMergerT = ObjectMergerT< ElementT, ElementKeyT >
protected

◆ ElementObjectCacheT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementObjectCacheT = ObjectCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >
protected

◆ ElementObsT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementObsT = ObjectObsT< ElementT, ElementKeyT >
protected

◆ ElementPtrT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementPtrT = ObjectPtrT< ElementT, ElementKeyT >
protected

◆ ElementT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementT = ObjT
protected

◆ OnChanged

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::OnChanged = castor::SignalT< OnChangedFunction >

◆ OnChangedFunction

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::OnChangedFunction = castor::Function< void() >

Documentation des constructeurs et destructeur

◆ ObjectCacheBaseT()

template<typename ObjT , typename KeyT , typename TraitsT >
castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ObjectCacheBaseT ( Scene & scene,
SceneNodeRPtr rootNode,
SceneNodeRPtr rootCameraNode,
SceneNodeRPtr rootObjectNode,
ElementInitialiserT initialise = ElementInitialiserT{},
ElementCleanerT clean = ElementCleanerT{},
ElementMergerT merge = ElementMergerT{},
ElementAttacherT attach = ElementAttacherT{},
ElementDetacherT detach = ElementDetacherT{} )
inlineprotected

Constructeur.

Paramètres
[in]sceneLa scène.
[in]rootNodeLe noeud racine.
[in]rootCameraNodeLe noeud racine des caméras.
[in]rootObjectNodeLe noeud racine des objets.
[in]initialiseL'initialiseur d'objet.
[in]cleanLe nettoyeur d'objet.
[in]mergeLe fusionneur de collection d'objets.
[in]attachL'attacheur d'objet (à un noeud de scène).
[in]detachLe détacheur d'objet (d'un noeud de scène).

Documentation des fonctions membres

◆ getEngine()

template<typename ObjT , typename KeyT , typename TraitsT >
Engine * castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::getEngine ( ) const
inlinenoexcept

◆ getObjectTypeName()

template<typename ObjT , typename KeyT , typename TraitsT >
castor::String const & castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::getObjectTypeName ( ) const
inlinenoexcept
Renvoie
Le nom du type des objets.

◆ mergeInto()

template<typename ObjT , typename KeyT , typename TraitsT >
void castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::mergeInto ( ElementObjectCacheT & destination)
inline

Met les éléments de ce cache dans ceux de celui donné.

Paramètres
[out]destinationLe cache de destination.

Références castor::ResourceCacheBaseT< ObjT, KeyT, TraitsT >::doClearNoLock(), castor::ResourceCacheBaseT< ObjT, KeyT, TraitsT >::lock(), castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_merge, castor::makeUniqueLock(), et castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::onChanged.

Voici le graphe d'appel pour cette fonction :

Documentation des fonctions amies et associées

◆ Scene

template<typename ObjT , typename KeyT , typename TraitsT >
friend class Scene
friend

Documentation des données membres

◆ m_attach

template<typename ObjT , typename KeyT , typename TraitsT >
ElementAttacherT castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_attach
protected

L'attacheur d'objet.

◆ m_detach

template<typename ObjT , typename KeyT , typename TraitsT >
ElementDetacherT castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_detach
protected

Le détacheur d'objet.

◆ m_engine

template<typename ObjT , typename KeyT , typename TraitsT >
Engine& castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_engine
protected

◆ m_merge

template<typename ObjT , typename KeyT , typename TraitsT >
ElementMergerT castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_merge
protected

◆ m_rootCameraNode

template<typename ObjT , typename KeyT , typename TraitsT >
SceneNodeRPtr castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_rootCameraNode
protected

Le noeud père de tous les noeuds de caméra.

◆ m_rootNode

template<typename ObjT , typename KeyT , typename TraitsT >
SceneNodeRPtr castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_rootNode
protected

Le noeud père de tous les noeuds de la scène.

◆ m_rootObjectNode

template<typename ObjT , typename KeyT , typename TraitsT >
SceneNodeRPtr castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_rootObjectNode
protected

Le noeud père de tous les noeuds d'objet.

◆ onChanged

template<typename ObjT , typename KeyT , typename TraitsT >
OnChanged castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::onChanged

Le signal émis lorsque le contenu a changé.

Référencé par castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::mergeInto().


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