Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
RandomChainPlanFunctor< maxFan > Class Template Reference

#include "/Werk/devel/lumi/tests/vault/gear/test-chain-load.hpp"

Description

template<size_t maxFan>
class vault::gear::test::RandomChainPlanFunctor< maxFan >

Render JobFunctor to perform chunk wise planning of Node jobs to calculate a complete Chain-Load graph step by step.

Definition at line 1627 of file test-chain-load.hpp.

Public Member Functions

template<class CAL , class DEP , class CON >
 RandomChainPlanFunctor (Node &nodeArray, size_t nodeCnt, CAL &&schedule, DEP &&markDepend, CON &&continuation)
 
void invokeJobOperation (JobParameter param) override
 render job invocation to trigger one batch of scheduling; the installed callback-λ should actually place a job with RandomChainCalcFunctor for each node, and also inform the Scheduler about dependency relations between jobs.
 
string diagnostic () const override
 
- Public Member Functions inherited from JobClosure
virtual ~JobClosure ()
 this is an interface
 
lib::HashVal hash_value (JobParameter) const
 
- Public Member Functions inherited from JobFunctor
virtual ~JobFunctor ()
 this is an interface
 
 operator std::string () const
 

Private Types

using Node = TestChainLoad< maxFan >::Node
 

Private Attributes

function< void(size_t, size_t)> scheduleCalcJob_
 
function< void(Node *, Node *)> markDependency_
 
function< void(size_t, size_t, size_t, bool)> continuation_
 
size_t maxCnt_
 
Nodenodes_
 
size_t currIdx_ {0}
 

Additional Inherited Members

- Static Public Member Functions inherited from ChainFunctor
static InvocationInstanceID encodeNodeID (size_t idx)
 package the node-index to invoke.
 
static size_t decodeNodeID (InvocationInstanceID invoKey)
 
static Time encodeLevel (size_t level)
 
static size_t decodeLevel (TimeValue nominalTime)
 

Constructor & Destructor Documentation

◆ RandomChainPlanFunctor()

template<size_t maxFan>
template<class CAL , class DEP , class CON >
RandomChainPlanFunctor ( Node nodeArray,
size_t  nodeCnt,
CAL &&  schedule,
DEP &&  markDepend,
CON &&  continuation 
)
inline

Definition at line 1643 of file test-chain-load.hpp.

Member Typedef Documentation

◆ Node

template<size_t maxFan>
using Node = TestChainLoad<maxFan>::Node
private

Definition at line 1630 of file test-chain-load.hpp.

Member Function Documentation

◆ invokeJobOperation()

template<size_t maxFan>
void invokeJobOperation ( JobParameter  param)
inlineoverridevirtual

render job invocation to trigger one batch of scheduling; the installed callback-λ should actually place a job with RandomChainCalcFunctor for each node, and also inform the Scheduler about dependency relations between jobs.

Implements ChainFunctor.

Definition at line 1659 of file test-chain-load.hpp.

References RandomChainPlanFunctor< maxFan >::continuation_, RandomChainPlanFunctor< maxFan >::currIdx_, ChainFunctor::decodeNodeID(), TestChainLoad< maxFan >::Node::level, RandomChainPlanFunctor< maxFan >::markDependency_, RandomChainPlanFunctor< maxFan >::maxCnt_, RandomChainPlanFunctor< maxFan >::nodes_, TestChainLoad< maxFan >::Node::pred, and RandomChainPlanFunctor< maxFan >::scheduleCalcJob_.

+ Here is the call graph for this function:

◆ diagnostic()

template<size_t maxFan>
string diagnostic ( ) const
inlineoverridevirtual

Implements ChainFunctor.

Definition at line 1681 of file test-chain-load.hpp.

Member Data Documentation

◆ scheduleCalcJob_

template<size_t maxFan>
function<void(size_t,size_t)> scheduleCalcJob_
private

◆ markDependency_

template<size_t maxFan>
function<void(Node*,Node*)> markDependency_
private

◆ continuation_

template<size_t maxFan>
function<void(size_t,size_t,size_t,bool)> continuation_
private

◆ maxCnt_

template<size_t maxFan>
size_t maxCnt_
private

◆ nodes_

template<size_t maxFan>
Node* nodes_
private

◆ currIdx_

template<size_t maxFan>
size_t currIdx_ {0}
private
+ Inheritance diagram for RandomChainPlanFunctor< maxFan >:
+ Collaboration diagram for RandomChainPlanFunctor< maxFan >:

The documentation for this class was generated from the following file: