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

Default concrete implementation of sender abstraction. More...

#include "default_sender.h"

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

Public Member Functions

 DefaultSender ()
 Default constructor.
 
virtual ~DefaultSender ()=default
 Default destructor.
 
std::set< abstraction::ReceiverAbstraction< Output > * > const & connectedReceivers () const override
 Accessor to the connected receivers.
 
void addReceiver (abstraction::ReceiverAbstraction< Output > *receiver) override
 Add a receiver to the list.
 
void removeReceiver (abstraction::ReceiverAbstraction< Output > *receiver) override
 Remove a receiver to the list.
 
void send (std::shared_ptr< Output > data) override
 Send a piece of data to all connected receivers.
 
- Public Member Functions inherited from hh::core::implementor::ImplementorSender< Output >
 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.
 

Private Attributes

std::unique_ptr< std::set< abstraction::ReceiverAbstraction< Output > * > > const receivers_ {}
 List of receivers.
 

Additional Inherited Members

- Protected Attributes inherited from hh::core::implementor::ImplementorSender< Output >
std::unique_ptr< std::set< abstraction::SenderAbstraction< Output > * > > abstractSenders_ = nullptr
 Linked SenderAbstraction.
 

Detailed Description

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

Default concrete implementation of sender abstraction.

Template Parameters
OutputData type to send

Definition at line 36 of file default_sender.h.

Constructor & Destructor Documentation

◆ DefaultSender()

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

Default constructor.

Definition at line 43 of file default_sender.h.

◆ ~DefaultSender()

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

Default destructor.

Member Function Documentation

◆ addReceiver()

template<class Output >
void hh::core::implementor::DefaultSender< Output >::addReceiver ( abstraction::ReceiverAbstraction< Output > *  receiver)
inlineoverridevirtual

Add a receiver to the list.

Parameters
receiverReceiver to add

Implements hh::core::implementor::ImplementorSender< Output >.

Definition at line 57 of file default_sender.h.

◆ connectedReceivers()

template<class Output >
std::set< abstraction::ReceiverAbstraction< Output > * > const & hh::core::implementor::DefaultSender< Output >::connectedReceivers ( ) const
inlineoverridevirtual

Accessor to the connected receivers.

Returns
Connected receivers

Implements hh::core::implementor::ImplementorSender< Output >.

Definition at line 51 of file default_sender.h.

◆ removeReceiver()

template<class Output >
void hh::core::implementor::DefaultSender< Output >::removeReceiver ( abstraction::ReceiverAbstraction< Output > *  receiver)
inlineoverridevirtual

Remove a receiver to the list.

Parameters
receiverReceiver to remove

Implements hh::core::implementor::ImplementorSender< Output >.

Definition at line 61 of file default_sender.h.

◆ send()

template<class Output >
void hh::core::implementor::DefaultSender< Output >::send ( std::shared_ptr< Output >  data)
inlineoverridevirtual

Send a piece of data to all connected receivers.

Parameters
dataData to send

Implements hh::core::implementor::ImplementorSender< Output >.

Definition at line 65 of file default_sender.h.

Member Data Documentation

◆ receivers_

template<class Output >
std::unique_ptr<std::set<abstraction::ReceiverAbstraction<Output> *> > const hh::core::implementor::DefaultSender< Output >::receivers_ {}
private

List of receivers.

Definition at line 39 of file default_sender.h.