20 #ifndef HEDGEHOG_CORE_MULTI_RECEIVERS_H 21 #define HEDGEHOG_CORE_MULTI_RECEIVERS_H 23 #include "core_receiver.h" 24 #include "core_slot.h" 25 #include "../../../node/core_node.h" 30 #ifndef DOXYGEN_SHOULD_SKIP_THIS 34 class CoreQueueSender;
35 #endif //DOXYGEN_SHOULD_SKIP_THIS 39 template<
class ...Inputs>
48 HLOG_SELF(0,
"Creating CoreMultiReceivers with type: " << (
int) type <<
" and name: " << name)
65 (this->removeForAllSendersConditional<Inputs>(coreNode), ...);
84 #endif //HEDGEHOG_CORE_MULTI_RECEIVERS_H NodeType type() const
Node type accessor.
Receiver Interface, receive one data type from CoreSender.
void removeForAllSenders(CoreNode *coreNode)
Remove all coreNode's senders from this.
virtual size_t totalQueueSize()
Compute all receivers queue size.
Multi receiver interface, gather multiple CoreReceiver.
Sender for nodes possessing a queue of data.
~CoreMultiReceivers() override
CoreMultiReceivers destructor.
Slot interface, receive notification from CoreNotifier.
NodeType
Hedgehog node's type.
Main Hedgehog core abstraction.
void removeForAllSendersConditional(CoreNode *coreNode)
Remove all coreNode's senders from this for a specific Input type.
std::string_view const & name() const
Node name accessor.
virtual bool receiversEmpty()=0
Test if all receivers are empty.
virtual void removeSender(CoreSender< Inputs > *sender)=0
Interface to remove a CoreSender from the receiver.
size_t numberThreads() const
Number of threads associated accessor.
CoreMultiReceivers(std::string_view const &name, NodeType const type, size_t const numberThreads)
CoreMultiReceivers constructor.