Hedgehog
3.1.0
A library to generate hybrid pipeline workflow systems
|
Output management abstraction for the grpah. More...
#include "graph_outputs_management_abstraction.h"
Public Types | |
using | outputs_t = std::tuple< Outputs... > |
Accessor to the output types. | |
Public Member Functions | |
GraphOutputsManagementAbstraction () | |
Default constructor. | |
~GraphOutputsManagementAbstraction () override=default | |
Default destructor. | |
auto | getBlockingResult () |
Get a blocking result for the outer graph from the sink. | |
![]() | |
NotifierAbstraction (std::shared_ptr< implementor::ImplementorNotifier > notifier) | |
Constructor utilising a concrete implementation. | |
virtual | ~NotifierAbstraction ()=default |
Default destructor. | |
std::set< NotifierAbstraction * > const & | notifiers () const |
Const accessor to notifiers. | |
std::set< NotifierAbstraction * > & | notifiers () |
Accessor to notifiers. | |
void | addSlot (SlotAbstraction *const slot) |
Add a SlotAbstraction to this notifier. | |
void | removeSlot (SlotAbstraction *const slot) |
Remove SlotAbstraction from this notifier. | |
std::set< SlotAbstraction * > const & | connectedSlots () const |
Accessor to the slots attached to this notifier. | |
void | notify () |
Notify a slot to wake up. | |
void | notifyAllTerminated () |
Notifier all slots that this node is terminated. | |
![]() | |
SenderAbstraction (std::shared_ptr< implementor::ImplementorSender< Outputs > > concreteSender) | |
Constructor using the concrete implementation. | |
virtual | ~SenderAbstraction ()=default |
Default destructor. | |
std::set< SenderAbstraction< Outputs > * > const & | senders () const |
Const accessor to senders. | |
std::set< SenderAbstraction< Outputs > * > & | senders () |
Accessor to senders. | |
std::set< ReceiverAbstraction< Outputs > * > const & | connectedReceivers () const |
Accessor to the receivers attached to this SenderAbstraction. | |
void | addReceiver (ReceiverAbstraction< Outputs > *const receiver) |
Add a ReceiverAbstraction. | |
void | removeReceiver (ReceiverAbstraction< Outputs > *const receiver) |
Remove a ReceiverAbstraction. | |
void | send (std::shared_ptr< Outputs > data) |
Send a data as output of the node. | |
Protected Member Functions | |
std::unique_ptr< GraphSink< Outputs... > > const & | sink () const |
Accessor to the graph's sink. | |
template<class OutputDataType > | |
void | addOutputNodeToGraph (NodeAbstraction *const outputNode) |
Add an output node in the graph. | |
void | disconnectSink () |
Disconnect the sink. | |
void | printSink (Printer *printer) |
Visit the sink. | |
void | duplicateSinkEdges (GraphOutputsManagementAbstraction< Outputs... > const &rhs, std::map< abstraction::NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &mapping) |
Duplicate sink edges. | |
void | duplicateOutputEdges (std::map< abstraction::NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &mapping) |
Duplicate output edges. | |
![]() | |
void | duplicateEdgeNotifier (std::map< abstraction::NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &mapping) |
Duplicate edges of the current notifier to slots to clone in map. | |
![]() | |
void | copyInnerStructure (SenderAbstraction< Outputs > *copyableCore) |
Copy inner structure of the sender to this one. | |
void | duplicateEdgeSender (std::map< abstraction::NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &mapping) |
Duplicate edges of the current sender to receiver to clone in map. | |
Private Member Functions | |
template<class Output > | |
void | disconnectSinkFromSender () |
Disconnect the sink from the graph's output senders. | |
template<class Output > | |
void | duplicateSinkEdge (GraphOutputsManagementAbstraction< Outputs... > const &rhs, std::map< abstraction::NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &correspondenceMap) |
Duplicate sink edge. | |
Private Attributes | |
std::unique_ptr< GraphSink< Outputs... > > | sink_ = nullptr |
Graph's sink. | |
Output management abstraction for the grpah.
Outputs | Types of output data |
Definition at line 45 of file graph_outputs_management_abstraction.h.
using hh::core::abstraction::GraphOutputsManagementAbstraction< Outputs >::outputs_t = std::tuple<Outputs...> |
Accessor to the output types.
Definition at line 52 of file graph_outputs_management_abstraction.h.
|
inline |
Default constructor.
Definition at line 55 of file graph_outputs_management_abstraction.h.
|
overridedefault |
Default destructor.
|
inlineprotected |
Add an output node in the graph.
OutputDataType | Type used to connect a node |
outputNode | Node to connect as output of the graph for the type OutputDataType |
Definition at line 77 of file graph_outputs_management_abstraction.h.
|
inlineprotected |
Disconnect the sink.
Definition at line 103 of file graph_outputs_management_abstraction.h.
|
inlineprivate |
Disconnect the sink from the graph's output senders.
Output | Type to disconnect from |
Definition at line 146 of file graph_outputs_management_abstraction.h.
|
inlineprotected |
Duplicate output edges.
mapping | Map from the nodes and their clones |
Definition at line 137 of file graph_outputs_management_abstraction.h.
|
inlineprivate |
Duplicate sink edge.
Output | Type to duplicate |
rhs | Graph to copy edges from |
correspondenceMap | Map from the nodes and their clones |
Definition at line 164 of file graph_outputs_management_abstraction.h.
|
inlineprotected |
Duplicate sink edges.
rhs | Graph to copy edges from |
mapping | Map from the nodes and their clones |
Definition at line 130 of file graph_outputs_management_abstraction.h.
|
inline |
Get a blocking result for the outer graph from the sink.
Definition at line 66 of file graph_outputs_management_abstraction.h.
|
inlineprotected |
Visit the sink.
printer | Printer visits gathering data from the nodes |
Definition at line 121 of file graph_outputs_management_abstraction.h.
|
inlineprotected |
Accessor to the graph's sink.
Definition at line 71 of file graph_outputs_management_abstraction.h.
|
private |
Graph's sink.
Definition at line 49 of file graph_outputs_management_abstraction.h.