Lumiera
0.pre.03
»edit your freedom«
|
#include "steam/engine/nodewiring-config.hpp"
Helper for fabricating ProcNode Wiring configurations.
This object builds a table of factories, holding one factory for each possible node configuration. Provided with the desired configuration encoded as bits, the related factory can be invoked, thus producing a product object for the given configuration.
Now the selection of the possible flag configurations, for which Factory instances are created in the table, is governed by the type parameter of the ConfigSelector ctor. This type parameter needs to be a Typelist of Typelists, each representing a flag configuration. The intention is to to drive this selection by the use of template metaprogramming for extracting all currently defined StateProxy object configurations.
Definition at line 114 of file nodewiring-config.hpp.
Public Member Functions | |
template<class CONFS > | |
ConfigSelector (CONFS const &, PAR factory_ctor_param) | |
FacFunction & | operator[] (IxID configFlags) |
Classes | |
struct | FactoryHolder |
< impl type erasure More... | |
struct | FactoryTableBuilder |
Helper: a visitor usable with FlagInfo. More... | |
Private Types | |
typedef std::map< IxID, PFunc > | ConfigTable |
typedef std::function< FUNC > | FacFunction |
typedef std::shared_ptr< FacFunction > | PFunc |
Private Attributes | |
ConfigTable | possibleConfig_ |
Table of factories. | |
|
inline |
configFlags | retrieve the factory corresponding to the given config |
Definition at line 176 of file nodewiring-config.hpp.