GENIEGenerator
Loading...
Searching...
No Matches
GFluxDriverFactory.h File Reference
#include <string>
#include <vector>
#include <map>
#include "Framework/EventGen/GFluxI.h"
Include dependency graph for GFluxDriverFactory.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  genie::flux::GFluxDriverFactory
 A class for generating concrete GFluxI derived classes based on the factory pattern. This code supplies a CPP macro which allows the classes to self-register and thus no modification of this class is needed in order to expand the list of classes it knows about. More...
struct  genie::flux::GFluxDriverFactory::Cleaner

Namespaces

namespace  genie
 THE MAIN GENIE PROJECT NAMESPACE
namespace  genie::flux
 GENIE flux drivers.

Macros

#define FLUXDRIVERREG(_name)
#define FLUXDRIVERREG3(_ns, _name, _fqname)
#define FLUXDRIVERREG4(_nsa, _nsb, _name, _fqname)

Typedefs

typedef genie::GFluxI *(* genie::flux::GFluxICtorFuncPtr_t) ()

Macro Definition Documentation

◆ FLUXDRIVERREG

#define FLUXDRIVERREG ( _name)
Value:
genie::GFluxI* _name ## _ctor_function () { return new _name; } \
static bool _name ## _creator_registered = \
genie::flux::GFluxDriverFactory::Instance().RegisterCreator(# _name, \
& _name ## _ctor_function, \
& _name ## _creator_registered );
GENIE Interface for user-defined flux classes.
Definition GFluxI.h:29

Definition at line 138 of file GFluxDriverFactory.h.

138#define FLUXDRIVERREG( _name ) \
139 genie::GFluxI* _name ## _ctor_function () { return new _name; } \
140 static bool _name ## _creator_registered = \
141 genie::flux::GFluxDriverFactory::Instance().RegisterCreator(# _name, \
142 & _name ## _ctor_function, \
143 & _name ## _creator_registered );

◆ FLUXDRIVERREG3

#define FLUXDRIVERREG3 ( _ns,
_name,
_fqname )
Value:
namespace _ns { \
genie::GFluxI* _name ## _ctor_function () { return new _fqname; } \
static bool _name ## _creator_registered = \
genie::flux::GFluxDriverFactory::Instance().RegisterCreator(# _fqname, \
& _fqname ## _ctor_function, \
& _fqname ## _creator_registered );}

Definition at line 145 of file GFluxDriverFactory.h.

145#define FLUXDRIVERREG3( _ns, _name, _fqname ) \
146namespace _ns { \
147 genie::GFluxI* _name ## _ctor_function () { return new _fqname; } \
148 static bool _name ## _creator_registered = \
149 genie::flux::GFluxDriverFactory::Instance().RegisterCreator(# _fqname, \
150 & _fqname ## _ctor_function, \
151 & _fqname ## _creator_registered );}

◆ FLUXDRIVERREG4

#define FLUXDRIVERREG4 ( _nsa,
_nsb,
_name,
_fqname )
Value:
namespace _nsa { \
namespace _nsb { \
genie::GFluxI* _name ## _ctor_function () { return new _fqname; } \
static bool _name ## _creator_registered = \
genie::flux::GFluxDriverFactory::Instance().RegisterCreator(# _fqname, \
& _fqname ## _ctor_function, \
& _fqname ## _creator_registered );}}

Definition at line 153 of file GFluxDriverFactory.h.

153#define FLUXDRIVERREG4( _nsa, _nsb, _name, _fqname ) \
154namespace _nsa { \
155 namespace _nsb { \
156 genie::GFluxI* _name ## _ctor_function () { return new _fqname; } \
157 static bool _name ## _creator_registered = \
158 genie::flux::GFluxDriverFactory::Instance().RegisterCreator(# _fqname, \
159 & _fqname ## _ctor_function, \
160 & _fqname ## _creator_registered );}}