Castor3D 0.16.0
Multiplatform 3D engine
Classes | Types publics | Fonctions membres publiques | Attributs protégés | Liste de tous les membres
Référence du modèle de la classe castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >

Implémentation du concept de fabrique. Plus de détails...

#include <Factory.hpp>

Graphe d'héritage de castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >:
Inheritance graph
[légende]

Classes

struct  ListEntry
 

Types publics

using Obj = ObjT
 
using Key = KeyT
 
using Entry = EntryT
 
using Id = IdT
 
using PtrType = PtrTypeT
 
using Creator = CreatorT
 
using ObjPtr = PtrType
 
using ObjCont = Vector< Entry >
 

Fonctions membres publiques

EntryregisterType (Key const &key, Creator create)
 Enregistre un type d'objet.
 
void unregisterType (Key const &key)
 Désenregistre un type d'objet.
 
Id getTypeId (Key const &key) const
 
Key getIdType (Id const &id) const
 
bool isTypeRegistered (Key const &key) const
 Vérifie si un type d'objet est enregistré.
 
Vector< ListEntrylistRegisteredTypes () const
 
template<typename ... Parameters>
ObjPtr create (Key const &key, Parameters &&... params) const
 Crée un objet à partir d'une clef (type d'objet)
 

Attributs protégés

Id m_currentId {}
 
ObjCont m_registered
 

Description détaillée

template<class ObjT, class KeyT, class PtrTypeT, typename CreatorT, class IdT, class EntryT>
class castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >

Implémentation du concept de fabrique.

Documentation des définitions de type membres

◆ Creator

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::Creator = CreatorT

◆ Entry

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::Entry = EntryT

◆ Id

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::Id = IdT

◆ Key

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::Key = KeyT

◆ Obj

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::Obj = ObjT

◆ ObjCont

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::ObjCont = Vector< Entry >

◆ ObjPtr

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::ObjPtr = PtrType

◆ PtrType

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::PtrType = PtrTypeT

Documentation des fonctions membres

◆ create()

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
template<typename ... Parameters>
ObjPtr castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::create ( Key const & key,
Parameters &&... params ) const
inline

Crée un objet à partir d'une clef (type d'objet)

Paramètres
[in]keyLe type d'objet
[in]paramsLes paramètres de création
Renvoie
L'objet créé

Références CU_Exception, castor::ERROR_UNKNOWN_OBJECT, et castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_registered.

Référencé par castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::registerType().

Voici le graphe des appelants de cette fonction :

◆ getIdType()

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
Key castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::getIdType ( Id const & id) const
inline
Paramètres
[in]idL'ID du type d'objet.
Renvoie
Le type d'objet.

Références castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_registered.

◆ getTypeId()

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
Id castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::getTypeId ( Key const & key) const
inline
Paramètres
[in]keyLe type d'objet.
Renvoie
L'ID du type d'objet.

Références castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_registered.

◆ isTypeRegistered()

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
bool castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::isTypeRegistered ( Key const & key) const
inline

Vérifie si un type d'objet est enregistré.

Paramètres
[in]keyLe type d'objet.
Renvoie
true si enregistré.

Références castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_registered.

◆ listRegisteredTypes()

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
Vector< ListEntry > castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::listRegisteredTypes ( ) const
inline
Renvoie
La liste des types enregistrés.

Références castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_registered.

◆ registerType()

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
Entry & castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::registerType ( Key const & key,
Creator create )
inline

Enregistre un type d'objet.

Paramètres
[in]keyLe type d'objet
[in]createLa fonction de création d'objet

Références castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::create(), castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_currentId, et castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_registered.

Voici le graphe d'appel pour cette fonction :

◆ unregisterType()

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
void castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::unregisterType ( Key const & key)
inline

Désenregistre un type d'objet.

Paramètres
[in]keyLe type d'objet

Références castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_registered.

Documentation des données membres

◆ m_currentId

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
Id castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_currentId {}
protected

◆ m_registered

template<class ObjT , class KeyT , class PtrTypeT , typename CreatorT , class IdT , class EntryT >
ObjCont castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_registered
protected

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