26template <
typename... TOptions>
27class MsgIdLayerOptionsParser;
30class MsgIdLayerOptionsParser<>
33 static const bool HasExtendingClass =
false;
34 static const bool HasMsgFactory =
false;
37 using FactoryOptions = std::tuple<>;
39 template <
typename TInterface,
typename TAllMessages,
typename... TExtraOptions>
42 template <
typename TLayer>
43 using DefineExtendingClass = TLayer;
46template <
typename T,
typename... TOptions>
47class MsgIdLayerOptionsParser<
comms::option::def::ExtendingClass<T>, TOptions...> :
48 public MsgIdLayerOptionsParser<TOptions...>
51 static const bool HasExtendingClass =
true;
54 template <
typename TLayer>
58template <
typename TFactory,
typename... TOptions>
59class MsgIdLayerOptionsParser<
comms::option::app::MsgFactory<TFactory>, TOptions...> :
60 public MsgIdLayerOptionsParser<TOptions...>
63 static const bool HasMsgFactory =
true;
65 template <
typename TInterface,
typename TAllMessages,
typename... TExtraOptions>
66 using MsgFactory = TFactory;
69template <
template<
typename,
typename,
typename...>
class TFactory,
typename... TOptions>
70class MsgIdLayerOptionsParser<
comms::option::app::MsgFactoryTempl<TFactory>, TOptions...> :
71 public MsgIdLayerOptionsParser<TOptions...>
73 using BaseImpl = MsgIdLayerOptionsParser<TOptions...>;
76 static const bool HasMsgFactory =
true;
78 template <
typename TInterface,
typename TAllMessages,
typename... TExtraOptions>
79 using MsgFactory = TFactory<TInterface, TAllMessages,
typename BaseImpl::FactoryOptions, TExtraOptions...>;
83template <
typename... TOptions>
84class MsgIdLayerOptionsParser<
85 comms::option::app::EmptyOption,
86 TOptions...> :
public MsgIdLayerOptionsParser<TOptions...>
90template <
typename... TBundledOptions,
typename... TOptions>
91class MsgIdLayerOptionsParser<
92 std::tuple<TBundledOptions...>,
93 TOptions...> :
public MsgIdLayerOptionsParser<TBundledOptions..., TOptions...>
97template <
typename T,
typename... TOptions>
98class MsgIdLayerOptionsParser<T, TOptions...> :
public MsgIdLayerOptionsParser<TOptions...>
100 using BaseImpl = MsgIdLayerOptionsParser<TOptions...>;
102 using FactoryOptions =
106 std::declval<std::tuple<T> >(),
107 std::declval<typename BaseImpl::FactoryOptions>()
113 template <
typename TInterface,
typename TAllMessages,
typename... TExtraOptions>
116 BaseImpl::HasMsgFactory
118 typename BaseImpl::template MsgFactory<TInterface, TAllMessages, FactoryOptions, TExtraOptions...>,
Contains definition of comms::MsgFactory class.
Message factory class.
Definition MsgFactory.h:87
comms::option::def::ExtendingClass< T > ExtendingClass
Same as comms::option::def::ExtendingClass.
Definition options.h:1949
Main namespace for all classes / functions of COMMS library.
Contains definition of all the options used by the COMMS library.
Replacement to std::conditional.
Definition type_traits.h:29
Replacement to some types from standard type_traits.