30 #error THIS HEADER IS A GENERATOR. DO NOT INCLUDE.
51 #ifndef ETL_MESSAGE_PACKET_INCLUDED
52 #define ETL_MESSAGE_PACKET_INCLUDED
56 #include "static_assert.h"
71 template <
typename T1,
typename T2 = void,
typename T3 = void,
typename T4 = void,
72 typename T5 = void,
typename T6 = void,
typename T7 = void,
typename T8 = void,
73 typename T9 = void,
typename T10 = void,
typename T11 = void,
typename T12 = void,
74 typename T13 = void,
typename T14 = void,
typename T15 = void,
typename T16 =
void>
92 #if ETL_CPP11_SUPPORTED
97 add_new_message(etl::move(msg));
103 : valid(other.is_valid())
107 add_new_message(other.get());
111 #if ETL_CPP11_SUPPORTED
114 : valid(other.is_valid())
118 add_new_message(etl::move(other.get()));
126 delete_current_message();
127 valid = rhs.is_valid();
130 add_new_message(rhs.get());
136 #if ETL_CPP11_SUPPORTED
140 delete_current_message();
141 valid = rhs.is_valid();
144 add_new_message(etl::move(rhs.get()));
154 delete_current_message();
170 bool is_valid()
const
177 SIZE =
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::size,
178 ALIGNMENT =
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::alignment
184 void delete_current_message()
190 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
193 size_t id = pmsg->message_id;
197 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
198 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
199 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
200 case T4::ID:
static_cast<T4*
>(pmsg)->~T4();
break;
201 case T5::ID:
static_cast<T5*
>(pmsg)->~T5();
break;
202 case T6::ID:
static_cast<T6*
>(pmsg)->~T6();
break;
203 case T7::ID:
static_cast<T7*
>(pmsg)->~T7();
break;
204 case T8::ID:
static_cast<T8*
>(pmsg)->~T8();
break;
205 case T9::ID:
static_cast<T9*
>(pmsg)->~T9();
break;
206 case T10::ID:
static_cast<T10*
>(pmsg)->~T10();
break;
207 case T11::ID:
static_cast<T11*
>(pmsg)->~T11();
break;
208 case T12::ID:
static_cast<T12*
>(pmsg)->~T12();
break;
209 case T13::ID:
static_cast<T13*
>(pmsg)->~T13();
break;
210 case T14::ID:
static_cast<T14*
>(pmsg)->~T14();
break;
211 case T15::ID:
static_cast<T15*
>(pmsg)->~T15();
break;
212 case T16::ID:
static_cast<T16*
>(pmsg)->~T16();
break;
213 default: assert(
false);
break;
222 const size_t id = msg.message_id;
227 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
228 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
229 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
230 case T4::ID: ::new (p) T4(
static_cast<const T4&
>(msg));
break;
231 case T5::ID: ::new (p) T5(
static_cast<const T5&
>(msg));
break;
232 case T6::ID: ::new (p) T6(
static_cast<const T6&
>(msg));
break;
233 case T7::ID: ::new (p) T7(
static_cast<const T7&
>(msg));
break;
234 case T8::ID: ::new (p) T8(
static_cast<const T8&
>(msg));
break;
235 case T9::ID: ::new (p) T9(
static_cast<const T9&
>(msg));
break;
236 case T10::ID: ::new (p) T10(
static_cast<const T10&
>(msg));
break;
237 case T11::ID: ::new (p) T11(
static_cast<const T11&
>(msg));
break;
238 case T12::ID: ::new (p) T12(
static_cast<const T12&
>(msg));
break;
239 case T13::ID: ::new (p) T13(
static_cast<const T13&
>(msg));
break;
240 case T14::ID: ::new (p) T14(
static_cast<const T14&
>(msg));
break;
241 case T15::ID: ::new (p) T15(
static_cast<const T15&
>(msg));
break;
242 case T16::ID: ::new (p) T16(
static_cast<const T16&
>(msg));
break;
247 #if ETL_CPP11_SUPPORTED
251 const size_t id = msg.message_id;
256 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
257 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
258 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
259 case T4::ID: ::new (p) T4(
static_cast<T4&&
>(msg));
break;
260 case T5::ID: ::new (p) T5(
static_cast<T5&&
>(msg));
break;
261 case T6::ID: ::new (p) T6(
static_cast<T6&&
>(msg));
break;
262 case T7::ID: ::new (p) T7(
static_cast<T7&&
>(msg));
break;
263 case T8::ID: ::new (p) T8(
static_cast<T8&&
>(msg));
break;
264 case T9::ID: ::new (p) T9(
static_cast<T9&&
>(msg));
break;
265 case T10::ID: ::new (p) T10(
static_cast<T10&&
>(msg));
break;
266 case T11::ID: ::new (p) T11(
static_cast<T11&&
>(msg));
break;
267 case T12::ID: ::new (p) T12(
static_cast<T12&&
>(msg));
break;
268 case T13::ID: ::new (p) T13(
static_cast<T13&&
>(msg));
break;
269 case T14::ID: ::new (p) T14(
static_cast<T14&&
>(msg));
break;
270 case T15::ID: ::new (p) T15(
static_cast<T15&&
>(msg));
break;
271 case T16::ID: ::new (p) T16(
static_cast<T16&&
>(msg));
break;
284 template <
typename T1,
typename T2,
typename T3,
typename T4,
285 typename T5,
typename T6,
typename T7,
typename T8,
286 typename T9,
typename T10,
typename T11,
typename T12,
287 typename T13,
typename T14,
typename T15>
288 class message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, void>
302 add_new_message(msg);
305 #if ETL_CPP11_SUPPORTED
310 add_new_message(etl::move(msg));
316 : valid(other.is_valid())
320 add_new_message(other.get());
324 #if ETL_CPP11_SUPPORTED
327 : valid(other.is_valid())
331 add_new_message(etl::move(other.get()));
339 delete_current_message();
340 valid = rhs.is_valid();
343 add_new_message(rhs.get());
349 #if ETL_CPP11_SUPPORTED
353 delete_current_message();
354 valid = rhs.is_valid();
357 add_new_message(etl::move(rhs.get()));
367 delete_current_message();
383 bool is_valid()
const
390 SIZE =
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>::size,
391 ALIGNMENT =
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>::alignment
397 void delete_current_message()
403 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
406 size_t id = pmsg->message_id;
410 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
411 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
412 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
413 case T4::ID:
static_cast<T4*
>(pmsg)->~T4();
break;
414 case T5::ID:
static_cast<T5*
>(pmsg)->~T5();
break;
415 case T6::ID:
static_cast<T6*
>(pmsg)->~T6();
break;
416 case T7::ID:
static_cast<T7*
>(pmsg)->~T7();
break;
417 case T8::ID:
static_cast<T8*
>(pmsg)->~T8();
break;
418 case T9::ID:
static_cast<T9*
>(pmsg)->~T9();
break;
419 case T10::ID:
static_cast<T10*
>(pmsg)->~T10();
break;
420 case T11::ID:
static_cast<T11*
>(pmsg)->~T11();
break;
421 case T12::ID:
static_cast<T12*
>(pmsg)->~T12();
break;
422 case T13::ID:
static_cast<T13*
>(pmsg)->~T13();
break;
423 case T14::ID:
static_cast<T14*
>(pmsg)->~T14();
break;
424 case T15::ID:
static_cast<T15*
>(pmsg)->~T15();
break;
425 default: assert(
false);
break;
434 const size_t id = msg.message_id;
439 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
440 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
441 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
442 case T4::ID: ::new (p) T4(
static_cast<const T4&
>(msg));
break;
443 case T5::ID: ::new (p) T5(
static_cast<const T5&
>(msg));
break;
444 case T6::ID: ::new (p) T6(
static_cast<const T6&
>(msg));
break;
445 case T7::ID: ::new (p) T7(
static_cast<const T7&
>(msg));
break;
446 case T8::ID: ::new (p) T8(
static_cast<const T8&
>(msg));
break;
447 case T9::ID: ::new (p) T9(
static_cast<const T9&
>(msg));
break;
448 case T10::ID: ::new (p) T10(
static_cast<const T10&
>(msg));
break;
449 case T11::ID: ::new (p) T11(
static_cast<const T11&
>(msg));
break;
450 case T12::ID: ::new (p) T12(
static_cast<const T12&
>(msg));
break;
451 case T13::ID: ::new (p) T13(
static_cast<const T13&
>(msg));
break;
452 case T14::ID: ::new (p) T14(
static_cast<const T14&
>(msg));
break;
453 case T15::ID: ::new (p) T15(
static_cast<const T15&
>(msg));
break;
458 #if ETL_CPP11_SUPPORTED
462 const size_t id = msg.message_id;
467 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
468 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
469 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
470 case T4::ID: ::new (p) T4(
static_cast<T4&&
>(msg));
break;
471 case T5::ID: ::new (p) T5(
static_cast<T5&&
>(msg));
break;
472 case T6::ID: ::new (p) T6(
static_cast<T6&&
>(msg));
break;
473 case T7::ID: ::new (p) T7(
static_cast<T7&&
>(msg));
break;
474 case T8::ID: ::new (p) T8(
static_cast<T8&&
>(msg));
break;
475 case T9::ID: ::new (p) T9(
static_cast<T9&&
>(msg));
break;
476 case T10::ID: ::new (p) T10(
static_cast<T10&&
>(msg));
break;
477 case T11::ID: ::new (p) T11(
static_cast<T11&&
>(msg));
break;
478 case T12::ID: ::new (p) T12(
static_cast<T12&&
>(msg));
break;
479 case T13::ID: ::new (p) T13(
static_cast<T13&&
>(msg));
break;
480 case T14::ID: ::new (p) T14(
static_cast<T14&&
>(msg));
break;
481 case T15::ID: ::new (p) T15(
static_cast<T15&&
>(msg));
break;
494 template <
typename T1,
typename T2,
typename T3,
typename T4,
495 typename T5,
typename T6,
typename T7,
typename T8,
496 typename T9,
typename T10,
typename T11,
typename T12,
497 typename T13,
typename T14>
498 class message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, void, void>
512 add_new_message(msg);
515 #if ETL_CPP11_SUPPORTED
520 add_new_message(etl::move(msg));
526 : valid(other.is_valid())
530 add_new_message(other.get());
534 #if ETL_CPP11_SUPPORTED
537 : valid(other.is_valid())
541 add_new_message(etl::move(other.get()));
549 delete_current_message();
550 valid = rhs.is_valid();
553 add_new_message(rhs.get());
559 #if ETL_CPP11_SUPPORTED
563 delete_current_message();
564 valid = rhs.is_valid();
567 add_new_message(etl::move(rhs.get()));
577 delete_current_message();
593 bool is_valid()
const
600 SIZE =
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>::size,
601 ALIGNMENT =
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>::alignment
607 void delete_current_message()
613 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
616 size_t id = pmsg->message_id;
620 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
621 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
622 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
623 case T4::ID:
static_cast<T4*
>(pmsg)->~T4();
break;
624 case T5::ID:
static_cast<T5*
>(pmsg)->~T5();
break;
625 case T6::ID:
static_cast<T6*
>(pmsg)->~T6();
break;
626 case T7::ID:
static_cast<T7*
>(pmsg)->~T7();
break;
627 case T8::ID:
static_cast<T8*
>(pmsg)->~T8();
break;
628 case T9::ID:
static_cast<T9*
>(pmsg)->~T9();
break;
629 case T10::ID:
static_cast<T10*
>(pmsg)->~T10();
break;
630 case T11::ID:
static_cast<T11*
>(pmsg)->~T11();
break;
631 case T12::ID:
static_cast<T12*
>(pmsg)->~T12();
break;
632 case T13::ID:
static_cast<T13*
>(pmsg)->~T13();
break;
633 case T14::ID:
static_cast<T14*
>(pmsg)->~T14();
break;
634 default: assert(
false);
break;
643 const size_t id = msg.message_id;
648 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
649 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
650 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
651 case T4::ID: ::new (p) T4(
static_cast<const T4&
>(msg));
break;
652 case T5::ID: ::new (p) T5(
static_cast<const T5&
>(msg));
break;
653 case T6::ID: ::new (p) T6(
static_cast<const T6&
>(msg));
break;
654 case T7::ID: ::new (p) T7(
static_cast<const T7&
>(msg));
break;
655 case T8::ID: ::new (p) T8(
static_cast<const T8&
>(msg));
break;
656 case T9::ID: ::new (p) T9(
static_cast<const T9&
>(msg));
break;
657 case T10::ID: ::new (p) T10(
static_cast<const T10&
>(msg));
break;
658 case T11::ID: ::new (p) T11(
static_cast<const T11&
>(msg));
break;
659 case T12::ID: ::new (p) T12(
static_cast<const T12&
>(msg));
break;
660 case T13::ID: ::new (p) T13(
static_cast<const T13&
>(msg));
break;
661 case T14::ID: ::new (p) T14(
static_cast<const T14&
>(msg));
break;
666 #if ETL_CPP11_SUPPORTED
670 const size_t id = msg.message_id;
675 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
676 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
677 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
678 case T4::ID: ::new (p) T4(
static_cast<T4&&
>(msg));
break;
679 case T5::ID: ::new (p) T5(
static_cast<T5&&
>(msg));
break;
680 case T6::ID: ::new (p) T6(
static_cast<T6&&
>(msg));
break;
681 case T7::ID: ::new (p) T7(
static_cast<T7&&
>(msg));
break;
682 case T8::ID: ::new (p) T8(
static_cast<T8&&
>(msg));
break;
683 case T9::ID: ::new (p) T9(
static_cast<T9&&
>(msg));
break;
684 case T10::ID: ::new (p) T10(
static_cast<T10&&
>(msg));
break;
685 case T11::ID: ::new (p) T11(
static_cast<T11&&
>(msg));
break;
686 case T12::ID: ::new (p) T12(
static_cast<T12&&
>(msg));
break;
687 case T13::ID: ::new (p) T13(
static_cast<T13&&
>(msg));
break;
688 case T14::ID: ::new (p) T14(
static_cast<T14&&
>(msg));
break;
701 template <
typename T1,
typename T2,
typename T3,
typename T4,
702 typename T5,
typename T6,
typename T7,
typename T8,
703 typename T9,
typename T10,
typename T11,
typename T12,
705 class message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, void, void, void>
719 add_new_message(msg);
722 #if ETL_CPP11_SUPPORTED
727 add_new_message(etl::move(msg));
733 : valid(other.is_valid())
737 add_new_message(other.get());
741 #if ETL_CPP11_SUPPORTED
744 : valid(other.is_valid())
748 add_new_message(etl::move(other.get()));
756 delete_current_message();
757 valid = rhs.is_valid();
760 add_new_message(rhs.get());
766 #if ETL_CPP11_SUPPORTED
770 delete_current_message();
771 valid = rhs.is_valid();
774 add_new_message(etl::move(rhs.get()));
784 delete_current_message();
800 bool is_valid()
const
807 SIZE =
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>::size,
808 ALIGNMENT =
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>::alignment
814 void delete_current_message()
820 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
823 size_t id = pmsg->message_id;
827 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
828 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
829 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
830 case T4::ID:
static_cast<T4*
>(pmsg)->~T4();
break;
831 case T5::ID:
static_cast<T5*
>(pmsg)->~T5();
break;
832 case T6::ID:
static_cast<T6*
>(pmsg)->~T6();
break;
833 case T7::ID:
static_cast<T7*
>(pmsg)->~T7();
break;
834 case T8::ID:
static_cast<T8*
>(pmsg)->~T8();
break;
835 case T9::ID:
static_cast<T9*
>(pmsg)->~T9();
break;
836 case T10::ID:
static_cast<T10*
>(pmsg)->~T10();
break;
837 case T11::ID:
static_cast<T11*
>(pmsg)->~T11();
break;
838 case T12::ID:
static_cast<T12*
>(pmsg)->~T12();
break;
839 case T13::ID:
static_cast<T13*
>(pmsg)->~T13();
break;
840 default: assert(
false);
break;
849 const size_t id = msg.message_id;
854 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
855 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
856 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
857 case T4::ID: ::new (p) T4(
static_cast<const T4&
>(msg));
break;
858 case T5::ID: ::new (p) T5(
static_cast<const T5&
>(msg));
break;
859 case T6::ID: ::new (p) T6(
static_cast<const T6&
>(msg));
break;
860 case T7::ID: ::new (p) T7(
static_cast<const T7&
>(msg));
break;
861 case T8::ID: ::new (p) T8(
static_cast<const T8&
>(msg));
break;
862 case T9::ID: ::new (p) T9(
static_cast<const T9&
>(msg));
break;
863 case T10::ID: ::new (p) T10(
static_cast<const T10&
>(msg));
break;
864 case T11::ID: ::new (p) T11(
static_cast<const T11&
>(msg));
break;
865 case T12::ID: ::new (p) T12(
static_cast<const T12&
>(msg));
break;
866 case T13::ID: ::new (p) T13(
static_cast<const T13&
>(msg));
break;
871 #if ETL_CPP11_SUPPORTED
875 const size_t id = msg.message_id;
880 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
881 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
882 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
883 case T4::ID: ::new (p) T4(
static_cast<T4&&
>(msg));
break;
884 case T5::ID: ::new (p) T5(
static_cast<T5&&
>(msg));
break;
885 case T6::ID: ::new (p) T6(
static_cast<T6&&
>(msg));
break;
886 case T7::ID: ::new (p) T7(
static_cast<T7&&
>(msg));
break;
887 case T8::ID: ::new (p) T8(
static_cast<T8&&
>(msg));
break;
888 case T9::ID: ::new (p) T9(
static_cast<T9&&
>(msg));
break;
889 case T10::ID: ::new (p) T10(
static_cast<T10&&
>(msg));
break;
890 case T11::ID: ::new (p) T11(
static_cast<T11&&
>(msg));
break;
891 case T12::ID: ::new (p) T12(
static_cast<T12&&
>(msg));
break;
892 case T13::ID: ::new (p) T13(
static_cast<T13&&
>(msg));
break;
905 template <
typename T1,
typename T2,
typename T3,
typename T4,
906 typename T5,
typename T6,
typename T7,
typename T8,
907 typename T9,
typename T10,
typename T11,
typename T12>
908 class message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, void, void, void, void>
922 add_new_message(msg);
925 #if ETL_CPP11_SUPPORTED
930 add_new_message(etl::move(msg));
936 : valid(other.is_valid())
940 add_new_message(other.get());
944 #if ETL_CPP11_SUPPORTED
947 : valid(other.is_valid())
951 add_new_message(etl::move(other.get()));
959 delete_current_message();
960 valid = rhs.is_valid();
963 add_new_message(rhs.get());
969 #if ETL_CPP11_SUPPORTED
973 delete_current_message();
974 valid = rhs.is_valid();
977 add_new_message(etl::move(rhs.get()));
987 delete_current_message();
1003 bool is_valid()
const
1010 SIZE =
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>::size,
1011 ALIGNMENT =
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>::alignment
1017 void delete_current_message()
1023 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
1026 size_t id = pmsg->message_id;
1030 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
1031 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
1032 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
1033 case T4::ID:
static_cast<T4*
>(pmsg)->~T4();
break;
1034 case T5::ID:
static_cast<T5*
>(pmsg)->~T5();
break;
1035 case T6::ID:
static_cast<T6*
>(pmsg)->~T6();
break;
1036 case T7::ID:
static_cast<T7*
>(pmsg)->~T7();
break;
1037 case T8::ID:
static_cast<T8*
>(pmsg)->~T8();
break;
1038 case T9::ID:
static_cast<T9*
>(pmsg)->~T9();
break;
1039 case T10::ID:
static_cast<T10*
>(pmsg)->~T10();
break;
1040 case T11::ID:
static_cast<T11*
>(pmsg)->~T11();
break;
1041 case T12::ID:
static_cast<T12*
>(pmsg)->~T12();
break;
1042 default: assert(
false);
break;
1051 const size_t id = msg.message_id;
1056 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
1057 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
1058 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
1059 case T4::ID: ::new (p) T4(
static_cast<const T4&
>(msg));
break;
1060 case T5::ID: ::new (p) T5(
static_cast<const T5&
>(msg));
break;
1061 case T6::ID: ::new (p) T6(
static_cast<const T6&
>(msg));
break;
1062 case T7::ID: ::new (p) T7(
static_cast<const T7&
>(msg));
break;
1063 case T8::ID: ::new (p) T8(
static_cast<const T8&
>(msg));
break;
1064 case T9::ID: ::new (p) T9(
static_cast<const T9&
>(msg));
break;
1065 case T10::ID: ::new (p) T10(
static_cast<const T10&
>(msg));
break;
1066 case T11::ID: ::new (p) T11(
static_cast<const T11&
>(msg));
break;
1067 case T12::ID: ::new (p) T12(
static_cast<const T12&
>(msg));
break;
1072 #if ETL_CPP11_SUPPORTED
1076 const size_t id = msg.message_id;
1081 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
1082 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
1083 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
1084 case T4::ID: ::new (p) T4(
static_cast<T4&&
>(msg));
break;
1085 case T5::ID: ::new (p) T5(
static_cast<T5&&
>(msg));
break;
1086 case T6::ID: ::new (p) T6(
static_cast<T6&&
>(msg));
break;
1087 case T7::ID: ::new (p) T7(
static_cast<T7&&
>(msg));
break;
1088 case T8::ID: ::new (p) T8(
static_cast<T8&&
>(msg));
break;
1089 case T9::ID: ::new (p) T9(
static_cast<T9&&
>(msg));
break;
1090 case T10::ID: ::new (p) T10(
static_cast<T10&&
>(msg));
break;
1091 case T11::ID: ::new (p) T11(
static_cast<T11&&
>(msg));
break;
1092 case T12::ID: ::new (p) T12(
static_cast<T12&&
>(msg));
break;
1105 template <
typename T1,
typename T2,
typename T3,
typename T4,
1106 typename T5,
typename T6,
typename T7,
typename T8,
1107 typename T9,
typename T10,
typename T11>
1108 class message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, void, void, void, void, void>
1122 add_new_message(msg);
1125 #if ETL_CPP11_SUPPORTED
1130 add_new_message(etl::move(msg));
1136 : valid(other.is_valid())
1140 add_new_message(other.get());
1144 #if ETL_CPP11_SUPPORTED
1147 : valid(other.is_valid())
1151 add_new_message(etl::move(other.get()));
1159 delete_current_message();
1160 valid = rhs.is_valid();
1163 add_new_message(rhs.get());
1169 #if ETL_CPP11_SUPPORTED
1173 delete_current_message();
1174 valid = rhs.is_valid();
1177 add_new_message(etl::move(rhs.get()));
1187 delete_current_message();
1203 bool is_valid()
const
1210 SIZE =
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>::size,
1211 ALIGNMENT =
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>::alignment
1217 void delete_current_message()
1223 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
1226 size_t id = pmsg->message_id;
1230 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
1231 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
1232 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
1233 case T4::ID:
static_cast<T4*
>(pmsg)->~T4();
break;
1234 case T5::ID:
static_cast<T5*
>(pmsg)->~T5();
break;
1235 case T6::ID:
static_cast<T6*
>(pmsg)->~T6();
break;
1236 case T7::ID:
static_cast<T7*
>(pmsg)->~T7();
break;
1237 case T8::ID:
static_cast<T8*
>(pmsg)->~T8();
break;
1238 case T9::ID:
static_cast<T9*
>(pmsg)->~T9();
break;
1239 case T10::ID:
static_cast<T10*
>(pmsg)->~T10();
break;
1240 case T11::ID:
static_cast<T11*
>(pmsg)->~T11();
break;
1241 default: assert(
false);
break;
1250 const size_t id = msg.message_id;
1255 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
1256 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
1257 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
1258 case T4::ID: ::new (p) T4(
static_cast<const T4&
>(msg));
break;
1259 case T5::ID: ::new (p) T5(
static_cast<const T5&
>(msg));
break;
1260 case T6::ID: ::new (p) T6(
static_cast<const T6&
>(msg));
break;
1261 case T7::ID: ::new (p) T7(
static_cast<const T7&
>(msg));
break;
1262 case T8::ID: ::new (p) T8(
static_cast<const T8&
>(msg));
break;
1263 case T9::ID: ::new (p) T9(
static_cast<const T9&
>(msg));
break;
1264 case T10::ID: ::new (p) T10(
static_cast<const T10&
>(msg));
break;
1265 case T11::ID: ::new (p) T11(
static_cast<const T11&
>(msg));
break;
1270 #if ETL_CPP11_SUPPORTED
1274 const size_t id = msg.message_id;
1279 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
1280 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
1281 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
1282 case T4::ID: ::new (p) T4(
static_cast<T4&&
>(msg));
break;
1283 case T5::ID: ::new (p) T5(
static_cast<T5&&
>(msg));
break;
1284 case T6::ID: ::new (p) T6(
static_cast<T6&&
>(msg));
break;
1285 case T7::ID: ::new (p) T7(
static_cast<T7&&
>(msg));
break;
1286 case T8::ID: ::new (p) T8(
static_cast<T8&&
>(msg));
break;
1287 case T9::ID: ::new (p) T9(
static_cast<T9&&
>(msg));
break;
1288 case T10::ID: ::new (p) T10(
static_cast<T10&&
>(msg));
break;
1289 case T11::ID: ::new (p) T11(
static_cast<T11&&
>(msg));
break;
1302 template <
typename T1,
typename T2,
typename T3,
typename T4,
1303 typename T5,
typename T6,
typename T7,
typename T8,
1304 typename T9,
typename T10>
1305 class message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, void, void, void, void, void, void>
1319 add_new_message(msg);
1322 #if ETL_CPP11_SUPPORTED
1327 add_new_message(etl::move(msg));
1333 : valid(other.is_valid())
1337 add_new_message(other.get());
1341 #if ETL_CPP11_SUPPORTED
1344 : valid(other.is_valid())
1348 add_new_message(etl::move(other.get()));
1356 delete_current_message();
1357 valid = rhs.is_valid();
1360 add_new_message(rhs.get());
1366 #if ETL_CPP11_SUPPORTED
1370 delete_current_message();
1371 valid = rhs.is_valid();
1374 add_new_message(etl::move(rhs.get()));
1384 delete_current_message();
1400 bool is_valid()
const
1407 SIZE =
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>::size,
1414 void delete_current_message()
1420 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
1423 size_t id = pmsg->message_id;
1427 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
1428 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
1429 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
1430 case T4::ID:
static_cast<T4*
>(pmsg)->~T4();
break;
1431 case T5::ID:
static_cast<T5*
>(pmsg)->~T5();
break;
1432 case T6::ID:
static_cast<T6*
>(pmsg)->~T6();
break;
1433 case T7::ID:
static_cast<T7*
>(pmsg)->~T7();
break;
1434 case T8::ID:
static_cast<T8*
>(pmsg)->~T8();
break;
1435 case T9::ID:
static_cast<T9*
>(pmsg)->~T9();
break;
1436 case T10::ID:
static_cast<T10*
>(pmsg)->~T10();
break;
1437 default: assert(
false);
break;
1446 const size_t id = msg.message_id;
1451 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
1452 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
1453 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
1454 case T4::ID: ::new (p) T4(
static_cast<const T4&
>(msg));
break;
1455 case T5::ID: ::new (p) T5(
static_cast<const T5&
>(msg));
break;
1456 case T6::ID: ::new (p) T6(
static_cast<const T6&
>(msg));
break;
1457 case T7::ID: ::new (p) T7(
static_cast<const T7&
>(msg));
break;
1458 case T8::ID: ::new (p) T8(
static_cast<const T8&
>(msg));
break;
1459 case T9::ID: ::new (p) T9(
static_cast<const T9&
>(msg));
break;
1460 case T10::ID: ::new (p) T10(
static_cast<const T10&
>(msg));
break;
1465 #if ETL_CPP11_SUPPORTED
1469 const size_t id = msg.message_id;
1474 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
1475 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
1476 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
1477 case T4::ID: ::new (p) T4(
static_cast<T4&&
>(msg));
break;
1478 case T5::ID: ::new (p) T5(
static_cast<T5&&
>(msg));
break;
1479 case T6::ID: ::new (p) T6(
static_cast<T6&&
>(msg));
break;
1480 case T7::ID: ::new (p) T7(
static_cast<T7&&
>(msg));
break;
1481 case T8::ID: ::new (p) T8(
static_cast<T8&&
>(msg));
break;
1482 case T9::ID: ::new (p) T9(
static_cast<T9&&
>(msg));
break;
1483 case T10::ID: ::new (p) T10(
static_cast<T10&&
>(msg));
break;
1496 template <
typename T1,
typename T2,
typename T3,
typename T4,
1497 typename T5,
typename T6,
typename T7,
typename T8,
1499 class message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, void, void, void, void, void, void, void>
1513 add_new_message(msg);
1516 #if ETL_CPP11_SUPPORTED
1521 add_new_message(etl::move(msg));
1527 : valid(other.is_valid())
1531 add_new_message(other.get());
1535 #if ETL_CPP11_SUPPORTED
1538 : valid(other.is_valid())
1542 add_new_message(etl::move(other.get()));
1550 delete_current_message();
1551 valid = rhs.is_valid();
1554 add_new_message(rhs.get());
1560 #if ETL_CPP11_SUPPORTED
1564 delete_current_message();
1565 valid = rhs.is_valid();
1568 add_new_message(etl::move(rhs.get()));
1578 delete_current_message();
1594 bool is_valid()
const
1608 void delete_current_message()
1614 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
1617 size_t id = pmsg->message_id;
1621 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
1622 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
1623 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
1624 case T4::ID:
static_cast<T4*
>(pmsg)->~T4();
break;
1625 case T5::ID:
static_cast<T5*
>(pmsg)->~T5();
break;
1626 case T6::ID:
static_cast<T6*
>(pmsg)->~T6();
break;
1627 case T7::ID:
static_cast<T7*
>(pmsg)->~T7();
break;
1628 case T8::ID:
static_cast<T8*
>(pmsg)->~T8();
break;
1629 case T9::ID:
static_cast<T9*
>(pmsg)->~T9();
break;
1630 default: assert(
false);
break;
1639 const size_t id = msg.message_id;
1644 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
1645 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
1646 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
1647 case T4::ID: ::new (p) T4(
static_cast<const T4&
>(msg));
break;
1648 case T5::ID: ::new (p) T5(
static_cast<const T5&
>(msg));
break;
1649 case T6::ID: ::new (p) T6(
static_cast<const T6&
>(msg));
break;
1650 case T7::ID: ::new (p) T7(
static_cast<const T7&
>(msg));
break;
1651 case T8::ID: ::new (p) T8(
static_cast<const T8&
>(msg));
break;
1652 case T9::ID: ::new (p) T9(
static_cast<const T9&
>(msg));
break;
1657 #if ETL_CPP11_SUPPORTED
1661 const size_t id = msg.message_id;
1666 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
1667 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
1668 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
1669 case T4::ID: ::new (p) T4(
static_cast<T4&&
>(msg));
break;
1670 case T5::ID: ::new (p) T5(
static_cast<T5&&
>(msg));
break;
1671 case T6::ID: ::new (p) T6(
static_cast<T6&&
>(msg));
break;
1672 case T7::ID: ::new (p) T7(
static_cast<T7&&
>(msg));
break;
1673 case T8::ID: ::new (p) T8(
static_cast<T8&&
>(msg));
break;
1674 case T9::ID: ::new (p) T9(
static_cast<T9&&
>(msg));
break;
1687 template <
typename T1,
typename T2,
typename T3,
typename T4,
1688 typename T5,
typename T6,
typename T7,
typename T8>
1689 class message_packet<T1, T2, T3, T4, T5, T6, T7, T8, void, void, void, void, void, void, void, void>
1703 add_new_message(msg);
1706 #if ETL_CPP11_SUPPORTED
1711 add_new_message(etl::move(msg));
1717 : valid(other.is_valid())
1721 add_new_message(other.get());
1725 #if ETL_CPP11_SUPPORTED
1728 : valid(other.is_valid())
1732 add_new_message(etl::move(other.get()));
1740 delete_current_message();
1741 valid = rhs.is_valid();
1744 add_new_message(rhs.get());
1750 #if ETL_CPP11_SUPPORTED
1754 delete_current_message();
1755 valid = rhs.is_valid();
1758 add_new_message(etl::move(rhs.get()));
1768 delete_current_message();
1784 bool is_valid()
const
1798 void delete_current_message()
1804 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
1807 size_t id = pmsg->message_id;
1811 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
1812 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
1813 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
1814 case T4::ID:
static_cast<T4*
>(pmsg)->~T4();
break;
1815 case T5::ID:
static_cast<T5*
>(pmsg)->~T5();
break;
1816 case T6::ID:
static_cast<T6*
>(pmsg)->~T6();
break;
1817 case T7::ID:
static_cast<T7*
>(pmsg)->~T7();
break;
1818 case T8::ID:
static_cast<T8*
>(pmsg)->~T8();
break;
1819 default: assert(
false);
break;
1828 const size_t id = msg.message_id;
1833 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
1834 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
1835 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
1836 case T4::ID: ::new (p) T4(
static_cast<const T4&
>(msg));
break;
1837 case T5::ID: ::new (p) T5(
static_cast<const T5&
>(msg));
break;
1838 case T6::ID: ::new (p) T6(
static_cast<const T6&
>(msg));
break;
1839 case T7::ID: ::new (p) T7(
static_cast<const T7&
>(msg));
break;
1840 case T8::ID: ::new (p) T8(
static_cast<const T8&
>(msg));
break;
1845 #if ETL_CPP11_SUPPORTED
1849 const size_t id = msg.message_id;
1854 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
1855 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
1856 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
1857 case T4::ID: ::new (p) T4(
static_cast<T4&&
>(msg));
break;
1858 case T5::ID: ::new (p) T5(
static_cast<T5&&
>(msg));
break;
1859 case T6::ID: ::new (p) T6(
static_cast<T6&&
>(msg));
break;
1860 case T7::ID: ::new (p) T7(
static_cast<T7&&
>(msg));
break;
1861 case T8::ID: ::new (p) T8(
static_cast<T8&&
>(msg));
break;
1874 template <
typename T1,
typename T2,
typename T3,
typename T4,
1875 typename T5,
typename T6,
typename T7>
1876 class message_packet<T1, T2, T3, T4, T5, T6, T7, void, void, void, void, void, void, void, void, void>
1890 add_new_message(msg);
1893 #if ETL_CPP11_SUPPORTED
1898 add_new_message(etl::move(msg));
1904 : valid(other.is_valid())
1908 add_new_message(other.get());
1912 #if ETL_CPP11_SUPPORTED
1915 : valid(other.is_valid())
1919 add_new_message(etl::move(other.get()));
1927 delete_current_message();
1928 valid = rhs.is_valid();
1931 add_new_message(rhs.get());
1937 #if ETL_CPP11_SUPPORTED
1941 delete_current_message();
1942 valid = rhs.is_valid();
1945 add_new_message(etl::move(rhs.get()));
1955 delete_current_message();
1971 bool is_valid()
const
1985 void delete_current_message()
1991 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
1994 size_t id = pmsg->message_id;
1998 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
1999 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
2000 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
2001 case T4::ID:
static_cast<T4*
>(pmsg)->~T4();
break;
2002 case T5::ID:
static_cast<T5*
>(pmsg)->~T5();
break;
2003 case T6::ID:
static_cast<T6*
>(pmsg)->~T6();
break;
2004 case T7::ID:
static_cast<T7*
>(pmsg)->~T7();
break;
2005 default: assert(
false);
break;
2014 const size_t id = msg.message_id;
2019 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
2020 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
2021 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
2022 case T4::ID: ::new (p) T4(
static_cast<const T4&
>(msg));
break;
2023 case T5::ID: ::new (p) T5(
static_cast<const T5&
>(msg));
break;
2024 case T6::ID: ::new (p) T6(
static_cast<const T6&
>(msg));
break;
2025 case T7::ID: ::new (p) T7(
static_cast<const T7&
>(msg));
break;
2030 #if ETL_CPP11_SUPPORTED
2034 const size_t id = msg.message_id;
2039 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
2040 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
2041 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
2042 case T4::ID: ::new (p) T4(
static_cast<T4&&
>(msg));
break;
2043 case T5::ID: ::new (p) T5(
static_cast<T5&&
>(msg));
break;
2044 case T6::ID: ::new (p) T6(
static_cast<T6&&
>(msg));
break;
2045 case T7::ID: ::new (p) T7(
static_cast<T7&&
>(msg));
break;
2058 template <
typename T1,
typename T2,
typename T3,
typename T4,
2059 typename T5,
typename T6>
2060 class message_packet<T1, T2, T3, T4, T5, T6, void, void, void, void, void, void, void, void, void, void>
2074 add_new_message(msg);
2077 #if ETL_CPP11_SUPPORTED
2082 add_new_message(etl::move(msg));
2088 : valid(other.is_valid())
2092 add_new_message(other.get());
2096 #if ETL_CPP11_SUPPORTED
2099 : valid(other.is_valid())
2103 add_new_message(etl::move(other.get()));
2111 delete_current_message();
2112 valid = rhs.is_valid();
2115 add_new_message(rhs.get());
2121 #if ETL_CPP11_SUPPORTED
2125 delete_current_message();
2126 valid = rhs.is_valid();
2129 add_new_message(etl::move(rhs.get()));
2139 delete_current_message();
2155 bool is_valid()
const
2169 void delete_current_message()
2175 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
2178 size_t id = pmsg->message_id;
2182 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
2183 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
2184 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
2185 case T4::ID:
static_cast<T4*
>(pmsg)->~T4();
break;
2186 case T5::ID:
static_cast<T5*
>(pmsg)->~T5();
break;
2187 case T6::ID:
static_cast<T6*
>(pmsg)->~T6();
break;
2188 default: assert(
false);
break;
2197 const size_t id = msg.message_id;
2202 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
2203 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
2204 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
2205 case T4::ID: ::new (p) T4(
static_cast<const T4&
>(msg));
break;
2206 case T5::ID: ::new (p) T5(
static_cast<const T5&
>(msg));
break;
2207 case T6::ID: ::new (p) T6(
static_cast<const T6&
>(msg));
break;
2212 #if ETL_CPP11_SUPPORTED
2216 const size_t id = msg.message_id;
2221 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
2222 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
2223 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
2224 case T4::ID: ::new (p) T4(
static_cast<T4&&
>(msg));
break;
2225 case T5::ID: ::new (p) T5(
static_cast<T5&&
>(msg));
break;
2226 case T6::ID: ::new (p) T6(
static_cast<T6&&
>(msg));
break;
2239 template <
typename T1,
typename T2,
typename T3,
typename T4,
2241 class message_packet<T1, T2, T3, T4, T5, void, void, void, void, void, void, void, void, void, void, void>
2255 add_new_message(msg);
2258 #if ETL_CPP11_SUPPORTED
2263 add_new_message(etl::move(msg));
2269 : valid(other.is_valid())
2273 add_new_message(other.get());
2277 #if ETL_CPP11_SUPPORTED
2280 : valid(other.is_valid())
2284 add_new_message(etl::move(other.get()));
2292 delete_current_message();
2293 valid = rhs.is_valid();
2296 add_new_message(rhs.get());
2302 #if ETL_CPP11_SUPPORTED
2306 delete_current_message();
2307 valid = rhs.is_valid();
2310 add_new_message(etl::move(rhs.get()));
2320 delete_current_message();
2336 bool is_valid()
const
2350 void delete_current_message()
2356 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
2359 size_t id = pmsg->message_id;
2363 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
2364 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
2365 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
2366 case T4::ID:
static_cast<T4*
>(pmsg)->~T4();
break;
2367 case T5::ID:
static_cast<T5*
>(pmsg)->~T5();
break;
2368 default: assert(
false);
break;
2377 const size_t id = msg.message_id;
2382 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
2383 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
2384 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
2385 case T4::ID: ::new (p) T4(
static_cast<const T4&
>(msg));
break;
2386 case T5::ID: ::new (p) T5(
static_cast<const T5&
>(msg));
break;
2391 #if ETL_CPP11_SUPPORTED
2395 const size_t id = msg.message_id;
2400 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
2401 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
2402 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
2403 case T4::ID: ::new (p) T4(
static_cast<T4&&
>(msg));
break;
2404 case T5::ID: ::new (p) T5(
static_cast<T5&&
>(msg));
break;
2417 template <
typename T1,
typename T2,
typename T3,
typename T4>
2418 class message_packet<T1, T2, T3, T4, void, void, void, void, void, void, void, void, void, void, void, void>
2432 add_new_message(msg);
2435 #if ETL_CPP11_SUPPORTED
2440 add_new_message(etl::move(msg));
2446 : valid(other.is_valid())
2450 add_new_message(other.get());
2454 #if ETL_CPP11_SUPPORTED
2457 : valid(other.is_valid())
2461 add_new_message(etl::move(other.get()));
2469 delete_current_message();
2470 valid = rhs.is_valid();
2473 add_new_message(rhs.get());
2479 #if ETL_CPP11_SUPPORTED
2483 delete_current_message();
2484 valid = rhs.is_valid();
2487 add_new_message(etl::move(rhs.get()));
2497 delete_current_message();
2513 bool is_valid()
const
2527 void delete_current_message()
2533 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
2536 size_t id = pmsg->message_id;
2540 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
2541 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
2542 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
2543 case T4::ID:
static_cast<T4*
>(pmsg)->~T4();
break;
2544 default: assert(
false);
break;
2553 const size_t id = msg.message_id;
2558 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
2559 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
2560 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
2561 case T4::ID: ::new (p) T4(
static_cast<const T4&
>(msg));
break;
2566 #if ETL_CPP11_SUPPORTED
2570 const size_t id = msg.message_id;
2575 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
2576 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
2577 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
2578 case T4::ID: ::new (p) T4(
static_cast<T4&&
>(msg));
break;
2591 template <
typename T1,
typename T2,
typename T3>
2592 class message_packet<T1, T2, T3, void, void, void, void, void, void, void, void, void, void, void, void, void>
2606 add_new_message(msg);
2609 #if ETL_CPP11_SUPPORTED
2614 add_new_message(etl::move(msg));
2620 : valid(other.is_valid())
2624 add_new_message(other.get());
2628 #if ETL_CPP11_SUPPORTED
2631 : valid(other.is_valid())
2635 add_new_message(etl::move(other.get()));
2643 delete_current_message();
2644 valid = rhs.is_valid();
2647 add_new_message(rhs.get());
2653 #if ETL_CPP11_SUPPORTED
2657 delete_current_message();
2658 valid = rhs.is_valid();
2661 add_new_message(etl::move(rhs.get()));
2671 delete_current_message();
2687 bool is_valid()
const
2701 void delete_current_message()
2707 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
2710 size_t id = pmsg->message_id;
2714 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
2715 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
2716 case T3::ID:
static_cast<T3*
>(pmsg)->~T3();
break;
2717 default: assert(
false);
break;
2726 const size_t id = msg.message_id;
2731 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
2732 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
2733 case T3::ID: ::new (p) T3(
static_cast<const T3&
>(msg));
break;
2738 #if ETL_CPP11_SUPPORTED
2742 const size_t id = msg.message_id;
2747 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
2748 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
2749 case T3::ID: ::new (p) T3(
static_cast<T3&&
>(msg));
break;
2762 template <
typename T1,
typename T2>
2763 class message_packet<T1, T2, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
2777 add_new_message(msg);
2780 #if ETL_CPP11_SUPPORTED
2785 add_new_message(etl::move(msg));
2791 : valid(other.is_valid())
2795 add_new_message(other.get());
2799 #if ETL_CPP11_SUPPORTED
2802 : valid(other.is_valid())
2806 add_new_message(etl::move(other.get()));
2814 delete_current_message();
2815 valid = rhs.is_valid();
2818 add_new_message(rhs.get());
2824 #if ETL_CPP11_SUPPORTED
2828 delete_current_message();
2829 valid = rhs.is_valid();
2832 add_new_message(etl::move(rhs.get()));
2842 delete_current_message();
2858 bool is_valid()
const
2872 void delete_current_message()
2878 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
2881 size_t id = pmsg->message_id;
2885 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
2886 case T2::ID:
static_cast<T2*
>(pmsg)->~T2();
break;
2887 default: assert(
false);
break;
2896 const size_t id = msg.message_id;
2901 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
2902 case T2::ID: ::new (p) T2(
static_cast<const T2&
>(msg));
break;
2907 #if ETL_CPP11_SUPPORTED
2911 const size_t id = msg.message_id;
2916 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
2917 case T2::ID: ::new (p) T2(
static_cast<T2&&
>(msg));
break;
2930 template <
typename T1>
2931 class message_packet<T1, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
2945 add_new_message(msg);
2948 #if ETL_CPP11_SUPPORTED
2953 add_new_message(etl::move(msg));
2959 : valid(other.is_valid())
2963 add_new_message(other.get());
2967 #if ETL_CPP11_SUPPORTED
2970 : valid(other.is_valid())
2974 add_new_message(etl::move(other.get()));
2982 delete_current_message();
2983 valid = rhs.is_valid();
2986 add_new_message(rhs.get());
2992 #if ETL_CPP11_SUPPORTED
2996 delete_current_message();
2997 valid = rhs.is_valid();
3000 add_new_message(etl::move(rhs.get()));
3010 delete_current_message();
3026 bool is_valid()
const
3040 void delete_current_message()
3046 #if defined(ETL_MESSAGES_ARE_VIRTUAL) || defined(ETL_POLYMORPHIC_MESSAGES)
3049 size_t id = pmsg->message_id;
3053 case T1::ID:
static_cast<T1*
>(pmsg)->~T1();
break;
3054 default: assert(
false);
break;
3063 const size_t id = msg.message_id;
3068 case T1::ID: ::new (p) T1(
static_cast<const T1&
>(msg));
break;
3073 #if ETL_CPP11_SUPPORTED
3077 const size_t id = msg.message_id;
3082 case T1::ID: ::new (p) T1(
static_cast<T1&&
>(msg));
break;
Definition: message_packet.h:76
#define ETL_ASSERT(b, e)
Definition: error_handler.h:290
Definition: largest.h:362
Definition: absolute.h:37
Definition: alignment.h:118