![]() |
Lumiera 0.pre.04
»edit your freedom«
|
#include "steam/engine/param-weaving-pattern.hpp"
Implementation for a Weaving Pattern to conduct extended parameter evaluation.
A tuple of parameter-functors is embedded and will be invoked on each activation, to generate a tuple of parameter-values, which are placed into the local stack frame and then made accessible through the TurnoutSystem. Then the delegatePort_ is invoked recursively; the additional parameter values are thus usable from within all nodes contained therein, during this recursive evaluation.
Definition at line 284 of file param-weaving-pattern.hpp.
Classes | |
| struct | Feed |
| Storage data frame placed on the call stack. More... | |
Public Types | |
| using | Functors = SPEC::Functors |
| using | DataBlock = SPEC::ChainCons::NewFrame |
| using | BlockBuilder = SPEC::BlockBuilder |
| using | PostProcessor = function< void(TurnoutSystem &)> |
Public Attributes | |
| BlockBuilder | blockBuilder_ |
| PostProcessor | postProcess_ |
| Port & | delegatePort_ |
Public Member Functions | |
| ParamWeavingPattern (BlockBuilder builder, PostProcessor postProc, Port &delegate) | |
| forwarding-ctor to used from within Turnout, to provide actual setup. | |
| Feed | mount (TurnoutSystem &) |
| Preparation: create a Feed data frame to use as local scope. | |
| void | pull (Feed &feed, TurnoutSystem &turnoutSys) |
| Invoke the parameter-functors to create the basic parameter data. | |
| void | shed (Feed &feed, TurnoutSystem &turnoutSys, OptionalBuff outBuff) |
| Link the param-data-block into the current TurnoutSystem, possibly post-process the param data. | |
| void | weft (Feed &feed, TurnoutSystem &turnoutSys) |
| recursively invoke the delegate port, while the generated parameter-data is indirectly reachable through the TurnoutSystem | |
| BuffHandle | fix (Feed &feed, TurnoutSystem &turnoutSys) |
| clean-up: detach the parameter-data-block. | |
Friends | |
| auto | _accessInternal (ParamWeavingPattern &patt) |
Additional Inherited Members | |
Protected Member Functions inherited from MoveOnly | |
| ~MoveOnly ()=default | |
| MoveOnly ()=default | |
| MoveOnly (MoveOnly &&)=default | |
| MoveOnly (MoveOnly const &)=delete | |
| MoveOnly & | operator= (MoveOnly &&)=delete |
| MoveOnly & | operator= (MoveOnly const &)=delete |
|
inline |
forwarding-ctor to used from within Turnout, to provide actual setup.
Definition at line 314 of file param-weaving-pattern.hpp.
| using Functors = SPEC::Functors |
Definition at line 287 of file param-weaving-pattern.hpp.
| using DataBlock = SPEC::ChainCons::NewFrame |
Definition at line 288 of file param-weaving-pattern.hpp.
| using BlockBuilder = SPEC::BlockBuilder |
Definition at line 289 of file param-weaving-pattern.hpp.
| using PostProcessor = function<void(TurnoutSystem&)> |
Definition at line 290 of file param-weaving-pattern.hpp.
|
inline |
Preparation: create a Feed data frame to use as local scope.
Definition at line 323 of file param-weaving-pattern.hpp.
|
inline |
Invoke the parameter-functors to create the basic parameter data.
Definition at line 330 of file param-weaving-pattern.hpp.
References ParamWeavingPattern< SPEC >::blockBuilder_, and ParamWeavingPattern< SPEC >::Feed::emplaceParamDataBlock().
Here is the call graph for this function:
|
inline |
Link the param-data-block into the current TurnoutSystem, possibly post-process the param data.
From this point on, Nodes within the nested scope can draw from this data.
Definition at line 340 of file param-weaving-pattern.hpp.
References TurnoutSystem::attachChainBlock(), ParamWeavingPattern< SPEC >::Feed::block(), ParamWeavingPattern< SPEC >::Feed::outBuff, and ParamWeavingPattern< SPEC >::postProcess_.
Here is the call graph for this function:
|
inline |
recursively invoke the delegate port, while the generated parameter-data is indirectly reachable through the TurnoutSystem
Definition at line 352 of file param-weaving-pattern.hpp.
References ParamWeavingPattern< SPEC >::delegatePort_, ParamWeavingPattern< SPEC >::Feed::outBuff, and Port::weave().
Here is the call graph for this function:
|
inline |
clean-up: detach the parameter-data-block.
Definition at line 362 of file param-weaving-pattern.hpp.
References ParamWeavingPattern< SPEC >::Feed::block(), TurnoutSystem::detachChainBlock(), and ParamWeavingPattern< SPEC >::Feed::outBuff.
Here is the call graph for this function:| BlockBuilder blockBuilder_ |
Definition at line 292 of file param-weaving-pattern.hpp.
Referenced by ParamWeavingPattern< SPEC >::pull().
| PostProcessor postProcess_ |
Definition at line 293 of file param-weaving-pattern.hpp.
Referenced by ParamWeavingPattern< SPEC >::shed().
| Port& delegatePort_ |
Definition at line 294 of file param-weaving-pattern.hpp.
Referenced by ParamWeavingPattern< SPEC >::weft().
|
friend |
expose data not dependent on the template params
Definition at line 371 of file param-weaving-pattern.hpp.
Inheritance diagram for ParamWeavingPattern< SPEC >:
Collaboration diagram for ParamWeavingPattern< SPEC >: