Hedgehog  3.1.0
A library to generate hybrid pipeline workflow systems
Loading...
Searching...
No Matches
hh::core::implementor::ImplementorSender< Output > Class Template Referenceabstract

Implementor for the SenderAbstraction. More...

#include "implementor_sender.h"

Inheritance diagram for hh::core::implementor::ImplementorSender< Output >:
Inheritance graph
Collaboration diagram for hh::core::implementor::ImplementorSender< Output >:
Collaboration graph

Public Member Functions

 ImplementorSender ()
 Default constructor.
 
virtual ~ImplementorSender ()=default
 Default destructor.
 
std::set< abstraction::SenderAbstraction< Output > * > & senders ()
 Accessor to the SenderAbstraction.
 
virtual void initialize (abstraction::SenderAbstraction< Output > *senderAbstraction)
 Initialize the implementor Sender by setting the corresponding abstraction.
 
virtual std::set< abstraction::ReceiverAbstraction< Output > * > const & connectedReceivers () const =0
 Accessor to the connected receivers.
 
virtual void addReceiver (abstraction::ReceiverAbstraction< Output > *receiver)=0
 Add a receiver to the set of connected receivers.
 
virtual void removeReceiver (abstraction::ReceiverAbstraction< Output > *receiver)=0
 Remove a receiver to the set of connected receivers.
 
virtual void send (std::shared_ptr< Output > data)=0
 Send a data to successor node.
 

Protected Attributes

std::unique_ptr< std::set< abstraction::SenderAbstraction< Output > * > > abstractSenders_ = nullptr
 Linked SenderAbstraction.
 

Detailed Description

template<class Output>
class hh::core::implementor::ImplementorSender< Output >

Implementor for the SenderAbstraction.

Template Parameters
OutputType of output data

Definition at line 44 of file implementor_sender.h.

Constructor & Destructor Documentation

◆ ImplementorSender()

template<class Output >
hh::core::implementor::ImplementorSender< Output >::ImplementorSender ( )
inlineexplicit

Default constructor.

Definition at line 51 of file implementor_sender.h.

◆ ~ImplementorSender()

template<class Output >
virtual hh::core::implementor::ImplementorSender< Output >::~ImplementorSender ( )
virtualdefault

Default destructor.

Member Function Documentation

◆ addReceiver()

template<class Output >
virtual void hh::core::implementor::ImplementorSender< Output >::addReceiver ( abstraction::ReceiverAbstraction< Output > *  receiver)
pure virtual

Add a receiver to the set of connected receivers.

Parameters
receiverReceiver to add

Implemented in hh::core::implementor::DefaultSender< Output >, and hh::core::implementor::GraphSender< Output >.

◆ connectedReceivers()

template<class Output >
virtual std::set< abstraction::ReceiverAbstraction< Output > * > const & hh::core::implementor::ImplementorSender< Output >::connectedReceivers ( ) const
pure virtual

Accessor to the connected receivers.

Returns
Set of connected receivers

Implemented in hh::core::implementor::DefaultSender< Output >, hh::core::implementor::DefaultSender< Outputs >, and hh::core::implementor::GraphSender< Output >.

◆ initialize()

template<class Output >
virtual void hh::core::implementor::ImplementorSender< Output >::initialize ( abstraction::SenderAbstraction< Output > *  senderAbstraction)
inlinevirtual

Initialize the implementor Sender by setting the corresponding abstraction.

Parameters
senderAbstractionSending abstraction to set

Reimplemented in hh::core::implementor::GraphSender< Output >.

Definition at line 63 of file implementor_sender.h.

◆ removeReceiver()

template<class Output >
virtual void hh::core::implementor::ImplementorSender< Output >::removeReceiver ( abstraction::ReceiverAbstraction< Output > *  receiver)
pure virtual

Remove a receiver to the set of connected receivers.

Parameters
receiverReceiver to remove

Implemented in hh::core::implementor::DefaultSender< Output >, and hh::core::implementor::GraphSender< Output >.

◆ send()

template<class Output >
virtual void hh::core::implementor::ImplementorSender< Output >::send ( std::shared_ptr< Output >  data)
pure virtual

Send a data to successor node.

Parameters
dataData to send

Implemented in hh::core::implementor::DefaultSender< Output >, and hh::core::implementor::GraphSender< Output >.

◆ senders()

template<class Output >
std::set< abstraction::SenderAbstraction< Output > * > & hh::core::implementor::ImplementorSender< Output >::senders ( )
inline

Accessor to the SenderAbstraction.

Returns
Set of SenderAbstraction

Definition at line 59 of file implementor_sender.h.

Member Data Documentation

◆ abstractSenders_

template<class Output >
std::unique_ptr<std::set<abstraction::SenderAbstraction<Output> *> > hh::core::implementor::ImplementorSender< Output >::abstractSenders_ = nullptr
protected

Linked SenderAbstraction.

Definition at line 47 of file implementor_sender.h.