HTGS
v2.0
The Hybrid Task Graph Scheduler
|
the default execution pipeline rule that is used if no other rule is specified for an execution pipeline. More...
#include <htgs/core/rules/ExecutionPipelineBroadcastRule.hpp>
Public Member Functions | |
bool | canTerminateRule (size_t pipelineId) override |
Virtual function to determine if a rule is ready to be terminated. More... | |
void | shutdownRule (size_t pipelineId) override |
Virtual function that handles when a rule is being shutdown for a particular pipelineId. More... | |
std::string | getName () override |
Virtual function to get the name of the IRule. More... | |
void | applyRule (std::shared_ptr< T > data, size_t pipelineId) override |
Pure virtual function to process input data. More... | |
Public Member Functions inherited from htgs::IRule< T, T > | |
IRule () | |
Creates an IRule. | |
IRule (bool useLocks) | |
Creates an IRule with locks specified. More... | |
virtual | ~IRule () override |
Destructor. | |
std::list< std::shared_ptr< T > > * | applyRuleFunction (std::shared_ptr< T > data, size_t pipelineId) |
Applies the virtual rule function and processes output. More... | |
void | addResult (std::shared_ptr< T > result) |
Adds a result value to the output. More... | |
void | addResult (T *result) |
Adds a result value to the output. More... | |
StateContainer< std::shared_ptr< T > > * | allocStateContainer (size_t height, size_t width) |
Allocates a two dimensional state container using the input type of the IRule. More... | |
StateContainer< V > * | allocStateContainer (size_t height, size_t width, V defaultValue) |
Allocates a two dimensional state container using the template argument. More... | |
StateContainer< std::shared_ptr< T > > * | allocStateContainer (size_t size) |
Allocates a one dimensional state container using the input type of the IRule. More... | |
StateContainer< V > * | allocStateContainer (size_t size, V defaultValue) |
Allocates a one dimensional state container using the input type of the IRule. More... | |
Public Member Functions inherited from htgs::AnyIRule | |
AnyIRule () | |
Creates an AnyIRule with locks enabled. | |
AnyIRule (bool useLocks) | |
Creates an AnyIRule with locks specified. More... | |
virtual | ~AnyIRule () |
Destructor. | |
std::mutex & | getMutex () |
Gets the mutex associated with this IRule. More... | |
bool | canUseLocks () const |
Gets whether the rule should use locks or not. More... | |
the default execution pipeline rule that is used if no other rule is specified for an execution pipeline.
When constructing an ExecutionPipeline task, rules must be added to the task to indicate how data is distributed within pipelines. If no rule is specified, then this rule is added automatically during initialization of the task.
T | the input/output type for the rule, must be of type IData. |
|
inlineoverridevirtual |
Pure virtual function to process input data.
Use the addResult function to add values to the output edge.
data | the input data |
pipelineId | the pipelineId |
Implements htgs::IRule< T, T >.
|
inlineoverridevirtual |
Virtual function to determine if a rule is ready to be terminated.
If there is no more data entering the RuleManager that is managing this IRule, then the rule will be automatically terminated.
pipelineId | the pipelineId associated with this rule |
TRUE | if the rule should be terminated |
FALSE | if the rule should not be terminated |
Reimplemented from htgs::IRule< T, T >.
|
inlineoverridevirtual |
Virtual function to get the name of the IRule.
Reimplemented from htgs::IRule< T, T >.
|
inlineoverridevirtual |
Virtual function that handles when a rule is being shutdown for a particular pipelineId.
pipelineId | the pipelineId to shutdown |
Reimplemented from htgs::IRule< T, T >.