38 #include <boost/lexical_cast.hpp>
41 #define WF_DATABASE(NAME,DBCLASS,CONFIGCLASS) \
43 class Unit :public _Wolframe::db::DatabaseUnit \
46 Unit( const CONFIGCLASS& cfg)\
47 :m_id(cfg.ID()),m_db(cfg){}\
48 virtual const char* className() const\
50 return #DBCLASS "Unit";\
52 virtual const std::string& ID() const\
56 virtual DBCLASS* database()\
64 class Constructor :public _Wolframe::ConfiguredObjectConstructor< _Wolframe::db::DatabaseUnit >\
67 virtual ~Constructor(){}\
68 _Wolframe::ObjectConstructorBase::ObjectType objectType() const\
70 return DATABASE_OBJECT;\
72 const char* objectClassName() const\
74 return NAME "Database";\
76 _Wolframe::db::DatabaseUnit* object( const _Wolframe::config::NamedConfiguration& cfgi)\
78 const CONFIGCLASS* cfg = dynamic_cast<const CONFIGCLASS*>(&cfgi);\
79 return new Unit(*cfg);\
82 class BuilderDescription : public _Wolframe::module::ConfiguredBuilder\
85 BuilderDescription( const char* title, const char* section,\
86 const char* keyword, const char* className )\
87 :_Wolframe::module::ConfiguredBuilder( title, section, keyword, className ){}\
88 virtual ~BuilderDescription()\
90 virtual _Wolframe::config::NamedConfiguration* configuration( const char* logPrefix )\
92 return new CONFIGCLASS( m_title, logPrefix);\
94 virtual _Wolframe::ObjectConstructorBase::ObjectType objectType() const\
96 return m_constructor.objectType();\
98 virtual _Wolframe::ObjectConstructorBase* constructor()\
100 return &m_constructor;\
103 Constructor m_constructor;\
107 static _Wolframe::module::BuilderBase* impl()\
109 static BuilderDescription mod( NAME "Database", "Database", NAME, NAME "Database");\
113 (*this)(&Builder::impl);\
118 #define WF_TEST_DATABASE(NAME,DBCLASS,CONFIGCLASS,DBINITCLASS) \
120 class Unit :public _Wolframe::db::DatabaseUnit \
123 Unit( const CONFIGCLASS& cfg)\
124 :m_dbinit(cfg),m_db(cfg){}\
125 virtual const char* className() const\
127 return #DBCLASS "Unit";\
129 virtual const std::string& ID() const\
133 virtual DBCLASS* database()\
138 DBINITCLASS m_dbinit;\
141 class Constructor :public _Wolframe::ConfiguredObjectConstructor< _Wolframe::db::DatabaseUnit >\
144 virtual ~Constructor(){}\
145 _Wolframe::ObjectConstructorBase::ObjectType objectType() const\
147 return DATABASE_OBJECT;\
149 const char* objectClassName() const\
151 return NAME "Database";\
153 Unit* object( const _Wolframe::config::NamedConfiguration& cfgi)\
155 const CONFIGCLASS* cfg = dynamic_cast<const CONFIGCLASS*>(&cfgi);\
156 return new Unit(*cfg);\
159 class BuilderDescription : public _Wolframe::module::ConfiguredBuilder\
162 BuilderDescription( const char* title, const char* section,\
163 const char* keyword, const char* className )\
164 :_Wolframe::module::ConfiguredBuilder( title, section, keyword, className ){}\
165 virtual ~BuilderDescription()\
167 virtual _Wolframe::config::NamedConfiguration* configuration( const char* logPrefix )\
169 return new CONFIGCLASS( m_title, logPrefix);\
171 virtual _Wolframe::ObjectConstructorBase::ObjectType objectType() const\
173 return m_constructor.objectType();\
175 virtual _Wolframe::ObjectConstructorBase* constructor()\
177 return &m_constructor;\
180 Constructor m_constructor;\
184 static _Wolframe::module::BuilderBase* impl()\
186 static BuilderDescription mod( NAME "Database", "Database", NAME, NAME "Database");\
190 (*this)(&Builder::impl);\
Base classes for virtual constructors to build objects loaded from modules.
Interface to constructors of authenticators.
Basic interface classes that to build objects and the Wolframe module interface.