18 #ifndef GENIE_FLUX_GFLUXDRIVERFACTORY_H 19 #define GENIE_FLUX_GFLUXDRIVERFACTORY_H 130 #define FLUXDRIVERREG( _name ) \ 131 genie::GFluxI* _name ## _ctor_function () { return new _name; } \ 132 static bool _name ## _creator_registered = \ 133 genie::flux::GFluxDriverFactory::Instance().RegisterCreator(# _name, \ 134 & _name ## _ctor_function, \ 135 & _name ## _creator_registered ); 137 #define FLUXDRIVERREG3( _ns, _name, _fqname ) \ 139 genie::GFluxI* _name ## _ctor_function () { return new _fqname; } \ 140 static bool _name ## _creator_registered = \ 141 genie::flux::GFluxDriverFactory::Instance().RegisterCreator(# _fqname, \ 142 & _fqname ## _ctor_function, \ 143 & _fqname ## _creator_registered );} 145 #define FLUXDRIVERREG4( _nsa, _nsb, _name, _fqname ) \ 148 genie::GFluxI* _name ## _ctor_function () { return new _fqname; } \ 149 static bool _name ## _creator_registered = \ 150 genie::flux::GFluxDriverFactory::Instance().RegisterCreator(# _fqname, \ 151 & _fqname ## _ctor_function, \ 152 & _fqname ## _creator_registered );}}
virtual ~GFluxDriverFactory()
THE MAIN GENIE PROJECT NAMESPACE
static GFluxDriverFactory * fgTheInstance
const std::vector< std::string > & AvailableFluxDrivers() const
genie::GFluxI *(* GFluxICtorFuncPtr_t)()
std::vector< std::string > listnames
static GFluxDriverFactory & Instance()
std::map< std::string, GFluxICtorFuncPtr_t > fFunctionMap
bool RegisterCreator(std::string name, GFluxICtorFuncPtr_t ctorptr, bool *ptr)
std::map< std::string, bool * > fBoolPtrMap
bool IsKnownFluxDriver(const std::string &)
void operator=(const GFluxDriverFactory &)
genie::GFluxI * GetFluxDriver(const std::string &)
GENIE Interface for user-defined flux classes.