JAPAn
Just Another Parity Analyzer
Loading...
Searching...
No Matches
QwFactory.h File Reference

Factory pattern implementation for creating analysis objects. More...

#include <cxxabi.h>
#include <cstdlib>
#include <typeindex>
#include "QwLog.h"
#include "QwConcepts.h"
+ Include dependency graph for QwFactory.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  QwException_TypeUnknown
 
class  VQwFactory< base_t >
 Abstract factory base for runtime object creation. More...
 
class  QwFactory< base_t, type_t >
 Concrete templated factory for creating specific object types. More...
 
class  QwHandlerFactory< handler_t >
 
class  QwSubsystemFactory< subsystem_t >
 
class  QwDataElementFactory< dataelement_t >
 
class  VQwCloneable< base_t >
 Virtual base providing polymorphic copy construction. More...
 
class  MQwCloneable< base_t, type_t >
 Mix-in template for concrete cloneable types. More...
 
class  MQwDataHandlerCloneable< subsystem_t >
 
class  MQwSubsystemCloneable< subsystem_t >
 
class  MQwDataElementCloneable< dataelement_t >
 

Macros

#define REGISTER_DATA_HANDLER_FACTORY(A)
 
#define REGISTER_SUBSYSTEM_FACTORY(A)
 
#define REGISTER_DATA_ELEMENT_FACTORY(A)
 

Typedefs

typedef class VQwFactory< VQwDataHandlerVQwDataHandlerFactory
 Factory type with functionality for data handlers.
 
typedef class VQwFactory< VQwSubsystemVQwSubsystemFactory
 Factory type with functionality for subsystems.
 
typedef class VQwFactory< VQwDataElementVQwDataElementFactory
 Factory type with functionality for data elements.
 
typedef class VQwCloneable< VQwDataHandlerVQwDataHandlerCloneable
 Mix-in factory functionality for datahandlers.
 
typedef class VQwCloneable< VQwSubsystemVQwSubsystemCloneable
 Mix-in factory functionality for subsystems.
 
typedef class VQwCloneable< VQwDataElementVQwDataElementCloneable
 Mix-in factory functionality for data elements.
 

Detailed Description

Factory pattern implementation for creating analysis objects.

Definition in file QwFactory.h.

Macro Definition Documentation

◆ REGISTER_DATA_ELEMENT_FACTORY

#define REGISTER_DATA_ELEMENT_FACTORY ( A)
Value:
#define VALIDATE_DATA_ELEMENT_PATTERN(ClassName)
Helper macro to validate architectural compliance in concrete classes.
Definition QwConcepts.h:390
class VQwFactory< VQwDataElement > VQwDataElementFactory
Factory type with functionality for data elements.
Definition QwFactory.h:139
Concrete templated factory for creating specific object types.
Definition QwFactory.h:112
static const VQwFactory< base_t > * fFactory
Pointer to the factory of this type.
Definition QwFactory.h:242

Macros to create and register the data element factory of type A Note: a call to this macro should be followed by a semi-colon! Includes automatic architectural validation for VQwDataElement derivatives

Definition at line 277 of file QwFactory.h.

277#define REGISTER_DATA_ELEMENT_FACTORY(A) \
278 VALIDATE_DATA_ELEMENT_PATTERN(A); \
279 template<> const VQwDataElementFactory* MQwCloneable<VQwDataElement,A>::fFactory = new QwFactory<VQwDataElement,A>(#A)

◆ REGISTER_DATA_HANDLER_FACTORY

#define REGISTER_DATA_HANDLER_FACTORY ( A)
Value:
#define VALIDATE_DATA_HANDLER_PATTERN(ClassName)
Helper macro to validate data handler compliance.
Definition QwConcepts.h:408
class VQwFactory< VQwDataHandler > VQwDataHandlerFactory
Factory type with functionality for data handlers.
Definition QwFactory.h:135

Macros to create and register the data handler factory of type A Note: a call to this macro should be followed by a semi-colon! Includes automatic architectural validation for VQwDataHandler derivatives

Definition at line 263 of file QwFactory.h.

263#define REGISTER_DATA_HANDLER_FACTORY(A) \
264 VALIDATE_DATA_HANDLER_PATTERN(A); \
265 template<> const VQwDataHandlerFactory* MQwCloneable<VQwDataHandler,A>::fFactory = new QwFactory<VQwDataHandler,A>(#A)

◆ REGISTER_SUBSYSTEM_FACTORY

#define REGISTER_SUBSYSTEM_FACTORY ( A)
Value:
#define VALIDATE_SUBSYSTEM_PATTERN(ClassName)
Helper macro to validate unified subsystem compliance.
Definition QwConcepts.h:423
class VQwFactory< VQwSubsystem > VQwSubsystemFactory
Factory type with functionality for subsystems.
Definition QwFactory.h:137

Macros to create and register the subsystem factory of type A Note: a call to this macro should be followed by a semi-colon! Includes automatic architectural validation for VQwSubsystem derivatives

Definition at line 270 of file QwFactory.h.

270#define REGISTER_SUBSYSTEM_FACTORY(A) \
271 VALIDATE_SUBSYSTEM_PATTERN(A); \
272 template<> const VQwSubsystemFactory* MQwCloneable<VQwSubsystem,A>::fFactory = new QwFactory<VQwSubsystem,A>(#A)

Typedef Documentation

◆ VQwDataElementCloneable

Mix-in factory functionality for data elements.

Definition at line 255 of file QwFactory.h.

◆ VQwDataElementFactory

Factory type with functionality for data elements.

Definition at line 139 of file QwFactory.h.

◆ VQwDataHandlerCloneable

Mix-in factory functionality for datahandlers.

Definition at line 247 of file QwFactory.h.

◆ VQwDataHandlerFactory

Factory type with functionality for data handlers.

Definition at line 135 of file QwFactory.h.

◆ VQwSubsystemCloneable

Mix-in factory functionality for subsystems.

Definition at line 251 of file QwFactory.h.

◆ VQwSubsystemFactory

Factory type with functionality for subsystems.

Definition at line 137 of file QwFactory.h.