20 #ifndef HEDGEHOG_CORE_SLOT_H 21 #define HEDGEHOG_CORE_SLOT_H 23 #include "../../../node/core_node.h" 28 #ifndef DOXYGEN_SHOULD_SKIP_THIS 31 #endif //DOXYGEN_SHOULD_SKIP_THIS 42 CoreNode(name, type, numberThreads) {
43 HLOG_SELF(0,
"Creating CoreSlot with type: " << (
int) type <<
" and name: " << name)
47 ~CoreSlot()
override {HLOG_SELF(0,
"Destructing CoreSlot")}
74 #endif //HEDGEHOG_CORE_SLOT_H NodeType type() const
Node type accessor.
Core Notifier interface, emit notification to CoreSlot.
virtual void wakeUp()=0
Interface to define what the node do when it receive a signal.
~CoreSlot() override
Core Slot destructor.
virtual bool hasNotifierConnected()=0
Test if notifiers are connected to this slot.
Slot interface, receive notification from CoreNotifier.
virtual void removeNotifier(CoreNotifier *notifier)=0
Interface to remove a CoreNotifier from this slot.
NodeType
Hedgehog node's type.
Main Hedgehog core abstraction.
std::string_view const & name() const
Node name accessor.
virtual void addNotifier(CoreNotifier *notifier)=0
Interface to add a CoreNotifier to this slot.
CoreSlot(std::string_view const &name, NodeType const type, size_t const numberThreads)
Core slot constructor.
virtual size_t numberInputNodes() const =0
Return the number of notifiers connected to this slot.
size_t numberThreads() const
Number of threads associated accessor.
virtual bool waitForNotification()=0
Interface to define how the node wait for a signal, and return if the node is terminated.