CommRaT 2.0.0
C++20 Real-Time Messaging Framework
Loading...
Searching...
No Matches
multi_input_resolver.hpp
Go to the documentation of this file.
1#pragma once
2
5#include <cstddef>
6
7namespace commrat {
8
9// ============================================================================
10// Multi-Input Base Resolution
11// ============================================================================
12
13// Helper to resolve MultiInputProcessorBase template arguments
14// (workaround for complex nested template parsing issues)
15template<typename InputSpec_, typename OutputSpec_>
25
26// Specialization for multi-output case (Outputs<Ts...>)
27template<typename InputSpec_, typename... OutputTypes>
28struct ResolveMultiInputBase<InputSpec_, Outputs<OutputTypes...>> {
31 using OutputData = std::tuple<OutputTypes...>; // Multi-output uses tuple
32 static constexpr std::size_t InputCount = std::tuple_size_v<InputTypesTuple>;
33
35};
36
37} // namespace commrat
CommRaT - Modern C++ Real-Time Communication Framework.
Get the number of inputs in an InputSpec.
Definition io_spec.hpp:376
std::conditional_t< ValidOutputSpec< T >, T, Output< T > > Type
Definition io_spec.hpp:421
Multiple outputs specification.
Definition io_spec.hpp:94
typename ExtractInputTypes< NormalizedInput >::type InputTypesTuple
typename ExtractInputTypes< NormalizedInput >::type InputTypesTuple
typename NormalizeOutput< OutputSpec_ >::Type NormalizedOutput
typename ExtractOutputPayload< NormalizedOutput >::type OutputData
typename NormalizeInput< InputSpec_ >::Type NormalizedInput