|
| | 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.