21 #ifndef __ctkAbstractFactory_h 22 #define __ctkAbstractFactory_h 27 #include <QSharedPointer> 28 #include <QStringList> 31 # pragma warning(disable: 4505) 41 template<
typename BaseClassType>
49 virtual bool load() = 0;
84 QStringList InstantiateErrorStrings;
85 QStringList InstantiateWarningStrings;
86 QStringList LoadErrorStrings;
87 QStringList LoadWarningStrings;
99 template<
typename BaseClassType>
109 virtual void printAdditionalInfo();
113 virtual BaseClassType *
instantiate(
const QString& itemKey);
117 virtual BaseClassType *
instance(
const QString& itemKey);
125 virtual QString
path(
const QString& itemKey){ Q_UNUSED(itemKey);
return QString(); }
127 void setSharedItems(
const QSharedPointer<HashType>& items);
128 QSharedPointer<HashType> sharedItems();
131 QStringList itemKeys()
const;
144 void displayStatusMessage(
const QtMsgType&
type,
const QString& description,
145 const QString& status,
bool display);
164 HashType RegisteredItemMap;
165 QSharedPointer<HashType> SharedRegisteredItemMap;
170 #include "ctkAbstractFactory.tpp"
ctkAbstractFactory is the base class of all the factory where items need to be registered before bein...
QHash< QString, QSharedPointer< ctkAbstractFactoryItem< BaseClassType > > > HashType
QStringList loadWarningStrings() const
bool isInstantiated() const
QStringList instantiateWarningStrings() const
void setVerbose(bool value)
QStringList instantiateErrorStrings() const
void appendLoadWarningString(const QString &msg)
void clearLoadErrorStrings()
virtual ~ctkAbstractFactoryItem()
void appendInstantiateWarningString(const QString &msg)
HashType::const_iterator ConstIterator
virtual void registerItems()
Register items with the factory Method provided for convenience - Should be overloaded in subclasse...
HashType::iterator Iterator
void clearInstantiateWarningStrings()
void appendInstantiateErrorString(const QString &msg)
void clearLoadWarningStrings()
virtual QString path(const QString &itemKey)
Get path associated with the item identified by itemKey Should be overloaded in subclasse.
virtual BaseClassType * instanciator()=0
Must be reimplemented in subclasses to instanciate a BaseClassType*.
BaseClassType * instantiate()
void clearInstantiateErrorStrings()
BaseClassType * instance() const
void appendLoadErrorString(const QString &msg)
QStringList loadErrorStrings() const
virtual void uninstantiate()