14template<
typename InputData_,
typename OutputData_>
17 virtual void process(
const InputData_& input, OutputData_& output) {
18 std::cerr <<
"[Module] ERROR: process(const Input&, Output&) not overridden in derived class!\n";
20 output = OutputData_{};
25template<
typename OutputData_>
31template<
typename InputData_>
47template<
typename OutputTypesTuple,
typename InputData_>
56template<
typename T,
typename InputData_>
62template<
typename... Ts>
63 requires (
sizeof...(Ts) > 1)
68 std::cerr <<
"[Module] ERROR: Multi-output process(...) not overridden in derived class!\n";
74template<
typename... Ts,
typename InputData_>
75 requires (
sizeof...(Ts) > 1)
79 virtual void process(
const InputData_& input, Ts&... outputs) {
80 std::cerr <<
"[Module] ERROR: Multi-output process(...) not overridden in derived class!\n";
92template<
typename InputData_,
typename OutputData_>
98template<
typename OutputData_>
103 std::cerr <<
"[Module] ERROR: process(Output&) not overridden in derived class!\\n";
104 output = OutputData_{};
109template<
typename InputData_>
127template<
typename InputTypesTuple_,
typename OutputData_,
size_t InputCount_>
134template<
typename InputTypesTuple_,
typename OutputData_>
139template<
typename InputTypesTuple_,
typename OutputData_>
145template<
typename... Ts,
typename OutputData_>
146 requires (
sizeof...(Ts) > 1 && !std::is_void_v<OutputData_>)
149 virtual void process(
const Ts&... inputs, OutputData_& output) {
150 std::cerr <<
"[Module] ERROR: Multi-input process(..., Output&) not overridden in derived class!\n";
151 (void)std::make_tuple(inputs...);
152 output = OutputData_{};
157template<
typename... InputTs,
typename... OutputTs>
158 requires (
sizeof...(InputTs) > 1 &&
sizeof...(OutputTs) > 1)
161 virtual void process(
const InputTs&... inputs, OutputTs&... outputs) {
162 std::cerr <<
"[Module] ERROR: Multi-input+multi-output process(...) not overridden!\n";
163 (void)std::make_tuple(inputs...);
virtual void process(const InputData_ &input, OutputData_ &output)
virtual void process(Ts &... outputs)
virtual void process(OutputData_ &output)
Input/Output specifications for multi-I/O modules.
CommRaT - Modern C++ Real-Time Communication Framework.