CommRaT 2.0.0
C++20 Real-Time Messaging Framework
Loading...
Searching...
No Matches
io_spec.hpp File Reference

Input/Output specifications for multi-I/O modules. More...

#include <cstddef>
#include <tuple>
#include <type_traits>
#include <concepts>

Go to the source code of this file.

Classes

struct  commrat::Output< T >
 Single output specification. More...
 
struct  commrat::Outputs< Ts >
 Multiple outputs specification. More...
 
struct  commrat::NoOutput
 No output specification (sink module) More...
 
struct  commrat::Input< T >
 Single continuous input specification. More...
 
struct  commrat::Inputs< Ts >
 Multiple continuous inputs specification. More...
 
struct  commrat::PrimaryInput< T >
 Primary input designation for multi-input synchronization (Phase 6) More...
 
struct  commrat::is_single_output< T >
 
struct  commrat::is_single_output< Output< T > >
 
struct  commrat::is_multi_output< T >
 
struct  commrat::is_multi_output< Outputs< Ts... > >
 
struct  commrat::is_no_output< T >
 
struct  commrat::is_no_output< NoOutput >
 
struct  commrat::is_periodic_input< T >
 
struct  commrat::is_periodic_input< PeriodicInput >
 
struct  commrat::is_loop_input< T >
 
struct  commrat::is_loop_input< LoopInput >
 
struct  commrat::is_single_input< T >
 
struct  commrat::is_single_input< Input< T > >
 
struct  commrat::is_multi_input< T >
 
struct  commrat::is_multi_input< Inputs< Ts... > >
 
struct  commrat::is_primary_input< T >
 
struct  commrat::is_primary_input< PrimaryInput< T > >
 
struct  commrat::OutputCount< T >
 Get the number of outputs in an OutputSpec. More...
 
struct  commrat::OutputCount< Output< T > >
 
struct  commrat::OutputCount< Outputs< Ts... > >
 
struct  commrat::OutputCount< NoOutput >
 
struct  commrat::InputCount< T >
 Get the number of inputs in an InputSpec. More...
 
struct  commrat::InputCount< Input< T > >
 
struct  commrat::InputCount< Inputs< Ts... > >
 
struct  commrat::NormalizeInput< T >
 Pass-through for input specifications (no normalization needed) More...
 
struct  commrat::NormalizeOutput< T >
 Maps raw output types to Output<T> format. More...
 
struct  commrat::InputPayloadTypes< InputSpec >
 Extract payload types from Inputs<Ts...> as a tuple. More...
 
struct  commrat::InputPayloadTypes< Input< T > >
 
struct  commrat::InputPayloadTypes< Inputs< Ts... > >
 
struct  commrat::OutputPayloadTypes< OutputSpec >
 Extract payload types from Outputs<Ts...> as a tuple. More...
 
struct  commrat::OutputPayloadTypes< Output< T > >
 
struct  commrat::OutputPayloadTypes< Outputs< Ts... > >
 
struct  commrat::SingleOutputType< OutputSpec >
 Get the single payload type from Output<T> or legacy OutputDataT. More...
 
struct  commrat::SingleOutputType< Output< T > >
 
struct  commrat::SingleInputType< InputSpec >
 Get the single payload type from Input<T> More...
 
struct  commrat::SingleInputType< Input< T > >
 
struct  commrat::PrimaryInputIndex< PrimaryT, std::tuple<> >
 
struct  commrat::PrimaryInputIndex< PrimaryT, std::tuple< PrimaryT, Rest... > >
 
struct  commrat::PrimaryInputIndex< PrimaryT, std::tuple< First, Rest... > >
 
struct  commrat::ValidatePrimaryInput< PrimaryInputSpec, InputSpec >
 Validate that PrimaryInput<T> is compatible with Inputs<Ts...> More...
 

Namespaces

namespace  commrat
 CommRaT - Modern C++ Real-Time Communication Framework.
 

Concepts

concept  commrat::ValidOutputSpec
 
concept  commrat::ValidInputSpec
 
concept  commrat::PeriodicOrLoop
 
concept  commrat::HasContinuousInput
 

Typedefs

template<typename T >
using commrat::NormalizeInput_t = typename NormalizeInput< T >::Type
 
template<typename T >
using commrat::NormalizeOutput_t = typename NormalizeOutput< T >::Type
 
template<typename InputSpec >
using commrat::InputPayloadTypes_t = typename InputPayloadTypes< InputSpec >::Type
 
template<typename OutputSpec >
using commrat::OutputPayloadTypes_t = typename OutputPayloadTypes< OutputSpec >::Type
 
template<typename OutputSpec >
using commrat::SingleOutputType_t = typename SingleOutputType< OutputSpec >::Type
 
template<typename InputSpec >
using commrat::SingleInputType_t = typename SingleInputType< InputSpec >::Type
 

Variables

template<typename T >
constexpr bool commrat::is_single_output_v = is_single_output<T>::value
 
template<typename T >
constexpr bool commrat::is_multi_output_v = is_multi_output<T>::value
 
template<typename T >
constexpr bool commrat::is_no_output_v = is_no_output<T>::value
 
template<typename T >
constexpr bool commrat::is_periodic_input_v = is_periodic_input<T>::value
 
template<typename T >
constexpr bool commrat::is_loop_input_v = is_loop_input<T>::value
 
template<typename T >
constexpr bool commrat::is_single_input_v = is_single_input<T>::value
 
template<typename T >
constexpr bool commrat::is_multi_input_v = is_multi_input<T>::value
 
template<typename T >
constexpr bool commrat::is_primary_input_v = is_primary_input<T>::value
 
template<typename T >
constexpr size_t commrat::OutputCount_v = OutputCount<T>::value
 
template<typename T >
constexpr size_t commrat::InputCount_v = InputCount<T>::value
 
template<typename PrimaryT , typename InputsTuple >
constexpr size_t commrat::PrimaryInputIndex_v = PrimaryInputIndex<PrimaryT, InputsTuple>::value
 
template<typename PrimaryInputSpec , typename InputSpec >
constexpr bool commrat::ValidatePrimaryInput_v
 

Detailed Description

Input/Output specifications for multi-I/O modules.

Defines tag types and concepts for specifying module inputs and outputs. Supports both single and multiple inputs/outputs with full compile-time type safety and zero runtime overhead.

Author
CommRaT Development Team
Date
February 6, 2026

Definition in file io_spec.hpp.