44class message_router :
public imessage_router
48 typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> message_packet;
51 using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>;
55 message_router(etl::message_router_id_t id_)
56 : imessage_router(id_)
63 : imessage_router(id_, successor_)
70 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
76 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
81 using etl::imessage_router::receive;
90 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
91 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
92 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
93 case T4::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T4&
>(msg));
break;
94 case T5::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T5&
>(msg));
break;
95 case T6::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T6&
>(msg));
break;
96 case T7::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T7&
>(msg));
break;
97 case T8::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T8&
>(msg));
break;
98 case T9::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T9&
>(msg));
break;
99 case T10::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T10&
>(msg));
break;
100 case T11::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T11&
>(msg));
break;
101 case T12::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T12&
>(msg));
break;
102 case T13::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T13&
>(msg));
break;
103 case T14::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T14&
>(msg));
break;
104 case T15::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T15&
>(msg));
break;
105 case T16::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T16&
>(msg));
break;
110 get_successor().receive(msg);
114 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
122 template <
typename TMessage>
123 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::value,
void>
::type
124 receive(
const TMessage& msg)
127 static_cast<TDerived*
>(
this)->on_receive(msg);
131 template <
typename TMessage>
132 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::value,
void>
::type
133 receive(
const TMessage& msg)
137 get_successor().receive(msg);
142 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
148 using imessage_router::accepts;
154 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
155 case T9::ID:
case T10::ID:
case T11::ID:
case T12::ID:
case T13::ID:
case T14::ID:
case T15::ID:
case T16::ID:
161 return get_successor().accepts(
id);
172 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
178 bool is_producer()
const ETL_OVERRIDE
184 bool is_consumer()
const ETL_OVERRIDE
198class message_router<TDerived, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, void>
199 :
public imessage_router
203 typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> message_packet;
206 using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>;
210 message_router(etl::message_router_id_t id_)
211 : imessage_router(id_)
218 : imessage_router(id_, successor_)
225 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
231 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
236 using etl::imessage_router::receive;
245 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
246 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
247 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
248 case T4::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T4&
>(msg));
break;
249 case T5::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T5&
>(msg));
break;
250 case T6::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T6&
>(msg));
break;
251 case T7::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T7&
>(msg));
break;
252 case T8::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T8&
>(msg));
break;
253 case T9::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T9&
>(msg));
break;
254 case T10::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T10&
>(msg));
break;
255 case T11::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T11&
>(msg));
break;
256 case T12::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T12&
>(msg));
break;
257 case T13::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T13&
>(msg));
break;
258 case T14::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T14&
>(msg));
break;
259 case T15::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T15&
>(msg));
break;
264 get_successor().receive(msg);
268 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
276 template <
typename TMessage>
277 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>::value,
void>
::type
278 receive(
const TMessage& msg)
281 static_cast<TDerived*
>(
this)->on_receive(msg);
285 template <
typename TMessage>
286 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>::value,
void>
::type
287 receive(
const TMessage& msg)
291 get_successor().receive(msg);
296 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
303 using imessage_router::accepts;
309 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
310 case T9::ID:
case T10::ID:
case T11::ID:
case T12::ID:
case T13::ID:
case T14::ID:
case T15::ID:
316 return get_successor().accepts(
id);
327 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
333 bool is_producer()
const ETL_OVERRIDE
339 bool is_consumer()
const ETL_OVERRIDE
353class message_router<TDerived, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, void, void>
354 :
public imessage_router
358 typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> message_packet;
361 using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>;
365 message_router(etl::message_router_id_t id_)
366 : imessage_router(id_)
373 : imessage_router(id_, successor_)
380 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
386 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
391 using etl::imessage_router::receive;
400 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
401 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
402 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
403 case T4::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T4&
>(msg));
break;
404 case T5::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T5&
>(msg));
break;
405 case T6::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T6&
>(msg));
break;
406 case T7::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T7&
>(msg));
break;
407 case T8::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T8&
>(msg));
break;
408 case T9::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T9&
>(msg));
break;
409 case T10::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T10&
>(msg));
break;
410 case T11::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T11&
>(msg));
break;
411 case T12::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T12&
>(msg));
break;
412 case T13::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T13&
>(msg));
break;
413 case T14::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T14&
>(msg));
break;
418 get_successor().receive(msg);
422 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
430 template <
typename TMessage>
431 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>::value,
void>
::type
432 receive(
const TMessage& msg)
435 static_cast<TDerived*
>(
this)->on_receive(msg);
439 template <
typename TMessage>
440 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>::value,
void>
::type
441 receive(
const TMessage& msg)
445 get_successor().receive(msg);
450 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
457 using imessage_router::accepts;
463 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
464 case T9::ID:
case T10::ID:
case T11::ID:
case T12::ID:
case T13::ID:
case T14::ID:
470 return get_successor().accepts(
id);
481 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
487 bool is_producer()
const ETL_OVERRIDE
493 bool is_consumer()
const ETL_OVERRIDE
507class message_router<TDerived, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, void, void, void>
508 :
public imessage_router
512 typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> message_packet;
515 using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>;
519 message_router(etl::message_router_id_t id_)
520 : imessage_router(id_)
527 : imessage_router(id_, successor_)
534 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
540 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
545 using etl::imessage_router::receive;
554 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
555 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
556 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
557 case T4::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T4&
>(msg));
break;
558 case T5::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T5&
>(msg));
break;
559 case T6::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T6&
>(msg));
break;
560 case T7::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T7&
>(msg));
break;
561 case T8::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T8&
>(msg));
break;
562 case T9::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T9&
>(msg));
break;
563 case T10::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T10&
>(msg));
break;
564 case T11::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T11&
>(msg));
break;
565 case T12::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T12&
>(msg));
break;
566 case T13::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T13&
>(msg));
break;
571 get_successor().receive(msg);
575 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
583 template <
typename TMessage>
584 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>::value,
void>
::type
585 receive(
const TMessage& msg)
588 static_cast<TDerived*
>(
this)->on_receive(msg);
592 template <
typename TMessage>
593 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>::value,
void>
::type
594 receive(
const TMessage& msg)
598 get_successor().receive(msg);
603 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
610 using imessage_router::accepts;
616 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
617 case T9::ID:
case T10::ID:
case T11::ID:
case T12::ID:
case T13::ID:
623 return get_successor().accepts(
id);
634 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
640 bool is_producer()
const ETL_OVERRIDE
646 bool is_consumer()
const ETL_OVERRIDE
659class message_router<TDerived, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, void, void, void, void>
660 :
public imessage_router
664 typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> message_packet;
667 using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>;
671 message_router(etl::message_router_id_t id_)
672 : imessage_router(id_)
679 : imessage_router(id_, successor_)
686 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
692 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
697 using etl::imessage_router::receive;
706 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
707 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
708 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
709 case T4::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T4&
>(msg));
break;
710 case T5::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T5&
>(msg));
break;
711 case T6::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T6&
>(msg));
break;
712 case T7::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T7&
>(msg));
break;
713 case T8::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T8&
>(msg));
break;
714 case T9::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T9&
>(msg));
break;
715 case T10::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T10&
>(msg));
break;
716 case T11::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T11&
>(msg));
break;
717 case T12::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T12&
>(msg));
break;
722 get_successor().receive(msg);
726 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
734 template <
typename TMessage>
735 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>::value,
void>
::type
736 receive(
const TMessage& msg)
739 static_cast<TDerived*
>(
this)->on_receive(msg);
743 template <
typename TMessage>
744 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>::value,
void>
::type
745 receive(
const TMessage& msg)
749 get_successor().receive(msg);
754 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
761 using imessage_router::accepts;
767 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
768 case T9::ID:
case T10::ID:
case T11::ID:
case T12::ID:
774 return get_successor().accepts(
id);
785 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
791 bool is_producer()
const ETL_OVERRIDE
797 bool is_consumer()
const ETL_OVERRIDE
810class message_router<TDerived, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, void, void, void, void, void>
811 :
public imessage_router
815 typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> message_packet;
818 using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>;
822 message_router(etl::message_router_id_t id_)
823 : imessage_router(id_)
830 : imessage_router(id_, successor_)
837 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
843 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
848 using etl::imessage_router::receive;
857 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
858 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
859 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
860 case T4::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T4&
>(msg));
break;
861 case T5::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T5&
>(msg));
break;
862 case T6::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T6&
>(msg));
break;
863 case T7::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T7&
>(msg));
break;
864 case T8::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T8&
>(msg));
break;
865 case T9::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T9&
>(msg));
break;
866 case T10::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T10&
>(msg));
break;
867 case T11::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T11&
>(msg));
break;
872 get_successor().receive(msg);
876 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
884 template <
typename TMessage>
885 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>::value,
void>
::type
886 receive(
const TMessage& msg)
889 static_cast<TDerived*
>(
this)->on_receive(msg);
893 template <
typename TMessage>
894 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>::value,
void>
::type
895 receive(
const TMessage& msg)
899 get_successor().receive(msg);
904 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
911 using imessage_router::accepts;
917 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
918 case T9::ID:
case T10::ID:
case T11::ID:
924 return get_successor().accepts(
id);
935 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
941 bool is_producer()
const ETL_OVERRIDE
947 bool is_consumer()
const ETL_OVERRIDE
960class message_router<TDerived, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, void, void, void, void, void, void>
961 :
public imessage_router
968 using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>;
972 message_router(etl::message_router_id_t id_)
973 : imessage_router(id_)
980 : imessage_router(id_, successor_)
987 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
993 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
998 using etl::imessage_router::receive;
1007 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
1008 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
1009 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
1010 case T4::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T4&
>(msg));
break;
1011 case T5::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T5&
>(msg));
break;
1012 case T6::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T6&
>(msg));
break;
1013 case T7::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T7&
>(msg));
break;
1014 case T8::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T8&
>(msg));
break;
1015 case T9::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T9&
>(msg));
break;
1016 case T10::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T10&
>(msg));
break;
1019 if (has_successor())
1021 get_successor().receive(msg);
1025 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1033 template <
typename TMessage>
1034 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>::value,
void>
::type
1035 receive(
const TMessage& msg)
1038 static_cast<TDerived*
>(
this)->on_receive(msg);
1042 template <
typename TMessage>
1043 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>::value,
void>
::type
1044 receive(
const TMessage& msg)
1046 if (has_successor())
1048 get_successor().receive(msg);
1053 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1060 using imessage_router::accepts;
1066 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
1067 case T9::ID:
case T10::ID:
1071 if (has_successor())
1073 return get_successor().accepts(
id);
1084 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1090 bool is_producer()
const ETL_OVERRIDE
1096 bool is_consumer()
const ETL_OVERRIDE
1109class message_router<TDerived, T1, T2, T3, T4, T5, T6, T7, T8, T9, void, void, void, void, void, void, void>
1110 :
public imessage_router
1117 using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9>;
1121 message_router(etl::message_router_id_t id_)
1122 : imessage_router(id_)
1129 : imessage_router(id_, successor_)
1136 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
1142 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
1147 using etl::imessage_router::receive;
1156 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
1157 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
1158 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
1159 case T4::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T4&
>(msg));
break;
1160 case T5::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T5&
>(msg));
break;
1161 case T6::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T6&
>(msg));
break;
1162 case T7::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T7&
>(msg));
break;
1163 case T8::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T8&
>(msg));
break;
1164 case T9::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T9&
>(msg));
break;
1167 if (has_successor())
1169 get_successor().receive(msg);
1173 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1181 template <
typename TMessage>
1182 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9>::value,
void>
::type
1183 receive(
const TMessage& msg)
1186 static_cast<TDerived*
>(
this)->on_receive(msg);
1190 template <
typename TMessage>
1191 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9>::value,
void>
::type
1192 receive(
const TMessage& msg)
1194 if (has_successor())
1196 get_successor().receive(msg);
1201 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1208 using imessage_router::accepts;
1214 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
1219 if (has_successor())
1221 return get_successor().accepts(
id);
1232 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1238 bool is_producer()
const ETL_OVERRIDE
1244 bool is_consumer()
const ETL_OVERRIDE
1256class message_router<TDerived, T1, T2, T3, T4, T5, T6, T7, T8, void, void, void, void, void, void, void, void>
1257 :
public imessage_router
1264 using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8>;
1268 message_router(etl::message_router_id_t id_)
1269 : imessage_router(id_)
1276 : imessage_router(id_, successor_)
1283 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
1289 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
1294 using etl::imessage_router::receive;
1303 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
1304 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
1305 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
1306 case T4::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T4&
>(msg));
break;
1307 case T5::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T5&
>(msg));
break;
1308 case T6::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T6&
>(msg));
break;
1309 case T7::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T7&
>(msg));
break;
1310 case T8::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T8&
>(msg));
break;
1313 if (has_successor())
1315 get_successor().receive(msg);
1319 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1327 template <
typename TMessage>
1328 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8>::value,
void>
::type
1329 receive(
const TMessage& msg)
1332 static_cast<TDerived*
>(
this)->on_receive(msg);
1336 template <
typename TMessage>
1337 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8>::value,
void>
::type
1338 receive(
const TMessage& msg)
1340 if (has_successor())
1342 get_successor().receive(msg);
1347 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1354 using imessage_router::accepts;
1360 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
1365 if (has_successor())
1367 return get_successor().accepts(
id);
1378 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1384 bool is_producer()
const ETL_OVERRIDE
1390 bool is_consumer()
const ETL_OVERRIDE
1402class message_router<TDerived, T1, T2, T3, T4, T5, T6, T7, void, void, void, void, void, void, void, void, void>
1403 :
public imessage_router
1410 using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7>;
1414 message_router(etl::message_router_id_t id_)
1415 : imessage_router(id_)
1422 : imessage_router(id_, successor_)
1429 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
1435 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
1440 using etl::imessage_router::receive;
1449 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
1450 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
1451 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
1452 case T4::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T4&
>(msg));
break;
1453 case T5::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T5&
>(msg));
break;
1454 case T6::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T6&
>(msg));
break;
1455 case T7::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T7&
>(msg));
break;
1458 if (has_successor())
1460 get_successor().receive(msg);
1464 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1472 template <
typename TMessage>
1473 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7>::value,
void>
::type
1474 receive(
const TMessage& msg)
1477 static_cast<TDerived*
>(
this)->on_receive(msg);
1481 template <
typename TMessage>
1482 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7>::value,
void>
::type
1483 receive(
const TMessage& msg)
1485 if (has_successor())
1487 get_successor().receive(msg);
1492 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1499 using imessage_router::accepts;
1505 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
1509 if (has_successor())
1511 return get_successor().accepts(
id);
1522 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1528 bool is_producer()
const ETL_OVERRIDE
1534 bool is_consumer()
const ETL_OVERRIDE
1546class message_router<TDerived, T1, T2, T3, T4, T5, T6, void, void, void, void, void, void, void, void, void, void>
1547 :
public imessage_router
1554 using message_types = etl::type_list<T1, T2, T3, T4, T5, T6>;
1558 message_router(etl::message_router_id_t id_)
1559 : imessage_router(id_)
1566 : imessage_router(id_, successor_)
1573 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
1579 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
1584 using etl::imessage_router::receive;
1593 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
1594 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
1595 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
1596 case T4::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T4&
>(msg));
break;
1597 case T5::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T5&
>(msg));
break;
1598 case T6::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T6&
>(msg));
break;
1601 if (has_successor())
1603 get_successor().receive(msg);
1607 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1615 template <
typename TMessage>
1616 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6>::value,
void>
::type
1617 receive(
const TMessage& msg)
1620 static_cast<TDerived*
>(
this)->on_receive(msg);
1624 template <
typename TMessage>
1625 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6>::value,
void>
::type
1626 receive(
const TMessage& msg)
1628 if (has_successor())
1630 get_successor().receive(msg);
1635 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1642 using imessage_router::accepts;
1648 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
1652 if (has_successor())
1654 return get_successor().accepts(
id);
1665 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1671 bool is_producer()
const ETL_OVERRIDE
1677 bool is_consumer()
const ETL_OVERRIDE
1689class message_router<TDerived, T1, T2, T3, T4, T5, void, void, void, void, void, void, void, void, void, void, void>
1690 :
public imessage_router
1697 using message_types = etl::type_list<T1, T2, T3, T4, T5>;
1701 message_router(etl::message_router_id_t id_)
1702 : imessage_router(id_)
1709 : imessage_router(id_, successor_)
1716 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
1722 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
1727 using etl::imessage_router::receive;
1736 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
1737 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
1738 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
1739 case T4::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T4&
>(msg));
break;
1740 case T5::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T5&
>(msg));
break;
1743 if (has_successor())
1745 get_successor().receive(msg);
1749 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1757 template <
typename TMessage>
1758 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3, T4, T5>::value,
void>
::type
1759 receive(
const TMessage& msg)
1762 static_cast<TDerived*
>(
this)->on_receive(msg);
1766 template <
typename TMessage>
1767 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3, T4, T5>::value,
void>
::type
1768 receive(
const TMessage& msg)
1770 if (has_successor())
1772 get_successor().receive(msg);
1777 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1784 using imessage_router::accepts;
1790 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
1794 if (has_successor())
1796 return get_successor().accepts(
id);
1807 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1813 bool is_producer()
const ETL_OVERRIDE
1819 bool is_consumer()
const ETL_OVERRIDE
1830class message_router<TDerived, T1, T2, T3, T4, void, void, void, void, void, void, void, void, void, void, void, void>
1831 :
public imessage_router
1838 using message_types = etl::type_list<T1, T2, T3, T4>;
1842 message_router(etl::message_router_id_t id_)
1843 : imessage_router(id_)
1850 : imessage_router(id_, successor_)
1857 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
1863 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
1868 using etl::imessage_router::receive;
1877 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
1878 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
1879 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
1880 case T4::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T4&
>(msg));
break;
1883 if (has_successor())
1885 get_successor().receive(msg);
1889 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1897 template <
typename TMessage>
1898 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3, T4>::value,
void>
::type
1899 receive(
const TMessage& msg)
1902 static_cast<TDerived*
>(
this)->on_receive(msg);
1906 template <
typename TMessage>
1907 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3, T4>::value,
void>
::type
1908 receive(
const TMessage& msg)
1910 if (has_successor())
1912 get_successor().receive(msg);
1917 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
1924 using imessage_router::accepts;
1930 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
1934 if (has_successor())
1936 return get_successor().accepts(
id);
1947 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1953 bool is_producer()
const ETL_OVERRIDE
1959 bool is_consumer()
const ETL_OVERRIDE
1970class message_router<TDerived, T1, T2, T3, void, void, void, void, void, void, void, void, void, void, void, void, void>
1971 :
public imessage_router
1978 using message_types = etl::type_list<T1, T2, T3>;
1982 message_router(etl::message_router_id_t id_)
1983 : imessage_router(id_)
1990 : imessage_router(id_, successor_)
1997 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
2003 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
2008 using etl::imessage_router::receive;
2017 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
2018 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
2019 case T3::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T3&
>(msg));
break;
2022 if (has_successor())
2024 get_successor().receive(msg);
2028 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
2036 template <
typename TMessage>
2037 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2, T3>::value,
void>
::type
2038 receive(
const TMessage& msg)
2041 static_cast<TDerived*
>(
this)->on_receive(msg);
2045 template <
typename TMessage>
2046 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2, T3>::value,
void>
::type
2047 receive(
const TMessage& msg)
2049 if (has_successor())
2051 get_successor().receive(msg);
2056 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
2063 using imessage_router::accepts;
2069 case T1::ID:
case T2::ID:
case T3::ID:
2073 if (has_successor())
2075 return get_successor().accepts(
id);
2086 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
2092 bool is_producer()
const ETL_OVERRIDE
2098 bool is_consumer()
const ETL_OVERRIDE
2109class message_router<TDerived, T1, T2, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
2110 :
public imessage_router
2117 using message_types = etl::type_list<T1, T2>;
2121 message_router(etl::message_router_id_t id_)
2122 : imessage_router(id_)
2129 : imessage_router(id_, successor_)
2136 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
2142 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
2147 using etl::imessage_router::receive;
2156 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
2157 case T2::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T2&
>(msg));
break;
2160 if (has_successor())
2162 get_successor().receive(msg);
2166 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
2174 template <
typename TMessage>
2175 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1, T2>::value,
void>
::type
2176 receive(
const TMessage& msg)
2179 static_cast<TDerived*
>(
this)->on_receive(msg);
2183 template <
typename TMessage>
2184 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1, T2>::value,
void>
::type
2185 receive(
const TMessage& msg)
2187 if (has_successor())
2189 get_successor().receive(msg);
2194 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
2201 using imessage_router::accepts;
2207 case T1::ID:
case T2::ID:
2211 if (has_successor())
2213 return get_successor().accepts(
id);
2224 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
2230 bool is_producer()
const ETL_OVERRIDE
2236 bool is_consumer()
const ETL_OVERRIDE
2247class message_router<TDerived, T1, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
2248 :
public imessage_router
2255 using message_types = etl::type_list<T1>;
2259 message_router(etl::message_router_id_t id_)
2260 : imessage_router(id_)
2267 : imessage_router(id_, successor_)
2274 : imessage_router(etl::imessage_router::MESSAGE_ROUTER)
2280 : imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
2285 using etl::imessage_router::receive;
2294 case T1::ID:
static_cast<TDerived*
>(
this)->on_receive(
static_cast<const T1&
>(msg));
break;
2297 if (has_successor())
2299 get_successor().receive(msg);
2303 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
2311 template <
typename TMessage>
2312 typename etl::enable_if<etl::is_message<TMessage>::value && etl::is_one_of<TMessage, T1>::value,
void>
::type
2313 receive(
const TMessage& msg)
2316 static_cast<TDerived*
>(
this)->on_receive(msg);
2320 template <
typename TMessage>
2321 typename etl::enable_if<etl::is_message<TMessage>::value && !etl::is_one_of<TMessage, T1>::value,
void>
::type
2322 receive(
const TMessage& msg)
2324 if (has_successor())
2326 get_successor().receive(msg);
2331 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
2338 using imessage_router::accepts;
2348 if (has_successor())
2350 return get_successor().accepts(
id);
2361 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
2367 bool is_producer()
const ETL_OVERRIDE
2373 bool is_consumer()
const ETL_OVERRIDE
2383class message_router<TDerived, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void>