HTGS
v2.0
The Hybrid Task Graph Scheduler
|
The edge descriptor is an interface used to describe how an edge is applied and copied to a task graph. More...
#include <htgs/core/graph/edge/EdgeDescriptor.hpp>
Public Member Functions | |
virtual | ~EdgeDescriptor () |
Destructor. | |
virtual void | applyEdge (AnyTaskGraphConf *graph)=0 |
Applies an edge to a task graph. More... | |
virtual EdgeDescriptor * | copy (AnyTaskGraphConf *graph)=0 |
Creates a copy of the edge descriptor to be added to other graphs, such as those within execution pipelines. More... | |
The edge descriptor is an interface used to describe how an edge is applied and copied to a task graph.
The edge descriptor is purely an interface that only contains two functions: (1) applyEdge, and (2) copy.
applyEdge adds the edge to a task graph, which is supplied within its parameter.
copy is used to create a copy for a particular task graph. The task graph has helper functions to get copies from that task graph to ensure the proper instances are generated for tasks being added.
|
pure virtual |
Applies an edge to a task graph.
An edge is added to the supplied task graph. Each ITask is obtains a task manager that is to be used to manage the ITask. The graph has helper function AnyTaskGraphConf::getTaskManager. This is used to get the correct task manager that is to be used for a given ITask.
graph | the task graph configuration that the edge is applied to. |
Implemented in htgs::RuleEdge< T, U, W >, htgs::MemoryEdge< T >, htgs::ProducerConsumerEdge< T, U, W >, htgs::GraphRuleProducerEdge< T, U >, htgs::GraphTaskConsumerEdge< T, U >, and htgs::GraphTaskProducerEdge< T, U >.
|
pure virtual |
Creates a copy of the edge descriptor to be added to other graphs, such as those within execution pipelines.
The edge descriptor typically has ITasks that are added to a TaskManager, which is then added to the task graph. The copy function is used to copy the ITasks and any other meta data that is needed for applying the edge. The implementation should use the AnyTaskGraphConf::getCopy function to get copies of the ITask.
graph | the graph you are getting ITask copies from. |
Implemented in htgs::MemoryEdge< T >, htgs::RuleEdge< T, U, W >, htgs::ProducerConsumerEdge< T, U, W >, htgs::GraphRuleProducerEdge< T, U >, htgs::GraphEdge< T >, htgs::GraphEdge< U >, htgs::GraphTaskConsumerEdge< T, U >, and htgs::GraphTaskProducerEdge< T, U >.