Hedgehog  3.1.0
A library to generate hybrid pipeline workflow systems
Loading...
Searching...
No Matches
state_multi_senders.h
Go to the documentation of this file.
1
2
3#ifndef HEDGEHOG_STATE_MULTI_SENDERS_H_
4#define HEDGEHOG_STATE_MULTI_SENDERS_H_
5
6#include "state_sender.h"
7#include "multi_senders.h"
8
10namespace hh {
12namespace behavior {
13
16template<class ...Outputs>
17class StateMultiSenders : public MultiSenders<Outputs...>, public StateSender<Outputs>... {
18 public:
20 StateMultiSenders() = default;
21
23 ~StateMultiSenders() override = default;
24
28 template<tool::MatchOutputTypeConcept<Outputs...> DataType>
29 void addResult(std::shared_ptr<DataType> data) { StateSender<DataType>::readyList()->push(data); }
30
31};
32}
33}
34#endif //HEDGEHOG_STATE_MULTI_SENDERS_H_
Hedgehog main namespace.
Behavior abstraction for nodes that send multiple types of data.
Definition: multi_senders.h:32
Behavior abstraction for states that send multiple types of data.
void addResult(std::shared_ptr< DataType > data)
Add result to the ready list.
~StateMultiSenders() override=default
Default destructor.
StateMultiSenders()=default
Default constructor.
Behavior abstraction for states that send a type of data, holds a ready list for that type.
Definition: state_sender.h:17
std::unique_ptr< std::queue< std::shared_ptr< Output > > > const & readyList() const
Ready list accessor.
Definition: state_sender.h:29
Test if an output type is in the list of output types (variadic)
Definition: concepts.h:105