29template <
typename... TOptions>
30class MsgIdLayerOptionsParser;
33class MsgIdLayerOptionsParser<>
36 static const bool HasExtendingClass =
false;
37 static const bool HasMsgFactory =
false;
40 using FactoryOptions = std::tuple<>;
42 template <
typename TInterface,
typename TAllMessages,
typename... TExtraOptions>
45 template <
typename TLayer>
46 using DefineExtendingClass = TLayer;
49template <
typename T,
typename... TOptions>
50class MsgIdLayerOptionsParser<
comms::option::def::ExtendingClass<T>, TOptions...> :
51 public MsgIdLayerOptionsParser<TOptions...>
54 static const bool HasExtendingClass =
true;
57 template <
typename TLayer>
61template <
typename TFactory,
typename... TOptions>
62class MsgIdLayerOptionsParser<
comms::option::app::MsgFactory<TFactory>, TOptions...> :
63 public MsgIdLayerOptionsParser<TOptions...>
66 static const bool HasMsgFactory =
true;
68 template <
typename TInterface,
typename TAllMessages,
typename... TExtraOptions>
69 using MsgFactory = TFactory;
72template <
template<
typename,
typename,
typename...>
class TFactory,
typename... TOptions>
73class MsgIdLayerOptionsParser<
comms::option::app::MsgFactoryTempl<TFactory>, TOptions...> :
74 public MsgIdLayerOptionsParser<TOptions...>
76 using BaseImpl = MsgIdLayerOptionsParser<TOptions...>;
79 static const bool HasMsgFactory =
true;
81 template <
typename TInterface,
typename TAllMessages,
typename... TExtraOptions>
82 using MsgFactory = TFactory<TInterface, TAllMessages,
typename BaseImpl::FactoryOptions, TExtraOptions...>;
85template <
typename... TOptions>
86class MsgIdLayerOptionsParser<
87 comms::option::app::EmptyOption,
88 TOptions...> :
public MsgIdLayerOptionsParser<TOptions...>
92template <
typename... TBundledOptions,
typename... TOptions>
93class MsgIdLayerOptionsParser<
94 std::tuple<TBundledOptions...>,
95 TOptions...> :
public MsgIdLayerOptionsParser<TBundledOptions..., TOptions...>
99template <
typename T,
typename... TOptions>
100class MsgIdLayerOptionsParser<T, TOptions...> :
public MsgIdLayerOptionsParser<TOptions...>
102 using BaseImpl = MsgIdLayerOptionsParser<TOptions...>;
104 using FactoryOptions =
108 std::declval<std::tuple<T> >(),
109 std::declval<typename BaseImpl::FactoryOptions>()
115 template <
typename TInterface,
typename TAllMessages,
typename... TExtraOptions>
118 BaseImpl::HasMsgFactory
120 typename BaseImpl::template MsgFactory<TInterface, TAllMessages, FactoryOptions, TExtraOptions...>,
Contains definition of comms::MsgFactory class.
Message factory class.
Definition MsgFactory.h:88
comms::option::def::ExtendingClass< T > ExtendingClass
Same as comms::option::def::ExtendingClass.
Definition options.h:1962
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:32
Replacement to some types from standard type_traits.