library/utility/factory.hh¶
-
namespace
scarab
¶ The standard scarab namespace.
Functions
-
scarab::LOGGER(slog_fact, "factory")
- template <class XBaseType, typename… XArgs>
-
class
base_registrar
¶ - #include <factory.hh>
Protected Functions
-
virtual XBaseType *
create
(XArgs... args) const = 0¶
Friends
-
friend
scarab::factory< XBaseType, XArgs... >
-
virtual XBaseType *
- template <class XBaseType>
-
template<>
classbase_registrar
<XBaseType, void>¶ - #include <factory.hh>
Protected Functions
-
virtual XBaseType *
create
() const = 0¶
Friends
-
friend
scarab::factory< XBaseType >
-
virtual XBaseType *
- template <class XBaseType, typename… XArgs>
-
class
factory
¶ - #include <factory.hh>
Inherits from singleton< factory< XBaseType, XArgs… > >
Public Types
-
typedef std::map<std::string, const base_registrar<XBaseType, XArgs...> *>
FactoryMap
¶
-
typedef FactoryMap::value_type
FactoryEntry
¶
-
typedef FactoryMap::iterator
FactoryIt
¶
-
typedef FactoryMap::const_iterator
FactoryCIt
¶
Public Functions
-
XBaseType *
create
(const std::string &a_class_name, XArgs... args)¶
-
XBaseType *
create
(const FactoryCIt &iter, XArgs... args)¶
-
void
register_class
(const std::string &a_class_name, const base_registrar<XBaseType, XArgs...> *base_registrar)¶
-
bool
has_class
(const std::string &a_class_name) const¶
-
void
remove_class
(const std::string &a_class_name)¶
-
typedef std::map<std::string, const base_registrar<XBaseType, XArgs...> *>
- template <class XBaseType>
-
template<>
classfactory
<XBaseType, void>¶ - #include <factory.hh>
Inherits from singleton< factory< XBaseType > >
Public Types
-
typedef std::map<std::string, const base_registrar<XBaseType> *>
FactoryMap
¶
-
typedef FactoryMap::value_type
FactoryEntry
¶
-
typedef FactoryMap::iterator
FactoryIt
¶
-
typedef FactoryMap::const_iterator
FactoryCIt
¶
Public Functions
-
XBaseType *
create
(const std::string &a_class_name)¶
-
XBaseType *
create
(const FactoryCIt &iter)¶
-
void
register_class
(const std::string &a_class_name, const base_registrar<XBaseType> *base_registrar)¶
-
bool
has_class
(const std::string &a_class_name) const¶
-
void
remove_class
(const std::string &a_class_name)¶
Friends
-
friend
scarab::singleton< factory >
-
friend
scarab::destroyer< factory >
-
typedef std::map<std::string, const base_registrar<XBaseType> *>
- template <class XBaseType, class XDerivedType, typename… XArgs>
-
class
registrar
¶ - #include <factory.hh>
Inherits from base_registrar< XBaseType, XArgs… >
Protected Functions
-
void
register_class
(const std::string &a_class_name) const¶
-
XBaseType *
create
(XArgs... args) const¶
Protected Attributes
-
std::string
f_class_name
¶
-
void
- template <class XBaseType, class XDerivedType>
-
template<>
classregistrar
<XBaseType, XDerivedType, void>¶ - #include <factory.hh>
Inherits from base_registrar< XBaseType >
Protected Functions
-
void
register_class
(const std::string &a_class_name) const¶
-
XBaseType *
create
() const¶
Protected Attributes
-
std::string
f_class_name
¶
-
void
-