Hedgehog
3.1.0
A library to generate hybrid pipeline workflow systems
|
Output management abstraction for the task. More...
#include "task_outputs_management_abstraction.h"
Public Types | |
using | outputs_t = std::tuple< Outputs... > |
Accessor to the graph outputs type. | |
Public Member Functions | |
TaskOutputsManagementAbstraction () | |
Default constructor. | |
template<hh::tool::ConcreteMultiSenderImplementation< Outputs... > ConcreteMultiSenders> | |
TaskOutputsManagementAbstraction (std::shared_ptr< implementor::ImplementorNotifier > concreteNotifier, std::shared_ptr< ConcreteMultiSenders > concreteMultiSenders) | |
Constructor using concrete implementation of the possible core abstraction. | |
~TaskOutputsManagementAbstraction () override=default | |
Default destructor. | |
template<tool::ContainsConcept< Outputs... > OutputDataType> | |
void | sendAndNotify (std::shared_ptr< OutputDataType > data) |
Send a piece of data and notify the successors. | |
![]() | |
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 | |
void | copyInnerStructure (TaskOutputsManagementAbstraction< Outputs... > *copyableCore) |
Copy the inner structure from another task. | |
void | duplicateOutputEdges (std::map< abstraction::NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &mapping) |
Duplicate the output edges for the node clone. | |
![]() | |
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. | |
Output management abstraction for the task.
Outputs | Types of output data |
Definition at line 45 of file task_outputs_management_abstraction.h.
using hh::core::abstraction::TaskOutputsManagementAbstraction< Outputs >::outputs_t = std::tuple<Outputs...> |
Accessor to the graph outputs type.
Definition at line 47 of file task_outputs_management_abstraction.h.
|
inline |
Default constructor.
Definition at line 50 of file task_outputs_management_abstraction.h.
|
inline |
Constructor using concrete implementation of the possible core abstraction.
ConcreteMultiSenders | Type of the concrete implementation of the senders abstraction |
concreteNotifier | Concrete implementation of the notifier abstraction |
concreteMultiSenders | Concrete implementation of the senders abstraction |
Definition at line 59 of file task_outputs_management_abstraction.h.
|
overridedefault |
Default destructor.
|
inlineprotected |
Copy the inner structure from another task.
copyableCore | Core task to copy inner structure from |
Definition at line 81 of file task_outputs_management_abstraction.h.
|
inlineprotected |
Duplicate the output edges for the node clone.
mapping | Map of the nodes and their clones |
Definition at line 87 of file task_outputs_management_abstraction.h.
|
inline |
Send a piece of data and notify the successors.
OutputDataType | Type of data |
data | Data to send |
Definition at line 72 of file task_outputs_management_abstraction.h.