30 template <
typename Signature,
typename Traits_,
bool isLegacy>
34 template <
typename Out,
typename... In,
typename Traits_>
37 using DataHandleMixin<std::tuple<Out>,
filter_evtcontext<In...>, Traits_>::DataHandleMixin;
42 if constexpr (
sizeof...( In ) == 0 ) {
43 put( std::get<0>( this->m_outputs ), ( *
this )() );
44 }
else if constexpr ( std::tuple_size_v<filter_evtcontext<In...>> == 0 ) {
47 put( std::get<0>( this->m_outputs ), filter_evtcontext_t<In...>::apply( *
this, this->m_inputs ) );
49 return FilterDecision::PASSED;
60 template <
typename Out,
typename... In,
typename Traits_>
63 using DataHandleMixin<std::tuple<Out>,
filter_evtcontext<In...>, Traits_>::DataHandleMixin;
68 if constexpr (
sizeof...( In ) == 0 ) {
69 put( std::get<0>( this->m_outputs ), ( *
this )() );
70 }
else if constexpr ( std::tuple_size_v<filter_evtcontext<In...>> == 0 ) {
71 put( std::get<0>( this->m_outputs ), ( *
this )(
ctx ) );
73 put( std::get<0>( this->m_outputs ), filter_evtcontext_t<In...>::apply( *
this,
ctx, this->m_inputs ) );
75 return FilterDecision::PASSED;
89 template <
typename Signature,
typename Traits_,
bool isLegacy>
92 template <
typename... Out,
typename... In,
typename Traits_>
94 : DataHandleMixin<std::tuple<Out...>, filter_evtcontext<In...>, Traits_> {
101 [
this](
auto&... ohandle ) {
104 if constexpr (
sizeof...( In ) == 0 ) {
105 std::apply( [&ohandle...](
106 auto&&... data ) { ( put( ohandle, std::forward<decltype( data )>( data ) ), ... ); },
107 std::as_const( *
this )() );
109 std::apply( [&ohandle...](
110 auto&&... data ) { ( put( ohandle, std::forward<decltype( data )>( data ) ), ... ); },
111 filter_evtcontext_t<In...>::apply( std::as_const( *
this ), this->m_inputs ) );
116 return FilterDecision::PASSED;
127 template <
typename... Out,
typename... In,
typename Traits_>
129 : DataHandleMixin<std::tuple<Out...>, filter_evtcontext<In...>, Traits_> {
137 [
this, &
ctx](
auto&... ohandle ) {
138 if constexpr (
sizeof...( In ) == 0 ) {
139 std::apply( [&ohandle...](
140 auto&&... data ) { ( put( ohandle, std::forward<decltype( data )>( data ) ), ... ); },
142 }
else if constexpr ( std::tuple_size_v<filter_evtcontext<In...>> == 0 ) {
143 std::apply( [&ohandle...](
144 auto&&... data ) { ( put( ohandle, std::forward<decltype( data )>( data ) ), ... ); },
147 std::apply( [&ohandle...](
148 auto&&... data ) { ( put( ohandle, std::forward<decltype( data )>( data ) ), ... ); },
149 filter_evtcontext_t<In...>::apply( *
this,
ctx, this->m_inputs ) );
154 return FilterDecision::PASSED;
168 template <
typename Signature,
typename Traits_,
bool isLegacy>
171 template <
typename... Out,
typename... In,
typename Traits_>
173 : DataHandleMixin<std::tuple<Out...>, filter_evtcontext<In...>, Traits_> {
180 [&](
auto&... ohandle ) {
183 [&ohandle...](
bool passed,
auto&&... data ) {
184 ( put( ohandle, std::forward<decltype( data )>( data ) ), ... );
187 filter_evtcontext_t<In...>::apply( *
this, this->m_inputs ) );
191 ? FilterDecision::PASSED
192 : FilterDecision::FAILED;
203 template <
typename... Out,
typename... In,
typename Traits_>
205 : DataHandleMixin<std::tuple<Out...>, filter_evtcontext<In...>, Traits_> {
214 [&ohandle...](
bool passed,
auto&&... data ) {
215 ( put( ohandle, std::forward<decltype( data )>( data ) ), ... );
218 filter_evtcontext_t<In...>::apply( *
this,
ctx, this->m_inputs ) );
223 ? FilterDecision::PASSED
224 : FilterDecision::FAILED;
236 template <
typename Signature,
typename Traits_ = Traits::useDefaults>
239 template <
typename Signature,
typename Traits_ = Traits::useDefaults>
242 template <
typename Signature,
typename Traits_ = Traits::useDefaults>