Castor3D 0.16.0
Multiplatform 3D engine
|
Implémentation du concept de fabrique. Plus de détails...
#include <Factory.hpp>
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 | |
Entry & | registerType (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< ListEntry > | listRegisteredTypes () 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 |
Implémentation du concept de fabrique.
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::Creator = CreatorT |
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::Entry = EntryT |
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::Id = IdT |
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::Key = KeyT |
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::Obj = ObjT |
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::ObjCont = Vector< Entry > |
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::ObjPtr = PtrType |
using castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::PtrType = PtrTypeT |
|
inline |
Crée un objet à partir d'une clef (type d'objet)
[in] | key | Le type d'objet |
[in] | params | Les paramètres de création |
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().
|
inline |
[in] | id | L'ID du type d'objet. |
Références castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_registered.
|
inline |
[in] | key | Le type d'objet. |
Références castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_registered.
|
inline |
Vérifie si un type d'objet est enregistré.
[in] | key | Le type d'objet. |
true
si enregistré. Références castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_registered.
|
inline |
Références castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_registered.
|
inline |
Enregistre un type d'objet.
[in] | key | Le type d'objet |
[in] | create | La 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.
|
inline |
Désenregistre un type d'objet.
[in] | key | Le type d'objet |
Références castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::m_registered.
|
protected |
|
protected |
Référencé par castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::create(), castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::getIdType(), castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::getTypeId(), castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::isTypeRegistered(), castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::listRegisteredTypes(), castor3d::PassFactory::listRegisteredTypes(), castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::registerType(), et castor::Factory< ObjT, KeyT, PtrTypeT, CreatorT, IdT, EntryT >::unregisterType().