|
| CoreGraph (std::string const &name, std::unique_ptr< Scheduler > scheduler, hh::Graph< Separator, AllTypes... > *graph) |
| Core Graph constructor using the name and the scheduler.
|
|
| CoreGraph (CoreGraph const &rhs, std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &correspondenceMap) |
| Copy constructor using an added correspondence map.
|
|
| ~CoreGraph () override=default |
| Default destructor.
|
|
template<class CoreInputTypes , tool::CompatibleInputCore< CoreInputTypes, typename GIM< Separator, AllTypes... >::inputs_t > InputCore> |
void | setInputForAllCommonTypes (InputCore *const core) |
| Connect a core's node as input of the graph for all compatible types.
|
|
template<class InputType , class CoreInputTypes , tool::CompatibleInputCoreForAType< InputType, CoreInputTypes, typename GIM< Separator, AllTypes... >::inputs_t > InputCore> |
void | setInputForACommonType (InputCore *const core) |
| Connect a core's node as input of the graph for an compatible input type.
|
|
template<class CoreOutputTypes , tool::CompatibleOutputCore< CoreOutputTypes, typename GOM< Separator, AllTypes... >::outputs_t > OutputCore> |
void | setOutputForAllCommonTypes (OutputCore *const core) |
| Connect a core's node as output of the graph for all compatible types.
|
|
template<class OutputType , class CoreOutputTypes , tool::CompatibleOutputCoreForAType< OutputType, CoreOutputTypes, typename GOM< Separator, AllTypes... >::outputs_t > OutputCore> |
void | setOutputForACommonType (OutputCore *const core) |
| Connect a core's node as output of the graph for a compatible type.
|
|
template<class OutputTypesSenderTuple , class InputTypeReceiverTuple > |
void | addEdgeForAllCommonTypes (NodeAbstraction *const senderCore, NodeAbstraction *const receiverCore) |
| Connect two nodes together for all common types.
|
|
template<class CommonType , class OutputTypesSenderTuple , class InputTypeReceiverTuple > |
void | addEdgeForACommonType (NodeAbstraction *const senderCore, NodeAbstraction *const receiverCore) |
| Connect two nodes together for a common type.
|
|
void | executeGraph (bool waitForInitialization) |
| Execute the graph.
|
|
void | finishPushingData () |
| Indicate to the graph that no more input will be sent, trigger the termination of the graph.
|
|
void | waitForTermination () |
| Wait for the graph to terminate.
|
|
template<tool::MatchInputTypeConcept< tool::Inputs< Separator, AllTypes... > > CompatibleInputType_t> |
void | broadcastAndNotifyAllInputNodes (std::shared_ptr< CompatibleInputType_t > &data) |
| Broadcast an input data to all inputs nodes.
|
|
void | visit (Printer *printer) override |
| Visit the graph.
|
|
void | cleanGraph () |
| Clean the graph.
|
|
std::vector< std::pair< std::string const, std::string const > > | ids () const override |
| Node ids [nodeId, nodeGroupId] accessor.
|
|
behavior::Node * | node () const override |
| Node accessor.
|
|
| GraphNodeAbstraction (std::string const &name) |
| Base graph abstraction.
|
|
| ~GraphNodeAbstraction () override=default |
| Default destructor.
|
|
int | deviceId () const override |
| Device id accessor.
|
|
size_t | graphId () const override |
| Graph id accessor.
|
|
Status | graphStatus () const |
| Graph status accessor.
|
|
std::chrono::time_point< std::chrono::system_clock > const & | graphStartCreation () const |
| Graph start creation timestamp accessor.
|
|
std::chrono::nanoseconds const & | graphConstructionDuration () const |
| Graph construction duration accessor.
|
|
void | deviceId (int deviceId) |
| Setter to the device id.
|
|
void | graphId (size_t graphId) |
| Setter to the graph id.
|
|
void | graphConstructionDuration (std::chrono::nanoseconds const &graphConstructionDuration) |
| Setter to the graph construction duration.
|
|
void | registerNode (GraphNodeAbstraction *belongingGraph) override |
| Register a graph inside a graph.
|
|
std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | minMaxExecutionDuration () const |
| Accessor to the min / max execution duration of the nodes in the graph.
|
|
std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | minMaxWaitDuration () const |
| Accessor to the min / max wait duration of the nodes in the graph.
|
|
virtual void | joinThreads ()=0 |
| Interface to join the threads inside of a graph, called by the Default scheduler.
|
|
virtual void | setInside ()=0 |
| Set a graph inside another one.
|
|
virtual void | createInnerGroupsAndLaunchThreads (bool waitForInitialization)=0 |
| Create the groups and launch the threads of the inside nodes.
|
|
virtual void | registerNodeInsideGraph (NodeAbstraction *core)=0 |
| Register a core inside a graph.
|
|
| NodeAbstraction (std::string name) |
| Core node constructor using the core's name.
|
|
virtual | ~NodeAbstraction ()=default |
| DEfault destructor.
|
|
std::string const & | name () const |
| Accessor to the core's name.
|
|
virtual std::string | id () const |
| Core's id ('x' + address of abstraction) as string.
|
|
bool | isRegistered () const |
| Accessor to registration flag.
|
|
GraphNodeAbstraction * | belongingGraph () const |
| Belonging graph accessor.
|
|
virtual int | deviceId () const |
| Get the device identifier (got from belonging graph)
|
|
virtual size_t | graphId () const |
| Get the graph identifier (got from belonging graph)
|
|
std::chrono::nanoseconds const & | executionDuration () const |
| Execution duration.
|
|
std::chrono::time_point< std::chrono::system_clock > const & | startExecutionTimeStamp () const |
| Accessor to the starting execution timestamp.
|
|
void | startExecutionTimeStamp (std::chrono::time_point< std::chrono::system_clock > const &startExecutionTimeStamp) |
| Setter to the starting execution timestamp.
|
|
void | incrementExecutionDuration (std::chrono::nanoseconds const &exec) |
| Increment execution duration.
|
|
virtual void | registerNode (GraphNodeAbstraction *belongingGraph) |
| Register node to the given graph.
|
|
virtual std::vector< std::pair< std::string const, std::string const > > | ids () const =0 |
| Node ids [nodeId, nodeGroupId] accessor.
|
|
virtual behavior::Node * | node () const =0 |
| Node accessor.
|
|
tool::PrintOptions const & | printOptions () const |
| Print options const accessor.
|
|
tool::PrintOptions & | printOptions () |
| Print options accessor.
|
|
virtual void | visit (Printer *printer)=0 |
| Visitor method, used by the printer to visit all nodes in the graph.
|
|
| CleanableAbstraction ()=default |
| Constructor used by the CoreGraph to have the handles to clean inner cleanable nodes.
|
|
| CleanableAbstraction (behavior::Cleanable *const cleanableNode) |
| Constructor used by cleanable nodes.
|
|
virtual | ~CleanableAbstraction ()=default |
| Default destructor.
|
|
virtual void | gatherCleanable (std::unordered_set< hh::behavior::Cleanable * > &cleanableSet) |
| Gather cleanable node from the graph, and the state manager.
|
|
| ClonableAbstraction () |
| Default constructor.
|
|
virtual | ~ClonableAbstraction ()=default |
| Default destructor.
|
|
void | storeClone (std::shared_ptr< abstraction::NodeAbstraction > const &clone) |
| Store a core clone.
|
|
virtual std::shared_ptr< abstraction::NodeAbstraction > | clone (std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &correspondenceMap)=0 |
| Clone virtual function.
|
|
virtual void | duplicateEdge (std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &mapping)=0 |
| Duplicate the output edges of a node.
|
|
|
void | joinThreads () override |
| Wait for the threads to join.
|
|
void | setInside () override |
| Set the graph as inside of another graph.
|
|
void | registerNodeInsideGraph (NodeAbstraction *const core) override |
| Register a node inside of a graph.
|
|
template<class InputTypes , size_t ... Indices> |
void | callAddInputNodeToGraph (NodeAbstraction *const core, std::index_sequence< Indices... >) |
| Call addInputNodeToGraph for all type-elements of a tuple.
|
|
template<class OutputTypes , size_t ... Indices> |
void | callAddOutputNodeToGraph (NodeAbstraction *const core, std::index_sequence< Indices... >) |
| Call addOutputNodeToGraph for all type-elements of a tuple.
|
|
void | connectNotifierToSlot (NodeAbstraction *senderCore, NodeAbstraction *receiverCore) |
| Connect a notifier to a slot, used when connecting two nodes.
|
|
template<class CommonType > |
void | drawEdge (NodeAbstraction *const senderCore, NodeAbstraction *const receiverCore) |
| Do the actual typed connection between a sender and receiver.
|
|
template<class CommonTypes , size_t ... Indexes> |
void | drawEdges (NodeAbstraction *const senderCore, NodeAbstraction *const receiverCore, std::index_sequence< Indexes... >) |
| Do the actual typed connections between a sender and receiver.
|
|
template<class TupleInputs , size_t... Indices> |
void | testAbstractReceivers (NodeAbstraction *const core, std::index_sequence< Indices... >) |
| Test a core if it can receives data of specific types.
|
|
template<class TupleOutputs , size_t... Indices> |
void | testAbstractSenders (NodeAbstraction *const core, std::index_sequence< Indices... >) |
| Test a core if it can send data of specific types.
|
|
void | testRegistered (auto const &funcName) |
| Test if the graph has been registered.
|
|
void | createInnerGroupsAndLaunchThreads (bool waitForInitialization) override |
| Create the inner groups and launch the threads inside of a graph.
|
|
void | launchThreads (bool waitForInitialization) |
| Launch the threads with the scheduler.
|
|
void | gatherCleanable (std::unordered_set< hh::behavior::Cleanable * > &cleanableSet) override |
| Gather cleanable nodes.
|
|
std::shared_ptr< abstraction::NodeAbstraction > | clone (std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &correspondenceMap) override |
| Clone the current graph.
|
|
void | duplicateInsideNodes (CoreGraph const &rhs, std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &correspondenceMap) |
| Clone all of the inside nodes.
|
|
void | duplicateEdge (std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &mapping) override |
| Duplicate the graph output's edges.
|
|
template<
size_t Separator, class ... AllTypes>
class hh::core::CoreGraph< Separator, AllTypes >
Graph core.
- Template Parameters
-
Separator | Separator position between input types and output types |
AllTypes | List of input and output types |
Definition at line 76 of file core_graph.h.