36 #ifndef _MODULE_INTERFACE_HPP_INCLUDED
37 #define _MODULE_INTERFACE_HPP_INCLUDED
95 const char* className )
128 template <
class Tconstructor,
class Tconf >
133 const char* keyword,
const char* className )
176 std::memcpy (
signature,
"Wolframe Module", std::strlen(
"Wolframe Module"));
184 #endif // _MODULE_INTERFACE_HPP_INCLUDED
Base classes for virtual constructors to build objects loaded from modules.
virtual ~SimpleBuilder()
Definition: moduleInterface.hpp:71
virtual ObjectConstructorBase * constructor()=0
BuilderBase *(* createBuilderFunc)()
Function that constructs a builder. This function is specific for each of the configured builders in ...
Definition: moduleInterface.hpp:156
Definition: moduleInterface.hpp:164
createBuilderFunc * createBuilder
NULL terminated array of functions that create the builders.
Definition: moduleInterface.hpp:170
SimpleBuilder(const char *builderID)
Definition: moduleInterface.hpp:68
The modules directory used by the constructors of the providers to build themselves.
Definition: moduleDirectory.hpp:48
char signature[MODULE_SIGN_SIZE]
module entry point signature
Definition: moduleInterface.hpp:167
ObjectType
Definition: constructor.hpp:47
const char * m_className
Definition: moduleInterface.hpp:78
Definition: moduleInterface.hpp:51
virtual ObjectConstructorBase::ObjectType objectType() const =0
SignSize
Definition: moduleInterface.hpp:163
Base classes for the configuration structures.
ModuleEntryPoint entryPoint
Definition: moduleInterface.hpp:180
A named configuration is a normal configuration that provides also an className function.
Definition: configurationBase.hpp:126
Base class for builders of objects without configuration.
Definition: moduleInterface.hpp:63
virtual const char * objectClassName() const =0
Constructor base class.
Definition: constructor.hpp:44
const char * name
name of the module
Definition: moduleInterface.hpp:169
virtual ObjectConstructorBase::ObjectType objectType() const =0
virtual ~BuilderBase()
Definition: moduleInterface.hpp:54
ModuleEntryPoint(unsigned short iVer, const char *modName, createBuilderFunc *createBuilder_)
Definition: moduleInterface.hpp:172
unsigned short ifaceVersion
version of the module loader interface
Definition: moduleInterface.hpp:168
The module entry point structure. Only one entry point per module.
Definition: moduleInterface.hpp:161
virtual ObjectConstructorBase * constructor()=0
virtual const char * objectClassName() const
Definition: moduleInterface.hpp:73