30#error THIS HEADER IS A GENERATOR. DO NOT INCLUDE.
51#ifndef ETL_MESSAGE_ROUTER_INCLUDED
52#define ETL_MESSAGE_ROUTER_INCLUDED
57#if ETL_HAS_VIRTUAL_MESSAGES
58 #include "message_packet.h"
60#include "message_types.h"
81 message_router_exception(string_type reason_, string_type file_name_, numeric_type line_number_)
94 message_router_illegal_id(string_type file_name_, numeric_type line_number_)
95 : message_router_exception(ETL_ERROR_TEXT(
"message router:illegal id", ETL_MESSAGE_ROUTER_FILE_ID
"A"), file_name_, line_number_)
103 class imessage_router;
114 virtual ~imessage_router() {}
117 virtual bool is_null_router()
const = 0;
118 virtual bool is_producer()
const = 0;
119 virtual bool is_consumer()
const = 0;
124 if ((destination_router_id == get_message_router_id()) || (destination_router_id == imessage_router::ALL_MESSAGE_ROUTERS))
139 if ((destination_router_id == get_message_router_id()) || (destination_router_id == imessage_router::ALL_MESSAGE_ROUTERS))
148 return accepts(msg.get_message_id());
154 return message_router_id;
159 NULL_MESSAGE_ROUTER = 255,
161 ALL_MESSAGE_ROUTERS = 253,
162 MESSAGE_BROKER = 252,
163 MESSAGE_ROUTER = 251,
164 MAX_MESSAGE_ROUTER = 249
170 : message_router_id(id_)
176 , message_router_id(id_)
183 imessage_router(
const imessage_router&);
184 imessage_router& operator =(
const imessage_router&);
192 class null_message_router :
public imessage_router
197 null_message_router()
198 : imessage_router(imessage_router::NULL_MESSAGE_ROUTER)
204 : imessage_router(imessage_router::NULL_MESSAGE_ROUTER, successor_)
209 using etl::imessage_router::receive;
220 using etl::imessage_router::accepts;
235 ETL_DEPRECATED
bool is_null_router() const ETL_OVERRIDE
241 bool is_producer() const ETL_OVERRIDE
247 bool is_consumer() const ETL_OVERRIDE
253 static null_message_router& instance()
255 static null_message_router nmr;
264 return etl::null_message_router::instance();
270 class message_producer :
public imessage_router
276 : imessage_router(
etl::imessage_router::MESSAGE_ROUTER)
282 : imessage_router(imessage_router::NULL_MESSAGE_ROUTER, successor_)
288 : imessage_router(id_)
295 : imessage_router(id_, successor_)
301 using etl::imessage_router::receive;
312 using etl::imessage_router::accepts;
327 ETL_DEPRECATED
bool is_null_router() const ETL_OVERRIDE
333 bool is_producer() const ETL_OVERRIDE
339 bool is_consumer() const ETL_OVERRIDE
348 template <
typename T>
356 template <
typename TRouter,
typename TMessage>
368 template <
typename TRouter>
371 send_message(TRouter& destination,
380 template <
typename TRouter,
typename TMessage>
384 etl::message_router_id_t
id,
393 template <
typename TRouter>
396 send_message(TRouter& destination,
400 destination.receive(
id, message);
406#if ETL_USING_CPP17 && !defined(ETL_MESSAGE_ROUTER_FORCE_CPP03_IMPLEMENTATION)
410 template <
typename TDerived,
typename... TMessageTypes>
411 class message_router :
public imessage_router
415#if ETL_HAS_VIRTUAL_MESSAGES
421 : imessage_router(
etl::imessage_router::MESSAGE_ROUTER)
427 : imessage_router(
etl::imessage_router::MESSAGE_ROUTER, successor_)
433 : imessage_router(id_)
440 : imessage_router(id_, successor_)
446 using etl::imessage_router::receive;
450 const bool was_handled = (receive_message_type<TMessageTypes>(msg) || ...);
460 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
465 template <typename TMessage, typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value,
int>::type = 0>
466 void receive(
const TMessage& msg)
470 static_cast<TDerived*
>(
this)->on_receive(msg);
480 static_cast<TDerived*
>(
this)->on_receive_unknown(msg);
486 using imessage_router::accepts;
490 return (accepts_type<TMessageTypes>(
id) || ...);
494 ETL_DEPRECATED
bool is_null_router() const ETL_OVERRIDE
500 bool is_producer() const ETL_OVERRIDE
506 bool is_consumer() const ETL_OVERRIDE
514 template <
typename TMessage>
517 if (TMessage::ID == msg.get_message_id())
519 static_cast<TDerived*
>(
this)->on_receive(
static_cast<const TMessage&
>(msg));
529 template <
typename TMessage>
532 if (TMessage::ID ==
id)
556 template <
typename TDerived,
557 typename T1,
typename T2 = void,
typename T3 = void,
typename T4 = void,
558 typename T5 = void,
typename T6 = void,
typename T7 = void,
typename T8 = void,
559 typename T9 = void,
typename T10 = void,
typename T11 = void,
typename T12 = void,
560 typename T13 = void,
typename T14 = void,
typename T15 = void,
typename T16 =
void>
565 #if ETL_HAS_VIRTUAL_MESSAGES
566 typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> message_packet;
596 using etl::imessage_router::receive;
635 template <
typename TMessage>
636 typename etl::enable_if<etl::is_base_of<imessage, 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
642 template <
typename TMessage>
643 typename etl::enable_if<etl::is_base_of<imessage, 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
657 using imessage_router::accepts;
663 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
664 case T9::ID:
case T10::ID:
case T11::ID:
case T12::ID:
case T13::ID:
case T14::ID:
case T15::ID:
case T16::ID:
681 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
687 bool is_producer()
const ETL_OVERRIDE
693 bool is_consumer()
const ETL_OVERRIDE
703 typename T1,
typename T2,
typename T3,
typename T4,
704 typename T5,
typename T6,
typename T7,
typename T8,
705 typename T9,
typename T10,
typename T11,
typename T12,
706 typename T13,
typename T14,
typename T15>
707 class message_router<
TDerived,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
T10,
T11,
T12,
T13,
T14,
T15,
void>
712 #if ETL_HAS_VIRTUAL_MESSAGES
713 typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> message_packet;
743 using etl::imessage_router::receive;
747 const size_t id =
msg.get_message_id();
781 template <
typename TMessage>
782 typename etl::enable_if<etl::is_base_of<imessage, 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
788 template <
typename TMessage>
789 typename etl::enable_if<etl::is_base_of<imessage, 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
804 using imessage_router::accepts;
810 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
811 case T9::ID:
case T10::ID:
case T11::ID:
case T12::ID:
case T13::ID:
case T14::ID:
case T15::ID:
828 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
834 bool is_producer()
const ETL_OVERRIDE
840 bool is_consumer()
const ETL_OVERRIDE
850 typename T1,
typename T2,
typename T3,
typename T4,
851 typename T5,
typename T6,
typename T7,
typename T8,
852 typename T9,
typename T10,
typename T11,
typename T12,
853 typename T13,
typename T14>
854 class message_router<
TDerived,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
T10,
T11,
T12,
T13,
T14,
void,
void>
859 #if ETL_HAS_VIRTUAL_MESSAGES
860 typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> message_packet;
890 using etl::imessage_router::receive;
894 const size_t id =
msg.get_message_id();
927 template <
typename TMessage>
928 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value &&
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>::value,
void>::type
934 template <
typename TMessage>
935 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value && !
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>::value,
void>::type
950 using imessage_router::accepts;
956 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
957 case T9::ID:
case T10::ID:
case T11::ID:
case T12::ID:
case T13::ID:
case T14::ID:
974 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
980 bool is_producer()
const ETL_OVERRIDE
986 bool is_consumer()
const ETL_OVERRIDE
996 typename T1,
typename T2,
typename T3,
typename T4,
997 typename T5,
typename T6,
typename T7,
typename T8,
998 typename T9,
typename T10,
typename T11,
typename T12,
1000 class message_router<
TDerived,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
T10,
T11,
T12,
T13,
void,
void,
void>
1005 #if ETL_HAS_VIRTUAL_MESSAGES
1006 typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> message_packet;
1036 using etl::imessage_router::receive;
1040 const size_t id =
msg.get_message_id();
1072 template <
typename TMessage>
1073 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value &&
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>::value,
void>::type
1079 template <
typename TMessage>
1080 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value && !
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>::value,
void>::type
1095 using imessage_router::accepts;
1101 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
1102 case T9::ID:
case T10::ID:
case T11::ID:
case T12::ID:
case T13::ID:
1119 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1125 bool is_producer()
const ETL_OVERRIDE
1131 bool is_consumer()
const ETL_OVERRIDE
1141 typename T1,
typename T2,
typename T3,
typename T4,
1142 typename T5,
typename T6,
typename T7,
typename T8,
1143 typename T9,
typename T10,
typename T11,
typename T12>
1144 class message_router<
TDerived,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
T10,
T11,
T12,
void,
void,
void,
void>
1149 #if ETL_HAS_VIRTUAL_MESSAGES
1150 typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> message_packet;
1180 using etl::imessage_router::receive;
1184 const size_t id =
msg.get_message_id();
1215 template <
typename TMessage>
1216 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value &&
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>::value,
void>::type
1222 template <
typename TMessage>
1223 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value && !
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>::value,
void>::type
1238 using imessage_router::accepts;
1244 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
1245 case T9::ID:
case T10::ID:
case T11::ID:
case T12::ID:
1262 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1268 bool is_producer()
const ETL_OVERRIDE
1274 bool is_consumer()
const ETL_OVERRIDE
1284 typename T1,
typename T2,
typename T3,
typename T4,
1285 typename T5,
typename T6,
typename T7,
typename T8,
1286 typename T9,
typename T10,
typename T11>
1287 class message_router<
TDerived,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
T10,
T11,
void,
void,
void,
void,
void>
1292 #if ETL_HAS_VIRTUAL_MESSAGES
1293 typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> message_packet;
1323 using etl::imessage_router::receive;
1327 const size_t id =
msg.get_message_id();
1357 template <
typename TMessage>
1358 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value &&
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>::value,
void>::type
1364 template <
typename TMessage>
1365 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value && !
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>::value,
void>::type
1380 using imessage_router::accepts;
1386 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
1387 case T9::ID:
case T10::ID:
case T11::ID:
1404 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1410 bool is_producer()
const ETL_OVERRIDE
1416 bool is_consumer()
const ETL_OVERRIDE
1426 typename T1,
typename T2,
typename T3,
typename T4,
1427 typename T5,
typename T6,
typename T7,
typename T8,
1428 typename T9,
typename T10>
1429 class message_router<
TDerived,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
T10,
void,
void,
void,
void,
void,
void>
1434 #if ETL_HAS_VIRTUAL_MESSAGES
1465 using etl::imessage_router::receive;
1469 const size_t id =
msg.get_message_id();
1498 template <
typename TMessage>
1499 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value &&
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>::value,
void>::type
1505 template <
typename TMessage>
1506 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value && !
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>::value,
void>::type
1521 using imessage_router::accepts;
1527 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
1528 case T9::ID:
case T10::ID:
1545 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1551 bool is_producer()
const ETL_OVERRIDE
1557 bool is_consumer()
const ETL_OVERRIDE
1567 typename T1,
typename T2,
typename T3,
typename T4,
1568 typename T5,
typename T6,
typename T7,
typename T8,
1570 class message_router<
TDerived,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
void,
void,
void,
void,
void,
void,
void>
1575 #if ETL_HAS_VIRTUAL_MESSAGES
1606 using etl::imessage_router::receive;
1610 const size_t id =
msg.get_message_id();
1638 template <
typename TMessage>
1639 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value &&
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9>::value,
void>::type
1645 template <
typename TMessage>
1646 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value && !
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8, T9>::value,
void>::type
1661 using imessage_router::accepts;
1667 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
1685 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1691 bool is_producer()
const ETL_OVERRIDE
1697 bool is_consumer()
const ETL_OVERRIDE
1707 typename T1,
typename T2,
typename T3,
typename T4,
1708 typename T5,
typename T6,
typename T7,
typename T8>
1709 class message_router<
TDerived,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
void,
void,
void,
void,
void,
void,
void,
void>
1714 #if ETL_HAS_VIRTUAL_MESSAGES
1745 using etl::imessage_router::receive;
1749 const size_t id =
msg.get_message_id();
1776 template <
typename TMessage>
1777 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value &&
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8>::value,
void>::type
1783 template <
typename TMessage>
1784 typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value && !
etl::is_one_of<TMessage, T1, T2, T3, T4, T5, T6, T7, T8>::value,
void>::type
1799 using imessage_router::accepts;
1805 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
case T8::ID:
1823 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1829 bool is_producer()
const ETL_OVERRIDE
1835 bool is_consumer()
const ETL_OVERRIDE
1845 typename T1,
typename T2,
typename T3,
typename T4,
1846 typename T5,
typename T6,
typename T7>
1847 class message_router<
TDerived,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
void,
void,
void,
void,
void,
void,
void,
void,
void>
1852 #if ETL_HAS_VIRTUAL_MESSAGES
1883 using etl::imessage_router::receive;
1887 const size_t id =
msg.get_message_id();
1913 template <
typename TMessage>
1920 template <
typename TMessage>
1936 using imessage_router::accepts;
1942 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
case T7::ID:
1959 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
1965 bool is_producer()
const ETL_OVERRIDE
1971 bool is_consumer()
const ETL_OVERRIDE
1981 typename T1,
typename T2,
typename T3,
typename T4,
1982 typename T5,
typename T6>
1983 class message_router<
TDerived,
T1,
T2,
T3,
T4,
T5,
T6,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void>
1988 #if ETL_HAS_VIRTUAL_MESSAGES
2019 using etl::imessage_router::receive;
2023 const size_t id =
msg.get_message_id();
2048 template <
typename TMessage>
2055 template <
typename TMessage>
2071 using imessage_router::accepts;
2077 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
case T6::ID:
2094 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
2100 bool is_producer()
const ETL_OVERRIDE
2106 bool is_consumer()
const ETL_OVERRIDE
2116 typename T1,
typename T2,
typename T3,
typename T4,
2118 class message_router<
TDerived,
T1,
T2,
T3,
T4,
T5,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void>
2123 #if ETL_HAS_VIRTUAL_MESSAGES
2154 using etl::imessage_router::receive;
2158 const size_t id =
msg.get_message_id();
2182 template <
typename TMessage>
2189 template <
typename TMessage>
2205 using imessage_router::accepts;
2211 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
case T5::ID:
2228 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
2234 bool is_producer()
const ETL_OVERRIDE
2240 bool is_consumer()
const ETL_OVERRIDE
2250 typename T1,
typename T2,
typename T3,
typename T4>
2251 class message_router<
TDerived,
T1,
T2,
T3,
T4,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void>
2256 #if ETL_HAS_VIRTUAL_MESSAGES
2287 using etl::imessage_router::receive;
2291 const size_t id =
msg.get_message_id();
2314 template <
typename TMessage>
2321 template <
typename TMessage>
2337 using imessage_router::accepts;
2343 case T1::ID:
case T2::ID:
case T3::ID:
case T4::ID:
2360 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
2366 bool is_producer()
const ETL_OVERRIDE
2372 bool is_consumer()
const ETL_OVERRIDE
2382 typename T1,
typename T2,
typename T3>
2383 class message_router<
TDerived,
T1,
T2,
T3,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void>
2388 #if ETL_HAS_VIRTUAL_MESSAGES
2419 using etl::imessage_router::receive;
2423 const size_t id =
msg.get_message_id();
2445 template <
typename TMessage>
2452 template <
typename TMessage>
2468 using imessage_router::accepts;
2474 case T1::ID:
case T2::ID:
case T3::ID:
2491 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
2497 bool is_producer()
const ETL_OVERRIDE
2503 bool is_consumer()
const ETL_OVERRIDE
2513 typename T1,
typename T2>
2514 class message_router<
TDerived,
T1,
T2,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void>
2519 #if ETL_HAS_VIRTUAL_MESSAGES
2550 using etl::imessage_router::receive;
2554 const size_t id =
msg.get_message_id();
2575 template <
typename TMessage>
2582 template <
typename TMessage>
2598 using imessage_router::accepts;
2604 case T1::ID:
case T2::ID:
2621 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
2627 bool is_producer()
const ETL_OVERRIDE
2633 bool is_consumer()
const ETL_OVERRIDE
2644 class message_router<
TDerived,
T1,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void,
void>
2649 #if ETL_HAS_VIRTUAL_MESSAGES
2680 using etl::imessage_router::receive;
2684 const size_t id =
msg.get_message_id();
2704 template <
typename TMessage>
2711 template <
typename TMessage>
2727 using imessage_router::accepts;
2750 ETL_DEPRECATED
bool is_null_router()
const ETL_OVERRIDE
2756 bool is_producer()
const ETL_OVERRIDE
2762 bool is_consumer()
const ETL_OVERRIDE
This is the base of all message routers.
Definition message_router_generator.h:123
Definition message_packet.h:367
Base exception class for message router.
Definition message_router_generator.h:90
Router id is out of the legal range.
Definition message_router_generator.h:103
Definition message_router.h:562
Definition shared_message.h:49
ETL_NODISCARD etl::imessage & get_message()
Get a reference to the contained message.
Definition shared_message.h:189
Adds successor traits to a class.
Definition successor.h:73
bool has_successor() const
Does this have a successor?
Definition successor.h:184
successor_type & get_successor() const
Definition successor.h:174
successor()
Default constructor.
Definition successor.h:81
#define ETL_ASSERT(b, e)
Definition error_handler.h:316
ETL_CONSTEXPR exception(string_type reason_, string_type, numeric_type line_)
Constructor.
Definition exception.h:69
Definition exception.h:47
bitset_ext
Definition absolute.h:38
etl::imessage_router & get_null_message_router()
null message router functionality.
Definition message_router_generator.h:274
uint_least8_t message_id_t
Allow alternative type for message id.
Definition message_types.h:40
Definition type_traits_generator.h:849
Is T ultimately derived from etl::imessage_router?
Definition message_router_generator.h:362
Is T ultimately derived from etl::imessage?
Definition message.h:208
pair holds two objects of arbitrary type
Definition utility.h:164