Hedgehog  3.1.0
A library to generate hybrid pipeline workflow systems
Loading...
Searching...
No Matches
hh::core::abstraction::ExecutionPipelineOutputsManagementAbstraction< Outputs > Class Template Reference

Output management abstraction for the execution pipeline. More...

#include "execution_pipeline_outputs_management_abstraction.h"

Inheritance diagram for hh::core::abstraction::ExecutionPipelineOutputsManagementAbstraction< Outputs >:
Inheritance graph
Collaboration diagram for hh::core::abstraction::ExecutionPipelineOutputsManagementAbstraction< Outputs >:
Collaboration graph

Public Member Functions

 ExecutionPipelineOutputsManagementAbstraction ()
 Default constructor.
 
 ~ExecutionPipelineOutputsManagementAbstraction () override=default
 Default destructor.
 
void registerGraphOutputNodes (std::shared_ptr< GraphOutputsManagementAbstraction< Outputs... > > coreGraph)
 Register output node as output of the execution pipeline.
 
void duplicateOutputEdges (std::map< abstraction::NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &mapping)
 Duplicate output edges.
 
- Public Member Functions inherited from hh::core::abstraction::NotifierAbstraction
 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.
 
- Public Member Functions inherited from hh::core::abstraction::SenderAbstraction< Outputs >
 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.
 

Private Member Functions

template<class Output >
void registerGraphSender (std::shared_ptr< SenderAbstraction< Output > > coreGraphSender)
 Register output node as output of the execution pipeline for a type.
 

Additional Inherited Members

- Protected Member Functions inherited from hh::core::abstraction::NotifierAbstraction
void duplicateEdgeNotifier (std::map< abstraction::NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &mapping)
 Duplicate edges of the current notifier to slots to clone in map.
 
- Protected Member Functions inherited from hh::core::abstraction::SenderAbstraction< Outputs >
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.
 

Detailed Description

template<class ... Outputs>
class hh::core::abstraction::ExecutionPipelineOutputsManagementAbstraction< Outputs >

Output management abstraction for the execution pipeline.

Template Parameters
OutputsTypes of output data

Definition at line 38 of file execution_pipeline_outputs_management_abstraction.h.

Constructor & Destructor Documentation

◆ ExecutionPipelineOutputsManagementAbstraction()

template<class ... Outputs>
hh::core::abstraction::ExecutionPipelineOutputsManagementAbstraction< Outputs >::ExecutionPipelineOutputsManagementAbstraction ( )
inlineexplicit

Default constructor.

Definition at line 44 of file execution_pipeline_outputs_management_abstraction.h.

◆ ~ExecutionPipelineOutputsManagementAbstraction()

Default destructor.

Member Function Documentation

◆ duplicateOutputEdges()

template<class ... Outputs>
void hh::core::abstraction::ExecutionPipelineOutputsManagementAbstraction< Outputs >::duplicateOutputEdges ( std::map< abstraction::NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &  mapping)
inline

Duplicate output edges.

Parameters
mappingMap from a node and its clone

Definition at line 62 of file execution_pipeline_outputs_management_abstraction.h.

Here is the call graph for this function:

◆ registerGraphOutputNodes()

template<class ... Outputs>
void hh::core::abstraction::ExecutionPipelineOutputsManagementAbstraction< Outputs >::registerGraphOutputNodes ( std::shared_ptr< GraphOutputsManagementAbstraction< Outputs... > >  coreGraph)
inline

Register output node as output of the execution pipeline.

Parameters
coreGraphCore graph to register as output

Definition at line 53 of file execution_pipeline_outputs_management_abstraction.h.

Here is the call graph for this function:

◆ registerGraphSender()

template<class ... Outputs>
template<class Output >
void hh::core::abstraction::ExecutionPipelineOutputsManagementAbstraction< Outputs >::registerGraphSender ( std::shared_ptr< SenderAbstraction< Output > >  coreGraphSender)
inlineprivate

Register output node as output of the execution pipeline for a type.

Template Parameters
OutputType of the graph output to register
Parameters
coreGraphSenderCore graph to register as output

Definition at line 72 of file execution_pipeline_outputs_management_abstraction.h.