25template <
typename... TOptions>
26class MsgIdLayerOptionsParser;
29class MsgIdLayerOptionsParser<>
32 static const bool HasExtendingClass =
false;
33 static const bool HasMsgFactory =
false;
36 using FactoryOptions = std::tuple<>;
38 template <
typename TInterface,
typename TAllMessages,
typename... TExtraOptions>
41 template <
typename TLayer>
42 using DefineExtendingClass = TLayer;
45template <
typename T,
typename... TOptions>
46class MsgIdLayerOptionsParser<
comms::option::def::ExtendingClass<T>, TOptions...> :
47 public MsgIdLayerOptionsParser<TOptions...>
50 static const bool HasExtendingClass =
true;
53 template <
typename TLayer>
57template <
typename TFactory,
typename... TOptions>
58class MsgIdLayerOptionsParser<
comms::option::app::MsgFactory<TFactory>, TOptions...> :
59 public MsgIdLayerOptionsParser<TOptions...>
62 static const bool HasMsgFactory =
true;
64 template <
typename TInterface,
typename TAllMessages,
typename... TExtraOptions>
65 using MsgFactory = TFactory;
68template <
template<
typename,
typename,
typename...>
class TFactory,
typename... TOptions>
69class MsgIdLayerOptionsParser<
comms::option::app::MsgFactoryTempl<TFactory>, TOptions...> :
70 public MsgIdLayerOptionsParser<TOptions...>
72 using BaseImpl = MsgIdLayerOptionsParser<TOptions...>;
75 static const bool HasMsgFactory =
true;
77 template <
typename TInterface,
typename TAllMessages,
typename... TExtraOptions>
78 using MsgFactory = TFactory<TInterface, TAllMessages,
typename BaseImpl::FactoryOptions, TExtraOptions...>;
82template <
typename... TOptions>
83class MsgIdLayerOptionsParser<
84 comms::option::app::EmptyOption,
85 TOptions...> :
public MsgIdLayerOptionsParser<TOptions...>
89template <
typename... TBundledOptions,
typename... TOptions>
90class MsgIdLayerOptionsParser<
91 std::tuple<TBundledOptions...>,
92 TOptions...> :
public MsgIdLayerOptionsParser<TBundledOptions..., TOptions...>
96template <
typename T,
typename... TOptions>
97class MsgIdLayerOptionsParser<T, TOptions...> :
public MsgIdLayerOptionsParser<TOptions...>
99 using BaseImpl = MsgIdLayerOptionsParser<TOptions...>;
101 using FactoryOptions =
105 std::declval<std::tuple<T> >(),
106 std::declval<typename BaseImpl::FactoryOptions>()
112 template <
typename TInterface,
typename TAllMessages,
typename... TExtraOptions>
115 BaseImpl::HasMsgFactory
117 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:1822
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:28
Replacement to some types from standard type_traits.