This is the main interface for the task graph structure.
It is the base class for the dataflow task graph which implements the IDataflowTaskGraph interface.
This class extends the base data flow task graph which is mainly responsible for building the task graph for the task vertex and the task edge.
This class is responsible for assigning the directed task edge between the task vertices.
Represents a edge in the graph
When instantiating the comms, we need to assign an id for the edge.
Users develop ITask object and when it is added to the graph we need additional information including the name, runtime configuration etc.