11#include "TransportValueLayerBases.h"
12#include "ProtocolLayerDetails.h"
24template <
typename... TOptions>
25class TransportValueLayerOptionsParser;
28class TransportValueLayerOptionsParser<>
31 static const bool HasPseudoValue =
false;
32 static constexpr bool HasExtendingClass =
false;
36 template <
typename TBase>
37 using BuildPseudoBase = TBase;
39 template <
typename TLayer>
40 using DefineExtendingClass = TLayer;
42 template <
typename TNextLayer>
43 using ForceReadUntilDataSplitIfNeeded =
45 std::is_void<typename ProtocolLayerMsgPtr<TNextLayer>::Type>::value
56template <
typename... TOptions>
57class TransportValueLayerOptionsParser<
comms::option::def::PseudoValue, TOptions...> :
58 public TransportValueLayerOptionsParser<TOptions...>
61 static const bool HasPseudoValue =
true;
63 template <
typename TBase>
64 using BuildPseudoBase = TransportValueLayerPseudoBase<TBase>;
67template <
typename T,
typename... TOptions>
68class TransportValueLayerOptionsParser<
comms::option::def::ExtendingClass<T>, TOptions...> :
69 public TransportValueLayerOptionsParser<TOptions...>
72 static constexpr bool HasExtendingClass =
true;
75 template <
typename TLayer>
79template <
typename... TOptions>
80class TransportValueLayerOptionsParser<
81 comms::option::def::ProtocolLayerSuppressReadUntilDataSplitForcing,
83 public TransportValueLayerOptionsParser<TOptions...>
86 template <
typename TNextLayer>
90template <
typename... TOptions>
91class TransportValueLayerOptionsParser<
92 comms::option::app::EmptyOption,
93 TOptions...> :
public TransportValueLayerOptionsParser<TOptions...>
97template <
typename... TBundledOptions,
typename... TOptions>
98class TransportValueLayerOptionsParser<
99 std::tuple<TBundledOptions...>,
100 TOptions...> :
public TransportValueLayerOptionsParser<TBundledOptions..., TOptions...>
comms::option::def::ExtendingClass< T > ExtendingClass
Same as comms::option::def::ExtendingClass.
Definition options.h:1822
Main namespace for all classes / functions of COMMS library.
Contains definition of all the options used by the COMMS library.
No-op option, doesn't have any effect.
Definition options.h:1250
Option to force comms::protocol::ProtocolLayerBase class to split read operation "until" and "from" d...
Definition options.h:1105
Replacement to std::conditional.
Definition type_traits.h:28