Removed unnecessary files

Signed-off-by: Lenard Nagy <lenard.nagy@ericsson.com>
diff --git a/demo/Bcm.cc b/demo/Bcm.cc
deleted file mode 100644
index 92d5e2d..0000000
--- a/demo/Bcm.cc
+++ /dev/null
@@ -1,6364 +0,0 @@
-// This C++ source file was generated by the TTCN-3 compiler
-// of the TTCN-3 Test Executor version CRL 113 200/6 R6A
-// for Lénárd Nagy (elnrnag@elx78355y6x) on Thu Oct 24 10:29:40 2019
-
-// Copyright (c) 2000-2019 Ericsson Telecom AB
-
-// Do not edit this file unless you know what you are doing.
-
-/* Including header files */
-
-#include "Bcm.hh"
-
-namespace Bcm {
-
-/* Prototypes of static functions */
-
-static void pre_init_module();
-static void post_init_module();
-
-/* Literal string constants */
-
-static const unsigned char module_checksum[] = { 0x42, 0xd3, 0x31, 0x8a, 0x5d, 0xa7, 0x3a, 0x27, 0x33, 0xab, 0xa8, 0x67, 0x69, 0x35, 0x6f, 0x9e };
-
-/* Global variable definitions */
-
-static INTEGER const_CAN__FRAME__MAX__NUMBER;
-const INTEGER& CAN__FRAME__MAX__NUMBER = const_CAN__FRAME__MAX__NUMBER;
-// No XER for BcmFlagsBitIndex__enum
-const TTCN_Typedescriptor_t BcmFlagsBitIndex__enum_descr_ = { "@Bcm.BcmFlagsBitIndex_enum", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-// No XER for BcmFlags__enum
-const TTCN_Typedescriptor_t BcmFlags__enum_descr_ = { "@Bcm.BcmFlags_enum", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-// No XER for BcmOpcode__enum
-const TTCN_Typedescriptor_t BcmOpcode__enum_descr_ = { "@Bcm.BcmOpcode_enum", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const XERdescriptor_t       Bcm__long_xer_ = { {"Bcm_long>\n", "Bcm_long>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const TTCN_OERdescriptor_t Bcm__long_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
-const TTCN_Typedescriptor_t Bcm__long_descr_ = { "@Bcm.Bcm_long", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Bcm__long_xer_, &INTEGER_json_, &Bcm__long_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const XERdescriptor_t       Bcm__timeval_tv__sec_xer_ = { {"tv_sec>\n", "tv_sec>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const TTCN_OERdescriptor_t Bcm__timeval_tv__sec_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
-const TTCN_Typedescriptor_t Bcm__timeval_tv__sec_descr_ = { "@Bcm.Bcm_timeval.tv_sec", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Bcm__timeval_tv__sec_xer_, &INTEGER_json_, &Bcm__timeval_tv__sec_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const XERdescriptor_t       Bcm__timeval_tv__usec_xer_ = { {"tv_usec>\n", "tv_usec>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const TTCN_OERdescriptor_t Bcm__timeval_tv__usec_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
-const TTCN_Typedescriptor_t Bcm__timeval_tv__usec_descr_ = { "@Bcm.Bcm_timeval.tv_usec", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Bcm__timeval_tv__usec_xer_, &INTEGER_json_, &Bcm__timeval_tv__usec_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-// No XER for Bcm__timeval
-const TTCN_Typedescriptor_t Bcm__timeval_descr_ = { "@Bcm.Bcm_timeval", NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const XERdescriptor_t       SocketCAN__bcm__frame_opcode_xer_ = { {"opcode>\n", "opcode>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const int SocketCAN__bcm__frame_opcode_oer_ext_arr_[0] = {};
-const int SocketCAN__bcm__frame_opcode_oer_p_[0] = {};
-const TTCN_OERdescriptor_t SocketCAN__bcm__frame_opcode_oer_ = { -1, TRUE, 4, FALSE, 0, 0, SocketCAN__bcm__frame_opcode_oer_ext_arr_, 0, SocketCAN__bcm__frame_opcode_oer_p_};
-const TTCN_Typedescriptor_t SocketCAN__bcm__frame_opcode_descr_ = { "@Bcm.SocketCAN_bcm_frame.opcode", &OCTETSTRING_ber_, &General__Types::OCT4_raw_, &OCTETSTRING_text_, &SocketCAN__bcm__frame_opcode_xer_, &OCTETSTRING_json_, &SocketCAN__bcm__frame_opcode_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t SocketCAN__bcm__frame_flags_raw_ = {32,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
-const XERdescriptor_t       SocketCAN__bcm__frame_flags_xer_ = { {"flags>\n", "flags>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const TTCN_OERdescriptor_t SocketCAN__bcm__frame_flags_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
-const TTCN_Typedescriptor_t SocketCAN__bcm__frame_flags_descr_ = { "@Bcm.SocketCAN_bcm_frame.flags", &BITSTRING_ber_, &SocketCAN__bcm__frame_flags_raw_, NULL, &SocketCAN__bcm__frame_flags_xer_, &BITSTRING_json_, &SocketCAN__bcm__frame_flags_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const XERdescriptor_t       SocketCAN__bcm__frame_count_xer_ = { {"count>\n", "count>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const TTCN_OERdescriptor_t SocketCAN__bcm__frame_count_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
-const TTCN_Typedescriptor_t SocketCAN__bcm__frame_count_descr_ = { "@Bcm.SocketCAN_bcm_frame.count", &INTEGER_ber_, &General__Types::LIN4__BO__LAST_raw_, &INTEGER_text_, &SocketCAN__bcm__frame_count_xer_, &INTEGER_json_, &SocketCAN__bcm__frame_count_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const XERdescriptor_t       SocketCAN__bcm__frame_can__id_xer_ = { {"can_id>\n", "can_id>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const int SocketCAN__bcm__frame_can__id_oer_ext_arr_[0] = {};
-const int SocketCAN__bcm__frame_can__id_oer_p_[0] = {};
-const TTCN_OERdescriptor_t SocketCAN__bcm__frame_can__id_oer_ = { -1, TRUE, 4, FALSE, 0, 0, SocketCAN__bcm__frame_can__id_oer_ext_arr_, 0, SocketCAN__bcm__frame_can__id_oer_p_};
-const TTCN_Typedescriptor_t SocketCAN__bcm__frame_can__id_descr_ = { "@Bcm.SocketCAN_bcm_frame.can_id", &OCTETSTRING_ber_, &Can::CAN__id_raw_, &OCTETSTRING_text_, &SocketCAN__bcm__frame_can__id_xer_, &OCTETSTRING_json_, &SocketCAN__bcm__frame_can__id_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-// No XER for SocketCAN__bcm__frame_frames
-const TTCN_Typedescriptor_t SocketCAN__bcm__frame_frames_descr_ = { "@Bcm.SocketCAN_bcm_frame.frames", NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-// No XER for SocketCAN__bcm__frame_frames_can__frame
-const TTCN_Typedescriptor_t SocketCAN__bcm__frame_frames_can__frame_descr_ = { "@Bcm.SocketCAN_bcm_frame.frames.can_frame", NULL, NULL, NULL, NULL, NULL, NULL, &Can::CAN__frame_descr_, TTCN_Typedescriptor_t::DONTCARE };
-// No XER for SocketCAN__bcm__frame_frames_canfd__frame
-const TTCN_Typedescriptor_t SocketCAN__bcm__frame_frames_canfd__frame_descr_ = { "@Bcm.SocketCAN_bcm_frame.frames.canfd_frame", NULL, NULL, NULL, NULL, NULL, NULL, &Can::CANFD__frame_descr_, TTCN_Typedescriptor_t::DONTCARE };
-// No XER for SocketCAN__bcm__frame
-const TTCN_Typedescriptor_t SocketCAN__bcm__frame_descr_ = { "@Bcm.SocketCAN_bcm_frame", NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-TTCN_Module module_object("Bcm", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-
-static const RuntimeVersionChecker ver_checker(  current_runtime_version.requires_major_version_6,
-  current_runtime_version.requires_minor_version_6,
-  current_runtime_version.requires_patch_level_0,  current_runtime_version.requires_runtime_1);
-
-/* Member functions of C++ classes */
-
-BcmFlagsBitIndex__enum::BcmFlagsBitIndex__enum()
-{
-enum_value = UNBOUND_VALUE;
-}
-
-BcmFlagsBitIndex__enum::BcmFlagsBitIndex__enum(int other_value)
-{
-if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Bcm.BcmFlagsBitIndex_enum with invalid numeric value %d.", other_value);
-enum_value = (enum_type)other_value;
-}
-
-BcmFlagsBitIndex__enum::BcmFlagsBitIndex__enum(enum_type other_value)
-{
-enum_value = other_value;
-}
-
-BcmFlagsBitIndex__enum::BcmFlagsBitIndex__enum(const BcmFlagsBitIndex__enum& other_value)
-: Base_Type()
-{
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-enum_value = other_value.enum_value;
-}
-
-BcmFlagsBitIndex__enum& BcmFlagsBitIndex__enum::operator=(int other_value)
-{
-if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Bcm.BcmFlagsBitIndex_enum.", other_value);
-enum_value = (enum_type)other_value;
-return *this;
-}
-
-BcmFlagsBitIndex__enum& BcmFlagsBitIndex__enum::operator=(enum_type other_value)
-{
-enum_value = other_value;
-return *this;
-}
-
-BcmFlagsBitIndex__enum& BcmFlagsBitIndex__enum::operator=(const BcmFlagsBitIndex__enum& other_value)
-{
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-enum_value = other_value.enum_value;
-return *this;
-}
-
-boolean BcmFlagsBitIndex__enum::operator==(enum_type other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-return enum_value == other_value;
-}
-
-boolean BcmFlagsBitIndex__enum::operator==(const BcmFlagsBitIndex__enum& other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-return enum_value == other_value.enum_value;
-}
-
-boolean BcmFlagsBitIndex__enum::operator<(enum_type other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-return enum_value < other_value;
-}
-
-boolean BcmFlagsBitIndex__enum::operator<(const BcmFlagsBitIndex__enum& other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-return enum_value < other_value.enum_value;
-}
-
-boolean BcmFlagsBitIndex__enum::operator>(enum_type other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-return enum_value > other_value;
-}
-
-boolean BcmFlagsBitIndex__enum::operator>(const BcmFlagsBitIndex__enum& other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-return enum_value > other_value.enum_value;
-}
-
-const char *BcmFlagsBitIndex__enum::enum_to_str(enum_type enum_par)
-{
-switch (enum_par) {
-case e__CAN__BCM__SETTIMER__BITINDEX: return "e_CAN_BCM_SETTIMER_BITINDEX";
-case e__CAN__BCM__STARTTIMER__BITINDEX: return "e_CAN_BCM_STARTTIMER_BITINDEX";
-case e__CAN__BCM__TX__COUNTEVT__BITINDEX: return "e_CAN_BCM_TX_COUNTEVT_BITINDEX";
-case e__CAN__BCM__TX__ANNOUNCE__BITINDEX: return "e_CAN_BCM_TX_ANNOUNCE_BITINDEX";
-case e__CAN__BCM__TX__CP__CAN__ID__BITINDEX: return "e_CAN_BCM_TX_CP_CAN_ID_BITINDEX";
-case e__CAN__BCM__RX__FILTER__ID__BITINDEX: return "e_CAN_BCM_RX_FILTER_ID_BITINDEX";
-case e__CAN__BCM__RX__CHECK__DLC__BITINDEX: return "e_CAN_BCM_RX_CHECK_DLC_BITINDEX";
-case e__CAN__BCM__RX__NO__AUTOTIMER__BITINDEX: return "e_CAN_BCM_RX_NO_AUTOTIMER_BITINDEX";
-case e__CAN__BCM__RX__ANNOUNCE__RESUME__BITINDEX: return "e_CAN_BCM_RX_ANNOUNCE_RESUME_BITINDEX";
-case e__CAN__BCM__TX__RESET__MULTI__IDX__BITINDEX: return "e_CAN_BCM_TX_RESET_MULTI_IDX_BITINDEX";
-case e__CAN__BCM__RX__RTR__FRAME__BITINDEX: return "e_CAN_BCM_RX_RTR_FRAME_BITINDEX";
-default: return "<unknown>";
-}
-}
-
-BcmFlagsBitIndex__enum::enum_type BcmFlagsBitIndex__enum::str_to_enum(const char *str_par)
-{
-if (!strcmp(str_par, "e_CAN_BCM_SETTIMER_BITINDEX")) return e__CAN__BCM__SETTIMER__BITINDEX;
-else if (!strcmp(str_par, "e_CAN_BCM_STARTTIMER_BITINDEX")) return e__CAN__BCM__STARTTIMER__BITINDEX;
-else if (!strcmp(str_par, "e_CAN_BCM_TX_COUNTEVT_BITINDEX")) return e__CAN__BCM__TX__COUNTEVT__BITINDEX;
-else if (!strcmp(str_par, "e_CAN_BCM_TX_ANNOUNCE_BITINDEX")) return e__CAN__BCM__TX__ANNOUNCE__BITINDEX;
-else if (!strcmp(str_par, "e_CAN_BCM_TX_CP_CAN_ID_BITINDEX")) return e__CAN__BCM__TX__CP__CAN__ID__BITINDEX;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_FILTER_ID_BITINDEX")) return e__CAN__BCM__RX__FILTER__ID__BITINDEX;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_CHECK_DLC_BITINDEX")) return e__CAN__BCM__RX__CHECK__DLC__BITINDEX;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_NO_AUTOTIMER_BITINDEX")) return e__CAN__BCM__RX__NO__AUTOTIMER__BITINDEX;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_ANNOUNCE_RESUME_BITINDEX")) return e__CAN__BCM__RX__ANNOUNCE__RESUME__BITINDEX;
-else if (!strcmp(str_par, "e_CAN_BCM_TX_RESET_MULTI_IDX_BITINDEX")) return e__CAN__BCM__TX__RESET__MULTI__IDX__BITINDEX;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_RTR_FRAME_BITINDEX")) return e__CAN__BCM__RX__RTR__FRAME__BITINDEX;
-else return UNKNOWN_VALUE;
-}
-
-boolean BcmFlagsBitIndex__enum::is_valid_enum(int int_par)
-{
-switch (int_par) {
-case 0:
-case 1:
-case 2:
-case 3:
-case 4:
-case 5:
-case 6:
-case 7:
-case 8:
-case 9:
-case 10:
-return TRUE;
-default:
-return FALSE;
-}
-}
-
-int BcmFlagsBitIndex__enum::enum2int(enum_type enum_par)
-{
-if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Bcm.BcmFlagsBitIndex_enum.", enum_par==UNBOUND_VALUE?"unbound":"invalid");
-return enum_par;
-}
-
-int BcmFlagsBitIndex__enum::enum2int(const BcmFlagsBitIndex__enum& enum_par)
-{
-if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Bcm.BcmFlagsBitIndex_enum.", enum_par==UNBOUND_VALUE?"unbound":"invalid");
-return enum_par.enum_value;
-}
-
-void BcmFlagsBitIndex__enum::int2enum(int int_val)
-{
-if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Bcm.BcmFlagsBitIndex_enum.", int_val);
-enum_value = (enum_type)int_val;
-}
-
-BcmFlagsBitIndex__enum::operator BcmFlagsBitIndex__enum::enum_type() const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-return enum_value;
-}
-
-void BcmFlagsBitIndex__enum::log() const
-{
-if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value);
-else TTCN_Logger::log_event_unbound();
-}
-
-void BcmFlagsBitIndex__enum::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE, "enumerated value");
-  if (param.get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Bcm.BcmFlagsBitIndex_enum");
-  enum_value = str_to_enum(param.get_enumerated());
-  if (!is_valid_enum(enum_value)) {
-    param.error("Invalid enumerated value for type @Bcm.BcmFlagsBitIndex_enum.");
-  }
-}
-
-void BcmFlagsBitIndex__enum::encode_text(Text_Buf& text_buf) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-text_buf.push_int(enum_value);
-}
-
-void BcmFlagsBitIndex__enum::decode_text(Text_Buf& text_buf)
-{
-enum_value = (enum_type)text_buf.pull_int().get_val();
-if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Bcm.BcmFlagsBitIndex_enum.", enum_value);
-}
-
-void BcmFlagsBitIndex__enum_template::copy_template(const BcmFlagsBitIndex__enum_template& other_value)
-{
-set_selection(other_value);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value = other_value.single_value;
-break;
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new BcmFlagsBitIndex__enum_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-}
-}
-
-BcmFlagsBitIndex__enum_template::BcmFlagsBitIndex__enum_template()
-{
-}
-
-BcmFlagsBitIndex__enum_template::BcmFlagsBitIndex__enum_template(template_sel other_value)
- : Base_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-BcmFlagsBitIndex__enum_template::BcmFlagsBitIndex__enum_template(int other_value)
- : Base_Template(SPECIFIC_VALUE)
-{
-if (!BcmFlagsBitIndex__enum::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Bcm.BcmFlagsBitIndex_enum with unknown numeric value %d.", other_value);
-single_value = (BcmFlagsBitIndex__enum::enum_type)other_value;
-}
-
-BcmFlagsBitIndex__enum_template::BcmFlagsBitIndex__enum_template(BcmFlagsBitIndex__enum::enum_type other_value)
- : Base_Template(SPECIFIC_VALUE)
-{
-single_value = other_value;
-}
-
-BcmFlagsBitIndex__enum_template::BcmFlagsBitIndex__enum_template(const BcmFlagsBitIndex__enum& other_value)
- : Base_Template(SPECIFIC_VALUE)
-{
-if (other_value.enum_value == BcmFlagsBitIndex__enum::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-single_value = other_value.enum_value;
-}
-
-BcmFlagsBitIndex__enum_template::BcmFlagsBitIndex__enum_template(const OPTIONAL<BcmFlagsBitIndex__enum>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-set_selection(SPECIFIC_VALUE);
-single_value = (BcmFlagsBitIndex__enum::enum_type)(const BcmFlagsBitIndex__enum&)other_value;
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of enumerated type @Bcm.BcmFlagsBitIndex_enum from an unbound optional field.");
-}
-}
-
-BcmFlagsBitIndex__enum_template::BcmFlagsBitIndex__enum_template(const BcmFlagsBitIndex__enum_template& other_value)
- : Base_Template()
-{
-copy_template(other_value);
-}
-
-BcmFlagsBitIndex__enum_template::~BcmFlagsBitIndex__enum_template()
-{
-clean_up();
-}
-
-boolean BcmFlagsBitIndex__enum_template::is_bound() const
-{
-if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE;
-return TRUE;
-}
-
-boolean BcmFlagsBitIndex__enum_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-return single_value != BcmFlagsBitIndex__enum::UNBOUND_VALUE;
-}
-
-void BcmFlagsBitIndex__enum_template::clean_up()
-{
-if (template_selection == VALUE_LIST || template_selection == COMPLEMENTED_LIST) delete [] value_list.list_value;
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-BcmFlagsBitIndex__enum_template& BcmFlagsBitIndex__enum_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-BcmFlagsBitIndex__enum_template& BcmFlagsBitIndex__enum_template::operator=(int other_value)
-{
-if (!BcmFlagsBitIndex__enum::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Bcm.BcmFlagsBitIndex_enum.", other_value);
-clean_up();
-set_selection(SPECIFIC_VALUE);
-single_value = (BcmFlagsBitIndex__enum::enum_type)other_value;
-return *this;
-}
-
-BcmFlagsBitIndex__enum_template& BcmFlagsBitIndex__enum_template::operator=(BcmFlagsBitIndex__enum::enum_type other_value)
-{
-clean_up();
-set_selection(SPECIFIC_VALUE);
-single_value = other_value;
-return *this;
-}
-
-BcmFlagsBitIndex__enum_template& BcmFlagsBitIndex__enum_template::operator=(const BcmFlagsBitIndex__enum& other_value)
-{
-if (other_value.enum_value == BcmFlagsBitIndex__enum::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Bcm.BcmFlagsBitIndex_enum to a template.");
-clean_up();
-set_selection(SPECIFIC_VALUE);
-single_value = other_value.enum_value;
-return *this;
-}
-
-BcmFlagsBitIndex__enum_template& BcmFlagsBitIndex__enum_template::operator=(const OPTIONAL<BcmFlagsBitIndex__enum>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-set_selection(SPECIFIC_VALUE);
-single_value = (BcmFlagsBitIndex__enum::enum_type)(const BcmFlagsBitIndex__enum&)other_value;
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-}
-return *this;
-}
-
-BcmFlagsBitIndex__enum_template& BcmFlagsBitIndex__enum_template::operator=(const BcmFlagsBitIndex__enum_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-boolean BcmFlagsBitIndex__enum_template::match(BcmFlagsBitIndex__enum::enum_type other_value, boolean) const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-return single_value == other_value;
-case OMIT_VALUE:
-return FALSE;
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-}
-return FALSE;
-}
-
-boolean BcmFlagsBitIndex__enum_template::match(const BcmFlagsBitIndex__enum& other_value, boolean) const
-{
-if (other_value.enum_value == BcmFlagsBitIndex__enum::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Bcm.BcmFlagsBitIndex_enum with an unbound value.");
-return match(other_value.enum_value);
-}
-
-BcmFlagsBitIndex__enum::enum_type BcmFlagsBitIndex__enum_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-return single_value;
-}
-
-void BcmFlagsBitIndex__enum_template::set_type(template_sel template_type, unsigned int list_length)
-{
-if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST) TTCN_error("Setting an invalid list type for a template of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-clean_up();
-set_selection(template_type);
-value_list.n_values = list_length;
-value_list.list_value = new BcmFlagsBitIndex__enum_template[list_length];
-}
-
-BcmFlagsBitIndex__enum_template& BcmFlagsBitIndex__enum_template::list_item(unsigned int list_index)
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Accessing a list element in a non-list template of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-return value_list.list_value[list_index];
-}
-
-void BcmFlagsBitIndex__enum_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-TTCN_Logger::log_event_enum(BcmFlagsBitIndex__enum::enum_to_str(single_value), single_value);
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) {
-if (elem_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[elem_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_ifpresent();
-}
-
-void BcmFlagsBitIndex__enum_template::log_match(const BcmFlagsBitIndex__enum& match_value, boolean) const
-{
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-
-void BcmFlagsBitIndex__enum_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-text_buf.push_int(single_value);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++)
-value_list.list_value[elem_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-}
-}
-
-void BcmFlagsBitIndex__enum_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value = (BcmFlagsBitIndex__enum::enum_type)text_buf.pull_int().get_val();
-if (!BcmFlagsBitIndex__enum::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Bcm.BcmFlagsBitIndex_enum.", single_value);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new BcmFlagsBitIndex__enum_template[value_list.n_values];
-for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++)
-value_list.list_value[elem_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Bcm.BcmFlagsBitIndex_enum.");
-}
-}
-
-boolean BcmFlagsBitIndex__enum_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean BcmFlagsBitIndex__enum_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int i=0; i<value_list.n_values; i++)
-if (value_list.list_value[i].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-void BcmFlagsBitIndex__enum_template::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_TEMPLATE, "enumerated template");
-  Module_Param_Ptr m_p = &param;
-  switch (m_p->get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    BcmFlagsBitIndex__enum_template new_temp;
-    new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, m_p->get_size());
-    for (size_t p_i=0; p_i<m_p->get_size(); p_i++) {
-      new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i));
-    }
-    *this = new_temp;
-    break; }
-  case Module_Param::MP_Enumerated: {
-    BcmFlagsBitIndex__enum::enum_type enum_val = BcmFlagsBitIndex__enum::str_to_enum(m_p->get_enumerated());
-    if (!BcmFlagsBitIndex__enum::is_valid_enum(enum_val)) {
-      param.error("Invalid enumerated value for type @Bcm.BcmFlagsBitIndex_enum.");
-    }
-    *this = enum_val;
-  } break;
-  default:
-    param.type_error("enumerated template", "@Bcm.BcmFlagsBitIndex_enum");
-  }
-  is_ifpresent = param.get_ifpresent();
-}
-
-void BcmFlagsBitIndex__enum_template::check_restriction(template_res t_res, const char* t_name,
-boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_VALUE:
-if (!is_ifpresent && template_selection==SPECIFIC_VALUE) return;
-break;
-case TR_OMIT:
-if (!is_ifpresent && (template_selection==OMIT_VALUE || template_selection==SPECIFIC_VALUE)) return;
-break;
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@Bcm.BcmFlagsBitIndex_enum");
-}
-
-BcmFlags__enum::BcmFlags__enum()
-{
-enum_value = UNBOUND_VALUE;
-}
-
-BcmFlags__enum::BcmFlags__enum(int other_value)
-{
-if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Bcm.BcmFlags_enum with invalid numeric value %d.", other_value);
-enum_value = (enum_type)other_value;
-}
-
-BcmFlags__enum::BcmFlags__enum(enum_type other_value)
-{
-enum_value = other_value;
-}
-
-BcmFlags__enum::BcmFlags__enum(const BcmFlags__enum& other_value)
-: Base_Type()
-{
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Bcm.BcmFlags_enum.");
-enum_value = other_value.enum_value;
-}
-
-BcmFlags__enum& BcmFlags__enum::operator=(int other_value)
-{
-if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Bcm.BcmFlags_enum.", other_value);
-enum_value = (enum_type)other_value;
-return *this;
-}
-
-BcmFlags__enum& BcmFlags__enum::operator=(enum_type other_value)
-{
-enum_value = other_value;
-return *this;
-}
-
-BcmFlags__enum& BcmFlags__enum::operator=(const BcmFlags__enum& other_value)
-{
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Bcm.BcmFlags_enum.");
-enum_value = other_value.enum_value;
-return *this;
-}
-
-boolean BcmFlags__enum::operator==(enum_type other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmFlags_enum.");
-return enum_value == other_value;
-}
-
-boolean BcmFlags__enum::operator==(const BcmFlags__enum& other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmFlags_enum.");
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Bcm.BcmFlags_enum.");
-return enum_value == other_value.enum_value;
-}
-
-boolean BcmFlags__enum::operator<(enum_type other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmFlags_enum.");
-return enum_value < other_value;
-}
-
-boolean BcmFlags__enum::operator<(const BcmFlags__enum& other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmFlags_enum.");
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Bcm.BcmFlags_enum.");
-return enum_value < other_value.enum_value;
-}
-
-boolean BcmFlags__enum::operator>(enum_type other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmFlags_enum.");
-return enum_value > other_value;
-}
-
-boolean BcmFlags__enum::operator>(const BcmFlags__enum& other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmFlags_enum.");
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Bcm.BcmFlags_enum.");
-return enum_value > other_value.enum_value;
-}
-
-const char *BcmFlags__enum::enum_to_str(enum_type enum_par)
-{
-switch (enum_par) {
-case e__CAN__BCM__SETTIMER: return "e_CAN_BCM_SETTIMER";
-case e__CAN__BCM__STARTTIMER: return "e_CAN_BCM_STARTTIMER";
-case e__CAN__BCM__TX__COUNTEVT: return "e_CAN_BCM_TX_COUNTEVT";
-case e__CAN__BCM__TX__ANNOUNCE: return "e_CAN_BCM_TX_ANNOUNCE";
-case e__CAN__BCM__TX__CP__CAN__ID: return "e_CAN_BCM_TX_CP_CAN_ID";
-case e__CAN__BCM__RX__FILTER__ID: return "e_CAN_BCM_RX_FILTER_ID";
-case e__CAN__BCM__RX__CHECK__DLC: return "e_CAN_BCM_RX_CHECK_DLC";
-case e__CAN__BCM__RX__NO__AUTOTIMER: return "e_CAN_BCM_RX_NO_AUTOTIMER";
-case e__CAN__BCM__RX__ANNOUNCE__RESUME: return "e_CAN_BCM_RX_ANNOUNCE_RESUME";
-case e__CAN__BCM__TX__RESET__MULTI__IDX: return "e_CAN_BCM_TX_RESET_MULTI_IDX";
-case e__CAN__BCM__RX__RTR__FRAME: return "e_CAN_BCM_RX_RTR_FRAME";
-default: return "<unknown>";
-}
-}
-
-BcmFlags__enum::enum_type BcmFlags__enum::str_to_enum(const char *str_par)
-{
-if (!strcmp(str_par, "e_CAN_BCM_SETTIMER")) return e__CAN__BCM__SETTIMER;
-else if (!strcmp(str_par, "e_CAN_BCM_STARTTIMER")) return e__CAN__BCM__STARTTIMER;
-else if (!strcmp(str_par, "e_CAN_BCM_TX_COUNTEVT")) return e__CAN__BCM__TX__COUNTEVT;
-else if (!strcmp(str_par, "e_CAN_BCM_TX_ANNOUNCE")) return e__CAN__BCM__TX__ANNOUNCE;
-else if (!strcmp(str_par, "e_CAN_BCM_TX_CP_CAN_ID")) return e__CAN__BCM__TX__CP__CAN__ID;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_FILTER_ID")) return e__CAN__BCM__RX__FILTER__ID;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_CHECK_DLC")) return e__CAN__BCM__RX__CHECK__DLC;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_NO_AUTOTIMER")) return e__CAN__BCM__RX__NO__AUTOTIMER;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_ANNOUNCE_RESUME")) return e__CAN__BCM__RX__ANNOUNCE__RESUME;
-else if (!strcmp(str_par, "e_CAN_BCM_TX_RESET_MULTI_IDX")) return e__CAN__BCM__TX__RESET__MULTI__IDX;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_RTR_FRAME")) return e__CAN__BCM__RX__RTR__FRAME;
-else return UNKNOWN_VALUE;
-}
-
-boolean BcmFlags__enum::is_valid_enum(int int_par)
-{
-switch (int_par) {
-case 1:
-case 2:
-case 4:
-case 8:
-case 16:
-case 32:
-case 64:
-case 128:
-case 256:
-case 512:
-case 1024:
-return TRUE;
-default:
-return FALSE;
-}
-}
-
-int BcmFlags__enum::enum2int(enum_type enum_par)
-{
-if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Bcm.BcmFlags_enum.", enum_par==UNBOUND_VALUE?"unbound":"invalid");
-return enum_par;
-}
-
-int BcmFlags__enum::enum2int(const BcmFlags__enum& enum_par)
-{
-if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Bcm.BcmFlags_enum.", enum_par==UNBOUND_VALUE?"unbound":"invalid");
-return enum_par.enum_value;
-}
-
-void BcmFlags__enum::int2enum(int int_val)
-{
-if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Bcm.BcmFlags_enum.", int_val);
-enum_value = (enum_type)int_val;
-}
-
-BcmFlags__enum::operator BcmFlags__enum::enum_type() const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Bcm.BcmFlags_enum.");
-return enum_value;
-}
-
-void BcmFlags__enum::log() const
-{
-if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value);
-else TTCN_Logger::log_event_unbound();
-}
-
-void BcmFlags__enum::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE, "enumerated value");
-  if (param.get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Bcm.BcmFlags_enum");
-  enum_value = str_to_enum(param.get_enumerated());
-  if (!is_valid_enum(enum_value)) {
-    param.error("Invalid enumerated value for type @Bcm.BcmFlags_enum.");
-  }
-}
-
-void BcmFlags__enum::encode_text(Text_Buf& text_buf) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Bcm.BcmFlags_enum.");
-text_buf.push_int(enum_value);
-}
-
-void BcmFlags__enum::decode_text(Text_Buf& text_buf)
-{
-enum_value = (enum_type)text_buf.pull_int().get_val();
-if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Bcm.BcmFlags_enum.", enum_value);
-}
-
-void BcmFlags__enum_template::copy_template(const BcmFlags__enum_template& other_value)
-{
-set_selection(other_value);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value = other_value.single_value;
-break;
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new BcmFlags__enum_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Bcm.BcmFlags_enum.");
-}
-}
-
-BcmFlags__enum_template::BcmFlags__enum_template()
-{
-}
-
-BcmFlags__enum_template::BcmFlags__enum_template(template_sel other_value)
- : Base_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-BcmFlags__enum_template::BcmFlags__enum_template(int other_value)
- : Base_Template(SPECIFIC_VALUE)
-{
-if (!BcmFlags__enum::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Bcm.BcmFlags_enum with unknown numeric value %d.", other_value);
-single_value = (BcmFlags__enum::enum_type)other_value;
-}
-
-BcmFlags__enum_template::BcmFlags__enum_template(BcmFlags__enum::enum_type other_value)
- : Base_Template(SPECIFIC_VALUE)
-{
-single_value = other_value;
-}
-
-BcmFlags__enum_template::BcmFlags__enum_template(const BcmFlags__enum& other_value)
- : Base_Template(SPECIFIC_VALUE)
-{
-if (other_value.enum_value == BcmFlags__enum::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Bcm.BcmFlags_enum.");
-single_value = other_value.enum_value;
-}
-
-BcmFlags__enum_template::BcmFlags__enum_template(const OPTIONAL<BcmFlags__enum>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-set_selection(SPECIFIC_VALUE);
-single_value = (BcmFlags__enum::enum_type)(const BcmFlags__enum&)other_value;
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of enumerated type @Bcm.BcmFlags_enum from an unbound optional field.");
-}
-}
-
-BcmFlags__enum_template::BcmFlags__enum_template(const BcmFlags__enum_template& other_value)
- : Base_Template()
-{
-copy_template(other_value);
-}
-
-BcmFlags__enum_template::~BcmFlags__enum_template()
-{
-clean_up();
-}
-
-boolean BcmFlags__enum_template::is_bound() const
-{
-if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE;
-return TRUE;
-}
-
-boolean BcmFlags__enum_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-return single_value != BcmFlags__enum::UNBOUND_VALUE;
-}
-
-void BcmFlags__enum_template::clean_up()
-{
-if (template_selection == VALUE_LIST || template_selection == COMPLEMENTED_LIST) delete [] value_list.list_value;
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-BcmFlags__enum_template& BcmFlags__enum_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-BcmFlags__enum_template& BcmFlags__enum_template::operator=(int other_value)
-{
-if (!BcmFlags__enum::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Bcm.BcmFlags_enum.", other_value);
-clean_up();
-set_selection(SPECIFIC_VALUE);
-single_value = (BcmFlags__enum::enum_type)other_value;
-return *this;
-}
-
-BcmFlags__enum_template& BcmFlags__enum_template::operator=(BcmFlags__enum::enum_type other_value)
-{
-clean_up();
-set_selection(SPECIFIC_VALUE);
-single_value = other_value;
-return *this;
-}
-
-BcmFlags__enum_template& BcmFlags__enum_template::operator=(const BcmFlags__enum& other_value)
-{
-if (other_value.enum_value == BcmFlags__enum::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Bcm.BcmFlags_enum to a template.");
-clean_up();
-set_selection(SPECIFIC_VALUE);
-single_value = other_value.enum_value;
-return *this;
-}
-
-BcmFlags__enum_template& BcmFlags__enum_template::operator=(const OPTIONAL<BcmFlags__enum>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-set_selection(SPECIFIC_VALUE);
-single_value = (BcmFlags__enum::enum_type)(const BcmFlags__enum&)other_value;
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Bcm.BcmFlags_enum.");
-}
-return *this;
-}
-
-BcmFlags__enum_template& BcmFlags__enum_template::operator=(const BcmFlags__enum_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-boolean BcmFlags__enum_template::match(BcmFlags__enum::enum_type other_value, boolean) const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-return single_value == other_value;
-case OMIT_VALUE:
-return FALSE;
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Bcm.BcmFlags_enum.");
-}
-return FALSE;
-}
-
-boolean BcmFlags__enum_template::match(const BcmFlags__enum& other_value, boolean) const
-{
-if (other_value.enum_value == BcmFlags__enum::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Bcm.BcmFlags_enum with an unbound value.");
-return match(other_value.enum_value);
-}
-
-BcmFlags__enum::enum_type BcmFlags__enum_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Bcm.BcmFlags_enum.");
-return single_value;
-}
-
-void BcmFlags__enum_template::set_type(template_sel template_type, unsigned int list_length)
-{
-if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST) TTCN_error("Setting an invalid list type for a template of enumerated type @Bcm.BcmFlags_enum.");
-clean_up();
-set_selection(template_type);
-value_list.n_values = list_length;
-value_list.list_value = new BcmFlags__enum_template[list_length];
-}
-
-BcmFlags__enum_template& BcmFlags__enum_template::list_item(unsigned int list_index)
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Accessing a list element in a non-list template of enumerated type @Bcm.BcmFlags_enum.");
-if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Bcm.BcmFlags_enum.");
-return value_list.list_value[list_index];
-}
-
-void BcmFlags__enum_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-TTCN_Logger::log_event_enum(BcmFlags__enum::enum_to_str(single_value), single_value);
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) {
-if (elem_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[elem_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_ifpresent();
-}
-
-void BcmFlags__enum_template::log_match(const BcmFlags__enum& match_value, boolean) const
-{
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-
-void BcmFlags__enum_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-text_buf.push_int(single_value);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++)
-value_list.list_value[elem_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Bcm.BcmFlags_enum.");
-}
-}
-
-void BcmFlags__enum_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value = (BcmFlags__enum::enum_type)text_buf.pull_int().get_val();
-if (!BcmFlags__enum::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Bcm.BcmFlags_enum.", single_value);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new BcmFlags__enum_template[value_list.n_values];
-for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++)
-value_list.list_value[elem_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Bcm.BcmFlags_enum.");
-}
-}
-
-boolean BcmFlags__enum_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean BcmFlags__enum_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int i=0; i<value_list.n_values; i++)
-if (value_list.list_value[i].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-void BcmFlags__enum_template::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_TEMPLATE, "enumerated template");
-  Module_Param_Ptr m_p = &param;
-  switch (m_p->get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    BcmFlags__enum_template new_temp;
-    new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, m_p->get_size());
-    for (size_t p_i=0; p_i<m_p->get_size(); p_i++) {
-      new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i));
-    }
-    *this = new_temp;
-    break; }
-  case Module_Param::MP_Enumerated: {
-    BcmFlags__enum::enum_type enum_val = BcmFlags__enum::str_to_enum(m_p->get_enumerated());
-    if (!BcmFlags__enum::is_valid_enum(enum_val)) {
-      param.error("Invalid enumerated value for type @Bcm.BcmFlags_enum.");
-    }
-    *this = enum_val;
-  } break;
-  default:
-    param.type_error("enumerated template", "@Bcm.BcmFlags_enum");
-  }
-  is_ifpresent = param.get_ifpresent();
-}
-
-void BcmFlags__enum_template::check_restriction(template_res t_res, const char* t_name,
-boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_VALUE:
-if (!is_ifpresent && template_selection==SPECIFIC_VALUE) return;
-break;
-case TR_OMIT:
-if (!is_ifpresent && (template_selection==OMIT_VALUE || template_selection==SPECIFIC_VALUE)) return;
-break;
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@Bcm.BcmFlags_enum");
-}
-
-BcmOpcode__enum::BcmOpcode__enum()
-{
-enum_value = UNBOUND_VALUE;
-}
-
-BcmOpcode__enum::BcmOpcode__enum(int other_value)
-{
-if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Bcm.BcmOpcode_enum with invalid numeric value %d.", other_value);
-enum_value = (enum_type)other_value;
-}
-
-BcmOpcode__enum::BcmOpcode__enum(enum_type other_value)
-{
-enum_value = other_value;
-}
-
-BcmOpcode__enum::BcmOpcode__enum(const BcmOpcode__enum& other_value)
-: Base_Type()
-{
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Bcm.BcmOpcode_enum.");
-enum_value = other_value.enum_value;
-}
-
-BcmOpcode__enum& BcmOpcode__enum::operator=(int other_value)
-{
-if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Bcm.BcmOpcode_enum.", other_value);
-enum_value = (enum_type)other_value;
-return *this;
-}
-
-BcmOpcode__enum& BcmOpcode__enum::operator=(enum_type other_value)
-{
-enum_value = other_value;
-return *this;
-}
-
-BcmOpcode__enum& BcmOpcode__enum::operator=(const BcmOpcode__enum& other_value)
-{
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Bcm.BcmOpcode_enum.");
-enum_value = other_value.enum_value;
-return *this;
-}
-
-boolean BcmOpcode__enum::operator==(enum_type other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmOpcode_enum.");
-return enum_value == other_value;
-}
-
-boolean BcmOpcode__enum::operator==(const BcmOpcode__enum& other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmOpcode_enum.");
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Bcm.BcmOpcode_enum.");
-return enum_value == other_value.enum_value;
-}
-
-boolean BcmOpcode__enum::operator<(enum_type other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmOpcode_enum.");
-return enum_value < other_value;
-}
-
-boolean BcmOpcode__enum::operator<(const BcmOpcode__enum& other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmOpcode_enum.");
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Bcm.BcmOpcode_enum.");
-return enum_value < other_value.enum_value;
-}
-
-boolean BcmOpcode__enum::operator>(enum_type other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmOpcode_enum.");
-return enum_value > other_value;
-}
-
-boolean BcmOpcode__enum::operator>(const BcmOpcode__enum& other_value) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Bcm.BcmOpcode_enum.");
-if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Bcm.BcmOpcode_enum.");
-return enum_value > other_value.enum_value;
-}
-
-const char *BcmOpcode__enum::enum_to_str(enum_type enum_par)
-{
-switch (enum_par) {
-case e__CAN__BCM__TX__SETUP: return "e_CAN_BCM_TX_SETUP";
-case e__CAN__BCM__TX__DELETE: return "e_CAN_BCM_TX_DELETE";
-case e__CAN__BCM__TX__READ: return "e_CAN_BCM_TX_READ";
-case e__CAN__BCM__TX__SEND: return "e_CAN_BCM_TX_SEND";
-case e__CAN__BCM__RX__SETUP: return "e_CAN_BCM_RX_SETUP";
-case e__CAN__BCM__RX__DELETE: return "e_CAN_BCM_RX_DELETE";
-case e__CAN__BCM__RX__READ: return "e_CAN_BCM_RX_READ";
-case e__CAN__BCM__TX__STATUS: return "e_CAN_BCM_TX_STATUS";
-case e__CAN__BCM__TX__EXPIRED: return "e_CAN_BCM_TX_EXPIRED";
-case e__CAN__BCM__RX__STATUS: return "e_CAN_BCM_RX_STATUS";
-case e__CAN__BCM__RX__TIMEOUT: return "e_CAN_BCM_RX_TIMEOUT";
-case e__CAN__BCM__RX__CHANGED: return "e_CAN_BCM_RX_CHANGED";
-default: return "<unknown>";
-}
-}
-
-BcmOpcode__enum::enum_type BcmOpcode__enum::str_to_enum(const char *str_par)
-{
-if (!strcmp(str_par, "e_CAN_BCM_TX_SETUP")) return e__CAN__BCM__TX__SETUP;
-else if (!strcmp(str_par, "e_CAN_BCM_TX_DELETE")) return e__CAN__BCM__TX__DELETE;
-else if (!strcmp(str_par, "e_CAN_BCM_TX_READ")) return e__CAN__BCM__TX__READ;
-else if (!strcmp(str_par, "e_CAN_BCM_TX_SEND")) return e__CAN__BCM__TX__SEND;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_SETUP")) return e__CAN__BCM__RX__SETUP;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_DELETE")) return e__CAN__BCM__RX__DELETE;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_READ")) return e__CAN__BCM__RX__READ;
-else if (!strcmp(str_par, "e_CAN_BCM_TX_STATUS")) return e__CAN__BCM__TX__STATUS;
-else if (!strcmp(str_par, "e_CAN_BCM_TX_EXPIRED")) return e__CAN__BCM__TX__EXPIRED;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_STATUS")) return e__CAN__BCM__RX__STATUS;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_TIMEOUT")) return e__CAN__BCM__RX__TIMEOUT;
-else if (!strcmp(str_par, "e_CAN_BCM_RX_CHANGED")) return e__CAN__BCM__RX__CHANGED;
-else return UNKNOWN_VALUE;
-}
-
-boolean BcmOpcode__enum::is_valid_enum(int int_par)
-{
-switch (int_par) {
-case 1:
-case 2:
-case 3:
-case 4:
-case 5:
-case 6:
-case 7:
-case 8:
-case 9:
-case 10:
-case 11:
-case 12:
-return TRUE;
-default:
-return FALSE;
-}
-}
-
-int BcmOpcode__enum::enum2int(enum_type enum_par)
-{
-if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Bcm.BcmOpcode_enum.", enum_par==UNBOUND_VALUE?"unbound":"invalid");
-return enum_par;
-}
-
-int BcmOpcode__enum::enum2int(const BcmOpcode__enum& enum_par)
-{
-if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Bcm.BcmOpcode_enum.", enum_par==UNBOUND_VALUE?"unbound":"invalid");
-return enum_par.enum_value;
-}
-
-void BcmOpcode__enum::int2enum(int int_val)
-{
-if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Bcm.BcmOpcode_enum.", int_val);
-enum_value = (enum_type)int_val;
-}
-
-BcmOpcode__enum::operator BcmOpcode__enum::enum_type() const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Bcm.BcmOpcode_enum.");
-return enum_value;
-}
-
-void BcmOpcode__enum::log() const
-{
-if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value);
-else TTCN_Logger::log_event_unbound();
-}
-
-void BcmOpcode__enum::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE, "enumerated value");
-  if (param.get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Bcm.BcmOpcode_enum");
-  enum_value = str_to_enum(param.get_enumerated());
-  if (!is_valid_enum(enum_value)) {
-    param.error("Invalid enumerated value for type @Bcm.BcmOpcode_enum.");
-  }
-}
-
-void BcmOpcode__enum::encode_text(Text_Buf& text_buf) const
-{
-if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Bcm.BcmOpcode_enum.");
-text_buf.push_int(enum_value);
-}
-
-void BcmOpcode__enum::decode_text(Text_Buf& text_buf)
-{
-enum_value = (enum_type)text_buf.pull_int().get_val();
-if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Bcm.BcmOpcode_enum.", enum_value);
-}
-
-void BcmOpcode__enum_template::copy_template(const BcmOpcode__enum_template& other_value)
-{
-set_selection(other_value);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value = other_value.single_value;
-break;
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new BcmOpcode__enum_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Bcm.BcmOpcode_enum.");
-}
-}
-
-BcmOpcode__enum_template::BcmOpcode__enum_template()
-{
-}
-
-BcmOpcode__enum_template::BcmOpcode__enum_template(template_sel other_value)
- : Base_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-BcmOpcode__enum_template::BcmOpcode__enum_template(int other_value)
- : Base_Template(SPECIFIC_VALUE)
-{
-if (!BcmOpcode__enum::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Bcm.BcmOpcode_enum with unknown numeric value %d.", other_value);
-single_value = (BcmOpcode__enum::enum_type)other_value;
-}
-
-BcmOpcode__enum_template::BcmOpcode__enum_template(BcmOpcode__enum::enum_type other_value)
- : Base_Template(SPECIFIC_VALUE)
-{
-single_value = other_value;
-}
-
-BcmOpcode__enum_template::BcmOpcode__enum_template(const BcmOpcode__enum& other_value)
- : Base_Template(SPECIFIC_VALUE)
-{
-if (other_value.enum_value == BcmOpcode__enum::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Bcm.BcmOpcode_enum.");
-single_value = other_value.enum_value;
-}
-
-BcmOpcode__enum_template::BcmOpcode__enum_template(const OPTIONAL<BcmOpcode__enum>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-set_selection(SPECIFIC_VALUE);
-single_value = (BcmOpcode__enum::enum_type)(const BcmOpcode__enum&)other_value;
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of enumerated type @Bcm.BcmOpcode_enum from an unbound optional field.");
-}
-}
-
-BcmOpcode__enum_template::BcmOpcode__enum_template(const BcmOpcode__enum_template& other_value)
- : Base_Template()
-{
-copy_template(other_value);
-}
-
-BcmOpcode__enum_template::~BcmOpcode__enum_template()
-{
-clean_up();
-}
-
-boolean BcmOpcode__enum_template::is_bound() const
-{
-if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE;
-return TRUE;
-}
-
-boolean BcmOpcode__enum_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-return single_value != BcmOpcode__enum::UNBOUND_VALUE;
-}
-
-void BcmOpcode__enum_template::clean_up()
-{
-if (template_selection == VALUE_LIST || template_selection == COMPLEMENTED_LIST) delete [] value_list.list_value;
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-BcmOpcode__enum_template& BcmOpcode__enum_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-BcmOpcode__enum_template& BcmOpcode__enum_template::operator=(int other_value)
-{
-if (!BcmOpcode__enum::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Bcm.BcmOpcode_enum.", other_value);
-clean_up();
-set_selection(SPECIFIC_VALUE);
-single_value = (BcmOpcode__enum::enum_type)other_value;
-return *this;
-}
-
-BcmOpcode__enum_template& BcmOpcode__enum_template::operator=(BcmOpcode__enum::enum_type other_value)
-{
-clean_up();
-set_selection(SPECIFIC_VALUE);
-single_value = other_value;
-return *this;
-}
-
-BcmOpcode__enum_template& BcmOpcode__enum_template::operator=(const BcmOpcode__enum& other_value)
-{
-if (other_value.enum_value == BcmOpcode__enum::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Bcm.BcmOpcode_enum to a template.");
-clean_up();
-set_selection(SPECIFIC_VALUE);
-single_value = other_value.enum_value;
-return *this;
-}
-
-BcmOpcode__enum_template& BcmOpcode__enum_template::operator=(const OPTIONAL<BcmOpcode__enum>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-set_selection(SPECIFIC_VALUE);
-single_value = (BcmOpcode__enum::enum_type)(const BcmOpcode__enum&)other_value;
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Bcm.BcmOpcode_enum.");
-}
-return *this;
-}
-
-BcmOpcode__enum_template& BcmOpcode__enum_template::operator=(const BcmOpcode__enum_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-boolean BcmOpcode__enum_template::match(BcmOpcode__enum::enum_type other_value, boolean) const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-return single_value == other_value;
-case OMIT_VALUE:
-return FALSE;
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Bcm.BcmOpcode_enum.");
-}
-return FALSE;
-}
-
-boolean BcmOpcode__enum_template::match(const BcmOpcode__enum& other_value, boolean) const
-{
-if (other_value.enum_value == BcmOpcode__enum::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Bcm.BcmOpcode_enum with an unbound value.");
-return match(other_value.enum_value);
-}
-
-BcmOpcode__enum::enum_type BcmOpcode__enum_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Bcm.BcmOpcode_enum.");
-return single_value;
-}
-
-void BcmOpcode__enum_template::set_type(template_sel template_type, unsigned int list_length)
-{
-if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST) TTCN_error("Setting an invalid list type for a template of enumerated type @Bcm.BcmOpcode_enum.");
-clean_up();
-set_selection(template_type);
-value_list.n_values = list_length;
-value_list.list_value = new BcmOpcode__enum_template[list_length];
-}
-
-BcmOpcode__enum_template& BcmOpcode__enum_template::list_item(unsigned int list_index)
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Accessing a list element in a non-list template of enumerated type @Bcm.BcmOpcode_enum.");
-if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Bcm.BcmOpcode_enum.");
-return value_list.list_value[list_index];
-}
-
-void BcmOpcode__enum_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-TTCN_Logger::log_event_enum(BcmOpcode__enum::enum_to_str(single_value), single_value);
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) {
-if (elem_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[elem_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_ifpresent();
-}
-
-void BcmOpcode__enum_template::log_match(const BcmOpcode__enum& match_value, boolean) const
-{
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-
-void BcmOpcode__enum_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-text_buf.push_int(single_value);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++)
-value_list.list_value[elem_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Bcm.BcmOpcode_enum.");
-}
-}
-
-void BcmOpcode__enum_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value = (BcmOpcode__enum::enum_type)text_buf.pull_int().get_val();
-if (!BcmOpcode__enum::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Bcm.BcmOpcode_enum.", single_value);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new BcmOpcode__enum_template[value_list.n_values];
-for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++)
-value_list.list_value[elem_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Bcm.BcmOpcode_enum.");
-}
-}
-
-boolean BcmOpcode__enum_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean BcmOpcode__enum_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int i=0; i<value_list.n_values; i++)
-if (value_list.list_value[i].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-void BcmOpcode__enum_template::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_TEMPLATE, "enumerated template");
-  Module_Param_Ptr m_p = &param;
-  switch (m_p->get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    BcmOpcode__enum_template new_temp;
-    new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, m_p->get_size());
-    for (size_t p_i=0; p_i<m_p->get_size(); p_i++) {
-      new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i));
-    }
-    *this = new_temp;
-    break; }
-  case Module_Param::MP_Enumerated: {
-    BcmOpcode__enum::enum_type enum_val = BcmOpcode__enum::str_to_enum(m_p->get_enumerated());
-    if (!BcmOpcode__enum::is_valid_enum(enum_val)) {
-      param.error("Invalid enumerated value for type @Bcm.BcmOpcode_enum.");
-    }
-    *this = enum_val;
-  } break;
-  default:
-    param.type_error("enumerated template", "@Bcm.BcmOpcode_enum");
-  }
-  is_ifpresent = param.get_ifpresent();
-}
-
-void BcmOpcode__enum_template::check_restriction(template_res t_res, const char* t_name,
-boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_VALUE:
-if (!is_ifpresent && template_selection==SPECIFIC_VALUE) return;
-break;
-case TR_OMIT:
-if (!is_ifpresent && (template_selection==OMIT_VALUE || template_selection==SPECIFIC_VALUE)) return;
-break;
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@Bcm.BcmOpcode_enum");
-}
-
-Bcm__timeval::Bcm__timeval()
-{
-}
-
-Bcm__timeval::Bcm__timeval(const INTEGER& par_tv__sec,
-    const INTEGER& par_tv__usec)
-  :   field_tv__sec(par_tv__sec),
-  field_tv__usec(par_tv__usec)
-{
-}
-
-Bcm__timeval::Bcm__timeval(const Bcm__timeval& other_value)
-{
-if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @Bcm.Bcm_timeval.");
-if (other_value.tv__sec().is_bound()) field_tv__sec = other_value.tv__sec();
-else field_tv__sec.clean_up();
-if (other_value.tv__usec().is_bound()) field_tv__usec = other_value.tv__usec();
-else field_tv__usec.clean_up();
-}
-
-void Bcm__timeval::clean_up()
-{
-field_tv__sec.clean_up();
-field_tv__usec.clean_up();
-}
-
-const TTCN_Typedescriptor_t* Bcm__timeval::get_descriptor() const { return &Bcm__timeval_descr_; }
-Bcm__timeval& Bcm__timeval::operator=(const Bcm__timeval& other_value)
-{
-if (this != &other_value) {
-  if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @Bcm.Bcm_timeval.");
-  if (other_value.tv__sec().is_bound()) field_tv__sec = other_value.tv__sec();
-  else field_tv__sec.clean_up();
-  if (other_value.tv__usec().is_bound()) field_tv__usec = other_value.tv__usec();
-  else field_tv__usec.clean_up();
-}
-return *this;
-}
-
-boolean Bcm__timeval::operator==(const Bcm__timeval& other_value) const
-{
-return field_tv__sec==other_value.field_tv__sec
-  && field_tv__usec==other_value.field_tv__usec;
-}
-
-boolean Bcm__timeval::is_bound() const
-{
-return (field_tv__sec.is_bound())
-  || (field_tv__usec.is_bound());
-}
-boolean Bcm__timeval::is_value() const
-{
-return field_tv__sec.is_value()
-  && field_tv__usec.is_value();
-}
-void Bcm__timeval::log() const
-{
-if (!is_bound()) {
-TTCN_Logger::log_event_unbound();
-return;
-}
-TTCN_Logger::log_event_str("{ tv_sec := ");
-field_tv__sec.log();
-TTCN_Logger::log_event_str(", tv_usec := ");
-field_tv__usec.log();
-TTCN_Logger::log_event_str(" }");
-}
-
-void Bcm__timeval::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
-  case Module_Param::MP_Value_List:
-    if (2<param.get_size()) {
-      param.error("record value of type @Bcm.Bcm_timeval has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) tv__sec().set_param(*param.get_elem(0));
-    if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) tv__usec().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "tv_sec")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          tv__sec().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "tv_usec")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          tv__usec().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @Bcm.Bcm_timeval: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record value", "@Bcm.Bcm_timeval");
-  }
-}
-
-void Bcm__timeval::set_implicit_omit()
-{
-if (tv__sec().is_bound()) tv__sec().set_implicit_omit();
-if (tv__usec().is_bound()) tv__usec().set_implicit_omit();
-}
-
-void Bcm__timeval::encode_text(Text_Buf& text_buf) const
-{
-field_tv__sec.encode_text(text_buf);
-field_tv__usec.encode_text(text_buf);
-}
-
-void Bcm__timeval::decode_text(Text_Buf& text_buf)
-{
-field_tv__sec.decode_text(text_buf);
-field_tv__usec.decode_text(text_buf);
-}
-
-struct Bcm__timeval_template::single_value_struct {
-INTEGER_template field_tv__sec;
-INTEGER_template field_tv__usec;
-};
-
-void Bcm__timeval_template::set_specific()
-{
-if (template_selection != SPECIFIC_VALUE) {
-template_sel old_selection = template_selection;
-clean_up();
-single_value = new single_value_struct;
-set_selection(SPECIFIC_VALUE);
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
-single_value->field_tv__sec = ANY_VALUE;
-single_value->field_tv__usec = ANY_VALUE;
-}
-}
-}
-
-void Bcm__timeval_template::copy_value(const Bcm__timeval& other_value)
-{
-single_value = new single_value_struct;
-if (other_value.tv__sec().is_bound()) {
-  single_value->field_tv__sec = other_value.tv__sec();
-} else {
-  single_value->field_tv__sec.clean_up();
-}
-if (other_value.tv__usec().is_bound()) {
-  single_value->field_tv__usec = other_value.tv__usec();
-} else {
-  single_value->field_tv__usec.clean_up();
-}
-set_selection(SPECIFIC_VALUE);
-}
-
-void Bcm__timeval_template::copy_template(const Bcm__timeval_template& other_value)
-{
-switch (other_value.template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-if (UNINITIALIZED_TEMPLATE != other_value.tv__sec().get_selection()) {
-single_value->field_tv__sec = other_value.tv__sec();
-} else {
-single_value->field_tv__sec.clean_up();
-}
-if (UNINITIALIZED_TEMPLATE != other_value.tv__usec().get_selection()) {
-single_value->field_tv__usec = other_value.tv__usec();
-} else {
-single_value->field_tv__usec.clean_up();
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new Bcm__timeval_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized/unsupported template of type @Bcm.Bcm_timeval.");
-break;
-}
-set_selection(other_value);
-}
-
-Bcm__timeval_template::Bcm__timeval_template()
-{
-}
-
-Bcm__timeval_template::Bcm__timeval_template(template_sel other_value)
- : Base_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-Bcm__timeval_template::Bcm__timeval_template(const Bcm__timeval& other_value)
-{
-copy_value(other_value);
-}
-
-Bcm__timeval_template::Bcm__timeval_template(const OPTIONAL<Bcm__timeval>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const Bcm__timeval&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of type @Bcm.Bcm_timeval from an unbound optional field.");
-}
-}
-
-Bcm__timeval_template::Bcm__timeval_template(const Bcm__timeval_template& other_value)
-: Base_Template()
-{
-copy_template(other_value);
-}
-
-Bcm__timeval_template::~Bcm__timeval_template()
-{
-clean_up();
-}
-
-Bcm__timeval_template& Bcm__timeval_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-Bcm__timeval_template& Bcm__timeval_template::operator=(const Bcm__timeval& other_value)
-{
-clean_up();
-copy_value(other_value);
-return *this;
-}
-
-Bcm__timeval_template& Bcm__timeval_template::operator=(const OPTIONAL<Bcm__timeval>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const Bcm__timeval&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of type @Bcm.Bcm_timeval.");
-}
-return *this;
-}
-
-Bcm__timeval_template& Bcm__timeval_template::operator=(const Bcm__timeval_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-boolean Bcm__timeval_template::match(const Bcm__timeval& other_value, boolean legacy) const
-{
-if (!other_value.is_bound()) return FALSE;
-switch (template_selection) {
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case OMIT_VALUE:
-return FALSE;
-case SPECIFIC_VALUE:
-if(!other_value.tv__sec().is_bound()) return FALSE;
-if(!single_value->field_tv__sec.match(other_value.tv__sec(), legacy))return FALSE;
-if(!other_value.tv__usec().is_bound()) return FALSE;
-if(!single_value->field_tv__usec.match(other_value.tv__usec(), legacy))return FALSE;
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error("Matching an uninitialized/unsupported template of type @Bcm.Bcm_timeval.");
-}
-return FALSE;
-}
-
-boolean Bcm__timeval_template::is_bound() const
-{
-if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE;
-if (template_selection != SPECIFIC_VALUE) return TRUE;
-return single_value->field_tv__sec.is_bound()
-
- ||single_value->field_tv__usec.is_bound()
-;
-}
-
-boolean Bcm__timeval_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-return single_value->field_tv__sec.is_value()
- &&single_value->field_tv__usec.is_value();
-}
-
-void Bcm__timeval_template::clean_up()
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-delete single_value;
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-delete [] value_list.list_value;
-default:
-break;
-}
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-Bcm__timeval Bcm__timeval_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent)
-TTCN_error("Performing a valueof or send operation on a non-specific template of type @Bcm.Bcm_timeval.");
-Bcm__timeval ret_val;
-if (single_value->field_tv__sec.is_bound()) {
-ret_val.tv__sec() = single_value->field_tv__sec.valueof();
-}
-if (single_value->field_tv__usec.is_bound()) {
-ret_val.tv__usec() = single_value->field_tv__usec.valueof();
-}
-return ret_val;
-}
-
-void Bcm__timeval_template::set_type(template_sel template_type, unsigned int list_length)
-{
-if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST)
-TTCN_error("Setting an invalid list for a template of type @Bcm.Bcm_timeval.");
-clean_up();
-set_selection(template_type);
-value_list.n_values = list_length;
-value_list.list_value = new Bcm__timeval_template[list_length];
-}
-
-Bcm__timeval_template& Bcm__timeval_template::list_item(unsigned int list_index) const
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST)
-TTCN_error("Accessing a list element of a non-list template of type @Bcm.Bcm_timeval.");
-if (list_index >= value_list.n_values)
-TTCN_error("Index overflow in a value list template of type @Bcm.Bcm_timeval.");
-return value_list.list_value[list_index];
-}
-
-INTEGER_template& Bcm__timeval_template::tv__sec()
-{
-set_specific();
-return single_value->field_tv__sec;
-}
-
-const INTEGER_template& Bcm__timeval_template::tv__sec() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field tv_sec of a non-specific template of type @Bcm.Bcm_timeval.");
-return single_value->field_tv__sec;
-}
-
-INTEGER_template& Bcm__timeval_template::tv__usec()
-{
-set_specific();
-return single_value->field_tv__usec;
-}
-
-const INTEGER_template& Bcm__timeval_template::tv__usec() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field tv_usec of a non-specific template of type @Bcm.Bcm_timeval.");
-return single_value->field_tv__usec;
-}
-
-int Bcm__timeval_template::size_of() const
-{
-  if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @Bcm.Bcm_timeval which has an ifpresent attribute.");
-  switch (template_selection)
-  {
-  case SPECIFIC_VALUE:
-    return 2;
-  case VALUE_LIST:
-   {
-     if (value_list.n_values<1)
-       TTCN_error("Internal error: Performing sizeof() operation on a template of type @Bcm.Bcm_timeval containing an empty list.");
-      int item_size = value_list.list_value[0].size_of();
-      for (unsigned int l_idx = 1; l_idx < value_list.n_values; l_idx++)
-      {
-        if (value_list.list_value[l_idx].size_of()!=item_size)
-          TTCN_error("Performing sizeof() operation on a template of type @Bcm.Bcm_timeval containing a value list with different sizes.");
-      }
-      return item_size;
-    }
-  case OMIT_VALUE:
-    TTCN_error("Performing sizeof() operation on a template of type @Bcm.Bcm_timeval containing omit value.");
-  case ANY_VALUE:
-  case ANY_OR_OMIT:
-    TTCN_error("Performing sizeof() operation on a template of type @Bcm.Bcm_timeval containing */? value.");
-  case COMPLEMENTED_LIST:
-    TTCN_error("Performing sizeof() operation on a template of type @Bcm.Bcm_timeval containing complemented list.");
-  default:
-    TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @Bcm.Bcm_timeval.");
-  }
-  return 0;
-}
-
-void Bcm__timeval_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-TTCN_Logger::log_event_str("{ tv_sec := ");
-single_value->field_tv__sec.log();
-TTCN_Logger::log_event_str(", tv_usec := ");
-single_value->field_tv__usec.log();
-TTCN_Logger::log_event_str(" }");
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) {
-if (list_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[list_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_ifpresent();
-}
-
-void Bcm__timeval_template::log_match(const Bcm__timeval& match_value, boolean legacy) const
-{
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-if(match(match_value, legacy)){
-TTCN_Logger::print_logmatch_buffer();
-TTCN_Logger::log_event_str(" matched");
-} else{
-if (template_selection == SPECIFIC_VALUE) {
-size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
-if(!single_value->field_tv__sec.match(match_value.tv__sec(), legacy)){
-TTCN_Logger::log_logmatch_info(".tv_sec");
-single_value->field_tv__sec.log_match(match_value.tv__sec(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-if(!single_value->field_tv__usec.match(match_value.tv__usec(), legacy)){
-TTCN_Logger::log_logmatch_info(".tv_usec");
-single_value->field_tv__usec.log_match(match_value.tv__usec(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-}else {
-TTCN_Logger::print_logmatch_buffer();
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-TTCN_Logger::log_event_str(" unmatched");
-}
-}
-return;
-}
-if (template_selection == SPECIFIC_VALUE) {
-TTCN_Logger::log_event_str("{ tv_sec := ");
-single_value->field_tv__sec.log_match(match_value.tv__sec(), legacy);
-TTCN_Logger::log_event_str(", tv_usec := ");
-single_value->field_tv__usec.log_match(match_value.tv__usec(), legacy);
-TTCN_Logger::log_event_str(" }");
-} else {
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-}
-
-void Bcm__timeval_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value->field_tv__sec.encode_text(text_buf);
-single_value->field_tv__usec.encode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of type @Bcm.Bcm_timeval.");
-}
-}
-
-void Bcm__timeval_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-single_value->field_tv__sec.decode_text(text_buf);
-single_value->field_tv__usec.decode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new Bcm__timeval_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: An unknown/unsupported selection was received in a template of type @Bcm.Bcm_timeval.");
-}
-}
-
-void Bcm__timeval_template::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    Bcm__timeval_template new_temp;
-    new_temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      new_temp.list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    *this = new_temp;
-    break; }
-  case Module_Param::MP_Value_List:
-    if (2<param.get_size()) {
-      param.error("record template of type @Bcm.Bcm_timeval has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) tv__sec().set_param(*param.get_elem(0));
-    if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) tv__usec().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "tv_sec")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          tv__sec().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "tv_usec")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          tv__usec().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @Bcm.Bcm_timeval: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "@Bcm.Bcm_timeval");
-  }
-  is_ifpresent = param.get_ifpresent();
-}
-
-void Bcm__timeval_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_OMIT:
-if (template_selection==OMIT_VALUE) return;
-case TR_VALUE:
-if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break;
-single_value->field_tv__sec.check_restriction(t_res, t_name ? t_name : "@Bcm.Bcm_timeval");
-single_value->field_tv__usec.check_restriction(t_res, t_name ? t_name : "@Bcm.Bcm_timeval");
-return;
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@Bcm.Bcm_timeval");
-}
-
-boolean Bcm__timeval_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean Bcm__timeval_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int l_idx=0; l_idx<value_list.n_values; l_idx++)
-if (value_list.list_value[l_idx].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-void SocketCAN__bcm__frame_frames::copy_value(const SocketCAN__bcm__frame_frames& other_value)
-{
-switch (other_value.union_selection) {
-case ALT_can__frame:
-field_can__frame = new SocketCAN__bcm__frame_frames_can__frame(*other_value.field_can__frame);
-break;
-case ALT_canfd__frame:
-field_canfd__frame = new SocketCAN__bcm__frame_frames_canfd__frame(*other_value.field_canfd__frame);
-break;
-default:
-TTCN_error("Assignment of an unbound union value of type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-union_selection = other_value.union_selection;
-}
-
-SocketCAN__bcm__frame_frames::SocketCAN__bcm__frame_frames()
-{
-union_selection = UNBOUND_VALUE;
-}
-
-SocketCAN__bcm__frame_frames::SocketCAN__bcm__frame_frames(const SocketCAN__bcm__frame_frames& other_value)
-: Base_Type(){
-copy_value(other_value);
-}
-
-SocketCAN__bcm__frame_frames::~SocketCAN__bcm__frame_frames()
-{
-clean_up();
-}
-
-SocketCAN__bcm__frame_frames& SocketCAN__bcm__frame_frames::operator=(const SocketCAN__bcm__frame_frames& other_value)
-{
-if (this != &other_value) {
-clean_up();
-copy_value(other_value);
-}
-return *this;
-}
-
-boolean SocketCAN__bcm__frame_frames::operator==(const SocketCAN__bcm__frame_frames& other_value) const
-{
-if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @Bcm.SocketCAN_bcm_frame.frames.");
-if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @Bcm.SocketCAN_bcm_frame.frames.");
-if (union_selection != other_value.union_selection) return FALSE;
-switch (union_selection) {
-case ALT_can__frame:
-return *field_can__frame == *other_value.field_can__frame;
-case ALT_canfd__frame:
-return *field_canfd__frame == *other_value.field_canfd__frame;
-default:
-return FALSE;
-}
-}
-
-SocketCAN__bcm__frame_frames_can__frame& SocketCAN__bcm__frame_frames::can__frame()
-{
-if (union_selection != ALT_can__frame) {
-clean_up();
-field_can__frame = new SocketCAN__bcm__frame_frames_can__frame;
-union_selection = ALT_can__frame;
-}
-return *field_can__frame;
-}
-
-const SocketCAN__bcm__frame_frames_can__frame& SocketCAN__bcm__frame_frames::can__frame() const
-{
-if (union_selection != ALT_can__frame) TTCN_error("Using non-selected field can_frame in a value of union type @Bcm.SocketCAN_bcm_frame.frames.");
-return *field_can__frame;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame& SocketCAN__bcm__frame_frames::canfd__frame()
-{
-if (union_selection != ALT_canfd__frame) {
-clean_up();
-field_canfd__frame = new SocketCAN__bcm__frame_frames_canfd__frame;
-union_selection = ALT_canfd__frame;
-}
-return *field_canfd__frame;
-}
-
-const SocketCAN__bcm__frame_frames_canfd__frame& SocketCAN__bcm__frame_frames::canfd__frame() const
-{
-if (union_selection != ALT_canfd__frame) TTCN_error("Using non-selected field canfd_frame in a value of union type @Bcm.SocketCAN_bcm_frame.frames.");
-return *field_canfd__frame;
-}
-
-boolean SocketCAN__bcm__frame_frames::ischosen(union_selection_type checked_selection) const
-{
-if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @Bcm.SocketCAN_bcm_frame.frames.");
-return union_selection == checked_selection;
-}
-
-boolean SocketCAN__bcm__frame_frames::is_bound() const
-{
-  return union_selection != UNBOUND_VALUE;
-}
-
-boolean SocketCAN__bcm__frame_frames::is_value() const
-{
-switch (union_selection) {
-case UNBOUND_VALUE: return FALSE;
-case ALT_can__frame: return field_can__frame->is_value();
-case ALT_canfd__frame: return field_canfd__frame->is_value();
-default: TTCN_error("Invalid selection in union is_bound");}
-}
-
-void SocketCAN__bcm__frame_frames::clean_up()
-{
-switch (union_selection) {
-case ALT_can__frame:
-  delete field_can__frame;
-  break;
-case ALT_canfd__frame:
-  delete field_canfd__frame;
-  break;
-default:
-  break;
-}
-union_selection = UNBOUND_VALUE;
-}
-
-void SocketCAN__bcm__frame_frames::log() const
-{
-switch (union_selection) {
-case ALT_can__frame:
-TTCN_Logger::log_event_str("{ can_frame := ");
-field_can__frame->log();
-TTCN_Logger::log_event_str(" }");
-break;
-case ALT_canfd__frame:
-TTCN_Logger::log_event_str("{ canfd_frame := ");
-field_canfd__frame->log();
-TTCN_Logger::log_event_str(" }");
-break;
-default:
-TTCN_Logger::log_event_unbound();
-}
-}
-
-void SocketCAN__bcm__frame_frames::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE, "union value");
-  Module_Param_Ptr m_p = &param;
-  if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return;
-  if (m_p->get_type()!=Module_Param::MP_Assignment_List) {
-    param.error("union value with field name was expected");
-  }
-  Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1);
-  char* last_name = mp_last->get_id()->get_name();
-  if (!strcmp(last_name, "can_frame")) {
-    can__frame().set_param(*mp_last);
-    if (!can__frame().is_bound()) clean_up();
-    return;
-  }
-  if (!strcmp(last_name, "canfd_frame")) {
-    canfd__frame().set_param(*mp_last);
-    if (!canfd__frame().is_bound()) clean_up();
-    return;
-  }
-  mp_last->error("Field %s does not exist in type @Bcm.SocketCAN_bcm_frame.frames.", last_name);
-}
-
-void SocketCAN__bcm__frame_frames::set_implicit_omit()
-{
-switch (union_selection) {
-case ALT_can__frame:
-field_can__frame->set_implicit_omit(); break;
-case ALT_canfd__frame:
-field_canfd__frame->set_implicit_omit(); break;
-default: break;
-}
-}
-
-void SocketCAN__bcm__frame_frames::encode_text(Text_Buf& text_buf) const
-{
-text_buf.push_int(union_selection);
-switch (union_selection) {
-case ALT_can__frame:
-field_can__frame->encode_text(text_buf);
-break;
-case ALT_canfd__frame:
-field_canfd__frame->encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an unbound value of union type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-}
-
-void SocketCAN__bcm__frame_frames::decode_text(Text_Buf& text_buf)
-{
-switch ((union_selection_type)text_buf.pull_int().get_val()) {
-case ALT_can__frame:
-can__frame().decode_text(text_buf);
-break;
-case ALT_canfd__frame:
-canfd__frame().decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: Unrecognized union selector was received for type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-}
-
-void SocketCAN__bcm__frame_frames_template::copy_value(const SocketCAN__bcm__frame_frames& other_value)
-{
-single_value.union_selection = other_value.get_selection();
-switch (single_value.union_selection) {
-case SocketCAN__bcm__frame_frames::ALT_can__frame:
-single_value.field_can__frame = new SocketCAN__bcm__frame_frames_can__frame_template(other_value.can__frame());
-break;
-case SocketCAN__bcm__frame_frames::ALT_canfd__frame:
-single_value.field_canfd__frame = new SocketCAN__bcm__frame_frames_canfd__frame_template(other_value.canfd__frame());
-break;
-default:
-TTCN_error("Initializing a template with an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-set_selection(SPECIFIC_VALUE);
-}
-
-void SocketCAN__bcm__frame_frames_template::copy_template(const SocketCAN__bcm__frame_frames_template& other_value)
-{
-switch (other_value.template_selection) {
-case SPECIFIC_VALUE:
-single_value.union_selection = other_value.single_value.union_selection;
-switch (single_value.union_selection) {
-case SocketCAN__bcm__frame_frames::ALT_can__frame:
-single_value.field_can__frame = new SocketCAN__bcm__frame_frames_can__frame_template(*other_value.single_value.field_can__frame);
-break;
-case SocketCAN__bcm__frame_frames::ALT_canfd__frame:
-single_value.field_canfd__frame = new SocketCAN__bcm__frame_frames_canfd__frame_template(*other_value.single_value.field_canfd__frame);
-break;
-default:
-TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new SocketCAN__bcm__frame_frames_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-set_selection(other_value);
-}
-
-SocketCAN__bcm__frame_frames_template::SocketCAN__bcm__frame_frames_template()
-{
-}
-
-SocketCAN__bcm__frame_frames_template::SocketCAN__bcm__frame_frames_template(template_sel other_value)
- : Base_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-SocketCAN__bcm__frame_frames_template::SocketCAN__bcm__frame_frames_template(const SocketCAN__bcm__frame_frames& other_value)
-{
-copy_value(other_value);
-}
-
-SocketCAN__bcm__frame_frames_template::SocketCAN__bcm__frame_frames_template(const OPTIONAL<SocketCAN__bcm__frame_frames>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const SocketCAN__bcm__frame_frames&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of union type @Bcm.SocketCAN_bcm_frame.frames from an unbound optional field.");
-}
-}
-
-SocketCAN__bcm__frame_frames_template::SocketCAN__bcm__frame_frames_template(const SocketCAN__bcm__frame_frames_template& other_value)
-: Base_Template(){
-copy_template(other_value);
-}
-
-SocketCAN__bcm__frame_frames_template::~SocketCAN__bcm__frame_frames_template()
-{
-clean_up();
-}
-
-void SocketCAN__bcm__frame_frames_template::clean_up()
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-switch (single_value.union_selection) {
-case SocketCAN__bcm__frame_frames::ALT_can__frame:
-delete single_value.field_can__frame;
-break;
-case SocketCAN__bcm__frame_frames::ALT_canfd__frame:
-delete single_value.field_canfd__frame;
-default:
-break;
-}
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-delete [] value_list.list_value;
-default:
-break;
-}
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-SocketCAN__bcm__frame_frames_template& SocketCAN__bcm__frame_frames_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-SocketCAN__bcm__frame_frames_template& SocketCAN__bcm__frame_frames_template::operator=(const SocketCAN__bcm__frame_frames& other_value)
-{
-clean_up();
-copy_value(other_value);
-return *this;
-}
-
-SocketCAN__bcm__frame_frames_template& SocketCAN__bcm__frame_frames_template::operator=(const OPTIONAL<SocketCAN__bcm__frame_frames>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const SocketCAN__bcm__frame_frames&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-return *this;
-}
-
-SocketCAN__bcm__frame_frames_template& SocketCAN__bcm__frame_frames_template::operator=(const SocketCAN__bcm__frame_frames_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-boolean SocketCAN__bcm__frame_frames_template::match(const SocketCAN__bcm__frame_frames& other_value, boolean legacy) const
-{
-if (!other_value.is_bound()) return FALSE;
-switch (template_selection) {
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case OMIT_VALUE:
-return FALSE;
-case SPECIFIC_VALUE:
-{
-SocketCAN__bcm__frame_frames::union_selection_type value_selection = other_value.get_selection();
-if (value_selection == SocketCAN__bcm__frame_frames::UNBOUND_VALUE) return FALSE;
-if (value_selection != single_value.union_selection) return FALSE;
-switch (value_selection) {
-case SocketCAN__bcm__frame_frames::ALT_can__frame:
-return single_value.field_can__frame->match(other_value.can__frame(), legacy);
-case SocketCAN__bcm__frame_frames::ALT_canfd__frame:
-return single_value.field_canfd__frame->match(other_value.canfd__frame(), legacy);
-default:
-TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-}
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error ("Matching an uninitialized template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-return FALSE;
-}
-
-boolean SocketCAN__bcm__frame_frames_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-switch (single_value.union_selection) {
-case SocketCAN__bcm__frame_frames::ALT_can__frame:
-return single_value.field_can__frame->is_value();
-case SocketCAN__bcm__frame_frames::ALT_canfd__frame:
-return single_value.field_canfd__frame->is_value();
-default:
-TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-}
-
-SocketCAN__bcm__frame_frames SocketCAN__bcm__frame_frames_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent)
-TTCN_error("Performing a valueof or send operation on a non-specific template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-SocketCAN__bcm__frame_frames ret_val;
-switch (single_value.union_selection) {
-case SocketCAN__bcm__frame_frames::ALT_can__frame:
-ret_val.can__frame() = single_value.field_can__frame->valueof();
-break;
-case SocketCAN__bcm__frame_frames::ALT_canfd__frame:
-ret_val.canfd__frame() = single_value.field_canfd__frame->valueof();
-break;
-default:
-TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-return ret_val;
-}
-
-SocketCAN__bcm__frame_frames_template& SocketCAN__bcm__frame_frames_template::list_item(unsigned int list_index) const
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-return value_list.list_value[list_index];
-}
-void SocketCAN__bcm__frame_frames_template::set_type(template_sel template_type, unsigned int list_length)
-{
-if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST) TTCN_error ("Internal error: Setting an invalid list for a template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-clean_up();
-set_selection(template_type);
-value_list.n_values = list_length;
-value_list.list_value = new SocketCAN__bcm__frame_frames_template[list_length];
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template& SocketCAN__bcm__frame_frames_template::can__frame()
-{
-if (template_selection != SPECIFIC_VALUE || single_value.union_selection != SocketCAN__bcm__frame_frames::ALT_can__frame) {
-template_sel old_selection = template_selection;
-clean_up();
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_can__frame = new SocketCAN__bcm__frame_frames_can__frame_template(ANY_VALUE);
-else single_value.field_can__frame = new SocketCAN__bcm__frame_frames_can__frame_template;
-single_value.union_selection = SocketCAN__bcm__frame_frames::ALT_can__frame;
-set_selection(SPECIFIC_VALUE);
-}
-return *single_value.field_can__frame;
-}
-
-const SocketCAN__bcm__frame_frames_can__frame_template& SocketCAN__bcm__frame_frames_template::can__frame() const
-{
-if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field can_frame in a non-specific template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-if (single_value.union_selection != SocketCAN__bcm__frame_frames::ALT_can__frame) TTCN_error("Accessing non-selected field can_frame in a template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-return *single_value.field_can__frame;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template& SocketCAN__bcm__frame_frames_template::canfd__frame()
-{
-if (template_selection != SPECIFIC_VALUE || single_value.union_selection != SocketCAN__bcm__frame_frames::ALT_canfd__frame) {
-template_sel old_selection = template_selection;
-clean_up();
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_canfd__frame = new SocketCAN__bcm__frame_frames_canfd__frame_template(ANY_VALUE);
-else single_value.field_canfd__frame = new SocketCAN__bcm__frame_frames_canfd__frame_template;
-single_value.union_selection = SocketCAN__bcm__frame_frames::ALT_canfd__frame;
-set_selection(SPECIFIC_VALUE);
-}
-return *single_value.field_canfd__frame;
-}
-
-const SocketCAN__bcm__frame_frames_canfd__frame_template& SocketCAN__bcm__frame_frames_template::canfd__frame() const
-{
-if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field canfd_frame in a non-specific template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-if (single_value.union_selection != SocketCAN__bcm__frame_frames::ALT_canfd__frame) TTCN_error("Accessing non-selected field canfd_frame in a template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-return *single_value.field_canfd__frame;
-}
-
-boolean SocketCAN__bcm__frame_frames_template::ischosen(SocketCAN__bcm__frame_frames::union_selection_type checked_selection) const
-{
-if (checked_selection == SocketCAN__bcm__frame_frames::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @Bcm.SocketCAN_bcm_frame.frames.");
-switch (template_selection) {
-case SPECIFIC_VALUE:
-if (single_value.union_selection == SocketCAN__bcm__frame_frames::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-return single_value.union_selection == checked_selection;
-case VALUE_LIST:
-{
-if (value_list.n_values < 1)
-TTCN_error("Internal error: Performing ischosen() operation on a template of union type @Bcm.SocketCAN_bcm_frame.frames containing an empty list.");
-boolean ret_val = value_list.list_value[0].ischosen(checked_selection);
-for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) {
-ret_val = value_list.list_value[list_count].ischosen(checked_selection);
-}
-return ret_val;
-}
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-void SocketCAN__bcm__frame_frames_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-switch (single_value.union_selection) {
-case SocketCAN__bcm__frame_frames::ALT_can__frame:
-TTCN_Logger::log_event_str("{ can_frame := ");
-single_value.field_can__frame->log();
-TTCN_Logger::log_event_str(" }");
-break;
-case SocketCAN__bcm__frame_frames::ALT_canfd__frame:
-TTCN_Logger::log_event_str("{ canfd_frame := ");
-single_value.field_canfd__frame->log();
-TTCN_Logger::log_event_str(" }");
-break;
-default:
-TTCN_Logger::log_event_str("<invalid selector>");
-}
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) {
-if (list_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[list_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_ifpresent();
-}
-
-void SocketCAN__bcm__frame_frames_template::log_match(const SocketCAN__bcm__frame_frames& match_value, boolean legacy) const
-{
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){
-TTCN_Logger::print_logmatch_buffer();
-TTCN_Logger::log_event_str(" matched");
-return;
-}
-if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) {
-switch (single_value.union_selection) {
-case SocketCAN__bcm__frame_frames::ALT_can__frame:
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-TTCN_Logger::log_logmatch_info(".can_frame");
-single_value.field_can__frame->log_match(match_value.can__frame(), legacy);
-} else {
-TTCN_Logger::log_event_str("{ can_frame := ");
-single_value.field_can__frame->log_match(match_value.can__frame(), legacy);
-TTCN_Logger::log_event_str(" }");
-}
-break;
-case SocketCAN__bcm__frame_frames::ALT_canfd__frame:
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-TTCN_Logger::log_logmatch_info(".canfd_frame");
-single_value.field_canfd__frame->log_match(match_value.canfd__frame(), legacy);
-} else {
-TTCN_Logger::log_event_str("{ canfd_frame := ");
-single_value.field_canfd__frame->log_match(match_value.canfd__frame(), legacy);
-TTCN_Logger::log_event_str(" }");
-}
-break;
-default:
-TTCN_Logger::print_logmatch_buffer();
-TTCN_Logger::log_event_str("<invalid selector>");
-}
-} else {
-TTCN_Logger::print_logmatch_buffer();
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-}
-
-void SocketCAN__bcm__frame_frames_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-text_buf.push_int(single_value.union_selection);
-switch (single_value.union_selection) {
-case SocketCAN__bcm__frame_frames::ALT_can__frame:
-single_value.field_can__frame->encode_text(text_buf);
-break;
-case SocketCAN__bcm__frame_frames::ALT_canfd__frame:
-single_value.field_canfd__frame->encode_text(text_buf);
-break;
-default:
-TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized template of type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-}
-
-void SocketCAN__bcm__frame_frames_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-{
-single_value.union_selection = SocketCAN__bcm__frame_frames::UNBOUND_VALUE;
-SocketCAN__bcm__frame_frames::union_selection_type new_selection = (SocketCAN__bcm__frame_frames::union_selection_type)text_buf.pull_int().get_val();
-switch (new_selection) {
-case SocketCAN__bcm__frame_frames::ALT_can__frame:
-single_value.field_can__frame = new SocketCAN__bcm__frame_frames_can__frame_template;
-single_value.field_can__frame->decode_text(text_buf);
-break;
-case SocketCAN__bcm__frame_frames::ALT_canfd__frame:
-single_value.field_canfd__frame = new SocketCAN__bcm__frame_frames_canfd__frame_template;
-single_value.field_canfd__frame->decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-single_value.union_selection = new_selection;
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new SocketCAN__bcm__frame_frames_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: Unrecognized selector was received in a template of type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-}
-
-boolean SocketCAN__bcm__frame_frames_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean SocketCAN__bcm__frame_frames_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int v_idx=0; v_idx<value_list.n_values; v_idx++)
-if (value_list.list_value[v_idx].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-void SocketCAN__bcm__frame_frames_template::set_param(Module_Param& param)
-{
-  if (dynamic_cast<Module_Param_Name*>(param.get_id()) != NULL &&
-      param.get_id()->next_name()) {
-    char* param_field = param.get_id()->get_current_name();
-    if (param_field[0] >= '0' && param_field[0] <= '9') {
-      param.error("Unexpected array index in module parameter, expected a valid field"
-        " name for union template type `@Bcm.SocketCAN_bcm_frame.frames'");
-    }
-    if (strcmp("can_frame", param_field) == 0) {
-      can__frame().set_param(param);
-      return;
-    } else if (strcmp("canfd_frame", param_field) == 0) {
-      canfd__frame().set_param(param);
-      return;
-    } else param.error("Field `%s' not found in union template type `@Bcm.SocketCAN_bcm_frame.frames'", param_field);
-  }
-  param.basic_check(Module_Param::BC_TEMPLATE, "union template");
-  Module_Param_Ptr m_p = &param;
-  switch (m_p->get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    SocketCAN__bcm__frame_frames_template new_temp;
-    new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, m_p->get_size());
-    for (size_t p_i=0; p_i<m_p->get_size(); p_i++) {
-      new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i));
-    }
-    *this = new_temp;
-    break; }
-  case Module_Param::MP_Value_List:
-    if (m_p->get_size()==0) break;
-    param.type_error("union template", "@Bcm.SocketCAN_bcm_frame.frames");
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1);
-    char* last_name = mp_last->get_id()->get_name();
-    if (!strcmp(last_name, "can_frame")) {
-      can__frame().set_param(*mp_last);
-      break;
-    }
-    if (!strcmp(last_name, "canfd_frame")) {
-      canfd__frame().set_param(*mp_last);
-      break;
-    }
-    mp_last->error("Field %s does not exist in type @Bcm.SocketCAN_bcm_frame.frames.", last_name);
-  } break;
-  default:
-    param.type_error("union template", "@Bcm.SocketCAN_bcm_frame.frames");
-  }
-  is_ifpresent = param.get_ifpresent();
-}
-
-void SocketCAN__bcm__frame_frames_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_OMIT:
-if (template_selection==OMIT_VALUE) return;
-case TR_VALUE:
-if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break;
-switch (single_value.union_selection) {
-case SocketCAN__bcm__frame_frames::ALT_can__frame:
-single_value.field_can__frame->check_restriction(t_res, t_name ? t_name : "@Bcm.SocketCAN_bcm_frame.frames");
-return;
-case SocketCAN__bcm__frame_frames::ALT_canfd__frame:
-single_value.field_canfd__frame->check_restriction(t_res, t_name ? t_name : "@Bcm.SocketCAN_bcm_frame.frames");
-return;
-default:
-TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @Bcm.SocketCAN_bcm_frame.frames.");
-}
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@Bcm.SocketCAN_bcm_frame.frames");
-}
-
-
-const Can::CAN__frame SocketCAN__bcm__frame_frames_can__frame::UNBOUND_ELEM;
-SocketCAN__bcm__frame_frames_can__frame::SocketCAN__bcm__frame_frames_can__frame()
-{
-val_ptr = NULL;
-}
-
-SocketCAN__bcm__frame_frames_can__frame::SocketCAN__bcm__frame_frames_can__frame(null_type)
-{
-val_ptr = new recordof_setof_struct;
-val_ptr->ref_count = 1;
-val_ptr->n_elements = 0;
-val_ptr->value_elements = NULL;
-}
-
-SocketCAN__bcm__frame_frames_can__frame::SocketCAN__bcm__frame_frames_can__frame(const SocketCAN__bcm__frame_frames_can__frame& other_value)
-{
-if (!other_value.is_bound()) TTCN_error("Copying an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-val_ptr = other_value.val_ptr;
-val_ptr->ref_count++;
-}
-
-SocketCAN__bcm__frame_frames_can__frame::~SocketCAN__bcm__frame_frames_can__frame()
-{
-clean_up();
-if (val_ptr != NULL) val_ptr = NULL;
-}
-
-void SocketCAN__bcm__frame_frames_can__frame::clean_up()
-{
-if (val_ptr != NULL) {
-if (val_ptr->ref_count > 1) {
-val_ptr->ref_count--;
-val_ptr = NULL;
-}
-else if (val_ptr->ref_count == 1) {
-for (int elem_count = 0; elem_count < val_ptr->n_elements;
-elem_count++)
-if (val_ptr->value_elements[elem_count] != NULL)
-delete val_ptr->value_elements[elem_count];
-free_pointers((void**)val_ptr->value_elements);
-delete val_ptr;
-val_ptr = NULL;
-}
-else
-TTCN_error("Internal error: Invalid reference counter in a record of/set of value.");
-}
-}
-
-SocketCAN__bcm__frame_frames_can__frame& SocketCAN__bcm__frame_frames_can__frame::operator=(null_type)
-{
-clean_up();
-val_ptr = new recordof_setof_struct;
-val_ptr->ref_count = 1;
-val_ptr->n_elements = 0;
-val_ptr->value_elements = NULL;
-return *this;
-}
-
-SocketCAN__bcm__frame_frames_can__frame& SocketCAN__bcm__frame_frames_can__frame::operator=(const SocketCAN__bcm__frame_frames_can__frame& other_value)
-{
-if (other_value.val_ptr == NULL) TTCN_error("Assigning an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-if (this != &other_value) {
-clean_up();
-val_ptr = other_value.val_ptr;
-val_ptr->ref_count++;
-}
-return *this;
-}
-
-boolean SocketCAN__bcm__frame_frames_can__frame::operator==(null_type) const
-{
-if (val_ptr == NULL)
-TTCN_error("The left operand of comparison is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-return val_ptr->n_elements == 0 ;
-}
-
-boolean SocketCAN__bcm__frame_frames_can__frame::operator==(const SocketCAN__bcm__frame_frames_can__frame& other_value) const
-{
-if (val_ptr == NULL) TTCN_error("The left operand of comparison is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-if (other_value.val_ptr == NULL) TTCN_error("The right operand of comparison is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-if (val_ptr == other_value.val_ptr) return TRUE;
-if (val_ptr->n_elements != (other_value.val_ptr)->n_elements)
-return FALSE;
-for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++){
-if (val_ptr->value_elements[elem_count] != NULL){
-if ((other_value.val_ptr)->value_elements[elem_count] != NULL){
-  if (*val_ptr->value_elements[elem_count] != *(other_value.val_ptr)->value_elements[elem_count]) return FALSE;
-} else return FALSE;
-} else {
-if ((other_value.val_ptr)->value_elements[elem_count] != NULL) return FALSE;
-}
-}
-return TRUE;
-}
-
-Can::CAN__frame& SocketCAN__bcm__frame_frames_can__frame::operator[](int index_value)
-{
-if (index_value < 0) TTCN_error("Accessing an element of type @Bcm.SocketCAN_bcm_frame.frames.can_frame using a negative index: %d.", index_value);
-if (val_ptr == NULL) {
-val_ptr = new recordof_setof_struct;
-val_ptr->ref_count = 1;
-val_ptr->n_elements = 0;
-val_ptr->value_elements = NULL;
-} else if (val_ptr->ref_count > 1) {
-struct recordof_setof_struct *new_val_ptr = new recordof_setof_struct;
-new_val_ptr->ref_count = 1;
-new_val_ptr->n_elements = (index_value >= val_ptr->n_elements) ? index_value + 1 : val_ptr->n_elements;
-new_val_ptr->value_elements = (Can::CAN__frame**)allocate_pointers(new_val_ptr->n_elements);
-for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++){
-if (val_ptr->value_elements[elem_count] != NULL){
-new_val_ptr->value_elements[elem_count] = new Can::CAN__frame(*(val_ptr->value_elements[elem_count]));
-}
-}
-clean_up();
-val_ptr = new_val_ptr;
-}
-if (index_value >= val_ptr->n_elements) set_size(index_value + 1);
-if (val_ptr->value_elements[index_value] == NULL) {
-val_ptr->value_elements[index_value] = new Can::CAN__frame;
-}
-return *val_ptr->value_elements[index_value];
-}
-
-Can::CAN__frame& SocketCAN__bcm__frame_frames_can__frame::operator[](const INTEGER& index_value)
-{
-index_value.must_bound("Using an unbound integer value for indexing a value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-return (*this)[(int)index_value];
-}
-
-const Can::CAN__frame& SocketCAN__bcm__frame_frames_can__frame::operator[](int index_value) const
-{
-if (val_ptr == NULL)
-TTCN_error("Accessing an element in an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-if (index_value < 0) TTCN_error("Accessing an element of type @Bcm.SocketCAN_bcm_frame.frames.can_frame using a negative index: %d.", index_value);
-if (index_value >= val_ptr->n_elements) TTCN_error("Index overflow in a value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame: The index is %d, but the value has only %d elements.", index_value, val_ptr->n_elements);
-return (val_ptr->value_elements[index_value] == NULL) ?
-UNBOUND_ELEM : *val_ptr->value_elements[index_value];
-}
-
-const Can::CAN__frame& SocketCAN__bcm__frame_frames_can__frame::operator[](const INTEGER& index_value) const
-{
-index_value.must_bound("Using an unbound integer value for indexing a value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-return (*this)[(int)index_value];
-}
-
-SocketCAN__bcm__frame_frames_can__frame SocketCAN__bcm__frame_frames_can__frame::operator<<=(int rotate_count) const
-{
-return *this >>= (-rotate_count);
-}
-
-SocketCAN__bcm__frame_frames_can__frame SocketCAN__bcm__frame_frames_can__frame::operator<<=(const INTEGER& rotate_count) const
-{
-rotate_count.must_bound("Unbound integer operand of rotate left operator.");
-return *this >>= (int)(-rotate_count);
-}
-
-SocketCAN__bcm__frame_frames_can__frame SocketCAN__bcm__frame_frames_can__frame::operator>>=(const INTEGER& rotate_count) const
-{
-rotate_count.must_bound("Unbound integer operand of rotate right operator.");
-return *this >>= (int)rotate_count;
-}
-
-SocketCAN__bcm__frame_frames_can__frame SocketCAN__bcm__frame_frames_can__frame::operator>>=(int rotate_count) const
-{
-if (val_ptr == NULL) TTCN_error("Performing rotation operation on an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-if (val_ptr->n_elements == 0) return *this;
-int rc;
-if (rotate_count>=0) rc = rotate_count % val_ptr->n_elements;
-else rc = val_ptr->n_elements - ((-rotate_count) % val_ptr->n_elements);
-if (rc == 0) return *this;
-SocketCAN__bcm__frame_frames_can__frame ret_val;
-ret_val.set_size(val_ptr->n_elements);
-for (int i=0; i<val_ptr->n_elements; i++) {
-if (val_ptr->value_elements[i] != NULL) {
-ret_val.val_ptr->value_elements[(i+rc)%val_ptr->n_elements] =new Can::CAN__frame(*val_ptr->value_elements[i]);
-}
-}
-return ret_val;
-}
-
-SocketCAN__bcm__frame_frames_can__frame SocketCAN__bcm__frame_frames_can__frame::operator+(const SocketCAN__bcm__frame_frames_can__frame& other_value) const
-{
-if (val_ptr == NULL || other_value.val_ptr == NULL) TTCN_error("Unbound operand of @Bcm.SocketCAN_bcm_frame.frames.can_frame concatenation.");
-if (val_ptr->n_elements == 0) return other_value;
-if (other_value.val_ptr->n_elements == 0) return *this;
-SocketCAN__bcm__frame_frames_can__frame ret_val;
-ret_val.set_size(val_ptr->n_elements+other_value.val_ptr->n_elements);
-for (int i=0; i<val_ptr->n_elements; i++) {
-if (val_ptr->value_elements[i] != NULL) {
-ret_val.val_ptr->value_elements[i] = new Can::CAN__frame(*val_ptr->value_elements[i]);
-}
-}
-for (int i=0; i<other_value.val_ptr->n_elements; i++) {
-if (other_value.val_ptr->value_elements[i] != NULL) {
-ret_val.val_ptr->value_elements[i+val_ptr->n_elements] = new Can::CAN__frame(*other_value.val_ptr->value_elements[i]);
-}
-}
-return ret_val;
-}
-
-SocketCAN__bcm__frame_frames_can__frame SocketCAN__bcm__frame_frames_can__frame::substr(int index, int returncount) const
-{
-if (val_ptr == NULL) TTCN_error("The first argument of substr() is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-check_substr_arguments(val_ptr->n_elements, index, returncount, "@Bcm.SocketCAN_bcm_frame.frames.can_frame","element");
-SocketCAN__bcm__frame_frames_can__frame ret_val;
-ret_val.set_size(returncount);
-for (int i=0; i<returncount; i++) {
-if (val_ptr->value_elements[i+index] != NULL) {
-ret_val.val_ptr->value_elements[i] = new Can::CAN__frame(*val_ptr->value_elements[i+index]);
-}
-}
-return ret_val;
-}
-
-SocketCAN__bcm__frame_frames_can__frame SocketCAN__bcm__frame_frames_can__frame::replace(int index, int len, const SocketCAN__bcm__frame_frames_can__frame& repl) const
-{
-if (val_ptr == NULL) TTCN_error("The first argument of replace() is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-if (repl.val_ptr == NULL) TTCN_error("The fourth argument of replace() is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-check_replace_arguments(val_ptr->n_elements, index, len, "@Bcm.SocketCAN_bcm_frame.frames.can_frame","element");
-SocketCAN__bcm__frame_frames_can__frame ret_val;
-ret_val.set_size(val_ptr->n_elements + repl.val_ptr->n_elements - len);
-for (int i = 0; i < index; i++) {
-if (val_ptr->value_elements[i] != NULL) {
-ret_val.val_ptr->value_elements[i] = new Can::CAN__frame(*val_ptr->value_elements[i]);
-}
-}
-for (int i = 0; i < repl.val_ptr->n_elements; i++) {
-if (repl.val_ptr->value_elements[i] != NULL) {
-ret_val.val_ptr->value_elements[i+index] = new Can::CAN__frame(*repl.val_ptr->value_elements[i]);
-}
-}
-for (int i = 0; i < val_ptr->n_elements - index - len; i++) {
-if (val_ptr->value_elements[index+i+len] != NULL) {
-ret_val.val_ptr->value_elements[index+i+repl.val_ptr->n_elements] = new Can::CAN__frame(*val_ptr->value_elements[index+i+len]);
-}
-}
-return ret_val;
-}
-
-SocketCAN__bcm__frame_frames_can__frame SocketCAN__bcm__frame_frames_can__frame::replace(int index, int len, const SocketCAN__bcm__frame_frames_can__frame_template& repl) const
-{
-if (!repl.is_value()) TTCN_error("The fourth argument of function replace() is a template with non-specific value.");
-return replace(index, len, repl.valueof());
-}
-
-void SocketCAN__bcm__frame_frames_can__frame::set_size(int new_size)
-{
-if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-if (val_ptr == NULL) {
-val_ptr = new recordof_setof_struct;
-val_ptr->ref_count = 1;
-val_ptr->n_elements = 0;
-val_ptr->value_elements = NULL;
-} else if (val_ptr->ref_count > 1) {
-struct recordof_setof_struct *new_val_ptr = new recordof_setof_struct;
-new_val_ptr->ref_count = 1;
-new_val_ptr->n_elements = (new_size < val_ptr->n_elements) ? new_size : val_ptr->n_elements;
-new_val_ptr->value_elements = (Can::CAN__frame**)allocate_pointers(new_val_ptr->n_elements);
-for (int elem_count = 0; elem_count < new_val_ptr->n_elements; elem_count++) {
-if (val_ptr->value_elements[elem_count] != NULL){
-new_val_ptr->value_elements[elem_count] = new Can::CAN__frame(*(val_ptr->value_elements[elem_count]));
-}
-}
-clean_up();
-val_ptr = new_val_ptr;
-}
-if (new_size > val_ptr->n_elements) {
-val_ptr->value_elements = (Can::CAN__frame**)reallocate_pointers((void**)val_ptr->value_elements, val_ptr->n_elements, new_size);
-#ifdef TITAN_MEMORY_DEBUG_SET_RECORD_OF
-if((val_ptr->n_elements/1000)!=(new_size/1000)) TTCN_warning("New size of type @Bcm.SocketCAN_bcm_frame.frames.can_frame: %d",new_size);
-#endif
-val_ptr->n_elements = new_size;
-} else if (new_size < val_ptr->n_elements) {
-for (int elem_count = new_size; elem_count < val_ptr->n_elements; elem_count++)
-if (val_ptr->value_elements[elem_count] != NULL)delete val_ptr->value_elements[elem_count];
-val_ptr->value_elements = (Can::CAN__frame**)reallocate_pointers((void**)val_ptr->value_elements, val_ptr->n_elements, new_size);
-val_ptr->n_elements = new_size;
-}
-}
-
-boolean SocketCAN__bcm__frame_frames_can__frame::is_value() const
-{
-if (val_ptr == NULL) return FALSE;
-for(int i = 0; i < val_ptr->n_elements; ++i) {
-if (val_ptr->value_elements[i] == NULL || !val_ptr->value_elements[i]->is_value()) return FALSE;
-}
-return TRUE;
-}
-
-int SocketCAN__bcm__frame_frames_can__frame::size_of() const
-{
-if (val_ptr == NULL) TTCN_error("Performing sizeof operation on an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-return val_ptr->n_elements;
-}
-
-int SocketCAN__bcm__frame_frames_can__frame::lengthof() const
-{
-if (val_ptr == NULL) TTCN_error("Performing lengthof operation on an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-for (int my_length=val_ptr->n_elements; my_length>0; my_length--) if (val_ptr->value_elements[my_length-1] != NULL) return my_length;
-return 0;
-}
-
-void SocketCAN__bcm__frame_frames_can__frame::log() const
-{
-if (val_ptr == NULL) {;
-TTCN_Logger::log_event_unbound();
-return;
-}
-switch (val_ptr->n_elements) {
-case 0:
-TTCN_Logger::log_event_str("{ }");
-break;
-default:
-TTCN_Logger::log_event_str("{ ");
-for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++) {
-if (elem_count > 0) TTCN_Logger::log_event_str(", ");
-(*this)[elem_count].log();
-}
-TTCN_Logger::log_event_str(" }");
-}
-}
-
-void SocketCAN__bcm__frame_frames_can__frame::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, "record of value");
-  switch (param.get_operation_type()) {
-  case Module_Param::OT_ASSIGN:
-    if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) {
-      *this = NULL_VALUE;
-      return;
-    }
-    switch (param.get_type()) {
-    case Module_Param::MP_Value_List:
-      set_size(param.get_size());
-      for (size_t i=0; i<param.get_size(); ++i) {
-        Module_Param* const curr = param.get_elem(i);
-        if (curr->get_type()!=Module_Param::MP_NotUsed) {
-          (*this)[i].set_param(*curr);
-          if (!(*this)[i].is_bound()) {
-            delete val_ptr->value_elements[i];
-            val_ptr->value_elements[i] = NULL;
-          }
-        }
-      }
-      break;
-    case Module_Param::MP_Indexed_List:
-      for (size_t i=0; i<param.get_size(); ++i) {
-        Module_Param* const curr = param.get_elem(i);
-        (*this)[curr->get_id()->get_index()].set_param(*curr);
-        if (!(*this)[curr->get_id()->get_index()].is_bound()) {
-          delete val_ptr->value_elements[curr->get_id()->get_index()];
-          val_ptr->value_elements[curr->get_id()->get_index()] = NULL;
-        }
-      }
-      break;
-    default:
-      param.type_error("record of value", "@Bcm.SocketCAN_bcm_frame.frames.can_frame");
-    }
-    break;
-  case Module_Param::OT_CONCAT:
-    switch (param.get_type()) {
-    case Module_Param::MP_Value_List: {
-      if (!is_bound()) *this = NULL_VALUE;
-      int start_idx = lengthof();
-      for (size_t i=0; i<param.get_size(); ++i) {
-        Module_Param* const curr = param.get_elem(i);
-        if ((curr->get_type()!=Module_Param::MP_NotUsed)) {
-          (*this)[start_idx+(int)i].set_param(*curr);
-        }
-      }
-    } break;
-    case Module_Param::MP_Indexed_List:
-      param.error("Cannot concatenate an indexed value list");
-      break;
-    default:
-      param.type_error("record of value", "@Bcm.SocketCAN_bcm_frame.frames.can_frame");
-    }
-    break;
-  default:
-    TTCN_error("Internal error: Unknown operation type.");
-  }
-}
-
-void SocketCAN__bcm__frame_frames_can__frame::set_implicit_omit()
-{
-if (val_ptr == NULL) return;
-for (int i = 0; i < val_ptr->n_elements; i++) {
-if (val_ptr->value_elements[i] != NULL) val_ptr->value_elements[i]->set_implicit_omit();
-}
-}
-
-void SocketCAN__bcm__frame_frames_can__frame::encode_text(Text_Buf& text_buf) const
-{
-if (val_ptr == NULL) TTCN_error("Text encoder: Encoding an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-text_buf.push_int(val_ptr->n_elements);
-for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++)
-(*this)[elem_count].encode_text(text_buf);
-}
-
-void SocketCAN__bcm__frame_frames_can__frame::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-val_ptr = new recordof_setof_struct;
-val_ptr->ref_count = 1;
-val_ptr->n_elements = text_buf.pull_int().get_val();
-if (val_ptr->n_elements < 0) TTCN_error("Text decoder: Negative size was received for a value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-val_ptr->value_elements = (Can::CAN__frame**)allocate_pointers(val_ptr->n_elements);
-for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++) {
-val_ptr->value_elements[elem_count] = new Can::CAN__frame;
-val_ptr->value_elements[elem_count]->decode_text(text_buf);
-}
-}
-
-void SocketCAN__bcm__frame_frames_can__frame_template::copy_value(const SocketCAN__bcm__frame_frames_can__frame& other_value)
-{
-if (!other_value.is_bound()) TTCN_error("Initialization of a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame with an unbound value.");
-single_value.n_elements = other_value.size_of();
-single_value.value_elements = (Can::CAN__frame_template**)allocate_pointers(single_value.n_elements);
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
-if (other_value[elem_count].is_bound()) {
-single_value.value_elements[elem_count] = new Can::CAN__frame_template(other_value[elem_count]);
-} else {
-single_value.value_elements[elem_count] = new Can::CAN__frame_template;
-}
-}
-set_selection(SPECIFIC_VALUE);
-}
-
-void SocketCAN__bcm__frame_frames_can__frame_template::copy_template(const SocketCAN__bcm__frame_frames_can__frame_template& other_value)
-{
-switch (other_value.template_selection) {
-case SPECIFIC_VALUE:
-single_value.n_elements = other_value.single_value.n_elements;
-single_value.value_elements = (Can::CAN__frame_template**)allocate_pointers(single_value.n_elements);
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
-if (UNINITIALIZED_TEMPLATE != other_value.single_value.value_elements[elem_count]->get_selection()) {
-single_value.value_elements[elem_count] = new Can::CAN__frame_template(*other_value.single_value.value_elements[elem_count]);
-} else {
-single_value.value_elements[elem_count] = new Can::CAN__frame_template;
-}
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new SocketCAN__bcm__frame_frames_can__frame_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized/unsupported template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-break;
-}
-set_selection(other_value);
-}
-
-boolean SocketCAN__bcm__frame_frames_can__frame_template::match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy)
-{
-if (value_index >= 0) return ((const SocketCAN__bcm__frame_frames_can__frame_template*)template_ptr)->single_value.value_elements[template_index]->match((*(const SocketCAN__bcm__frame_frames_can__frame*)value_ptr)[value_index], legacy);
-else return ((const SocketCAN__bcm__frame_frames_can__frame_template*)template_ptr)->single_value.value_elements[template_index]->is_any_or_omit();
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template::SocketCAN__bcm__frame_frames_can__frame_template()
-{
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template::SocketCAN__bcm__frame_frames_can__frame_template(template_sel other_value)
- : Record_Of_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template::SocketCAN__bcm__frame_frames_can__frame_template(null_type)
- : Record_Of_Template(SPECIFIC_VALUE)
-{
-single_value.n_elements = 0;
-single_value.value_elements = NULL;
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template::SocketCAN__bcm__frame_frames_can__frame_template(const SocketCAN__bcm__frame_frames_can__frame& other_value)
-{
-copy_value(other_value);
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template::SocketCAN__bcm__frame_frames_can__frame_template(const OPTIONAL<SocketCAN__bcm__frame_frames_can__frame>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const SocketCAN__bcm__frame_frames_can__frame&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame from an unbound optional field.");
-}
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template::SocketCAN__bcm__frame_frames_can__frame_template(const SocketCAN__bcm__frame_frames_can__frame_template& other_value)
- : Record_Of_Template()
-{
-copy_template(other_value);
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template::~SocketCAN__bcm__frame_frames_can__frame_template()
-{
-clean_up();
-}
-
-void SocketCAN__bcm__frame_frames_can__frame_template::clean_up()
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
-delete single_value.value_elements[elem_count];
-free_pointers((void**)single_value.value_elements);
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-delete [] value_list.list_value;
-default:
-break;
-}
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template& SocketCAN__bcm__frame_frames_can__frame_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template& SocketCAN__bcm__frame_frames_can__frame_template::operator=(null_type)
-{
-clean_up();
-set_selection(SPECIFIC_VALUE);
-single_value.n_elements = 0;
-single_value.value_elements = NULL;
-return *this;
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template& SocketCAN__bcm__frame_frames_can__frame_template::operator=(const SocketCAN__bcm__frame_frames_can__frame& other_value)
-{
-clean_up();
-copy_value(other_value);
-return *this;
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template& SocketCAN__bcm__frame_frames_can__frame_template::operator=(const OPTIONAL<SocketCAN__bcm__frame_frames_can__frame>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const SocketCAN__bcm__frame_frames_can__frame&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-}
-return *this;
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template& SocketCAN__bcm__frame_frames_can__frame_template::operator=(const SocketCAN__bcm__frame_frames_can__frame_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-Can::CAN__frame_template& SocketCAN__bcm__frame_frames_can__frame_template::operator[](int index_value)
-{
-if (index_value < 0) TTCN_error("Accessing an element of a template for type @Bcm.SocketCAN_bcm_frame.frames.can_frame using a negative index: %d.", index_value);
-switch (template_selection)
-{
-  case SPECIFIC_VALUE:
-    if(index_value < single_value.n_elements) break;
-    // no break
-  case OMIT_VALUE:
-  case ANY_VALUE:
-  case ANY_OR_OMIT:
-  case UNINITIALIZED_TEMPLATE:
-    set_size(index_value + 1);
-    break;
-  default:
-    TTCN_error("Accessing an element of a non-specific template for type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-    break;
-}
-return *single_value.value_elements[index_value];
-}
-
-Can::CAN__frame_template& SocketCAN__bcm__frame_frames_can__frame_template::operator[](const INTEGER& index_value)
-{
-index_value.must_bound("Using an unbound integer value for indexing a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-return (*this)[(int)index_value];
-}
-
-const Can::CAN__frame_template& SocketCAN__bcm__frame_frames_can__frame_template::operator[](int index_value) const
-{
-if (index_value < 0) TTCN_error("Accessing an element of a template for type @Bcm.SocketCAN_bcm_frame.frames.can_frame using a negative index: %d.", index_value);
-if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing an element of a non-specific template for type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-if (index_value >= single_value.n_elements) TTCN_error("Index overflow in a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame: The index is %d, but the template has only %d elements.", index_value, single_value.n_elements);
-return *single_value.value_elements[index_value];
-}
-
-const Can::CAN__frame_template& SocketCAN__bcm__frame_frames_can__frame_template::operator[](const INTEGER& index_value) const
-{
-index_value.must_bound("Using an unbound integer value for indexing a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-return (*this)[(int)index_value];
-}
-
-void SocketCAN__bcm__frame_frames_can__frame_template::set_size(int new_size)
-{
-if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-template_sel old_selection = template_selection;
-if (old_selection != SPECIFIC_VALUE) {
-clean_up();
-set_selection(SPECIFIC_VALUE);
-single_value.n_elements = 0;
-single_value.value_elements = NULL;
-}
-if (new_size > single_value.n_elements) {
-single_value.value_elements = (Can::CAN__frame_template**)reallocate_pointers((void**)single_value.value_elements, single_value.n_elements, new_size);
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
-for (int elem_count = single_value.n_elements; elem_count < new_size; elem_count++)
-single_value.value_elements[elem_count] = new Can::CAN__frame_template(ANY_VALUE);
-} else {
-for (int elem_count = single_value.n_elements; elem_count < new_size; elem_count++)
-single_value.value_elements[elem_count] = new Can::CAN__frame_template;
-}
-single_value.n_elements = new_size;
-} else if (new_size < single_value.n_elements) {
-for (int elem_count = new_size; elem_count < single_value.n_elements; elem_count++)
-delete single_value.value_elements[elem_count];
-single_value.value_elements = (Can::CAN__frame_template**)reallocate_pointers((void**)single_value.value_elements, single_value.n_elements, new_size);
-single_value.n_elements = new_size;
-}
-}
-
-int SocketCAN__bcm__frame_frames_can__frame_template::n_elem() const
-{
-  switch (template_selection) {
-  case SPECIFIC_VALUE:
-    return single_value.n_elements;
-    break;
-  case VALUE_LIST:
-    return value_list.n_values;
-    break;
-  default:
-    TTCN_error("Performing n_elem");
-  }
-}
-
-int SocketCAN__bcm__frame_frames_can__frame_template::size_of(boolean is_size) const
-{
-const char* op_name = is_size ? "size" : "length";
-int min_size;
-boolean has_any_or_none;
-if (is_ifpresent) TTCN_error("Performing %sof() operation on a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame which has an ifpresent attribute.", op_name);
-switch (template_selection)
-{
-case SPECIFIC_VALUE: {
-  min_size = 0;
-  has_any_or_none = FALSE;
-  int elem_count = single_value.n_elements;
-  if (!is_size) { while (elem_count>0 && !single_value.value_elements[elem_count-1]->is_bound()) elem_count--; }
-  for (int i=0; i<elem_count; i++) {
-    switch (single_value.value_elements[i]->get_selection()) {
-    case OMIT_VALUE:
-      TTCN_error("Performing %sof() operation on a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame containing omit element.", op_name);
-    case ANY_OR_OMIT:
-      has_any_or_none = TRUE;
-      break;
-    default:
-      min_size++;
-      break;
-    }
-  }
-} break;
-case OMIT_VALUE:
-  TTCN_error("Performing %sof() operation on a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame containing omit value.", op_name);
-case ANY_VALUE:
-case ANY_OR_OMIT:
-  min_size = 0;
-  has_any_or_none = TRUE;
-  break;
-case VALUE_LIST:
-{
-  if (value_list.n_values<1)
-    TTCN_error("Performing %sof() operation on a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame containing an empty list.", op_name);
-  int item_size = value_list.list_value[0].size_of(is_size);
-  for (unsigned int i = 1; i < value_list.n_values; i++) {
-    if (value_list.list_value[i].size_of(is_size)!=item_size)
-      TTCN_error("Performing %sof() operation on a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame containing a value list with different sizes.", op_name);
-  }
-  min_size = item_size;
-  has_any_or_none = FALSE;
-  break;
-}
-case COMPLEMENTED_LIST:
-  TTCN_error("Performing %sof() operation on a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame containing complemented list.", op_name);
-default:
-  TTCN_error("Performing %sof() operation on an uninitialized/unsupported template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.", op_name);
-}
-return check_section_is_single(min_size, has_any_or_none, op_name, "a", "template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame");
-}
-
-boolean SocketCAN__bcm__frame_frames_can__frame_template::match(const SocketCAN__bcm__frame_frames_can__frame& other_value, boolean legacy) const
-{
-if (!other_value.is_bound()) return FALSE;
-int value_length = other_value.size_of();
-if (!match_length(value_length)) return FALSE;
-switch (template_selection) {
-case SPECIFIC_VALUE:
-return match_record_of(&other_value, value_length, this, single_value.n_elements, match_function_specific, legacy);
-case OMIT_VALUE:
-return FALSE;
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error("Matching with an uninitialized/unsupported template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-}
-return FALSE;
-}
-
-boolean SocketCAN__bcm__frame_frames_can__frame_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
-if (!single_value.value_elements[elem_count]->is_value()) return FALSE;
-return TRUE;
-}
-
-SocketCAN__bcm__frame_frames_can__frame SocketCAN__bcm__frame_frames_can__frame_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-SocketCAN__bcm__frame_frames_can__frame ret_val;
-ret_val.set_size(single_value.n_elements);
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
-if (single_value.value_elements[elem_count]->is_bound()) {
-ret_val[elem_count] = single_value.value_elements[elem_count]->valueof();
-}
-return ret_val;
-}
-
-SocketCAN__bcm__frame_frames_can__frame SocketCAN__bcm__frame_frames_can__frame_template::substr(int index, int returncount) const
-{
-if (!is_value()) TTCN_error("The first argument of function substr() is a template with non-specific value.");
-return valueof().substr(index, returncount);
-}
-
-SocketCAN__bcm__frame_frames_can__frame SocketCAN__bcm__frame_frames_can__frame_template::replace(int index, int len, const SocketCAN__bcm__frame_frames_can__frame_template& repl) const
-{
-if (!is_value()) TTCN_error("The first argument of function replace() is a template with non-specific value.");
-if (!repl.is_value()) TTCN_error("The fourth argument of function replace() is a template with non-specific value.");
-return valueof().replace(index, len, repl.valueof());
-}
-
-SocketCAN__bcm__frame_frames_can__frame SocketCAN__bcm__frame_frames_can__frame_template::replace(int index, int len, const SocketCAN__bcm__frame_frames_can__frame& repl) const
-{
-if (!is_value()) TTCN_error("The first argument of function replace() is a template with non-specific value.");
-return valueof().replace(index, len, repl);
-}
-
-void SocketCAN__bcm__frame_frames_can__frame_template::set_type(template_sel template_type, unsigned int list_length)
-{
-clean_up();
-switch (template_type) {
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = list_length;
-value_list.list_value = new SocketCAN__bcm__frame_frames_can__frame_template[list_length];
-break;
-default:
-TTCN_error("Internal error: Setting an invalid type for a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-}
-set_selection(template_type);
-}
-
-SocketCAN__bcm__frame_frames_can__frame_template& SocketCAN__bcm__frame_frames_can__frame_template::list_item(unsigned int list_index)
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Internal error: Accessing a list element of a non-list template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-return value_list.list_value[list_index];
-}
-
-void SocketCAN__bcm__frame_frames_can__frame_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-if (single_value.n_elements > 0) {
-TTCN_Logger::log_event_str("{ ");
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
-if (elem_count > 0) TTCN_Logger::log_event_str(", ");
-if (permutation_starts_at(elem_count)) TTCN_Logger::log_event_str("permutation(");
-single_value.value_elements[elem_count]->log();
-if (permutation_ends_at(elem_count)) TTCN_Logger::log_char(')');
-}
-TTCN_Logger::log_event_str(" }");
-} else TTCN_Logger::log_event_str("{ }");
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) {
-if (list_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[list_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_restricted();
-log_ifpresent();
-}
-
-void SocketCAN__bcm__frame_frames_can__frame_template::log_match(const SocketCAN__bcm__frame_frames_can__frame& match_value, boolean legacy) const
-{
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-if(match(match_value, legacy)){
-TTCN_Logger::print_logmatch_buffer();
-TTCN_Logger::log_event_str(" matched");
-}else{
-if (template_selection == SPECIFIC_VALUE && single_value.n_elements > 0 && get_number_of_permutations() == 0 && single_value.n_elements == match_value.size_of()) {
-size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
-if(!single_value.value_elements[elem_count]->match(match_value[elem_count], legacy)){
-TTCN_Logger::log_logmatch_info("[%d]", elem_count);
-single_value.value_elements[elem_count]->log_match(match_value[elem_count], legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-}
-log_match_length(single_value.n_elements);
-} else {
-TTCN_Logger::print_logmatch_buffer();
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-TTCN_Logger::log_event_str(" unmatched");
-}
-}
-return;
-}
-if (template_selection == SPECIFIC_VALUE && single_value.n_elements > 0 && get_number_of_permutations() == 0 && single_value.n_elements == match_value.size_of()) {
-TTCN_Logger::log_event_str("{ ");
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
-if (elem_count > 0) TTCN_Logger::log_event_str(", ");
-single_value.value_elements[elem_count]->log_match(match_value[elem_count], legacy);
-}
-TTCN_Logger::log_event_str(" }");
-log_match_length(single_value.n_elements);
-} else {
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-}
-
-void SocketCAN__bcm__frame_frames_can__frame_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_permutation(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-text_buf.push_int(single_value.n_elements);
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
-single_value.value_elements[elem_count]->encode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-}
-}
-
-void SocketCAN__bcm__frame_frames_can__frame_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_permutation(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value.n_elements = text_buf.pull_int().get_val();
-if (single_value.n_elements < 0) TTCN_error("Text decoder: Negative size was received for a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-single_value.value_elements = (Can::CAN__frame_template**)allocate_pointers(single_value.n_elements);
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
-single_value.value_elements[elem_count] = new Can::CAN__frame_template;
-single_value.value_elements[elem_count]->decode_text(text_buf);
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new SocketCAN__bcm__frame_frames_can__frame_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-}
-}
-
-boolean SocketCAN__bcm__frame_frames_can__frame_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean SocketCAN__bcm__frame_frames_can__frame_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int i=0; i<value_list.n_values; i++)
-if (value_list.list_value[i].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-void SocketCAN__bcm__frame_frames_can__frame_template::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "record of template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    SocketCAN__bcm__frame_frames_can__frame_template temp;
-    temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      temp.list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    *this = temp;
-    break; }
-  case Module_Param::MP_Indexed_List:
-    if (template_selection!=SPECIFIC_VALUE) set_size(0);
-    for (size_t p_i=0; p_i<param.get_size(); ++p_i) {
-      (*this)[(int)(param.get_elem(p_i)->get_id()->get_index())].set_param(*param.get_elem(p_i));
-    }
-    break;
-  case Module_Param::MP_Value_List: {
-    set_size(param.get_size());
-    int curr_idx = 0;
-    for (size_t p_i=0; p_i<param.get_size(); ++p_i) {
-      switch (param.get_elem(p_i)->get_type()) {
-      case Module_Param::MP_NotUsed:
-        curr_idx++;
-        break;
-      case Module_Param::MP_Permutation_Template: {
-        int perm_start_idx = curr_idx;
-        Module_Param* param_i = param.get_elem(p_i);
-        for (size_t perm_i=0; perm_i<param_i->get_size(); perm_i++) {
-          (*this)[curr_idx].set_param(*(param_i->get_elem(perm_i)));
-          curr_idx++;
-        }
-        int perm_end_idx = curr_idx - 1;
-        add_permutation(perm_start_idx, perm_end_idx);
-      } break;
-      default:
-        (*this)[curr_idx].set_param(*param.get_elem(p_i));
-        curr_idx++;
-      }
-    }
-  } break;
-  default:
-    param.type_error("record of template", "@Bcm.SocketCAN_bcm_frame.frames.can_frame");
-  }
-  is_ifpresent = param.get_ifpresent();
-  set_length_range(param);
-}
-
-void SocketCAN__bcm__frame_frames_can__frame_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_OMIT:
-if (template_selection==OMIT_VALUE) return;
-case TR_VALUE:
-if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break;
-for (int i=0; i<single_value.n_elements; i++) single_value.value_elements[i]->check_restriction(t_res, t_name ? t_name : "@Bcm.SocketCAN_bcm_frame.frames.can_frame");
-return;
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@Bcm.SocketCAN_bcm_frame.frames.can_frame");
-}
-
-boolean SocketCAN__bcm__frame_frames_can__frame_template::get_istemplate_kind(const char* type) const {
-if (!strcmp(type, "AnyElement")) {
-  if (template_selection != SPECIFIC_VALUE) {
-    return FALSE;
-  }
-  for (int i = 0; i < single_value.n_elements; i++) {
-    if (single_value.value_elements[i]->get_selection() == ANY_VALUE) {
-      return TRUE;
-    }
-  }
-  return FALSE;
-} else if (!strcmp(type, "AnyElementsOrNone")) {
-  if (template_selection != SPECIFIC_VALUE) {
-    return FALSE;
-  }
-  for (int i = 0; i < single_value.n_elements; i++) {
-    if (single_value.value_elements[i]->get_selection() == ANY_OR_OMIT) {
-      return TRUE;
-    }
-  }
-  return FALSE;
-} else if (!strcmp(type, "permutation")) {
-  return number_of_permutations;
-} else if (!strcmp(type, "length")) {
-  return length_restriction_type != NO_LENGTH_RESTRICTION;
-} else {
-  return Base_Template::get_istemplate_kind(type);
-}
-}
-
-const Can::CANFD__frame SocketCAN__bcm__frame_frames_canfd__frame::UNBOUND_ELEM;
-SocketCAN__bcm__frame_frames_canfd__frame::SocketCAN__bcm__frame_frames_canfd__frame()
-{
-val_ptr = NULL;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame::SocketCAN__bcm__frame_frames_canfd__frame(null_type)
-{
-val_ptr = new recordof_setof_struct;
-val_ptr->ref_count = 1;
-val_ptr->n_elements = 0;
-val_ptr->value_elements = NULL;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame::SocketCAN__bcm__frame_frames_canfd__frame(const SocketCAN__bcm__frame_frames_canfd__frame& other_value)
-{
-if (!other_value.is_bound()) TTCN_error("Copying an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-val_ptr = other_value.val_ptr;
-val_ptr->ref_count++;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame::~SocketCAN__bcm__frame_frames_canfd__frame()
-{
-clean_up();
-if (val_ptr != NULL) val_ptr = NULL;
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame::clean_up()
-{
-if (val_ptr != NULL) {
-if (val_ptr->ref_count > 1) {
-val_ptr->ref_count--;
-val_ptr = NULL;
-}
-else if (val_ptr->ref_count == 1) {
-for (int elem_count = 0; elem_count < val_ptr->n_elements;
-elem_count++)
-if (val_ptr->value_elements[elem_count] != NULL)
-delete val_ptr->value_elements[elem_count];
-free_pointers((void**)val_ptr->value_elements);
-delete val_ptr;
-val_ptr = NULL;
-}
-else
-TTCN_error("Internal error: Invalid reference counter in a record of/set of value.");
-}
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame& SocketCAN__bcm__frame_frames_canfd__frame::operator=(null_type)
-{
-clean_up();
-val_ptr = new recordof_setof_struct;
-val_ptr->ref_count = 1;
-val_ptr->n_elements = 0;
-val_ptr->value_elements = NULL;
-return *this;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame& SocketCAN__bcm__frame_frames_canfd__frame::operator=(const SocketCAN__bcm__frame_frames_canfd__frame& other_value)
-{
-if (other_value.val_ptr == NULL) TTCN_error("Assigning an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-if (this != &other_value) {
-clean_up();
-val_ptr = other_value.val_ptr;
-val_ptr->ref_count++;
-}
-return *this;
-}
-
-boolean SocketCAN__bcm__frame_frames_canfd__frame::operator==(null_type) const
-{
-if (val_ptr == NULL)
-TTCN_error("The left operand of comparison is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-return val_ptr->n_elements == 0 ;
-}
-
-boolean SocketCAN__bcm__frame_frames_canfd__frame::operator==(const SocketCAN__bcm__frame_frames_canfd__frame& other_value) const
-{
-if (val_ptr == NULL) TTCN_error("The left operand of comparison is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-if (other_value.val_ptr == NULL) TTCN_error("The right operand of comparison is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-if (val_ptr == other_value.val_ptr) return TRUE;
-if (val_ptr->n_elements != (other_value.val_ptr)->n_elements)
-return FALSE;
-for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++){
-if (val_ptr->value_elements[elem_count] != NULL){
-if ((other_value.val_ptr)->value_elements[elem_count] != NULL){
-  if (*val_ptr->value_elements[elem_count] != *(other_value.val_ptr)->value_elements[elem_count]) return FALSE;
-} else return FALSE;
-} else {
-if ((other_value.val_ptr)->value_elements[elem_count] != NULL) return FALSE;
-}
-}
-return TRUE;
-}
-
-Can::CANFD__frame& SocketCAN__bcm__frame_frames_canfd__frame::operator[](int index_value)
-{
-if (index_value < 0) TTCN_error("Accessing an element of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame using a negative index: %d.", index_value);
-if (val_ptr == NULL) {
-val_ptr = new recordof_setof_struct;
-val_ptr->ref_count = 1;
-val_ptr->n_elements = 0;
-val_ptr->value_elements = NULL;
-} else if (val_ptr->ref_count > 1) {
-struct recordof_setof_struct *new_val_ptr = new recordof_setof_struct;
-new_val_ptr->ref_count = 1;
-new_val_ptr->n_elements = (index_value >= val_ptr->n_elements) ? index_value + 1 : val_ptr->n_elements;
-new_val_ptr->value_elements = (Can::CANFD__frame**)allocate_pointers(new_val_ptr->n_elements);
-for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++){
-if (val_ptr->value_elements[elem_count] != NULL){
-new_val_ptr->value_elements[elem_count] = new Can::CANFD__frame(*(val_ptr->value_elements[elem_count]));
-}
-}
-clean_up();
-val_ptr = new_val_ptr;
-}
-if (index_value >= val_ptr->n_elements) set_size(index_value + 1);
-if (val_ptr->value_elements[index_value] == NULL) {
-val_ptr->value_elements[index_value] = new Can::CANFD__frame;
-}
-return *val_ptr->value_elements[index_value];
-}
-
-Can::CANFD__frame& SocketCAN__bcm__frame_frames_canfd__frame::operator[](const INTEGER& index_value)
-{
-index_value.must_bound("Using an unbound integer value for indexing a value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-return (*this)[(int)index_value];
-}
-
-const Can::CANFD__frame& SocketCAN__bcm__frame_frames_canfd__frame::operator[](int index_value) const
-{
-if (val_ptr == NULL)
-TTCN_error("Accessing an element in an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-if (index_value < 0) TTCN_error("Accessing an element of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame using a negative index: %d.", index_value);
-if (index_value >= val_ptr->n_elements) TTCN_error("Index overflow in a value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame: The index is %d, but the value has only %d elements.", index_value, val_ptr->n_elements);
-return (val_ptr->value_elements[index_value] == NULL) ?
-UNBOUND_ELEM : *val_ptr->value_elements[index_value];
-}
-
-const Can::CANFD__frame& SocketCAN__bcm__frame_frames_canfd__frame::operator[](const INTEGER& index_value) const
-{
-index_value.must_bound("Using an unbound integer value for indexing a value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-return (*this)[(int)index_value];
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame SocketCAN__bcm__frame_frames_canfd__frame::operator<<=(int rotate_count) const
-{
-return *this >>= (-rotate_count);
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame SocketCAN__bcm__frame_frames_canfd__frame::operator<<=(const INTEGER& rotate_count) const
-{
-rotate_count.must_bound("Unbound integer operand of rotate left operator.");
-return *this >>= (int)(-rotate_count);
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame SocketCAN__bcm__frame_frames_canfd__frame::operator>>=(const INTEGER& rotate_count) const
-{
-rotate_count.must_bound("Unbound integer operand of rotate right operator.");
-return *this >>= (int)rotate_count;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame SocketCAN__bcm__frame_frames_canfd__frame::operator>>=(int rotate_count) const
-{
-if (val_ptr == NULL) TTCN_error("Performing rotation operation on an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-if (val_ptr->n_elements == 0) return *this;
-int rc;
-if (rotate_count>=0) rc = rotate_count % val_ptr->n_elements;
-else rc = val_ptr->n_elements - ((-rotate_count) % val_ptr->n_elements);
-if (rc == 0) return *this;
-SocketCAN__bcm__frame_frames_canfd__frame ret_val;
-ret_val.set_size(val_ptr->n_elements);
-for (int i=0; i<val_ptr->n_elements; i++) {
-if (val_ptr->value_elements[i] != NULL) {
-ret_val.val_ptr->value_elements[(i+rc)%val_ptr->n_elements] =new Can::CANFD__frame(*val_ptr->value_elements[i]);
-}
-}
-return ret_val;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame SocketCAN__bcm__frame_frames_canfd__frame::operator+(const SocketCAN__bcm__frame_frames_canfd__frame& other_value) const
-{
-if (val_ptr == NULL || other_value.val_ptr == NULL) TTCN_error("Unbound operand of @Bcm.SocketCAN_bcm_frame.frames.canfd_frame concatenation.");
-if (val_ptr->n_elements == 0) return other_value;
-if (other_value.val_ptr->n_elements == 0) return *this;
-SocketCAN__bcm__frame_frames_canfd__frame ret_val;
-ret_val.set_size(val_ptr->n_elements+other_value.val_ptr->n_elements);
-for (int i=0; i<val_ptr->n_elements; i++) {
-if (val_ptr->value_elements[i] != NULL) {
-ret_val.val_ptr->value_elements[i] = new Can::CANFD__frame(*val_ptr->value_elements[i]);
-}
-}
-for (int i=0; i<other_value.val_ptr->n_elements; i++) {
-if (other_value.val_ptr->value_elements[i] != NULL) {
-ret_val.val_ptr->value_elements[i+val_ptr->n_elements] = new Can::CANFD__frame(*other_value.val_ptr->value_elements[i]);
-}
-}
-return ret_val;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame SocketCAN__bcm__frame_frames_canfd__frame::substr(int index, int returncount) const
-{
-if (val_ptr == NULL) TTCN_error("The first argument of substr() is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-check_substr_arguments(val_ptr->n_elements, index, returncount, "@Bcm.SocketCAN_bcm_frame.frames.canfd_frame","element");
-SocketCAN__bcm__frame_frames_canfd__frame ret_val;
-ret_val.set_size(returncount);
-for (int i=0; i<returncount; i++) {
-if (val_ptr->value_elements[i+index] != NULL) {
-ret_val.val_ptr->value_elements[i] = new Can::CANFD__frame(*val_ptr->value_elements[i+index]);
-}
-}
-return ret_val;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame SocketCAN__bcm__frame_frames_canfd__frame::replace(int index, int len, const SocketCAN__bcm__frame_frames_canfd__frame& repl) const
-{
-if (val_ptr == NULL) TTCN_error("The first argument of replace() is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-if (repl.val_ptr == NULL) TTCN_error("The fourth argument of replace() is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-check_replace_arguments(val_ptr->n_elements, index, len, "@Bcm.SocketCAN_bcm_frame.frames.canfd_frame","element");
-SocketCAN__bcm__frame_frames_canfd__frame ret_val;
-ret_val.set_size(val_ptr->n_elements + repl.val_ptr->n_elements - len);
-for (int i = 0; i < index; i++) {
-if (val_ptr->value_elements[i] != NULL) {
-ret_val.val_ptr->value_elements[i] = new Can::CANFD__frame(*val_ptr->value_elements[i]);
-}
-}
-for (int i = 0; i < repl.val_ptr->n_elements; i++) {
-if (repl.val_ptr->value_elements[i] != NULL) {
-ret_val.val_ptr->value_elements[i+index] = new Can::CANFD__frame(*repl.val_ptr->value_elements[i]);
-}
-}
-for (int i = 0; i < val_ptr->n_elements - index - len; i++) {
-if (val_ptr->value_elements[index+i+len] != NULL) {
-ret_val.val_ptr->value_elements[index+i+repl.val_ptr->n_elements] = new Can::CANFD__frame(*val_ptr->value_elements[index+i+len]);
-}
-}
-return ret_val;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame SocketCAN__bcm__frame_frames_canfd__frame::replace(int index, int len, const SocketCAN__bcm__frame_frames_canfd__frame_template& repl) const
-{
-if (!repl.is_value()) TTCN_error("The fourth argument of function replace() is a template with non-specific value.");
-return replace(index, len, repl.valueof());
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame::set_size(int new_size)
-{
-if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-if (val_ptr == NULL) {
-val_ptr = new recordof_setof_struct;
-val_ptr->ref_count = 1;
-val_ptr->n_elements = 0;
-val_ptr->value_elements = NULL;
-} else if (val_ptr->ref_count > 1) {
-struct recordof_setof_struct *new_val_ptr = new recordof_setof_struct;
-new_val_ptr->ref_count = 1;
-new_val_ptr->n_elements = (new_size < val_ptr->n_elements) ? new_size : val_ptr->n_elements;
-new_val_ptr->value_elements = (Can::CANFD__frame**)allocate_pointers(new_val_ptr->n_elements);
-for (int elem_count = 0; elem_count < new_val_ptr->n_elements; elem_count++) {
-if (val_ptr->value_elements[elem_count] != NULL){
-new_val_ptr->value_elements[elem_count] = new Can::CANFD__frame(*(val_ptr->value_elements[elem_count]));
-}
-}
-clean_up();
-val_ptr = new_val_ptr;
-}
-if (new_size > val_ptr->n_elements) {
-val_ptr->value_elements = (Can::CANFD__frame**)reallocate_pointers((void**)val_ptr->value_elements, val_ptr->n_elements, new_size);
-#ifdef TITAN_MEMORY_DEBUG_SET_RECORD_OF
-if((val_ptr->n_elements/1000)!=(new_size/1000)) TTCN_warning("New size of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame: %d",new_size);
-#endif
-val_ptr->n_elements = new_size;
-} else if (new_size < val_ptr->n_elements) {
-for (int elem_count = new_size; elem_count < val_ptr->n_elements; elem_count++)
-if (val_ptr->value_elements[elem_count] != NULL)delete val_ptr->value_elements[elem_count];
-val_ptr->value_elements = (Can::CANFD__frame**)reallocate_pointers((void**)val_ptr->value_elements, val_ptr->n_elements, new_size);
-val_ptr->n_elements = new_size;
-}
-}
-
-boolean SocketCAN__bcm__frame_frames_canfd__frame::is_value() const
-{
-if (val_ptr == NULL) return FALSE;
-for(int i = 0; i < val_ptr->n_elements; ++i) {
-if (val_ptr->value_elements[i] == NULL || !val_ptr->value_elements[i]->is_value()) return FALSE;
-}
-return TRUE;
-}
-
-int SocketCAN__bcm__frame_frames_canfd__frame::size_of() const
-{
-if (val_ptr == NULL) TTCN_error("Performing sizeof operation on an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-return val_ptr->n_elements;
-}
-
-int SocketCAN__bcm__frame_frames_canfd__frame::lengthof() const
-{
-if (val_ptr == NULL) TTCN_error("Performing lengthof operation on an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-for (int my_length=val_ptr->n_elements; my_length>0; my_length--) if (val_ptr->value_elements[my_length-1] != NULL) return my_length;
-return 0;
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame::log() const
-{
-if (val_ptr == NULL) {;
-TTCN_Logger::log_event_unbound();
-return;
-}
-switch (val_ptr->n_elements) {
-case 0:
-TTCN_Logger::log_event_str("{ }");
-break;
-default:
-TTCN_Logger::log_event_str("{ ");
-for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++) {
-if (elem_count > 0) TTCN_Logger::log_event_str(", ");
-(*this)[elem_count].log();
-}
-TTCN_Logger::log_event_str(" }");
-}
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, "record of value");
-  switch (param.get_operation_type()) {
-  case Module_Param::OT_ASSIGN:
-    if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) {
-      *this = NULL_VALUE;
-      return;
-    }
-    switch (param.get_type()) {
-    case Module_Param::MP_Value_List:
-      set_size(param.get_size());
-      for (size_t i=0; i<param.get_size(); ++i) {
-        Module_Param* const curr = param.get_elem(i);
-        if (curr->get_type()!=Module_Param::MP_NotUsed) {
-          (*this)[i].set_param(*curr);
-          if (!(*this)[i].is_bound()) {
-            delete val_ptr->value_elements[i];
-            val_ptr->value_elements[i] = NULL;
-          }
-        }
-      }
-      break;
-    case Module_Param::MP_Indexed_List:
-      for (size_t i=0; i<param.get_size(); ++i) {
-        Module_Param* const curr = param.get_elem(i);
-        (*this)[curr->get_id()->get_index()].set_param(*curr);
-        if (!(*this)[curr->get_id()->get_index()].is_bound()) {
-          delete val_ptr->value_elements[curr->get_id()->get_index()];
-          val_ptr->value_elements[curr->get_id()->get_index()] = NULL;
-        }
-      }
-      break;
-    default:
-      param.type_error("record of value", "@Bcm.SocketCAN_bcm_frame.frames.canfd_frame");
-    }
-    break;
-  case Module_Param::OT_CONCAT:
-    switch (param.get_type()) {
-    case Module_Param::MP_Value_List: {
-      if (!is_bound()) *this = NULL_VALUE;
-      int start_idx = lengthof();
-      for (size_t i=0; i<param.get_size(); ++i) {
-        Module_Param* const curr = param.get_elem(i);
-        if ((curr->get_type()!=Module_Param::MP_NotUsed)) {
-          (*this)[start_idx+(int)i].set_param(*curr);
-        }
-      }
-    } break;
-    case Module_Param::MP_Indexed_List:
-      param.error("Cannot concatenate an indexed value list");
-      break;
-    default:
-      param.type_error("record of value", "@Bcm.SocketCAN_bcm_frame.frames.canfd_frame");
-    }
-    break;
-  default:
-    TTCN_error("Internal error: Unknown operation type.");
-  }
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame::set_implicit_omit()
-{
-if (val_ptr == NULL) return;
-for (int i = 0; i < val_ptr->n_elements; i++) {
-if (val_ptr->value_elements[i] != NULL) val_ptr->value_elements[i]->set_implicit_omit();
-}
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame::encode_text(Text_Buf& text_buf) const
-{
-if (val_ptr == NULL) TTCN_error("Text encoder: Encoding an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-text_buf.push_int(val_ptr->n_elements);
-for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++)
-(*this)[elem_count].encode_text(text_buf);
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-val_ptr = new recordof_setof_struct;
-val_ptr->ref_count = 1;
-val_ptr->n_elements = text_buf.pull_int().get_val();
-if (val_ptr->n_elements < 0) TTCN_error("Text decoder: Negative size was received for a value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-val_ptr->value_elements = (Can::CANFD__frame**)allocate_pointers(val_ptr->n_elements);
-for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++) {
-val_ptr->value_elements[elem_count] = new Can::CANFD__frame;
-val_ptr->value_elements[elem_count]->decode_text(text_buf);
-}
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame_template::copy_value(const SocketCAN__bcm__frame_frames_canfd__frame& other_value)
-{
-if (!other_value.is_bound()) TTCN_error("Initialization of a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame with an unbound value.");
-single_value.n_elements = other_value.size_of();
-single_value.value_elements = (Can::CANFD__frame_template**)allocate_pointers(single_value.n_elements);
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
-if (other_value[elem_count].is_bound()) {
-single_value.value_elements[elem_count] = new Can::CANFD__frame_template(other_value[elem_count]);
-} else {
-single_value.value_elements[elem_count] = new Can::CANFD__frame_template;
-}
-}
-set_selection(SPECIFIC_VALUE);
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame_template::copy_template(const SocketCAN__bcm__frame_frames_canfd__frame_template& other_value)
-{
-switch (other_value.template_selection) {
-case SPECIFIC_VALUE:
-single_value.n_elements = other_value.single_value.n_elements;
-single_value.value_elements = (Can::CANFD__frame_template**)allocate_pointers(single_value.n_elements);
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
-if (UNINITIALIZED_TEMPLATE != other_value.single_value.value_elements[elem_count]->get_selection()) {
-single_value.value_elements[elem_count] = new Can::CANFD__frame_template(*other_value.single_value.value_elements[elem_count]);
-} else {
-single_value.value_elements[elem_count] = new Can::CANFD__frame_template;
-}
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new SocketCAN__bcm__frame_frames_canfd__frame_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized/unsupported template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-break;
-}
-set_selection(other_value);
-}
-
-boolean SocketCAN__bcm__frame_frames_canfd__frame_template::match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy)
-{
-if (value_index >= 0) return ((const SocketCAN__bcm__frame_frames_canfd__frame_template*)template_ptr)->single_value.value_elements[template_index]->match((*(const SocketCAN__bcm__frame_frames_canfd__frame*)value_ptr)[value_index], legacy);
-else return ((const SocketCAN__bcm__frame_frames_canfd__frame_template*)template_ptr)->single_value.value_elements[template_index]->is_any_or_omit();
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template::SocketCAN__bcm__frame_frames_canfd__frame_template()
-{
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template::SocketCAN__bcm__frame_frames_canfd__frame_template(template_sel other_value)
- : Record_Of_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template::SocketCAN__bcm__frame_frames_canfd__frame_template(null_type)
- : Record_Of_Template(SPECIFIC_VALUE)
-{
-single_value.n_elements = 0;
-single_value.value_elements = NULL;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template::SocketCAN__bcm__frame_frames_canfd__frame_template(const SocketCAN__bcm__frame_frames_canfd__frame& other_value)
-{
-copy_value(other_value);
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template::SocketCAN__bcm__frame_frames_canfd__frame_template(const OPTIONAL<SocketCAN__bcm__frame_frames_canfd__frame>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const SocketCAN__bcm__frame_frames_canfd__frame&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame from an unbound optional field.");
-}
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template::SocketCAN__bcm__frame_frames_canfd__frame_template(const SocketCAN__bcm__frame_frames_canfd__frame_template& other_value)
- : Record_Of_Template()
-{
-copy_template(other_value);
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template::~SocketCAN__bcm__frame_frames_canfd__frame_template()
-{
-clean_up();
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame_template::clean_up()
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
-delete single_value.value_elements[elem_count];
-free_pointers((void**)single_value.value_elements);
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-delete [] value_list.list_value;
-default:
-break;
-}
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template& SocketCAN__bcm__frame_frames_canfd__frame_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template& SocketCAN__bcm__frame_frames_canfd__frame_template::operator=(null_type)
-{
-clean_up();
-set_selection(SPECIFIC_VALUE);
-single_value.n_elements = 0;
-single_value.value_elements = NULL;
-return *this;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template& SocketCAN__bcm__frame_frames_canfd__frame_template::operator=(const SocketCAN__bcm__frame_frames_canfd__frame& other_value)
-{
-clean_up();
-copy_value(other_value);
-return *this;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template& SocketCAN__bcm__frame_frames_canfd__frame_template::operator=(const OPTIONAL<SocketCAN__bcm__frame_frames_canfd__frame>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const SocketCAN__bcm__frame_frames_canfd__frame&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-}
-return *this;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template& SocketCAN__bcm__frame_frames_canfd__frame_template::operator=(const SocketCAN__bcm__frame_frames_canfd__frame_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-Can::CANFD__frame_template& SocketCAN__bcm__frame_frames_canfd__frame_template::operator[](int index_value)
-{
-if (index_value < 0) TTCN_error("Accessing an element of a template for type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame using a negative index: %d.", index_value);
-switch (template_selection)
-{
-  case SPECIFIC_VALUE:
-    if(index_value < single_value.n_elements) break;
-    // no break
-  case OMIT_VALUE:
-  case ANY_VALUE:
-  case ANY_OR_OMIT:
-  case UNINITIALIZED_TEMPLATE:
-    set_size(index_value + 1);
-    break;
-  default:
-    TTCN_error("Accessing an element of a non-specific template for type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-    break;
-}
-return *single_value.value_elements[index_value];
-}
-
-Can::CANFD__frame_template& SocketCAN__bcm__frame_frames_canfd__frame_template::operator[](const INTEGER& index_value)
-{
-index_value.must_bound("Using an unbound integer value for indexing a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-return (*this)[(int)index_value];
-}
-
-const Can::CANFD__frame_template& SocketCAN__bcm__frame_frames_canfd__frame_template::operator[](int index_value) const
-{
-if (index_value < 0) TTCN_error("Accessing an element of a template for type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame using a negative index: %d.", index_value);
-if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing an element of a non-specific template for type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-if (index_value >= single_value.n_elements) TTCN_error("Index overflow in a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame: The index is %d, but the template has only %d elements.", index_value, single_value.n_elements);
-return *single_value.value_elements[index_value];
-}
-
-const Can::CANFD__frame_template& SocketCAN__bcm__frame_frames_canfd__frame_template::operator[](const INTEGER& index_value) const
-{
-index_value.must_bound("Using an unbound integer value for indexing a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-return (*this)[(int)index_value];
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame_template::set_size(int new_size)
-{
-if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-template_sel old_selection = template_selection;
-if (old_selection != SPECIFIC_VALUE) {
-clean_up();
-set_selection(SPECIFIC_VALUE);
-single_value.n_elements = 0;
-single_value.value_elements = NULL;
-}
-if (new_size > single_value.n_elements) {
-single_value.value_elements = (Can::CANFD__frame_template**)reallocate_pointers((void**)single_value.value_elements, single_value.n_elements, new_size);
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
-for (int elem_count = single_value.n_elements; elem_count < new_size; elem_count++)
-single_value.value_elements[elem_count] = new Can::CANFD__frame_template(ANY_VALUE);
-} else {
-for (int elem_count = single_value.n_elements; elem_count < new_size; elem_count++)
-single_value.value_elements[elem_count] = new Can::CANFD__frame_template;
-}
-single_value.n_elements = new_size;
-} else if (new_size < single_value.n_elements) {
-for (int elem_count = new_size; elem_count < single_value.n_elements; elem_count++)
-delete single_value.value_elements[elem_count];
-single_value.value_elements = (Can::CANFD__frame_template**)reallocate_pointers((void**)single_value.value_elements, single_value.n_elements, new_size);
-single_value.n_elements = new_size;
-}
-}
-
-int SocketCAN__bcm__frame_frames_canfd__frame_template::n_elem() const
-{
-  switch (template_selection) {
-  case SPECIFIC_VALUE:
-    return single_value.n_elements;
-    break;
-  case VALUE_LIST:
-    return value_list.n_values;
-    break;
-  default:
-    TTCN_error("Performing n_elem");
-  }
-}
-
-int SocketCAN__bcm__frame_frames_canfd__frame_template::size_of(boolean is_size) const
-{
-const char* op_name = is_size ? "size" : "length";
-int min_size;
-boolean has_any_or_none;
-if (is_ifpresent) TTCN_error("Performing %sof() operation on a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame which has an ifpresent attribute.", op_name);
-switch (template_selection)
-{
-case SPECIFIC_VALUE: {
-  min_size = 0;
-  has_any_or_none = FALSE;
-  int elem_count = single_value.n_elements;
-  if (!is_size) { while (elem_count>0 && !single_value.value_elements[elem_count-1]->is_bound()) elem_count--; }
-  for (int i=0; i<elem_count; i++) {
-    switch (single_value.value_elements[i]->get_selection()) {
-    case OMIT_VALUE:
-      TTCN_error("Performing %sof() operation on a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame containing omit element.", op_name);
-    case ANY_OR_OMIT:
-      has_any_or_none = TRUE;
-      break;
-    default:
-      min_size++;
-      break;
-    }
-  }
-} break;
-case OMIT_VALUE:
-  TTCN_error("Performing %sof() operation on a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame containing omit value.", op_name);
-case ANY_VALUE:
-case ANY_OR_OMIT:
-  min_size = 0;
-  has_any_or_none = TRUE;
-  break;
-case VALUE_LIST:
-{
-  if (value_list.n_values<1)
-    TTCN_error("Performing %sof() operation on a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame containing an empty list.", op_name);
-  int item_size = value_list.list_value[0].size_of(is_size);
-  for (unsigned int i = 1; i < value_list.n_values; i++) {
-    if (value_list.list_value[i].size_of(is_size)!=item_size)
-      TTCN_error("Performing %sof() operation on a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame containing a value list with different sizes.", op_name);
-  }
-  min_size = item_size;
-  has_any_or_none = FALSE;
-  break;
-}
-case COMPLEMENTED_LIST:
-  TTCN_error("Performing %sof() operation on a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame containing complemented list.", op_name);
-default:
-  TTCN_error("Performing %sof() operation on an uninitialized/unsupported template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.", op_name);
-}
-return check_section_is_single(min_size, has_any_or_none, op_name, "a", "template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame");
-}
-
-boolean SocketCAN__bcm__frame_frames_canfd__frame_template::match(const SocketCAN__bcm__frame_frames_canfd__frame& other_value, boolean legacy) const
-{
-if (!other_value.is_bound()) return FALSE;
-int value_length = other_value.size_of();
-if (!match_length(value_length)) return FALSE;
-switch (template_selection) {
-case SPECIFIC_VALUE:
-return match_record_of(&other_value, value_length, this, single_value.n_elements, match_function_specific, legacy);
-case OMIT_VALUE:
-return FALSE;
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error("Matching with an uninitialized/unsupported template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-}
-return FALSE;
-}
-
-boolean SocketCAN__bcm__frame_frames_canfd__frame_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
-if (!single_value.value_elements[elem_count]->is_value()) return FALSE;
-return TRUE;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame SocketCAN__bcm__frame_frames_canfd__frame_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-SocketCAN__bcm__frame_frames_canfd__frame ret_val;
-ret_val.set_size(single_value.n_elements);
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
-if (single_value.value_elements[elem_count]->is_bound()) {
-ret_val[elem_count] = single_value.value_elements[elem_count]->valueof();
-}
-return ret_val;
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame SocketCAN__bcm__frame_frames_canfd__frame_template::substr(int index, int returncount) const
-{
-if (!is_value()) TTCN_error("The first argument of function substr() is a template with non-specific value.");
-return valueof().substr(index, returncount);
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame SocketCAN__bcm__frame_frames_canfd__frame_template::replace(int index, int len, const SocketCAN__bcm__frame_frames_canfd__frame_template& repl) const
-{
-if (!is_value()) TTCN_error("The first argument of function replace() is a template with non-specific value.");
-if (!repl.is_value()) TTCN_error("The fourth argument of function replace() is a template with non-specific value.");
-return valueof().replace(index, len, repl.valueof());
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame SocketCAN__bcm__frame_frames_canfd__frame_template::replace(int index, int len, const SocketCAN__bcm__frame_frames_canfd__frame& repl) const
-{
-if (!is_value()) TTCN_error("The first argument of function replace() is a template with non-specific value.");
-return valueof().replace(index, len, repl);
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame_template::set_type(template_sel template_type, unsigned int list_length)
-{
-clean_up();
-switch (template_type) {
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = list_length;
-value_list.list_value = new SocketCAN__bcm__frame_frames_canfd__frame_template[list_length];
-break;
-default:
-TTCN_error("Internal error: Setting an invalid type for a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-}
-set_selection(template_type);
-}
-
-SocketCAN__bcm__frame_frames_canfd__frame_template& SocketCAN__bcm__frame_frames_canfd__frame_template::list_item(unsigned int list_index)
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Internal error: Accessing a list element of a non-list template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-return value_list.list_value[list_index];
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-if (single_value.n_elements > 0) {
-TTCN_Logger::log_event_str("{ ");
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
-if (elem_count > 0) TTCN_Logger::log_event_str(", ");
-if (permutation_starts_at(elem_count)) TTCN_Logger::log_event_str("permutation(");
-single_value.value_elements[elem_count]->log();
-if (permutation_ends_at(elem_count)) TTCN_Logger::log_char(')');
-}
-TTCN_Logger::log_event_str(" }");
-} else TTCN_Logger::log_event_str("{ }");
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) {
-if (list_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[list_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_restricted();
-log_ifpresent();
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame_template::log_match(const SocketCAN__bcm__frame_frames_canfd__frame& match_value, boolean legacy) const
-{
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-if(match(match_value, legacy)){
-TTCN_Logger::print_logmatch_buffer();
-TTCN_Logger::log_event_str(" matched");
-}else{
-if (template_selection == SPECIFIC_VALUE && single_value.n_elements > 0 && get_number_of_permutations() == 0 && single_value.n_elements == match_value.size_of()) {
-size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
-if(!single_value.value_elements[elem_count]->match(match_value[elem_count], legacy)){
-TTCN_Logger::log_logmatch_info("[%d]", elem_count);
-single_value.value_elements[elem_count]->log_match(match_value[elem_count], legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-}
-log_match_length(single_value.n_elements);
-} else {
-TTCN_Logger::print_logmatch_buffer();
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-TTCN_Logger::log_event_str(" unmatched");
-}
-}
-return;
-}
-if (template_selection == SPECIFIC_VALUE && single_value.n_elements > 0 && get_number_of_permutations() == 0 && single_value.n_elements == match_value.size_of()) {
-TTCN_Logger::log_event_str("{ ");
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
-if (elem_count > 0) TTCN_Logger::log_event_str(", ");
-single_value.value_elements[elem_count]->log_match(match_value[elem_count], legacy);
-}
-TTCN_Logger::log_event_str(" }");
-log_match_length(single_value.n_elements);
-} else {
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_permutation(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-text_buf.push_int(single_value.n_elements);
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
-single_value.value_elements[elem_count]->encode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-}
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_permutation(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value.n_elements = text_buf.pull_int().get_val();
-if (single_value.n_elements < 0) TTCN_error("Text decoder: Negative size was received for a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-single_value.value_elements = (Can::CANFD__frame_template**)allocate_pointers(single_value.n_elements);
-for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
-single_value.value_elements[elem_count] = new Can::CANFD__frame_template;
-single_value.value_elements[elem_count]->decode_text(text_buf);
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new SocketCAN__bcm__frame_frames_canfd__frame_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-}
-}
-
-boolean SocketCAN__bcm__frame_frames_canfd__frame_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean SocketCAN__bcm__frame_frames_canfd__frame_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int i=0; i<value_list.n_values; i++)
-if (value_list.list_value[i].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame_template::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "record of template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    SocketCAN__bcm__frame_frames_canfd__frame_template temp;
-    temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      temp.list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    *this = temp;
-    break; }
-  case Module_Param::MP_Indexed_List:
-    if (template_selection!=SPECIFIC_VALUE) set_size(0);
-    for (size_t p_i=0; p_i<param.get_size(); ++p_i) {
-      (*this)[(int)(param.get_elem(p_i)->get_id()->get_index())].set_param(*param.get_elem(p_i));
-    }
-    break;
-  case Module_Param::MP_Value_List: {
-    set_size(param.get_size());
-    int curr_idx = 0;
-    for (size_t p_i=0; p_i<param.get_size(); ++p_i) {
-      switch (param.get_elem(p_i)->get_type()) {
-      case Module_Param::MP_NotUsed:
-        curr_idx++;
-        break;
-      case Module_Param::MP_Permutation_Template: {
-        int perm_start_idx = curr_idx;
-        Module_Param* param_i = param.get_elem(p_i);
-        for (size_t perm_i=0; perm_i<param_i->get_size(); perm_i++) {
-          (*this)[curr_idx].set_param(*(param_i->get_elem(perm_i)));
-          curr_idx++;
-        }
-        int perm_end_idx = curr_idx - 1;
-        add_permutation(perm_start_idx, perm_end_idx);
-      } break;
-      default:
-        (*this)[curr_idx].set_param(*param.get_elem(p_i));
-        curr_idx++;
-      }
-    }
-  } break;
-  default:
-    param.type_error("record of template", "@Bcm.SocketCAN_bcm_frame.frames.canfd_frame");
-  }
-  is_ifpresent = param.get_ifpresent();
-  set_length_range(param);
-}
-
-void SocketCAN__bcm__frame_frames_canfd__frame_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_OMIT:
-if (template_selection==OMIT_VALUE) return;
-case TR_VALUE:
-if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break;
-for (int i=0; i<single_value.n_elements; i++) single_value.value_elements[i]->check_restriction(t_res, t_name ? t_name : "@Bcm.SocketCAN_bcm_frame.frames.canfd_frame");
-return;
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@Bcm.SocketCAN_bcm_frame.frames.canfd_frame");
-}
-
-boolean SocketCAN__bcm__frame_frames_canfd__frame_template::get_istemplate_kind(const char* type) const {
-if (!strcmp(type, "AnyElement")) {
-  if (template_selection != SPECIFIC_VALUE) {
-    return FALSE;
-  }
-  for (int i = 0; i < single_value.n_elements; i++) {
-    if (single_value.value_elements[i]->get_selection() == ANY_VALUE) {
-      return TRUE;
-    }
-  }
-  return FALSE;
-} else if (!strcmp(type, "AnyElementsOrNone")) {
-  if (template_selection != SPECIFIC_VALUE) {
-    return FALSE;
-  }
-  for (int i = 0; i < single_value.n_elements; i++) {
-    if (single_value.value_elements[i]->get_selection() == ANY_OR_OMIT) {
-      return TRUE;
-    }
-  }
-  return FALSE;
-} else if (!strcmp(type, "permutation")) {
-  return number_of_permutations;
-} else if (!strcmp(type, "length")) {
-  return length_restriction_type != NO_LENGTH_RESTRICTION;
-} else {
-  return Base_Template::get_istemplate_kind(type);
-}
-}
-SocketCAN__bcm__frame::SocketCAN__bcm__frame()
-{
-}
-
-SocketCAN__bcm__frame::SocketCAN__bcm__frame(const OCTETSTRING& par_opcode,
-    const BITSTRING& par_flags,
-    const INTEGER& par_count,
-    const Bcm__timeval& par_ival1,
-    const Bcm__timeval& par_ival2,
-    const OCTETSTRING& par_can__id,
-    const SocketCAN__bcm__frame_frames& par_frames)
-  :   field_opcode(par_opcode),
-  field_flags(par_flags),
-  field_count(par_count),
-  field_ival1(par_ival1),
-  field_ival2(par_ival2),
-  field_can__id(par_can__id),
-  field_frames(par_frames)
-{
-}
-
-SocketCAN__bcm__frame::SocketCAN__bcm__frame(const SocketCAN__bcm__frame& other_value)
-{
-if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @Bcm.SocketCAN_bcm_frame.");
-if (other_value.opcode().is_bound()) field_opcode = other_value.opcode();
-else field_opcode.clean_up();
-if (other_value.flags().is_bound()) field_flags = other_value.flags();
-else field_flags.clean_up();
-if (other_value.count().is_bound()) field_count = other_value.count();
-else field_count.clean_up();
-if (other_value.ival1().is_bound()) field_ival1 = other_value.ival1();
-else field_ival1.clean_up();
-if (other_value.ival2().is_bound()) field_ival2 = other_value.ival2();
-else field_ival2.clean_up();
-if (other_value.can__id().is_bound()) field_can__id = other_value.can__id();
-else field_can__id.clean_up();
-if (other_value.frames().is_bound()) field_frames = other_value.frames();
-else field_frames.clean_up();
-}
-
-void SocketCAN__bcm__frame::clean_up()
-{
-field_opcode.clean_up();
-field_flags.clean_up();
-field_count.clean_up();
-field_ival1.clean_up();
-field_ival2.clean_up();
-field_can__id.clean_up();
-field_frames.clean_up();
-}
-
-const TTCN_Typedescriptor_t* SocketCAN__bcm__frame::get_descriptor() const { return &SocketCAN__bcm__frame_descr_; }
-SocketCAN__bcm__frame& SocketCAN__bcm__frame::operator=(const SocketCAN__bcm__frame& other_value)
-{
-if (this != &other_value) {
-  if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @Bcm.SocketCAN_bcm_frame.");
-  if (other_value.opcode().is_bound()) field_opcode = other_value.opcode();
-  else field_opcode.clean_up();
-  if (other_value.flags().is_bound()) field_flags = other_value.flags();
-  else field_flags.clean_up();
-  if (other_value.count().is_bound()) field_count = other_value.count();
-  else field_count.clean_up();
-  if (other_value.ival1().is_bound()) field_ival1 = other_value.ival1();
-  else field_ival1.clean_up();
-  if (other_value.ival2().is_bound()) field_ival2 = other_value.ival2();
-  else field_ival2.clean_up();
-  if (other_value.can__id().is_bound()) field_can__id = other_value.can__id();
-  else field_can__id.clean_up();
-  if (other_value.frames().is_bound()) field_frames = other_value.frames();
-  else field_frames.clean_up();
-}
-return *this;
-}
-
-boolean SocketCAN__bcm__frame::operator==(const SocketCAN__bcm__frame& other_value) const
-{
-return field_opcode==other_value.field_opcode
-  && field_flags==other_value.field_flags
-  && field_count==other_value.field_count
-  && field_ival1==other_value.field_ival1
-  && field_ival2==other_value.field_ival2
-  && field_can__id==other_value.field_can__id
-  && field_frames==other_value.field_frames;
-}
-
-boolean SocketCAN__bcm__frame::is_bound() const
-{
-return (field_opcode.is_bound())
-  || (field_flags.is_bound())
-  || (field_count.is_bound())
-  || (field_ival1.is_bound())
-  || (field_ival2.is_bound())
-  || (field_can__id.is_bound())
-  || (field_frames.is_bound());
-}
-boolean SocketCAN__bcm__frame::is_value() const
-{
-return field_opcode.is_value()
-  && field_flags.is_value()
-  && field_count.is_value()
-  && field_ival1.is_value()
-  && field_ival2.is_value()
-  && field_can__id.is_value()
-  && field_frames.is_value();
-}
-void SocketCAN__bcm__frame::log() const
-{
-if (!is_bound()) {
-TTCN_Logger::log_event_unbound();
-return;
-}
-TTCN_Logger::log_event_str("{ opcode := ");
-field_opcode.log();
-TTCN_Logger::log_event_str(", flags := ");
-field_flags.log();
-TTCN_Logger::log_event_str(", count := ");
-field_count.log();
-TTCN_Logger::log_event_str(", ival1 := ");
-field_ival1.log();
-TTCN_Logger::log_event_str(", ival2 := ");
-field_ival2.log();
-TTCN_Logger::log_event_str(", can_id := ");
-field_can__id.log();
-TTCN_Logger::log_event_str(", frames := ");
-field_frames.log();
-TTCN_Logger::log_event_str(" }");
-}
-
-void SocketCAN__bcm__frame::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
-  case Module_Param::MP_Value_List:
-    if (7<param.get_size()) {
-      param.error("record value of type @Bcm.SocketCAN_bcm_frame has 7 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) opcode().set_param(*param.get_elem(0));
-    if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) flags().set_param(*param.get_elem(1));
-    if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) count().set_param(*param.get_elem(2));
-    if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) ival1().set_param(*param.get_elem(3));
-    if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) ival2().set_param(*param.get_elem(4));
-    if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) can__id().set_param(*param.get_elem(5));
-    if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) frames().set_param(*param.get_elem(6));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "opcode")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          opcode().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "flags")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          flags().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "count")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          count().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "ival1")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          ival1().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "ival2")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          ival2().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "can_id")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          can__id().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "frames")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          frames().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @Bcm.SocketCAN_bcm_frame: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record value", "@Bcm.SocketCAN_bcm_frame");
-  }
-}
-
-void SocketCAN__bcm__frame::set_implicit_omit()
-{
-if (opcode().is_bound()) opcode().set_implicit_omit();
-if (flags().is_bound()) flags().set_implicit_omit();
-if (count().is_bound()) count().set_implicit_omit();
-if (ival1().is_bound()) ival1().set_implicit_omit();
-if (ival2().is_bound()) ival2().set_implicit_omit();
-if (can__id().is_bound()) can__id().set_implicit_omit();
-if (frames().is_bound()) frames().set_implicit_omit();
-}
-
-void SocketCAN__bcm__frame::encode_text(Text_Buf& text_buf) const
-{
-field_opcode.encode_text(text_buf);
-field_flags.encode_text(text_buf);
-field_count.encode_text(text_buf);
-field_ival1.encode_text(text_buf);
-field_ival2.encode_text(text_buf);
-field_can__id.encode_text(text_buf);
-field_frames.encode_text(text_buf);
-}
-
-void SocketCAN__bcm__frame::decode_text(Text_Buf& text_buf)
-{
-field_opcode.decode_text(text_buf);
-field_flags.decode_text(text_buf);
-field_count.decode_text(text_buf);
-field_ival1.decode_text(text_buf);
-field_ival2.decode_text(text_buf);
-field_can__id.decode_text(text_buf);
-field_frames.decode_text(text_buf);
-}
-
-struct SocketCAN__bcm__frame_template::single_value_struct {
-OCTETSTRING_template field_opcode;
-BITSTRING_template field_flags;
-INTEGER_template field_count;
-Bcm__timeval_template field_ival1;
-Bcm__timeval_template field_ival2;
-OCTETSTRING_template field_can__id;
-SocketCAN__bcm__frame_frames_template field_frames;
-};
-
-void SocketCAN__bcm__frame_template::set_specific()
-{
-if (template_selection != SPECIFIC_VALUE) {
-template_sel old_selection = template_selection;
-clean_up();
-single_value = new single_value_struct;
-set_selection(SPECIFIC_VALUE);
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
-single_value->field_opcode = ANY_VALUE;
-single_value->field_flags = ANY_VALUE;
-single_value->field_count = ANY_VALUE;
-single_value->field_ival1 = ANY_VALUE;
-single_value->field_ival2 = ANY_VALUE;
-single_value->field_can__id = ANY_VALUE;
-single_value->field_frames = ANY_VALUE;
-}
-}
-}
-
-void SocketCAN__bcm__frame_template::copy_value(const SocketCAN__bcm__frame& other_value)
-{
-single_value = new single_value_struct;
-if (other_value.opcode().is_bound()) {
-  single_value->field_opcode = other_value.opcode();
-} else {
-  single_value->field_opcode.clean_up();
-}
-if (other_value.flags().is_bound()) {
-  single_value->field_flags = other_value.flags();
-} else {
-  single_value->field_flags.clean_up();
-}
-if (other_value.count().is_bound()) {
-  single_value->field_count = other_value.count();
-} else {
-  single_value->field_count.clean_up();
-}
-if (other_value.ival1().is_bound()) {
-  single_value->field_ival1 = other_value.ival1();
-} else {
-  single_value->field_ival1.clean_up();
-}
-if (other_value.ival2().is_bound()) {
-  single_value->field_ival2 = other_value.ival2();
-} else {
-  single_value->field_ival2.clean_up();
-}
-if (other_value.can__id().is_bound()) {
-  single_value->field_can__id = other_value.can__id();
-} else {
-  single_value->field_can__id.clean_up();
-}
-if (other_value.frames().is_bound()) {
-  single_value->field_frames = other_value.frames();
-} else {
-  single_value->field_frames.clean_up();
-}
-set_selection(SPECIFIC_VALUE);
-}
-
-void SocketCAN__bcm__frame_template::copy_template(const SocketCAN__bcm__frame_template& other_value)
-{
-switch (other_value.template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-if (UNINITIALIZED_TEMPLATE != other_value.opcode().get_selection()) {
-single_value->field_opcode = other_value.opcode();
-} else {
-single_value->field_opcode.clean_up();
-}
-if (UNINITIALIZED_TEMPLATE != other_value.flags().get_selection()) {
-single_value->field_flags = other_value.flags();
-} else {
-single_value->field_flags.clean_up();
-}
-if (UNINITIALIZED_TEMPLATE != other_value.count().get_selection()) {
-single_value->field_count = other_value.count();
-} else {
-single_value->field_count.clean_up();
-}
-if (UNINITIALIZED_TEMPLATE != other_value.ival1().get_selection()) {
-single_value->field_ival1 = other_value.ival1();
-} else {
-single_value->field_ival1.clean_up();
-}
-if (UNINITIALIZED_TEMPLATE != other_value.ival2().get_selection()) {
-single_value->field_ival2 = other_value.ival2();
-} else {
-single_value->field_ival2.clean_up();
-}
-if (UNINITIALIZED_TEMPLATE != other_value.can__id().get_selection()) {
-single_value->field_can__id = other_value.can__id();
-} else {
-single_value->field_can__id.clean_up();
-}
-if (UNINITIALIZED_TEMPLATE != other_value.frames().get_selection()) {
-single_value->field_frames = other_value.frames();
-} else {
-single_value->field_frames.clean_up();
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new SocketCAN__bcm__frame_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized/unsupported template of type @Bcm.SocketCAN_bcm_frame.");
-break;
-}
-set_selection(other_value);
-}
-
-SocketCAN__bcm__frame_template::SocketCAN__bcm__frame_template()
-{
-}
-
-SocketCAN__bcm__frame_template::SocketCAN__bcm__frame_template(template_sel other_value)
- : Base_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-SocketCAN__bcm__frame_template::SocketCAN__bcm__frame_template(const SocketCAN__bcm__frame& other_value)
-{
-copy_value(other_value);
-}
-
-SocketCAN__bcm__frame_template::SocketCAN__bcm__frame_template(const OPTIONAL<SocketCAN__bcm__frame>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const SocketCAN__bcm__frame&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of type @Bcm.SocketCAN_bcm_frame from an unbound optional field.");
-}
-}
-
-SocketCAN__bcm__frame_template::SocketCAN__bcm__frame_template(const SocketCAN__bcm__frame_template& other_value)
-: Base_Template()
-{
-copy_template(other_value);
-}
-
-SocketCAN__bcm__frame_template::~SocketCAN__bcm__frame_template()
-{
-clean_up();
-}
-
-SocketCAN__bcm__frame_template& SocketCAN__bcm__frame_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-SocketCAN__bcm__frame_template& SocketCAN__bcm__frame_template::operator=(const SocketCAN__bcm__frame& other_value)
-{
-clean_up();
-copy_value(other_value);
-return *this;
-}
-
-SocketCAN__bcm__frame_template& SocketCAN__bcm__frame_template::operator=(const OPTIONAL<SocketCAN__bcm__frame>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const SocketCAN__bcm__frame&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of type @Bcm.SocketCAN_bcm_frame.");
-}
-return *this;
-}
-
-SocketCAN__bcm__frame_template& SocketCAN__bcm__frame_template::operator=(const SocketCAN__bcm__frame_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-boolean SocketCAN__bcm__frame_template::match(const SocketCAN__bcm__frame& other_value, boolean legacy) const
-{
-if (!other_value.is_bound()) return FALSE;
-switch (template_selection) {
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case OMIT_VALUE:
-return FALSE;
-case SPECIFIC_VALUE:
-if(!other_value.opcode().is_bound()) return FALSE;
-if(!single_value->field_opcode.match(other_value.opcode(), legacy))return FALSE;
-if(!other_value.flags().is_bound()) return FALSE;
-if(!single_value->field_flags.match(other_value.flags(), legacy))return FALSE;
-if(!other_value.count().is_bound()) return FALSE;
-if(!single_value->field_count.match(other_value.count(), legacy))return FALSE;
-if(!other_value.ival1().is_bound()) return FALSE;
-if(!single_value->field_ival1.match(other_value.ival1(), legacy))return FALSE;
-if(!other_value.ival2().is_bound()) return FALSE;
-if(!single_value->field_ival2.match(other_value.ival2(), legacy))return FALSE;
-if(!other_value.can__id().is_bound()) return FALSE;
-if(!single_value->field_can__id.match(other_value.can__id(), legacy))return FALSE;
-if(!other_value.frames().is_bound()) return FALSE;
-if(!single_value->field_frames.match(other_value.frames(), legacy))return FALSE;
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error("Matching an uninitialized/unsupported template of type @Bcm.SocketCAN_bcm_frame.");
-}
-return FALSE;
-}
-
-boolean SocketCAN__bcm__frame_template::is_bound() const
-{
-if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE;
-if (template_selection != SPECIFIC_VALUE) return TRUE;
-return single_value->field_opcode.is_bound()
-
- ||single_value->field_flags.is_bound()
-
- ||single_value->field_count.is_bound()
-
- ||single_value->field_ival1.is_bound()
-
- ||single_value->field_ival2.is_bound()
-
- ||single_value->field_can__id.is_bound()
-
- ||single_value->field_frames.is_bound()
-;
-}
-
-boolean SocketCAN__bcm__frame_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-return single_value->field_opcode.is_value()
- &&single_value->field_flags.is_value()
- &&single_value->field_count.is_value()
- &&single_value->field_ival1.is_value()
- &&single_value->field_ival2.is_value()
- &&single_value->field_can__id.is_value()
- &&single_value->field_frames.is_value();
-}
-
-void SocketCAN__bcm__frame_template::clean_up()
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-delete single_value;
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-delete [] value_list.list_value;
-default:
-break;
-}
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-SocketCAN__bcm__frame SocketCAN__bcm__frame_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent)
-TTCN_error("Performing a valueof or send operation on a non-specific template of type @Bcm.SocketCAN_bcm_frame.");
-SocketCAN__bcm__frame ret_val;
-if (single_value->field_opcode.is_bound()) {
-ret_val.opcode() = single_value->field_opcode.valueof();
-}
-if (single_value->field_flags.is_bound()) {
-ret_val.flags() = single_value->field_flags.valueof();
-}
-if (single_value->field_count.is_bound()) {
-ret_val.count() = single_value->field_count.valueof();
-}
-if (single_value->field_ival1.is_bound()) {
-ret_val.ival1() = single_value->field_ival1.valueof();
-}
-if (single_value->field_ival2.is_bound()) {
-ret_val.ival2() = single_value->field_ival2.valueof();
-}
-if (single_value->field_can__id.is_bound()) {
-ret_val.can__id() = single_value->field_can__id.valueof();
-}
-if (single_value->field_frames.is_bound()) {
-ret_val.frames() = single_value->field_frames.valueof();
-}
-return ret_val;
-}
-
-void SocketCAN__bcm__frame_template::set_type(template_sel template_type, unsigned int list_length)
-{
-if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST)
-TTCN_error("Setting an invalid list for a template of type @Bcm.SocketCAN_bcm_frame.");
-clean_up();
-set_selection(template_type);
-value_list.n_values = list_length;
-value_list.list_value = new SocketCAN__bcm__frame_template[list_length];
-}
-
-SocketCAN__bcm__frame_template& SocketCAN__bcm__frame_template::list_item(unsigned int list_index) const
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST)
-TTCN_error("Accessing a list element of a non-list template of type @Bcm.SocketCAN_bcm_frame.");
-if (list_index >= value_list.n_values)
-TTCN_error("Index overflow in a value list template of type @Bcm.SocketCAN_bcm_frame.");
-return value_list.list_value[list_index];
-}
-
-OCTETSTRING_template& SocketCAN__bcm__frame_template::opcode()
-{
-set_specific();
-return single_value->field_opcode;
-}
-
-const OCTETSTRING_template& SocketCAN__bcm__frame_template::opcode() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field opcode of a non-specific template of type @Bcm.SocketCAN_bcm_frame.");
-return single_value->field_opcode;
-}
-
-BITSTRING_template& SocketCAN__bcm__frame_template::flags()
-{
-set_specific();
-return single_value->field_flags;
-}
-
-const BITSTRING_template& SocketCAN__bcm__frame_template::flags() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field flags of a non-specific template of type @Bcm.SocketCAN_bcm_frame.");
-return single_value->field_flags;
-}
-
-INTEGER_template& SocketCAN__bcm__frame_template::count()
-{
-set_specific();
-return single_value->field_count;
-}
-
-const INTEGER_template& SocketCAN__bcm__frame_template::count() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field count of a non-specific template of type @Bcm.SocketCAN_bcm_frame.");
-return single_value->field_count;
-}
-
-Bcm__timeval_template& SocketCAN__bcm__frame_template::ival1()
-{
-set_specific();
-return single_value->field_ival1;
-}
-
-const Bcm__timeval_template& SocketCAN__bcm__frame_template::ival1() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field ival1 of a non-specific template of type @Bcm.SocketCAN_bcm_frame.");
-return single_value->field_ival1;
-}
-
-Bcm__timeval_template& SocketCAN__bcm__frame_template::ival2()
-{
-set_specific();
-return single_value->field_ival2;
-}
-
-const Bcm__timeval_template& SocketCAN__bcm__frame_template::ival2() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field ival2 of a non-specific template of type @Bcm.SocketCAN_bcm_frame.");
-return single_value->field_ival2;
-}
-
-OCTETSTRING_template& SocketCAN__bcm__frame_template::can__id()
-{
-set_specific();
-return single_value->field_can__id;
-}
-
-const OCTETSTRING_template& SocketCAN__bcm__frame_template::can__id() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field can_id of a non-specific template of type @Bcm.SocketCAN_bcm_frame.");
-return single_value->field_can__id;
-}
-
-SocketCAN__bcm__frame_frames_template& SocketCAN__bcm__frame_template::frames()
-{
-set_specific();
-return single_value->field_frames;
-}
-
-const SocketCAN__bcm__frame_frames_template& SocketCAN__bcm__frame_template::frames() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field frames of a non-specific template of type @Bcm.SocketCAN_bcm_frame.");
-return single_value->field_frames;
-}
-
-int SocketCAN__bcm__frame_template::size_of() const
-{
-  if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @Bcm.SocketCAN_bcm_frame which has an ifpresent attribute.");
-  switch (template_selection)
-  {
-  case SPECIFIC_VALUE:
-    return 7;
-  case VALUE_LIST:
-   {
-     if (value_list.n_values<1)
-       TTCN_error("Internal error: Performing sizeof() operation on a template of type @Bcm.SocketCAN_bcm_frame containing an empty list.");
-      int item_size = value_list.list_value[0].size_of();
-      for (unsigned int l_idx = 1; l_idx < value_list.n_values; l_idx++)
-      {
-        if (value_list.list_value[l_idx].size_of()!=item_size)
-          TTCN_error("Performing sizeof() operation on a template of type @Bcm.SocketCAN_bcm_frame containing a value list with different sizes.");
-      }
-      return item_size;
-    }
-  case OMIT_VALUE:
-    TTCN_error("Performing sizeof() operation on a template of type @Bcm.SocketCAN_bcm_frame containing omit value.");
-  case ANY_VALUE:
-  case ANY_OR_OMIT:
-    TTCN_error("Performing sizeof() operation on a template of type @Bcm.SocketCAN_bcm_frame containing */? value.");
-  case COMPLEMENTED_LIST:
-    TTCN_error("Performing sizeof() operation on a template of type @Bcm.SocketCAN_bcm_frame containing complemented list.");
-  default:
-    TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @Bcm.SocketCAN_bcm_frame.");
-  }
-  return 0;
-}
-
-void SocketCAN__bcm__frame_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-TTCN_Logger::log_event_str("{ opcode := ");
-single_value->field_opcode.log();
-TTCN_Logger::log_event_str(", flags := ");
-single_value->field_flags.log();
-TTCN_Logger::log_event_str(", count := ");
-single_value->field_count.log();
-TTCN_Logger::log_event_str(", ival1 := ");
-single_value->field_ival1.log();
-TTCN_Logger::log_event_str(", ival2 := ");
-single_value->field_ival2.log();
-TTCN_Logger::log_event_str(", can_id := ");
-single_value->field_can__id.log();
-TTCN_Logger::log_event_str(", frames := ");
-single_value->field_frames.log();
-TTCN_Logger::log_event_str(" }");
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) {
-if (list_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[list_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_ifpresent();
-}
-
-void SocketCAN__bcm__frame_template::log_match(const SocketCAN__bcm__frame& match_value, boolean legacy) const
-{
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-if(match(match_value, legacy)){
-TTCN_Logger::print_logmatch_buffer();
-TTCN_Logger::log_event_str(" matched");
-} else{
-if (template_selection == SPECIFIC_VALUE) {
-size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
-if(!single_value->field_opcode.match(match_value.opcode(), legacy)){
-TTCN_Logger::log_logmatch_info(".opcode");
-single_value->field_opcode.log_match(match_value.opcode(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-if(!single_value->field_flags.match(match_value.flags(), legacy)){
-TTCN_Logger::log_logmatch_info(".flags");
-single_value->field_flags.log_match(match_value.flags(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-if(!single_value->field_count.match(match_value.count(), legacy)){
-TTCN_Logger::log_logmatch_info(".count");
-single_value->field_count.log_match(match_value.count(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-if(!single_value->field_ival1.match(match_value.ival1(), legacy)){
-TTCN_Logger::log_logmatch_info(".ival1");
-single_value->field_ival1.log_match(match_value.ival1(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-if(!single_value->field_ival2.match(match_value.ival2(), legacy)){
-TTCN_Logger::log_logmatch_info(".ival2");
-single_value->field_ival2.log_match(match_value.ival2(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-if(!single_value->field_can__id.match(match_value.can__id(), legacy)){
-TTCN_Logger::log_logmatch_info(".can_id");
-single_value->field_can__id.log_match(match_value.can__id(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-if(!single_value->field_frames.match(match_value.frames(), legacy)){
-TTCN_Logger::log_logmatch_info(".frames");
-single_value->field_frames.log_match(match_value.frames(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-}else {
-TTCN_Logger::print_logmatch_buffer();
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-TTCN_Logger::log_event_str(" unmatched");
-}
-}
-return;
-}
-if (template_selection == SPECIFIC_VALUE) {
-TTCN_Logger::log_event_str("{ opcode := ");
-single_value->field_opcode.log_match(match_value.opcode(), legacy);
-TTCN_Logger::log_event_str(", flags := ");
-single_value->field_flags.log_match(match_value.flags(), legacy);
-TTCN_Logger::log_event_str(", count := ");
-single_value->field_count.log_match(match_value.count(), legacy);
-TTCN_Logger::log_event_str(", ival1 := ");
-single_value->field_ival1.log_match(match_value.ival1(), legacy);
-TTCN_Logger::log_event_str(", ival2 := ");
-single_value->field_ival2.log_match(match_value.ival2(), legacy);
-TTCN_Logger::log_event_str(", can_id := ");
-single_value->field_can__id.log_match(match_value.can__id(), legacy);
-TTCN_Logger::log_event_str(", frames := ");
-single_value->field_frames.log_match(match_value.frames(), legacy);
-TTCN_Logger::log_event_str(" }");
-} else {
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-}
-
-void SocketCAN__bcm__frame_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value->field_opcode.encode_text(text_buf);
-single_value->field_flags.encode_text(text_buf);
-single_value->field_count.encode_text(text_buf);
-single_value->field_ival1.encode_text(text_buf);
-single_value->field_ival2.encode_text(text_buf);
-single_value->field_can__id.encode_text(text_buf);
-single_value->field_frames.encode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of type @Bcm.SocketCAN_bcm_frame.");
-}
-}
-
-void SocketCAN__bcm__frame_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-single_value->field_opcode.decode_text(text_buf);
-single_value->field_flags.decode_text(text_buf);
-single_value->field_count.decode_text(text_buf);
-single_value->field_ival1.decode_text(text_buf);
-single_value->field_ival2.decode_text(text_buf);
-single_value->field_can__id.decode_text(text_buf);
-single_value->field_frames.decode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new SocketCAN__bcm__frame_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: An unknown/unsupported selection was received in a template of type @Bcm.SocketCAN_bcm_frame.");
-}
-}
-
-void SocketCAN__bcm__frame_template::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    SocketCAN__bcm__frame_template new_temp;
-    new_temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      new_temp.list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    *this = new_temp;
-    break; }
-  case Module_Param::MP_Value_List:
-    if (7<param.get_size()) {
-      param.error("record template of type @Bcm.SocketCAN_bcm_frame has 7 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) opcode().set_param(*param.get_elem(0));
-    if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) flags().set_param(*param.get_elem(1));
-    if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) count().set_param(*param.get_elem(2));
-    if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) ival1().set_param(*param.get_elem(3));
-    if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) ival2().set_param(*param.get_elem(4));
-    if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) can__id().set_param(*param.get_elem(5));
-    if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) frames().set_param(*param.get_elem(6));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "opcode")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          opcode().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "flags")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          flags().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "count")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          count().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "ival1")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          ival1().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "ival2")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          ival2().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "can_id")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          can__id().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "frames")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          frames().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @Bcm.SocketCAN_bcm_frame: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "@Bcm.SocketCAN_bcm_frame");
-  }
-  is_ifpresent = param.get_ifpresent();
-}
-
-void SocketCAN__bcm__frame_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_OMIT:
-if (template_selection==OMIT_VALUE) return;
-case TR_VALUE:
-if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break;
-single_value->field_opcode.check_restriction(t_res, t_name ? t_name : "@Bcm.SocketCAN_bcm_frame");
-single_value->field_flags.check_restriction(t_res, t_name ? t_name : "@Bcm.SocketCAN_bcm_frame");
-single_value->field_count.check_restriction(t_res, t_name ? t_name : "@Bcm.SocketCAN_bcm_frame");
-single_value->field_ival1.check_restriction(t_res, t_name ? t_name : "@Bcm.SocketCAN_bcm_frame");
-single_value->field_ival2.check_restriction(t_res, t_name ? t_name : "@Bcm.SocketCAN_bcm_frame");
-single_value->field_can__id.check_restriction(t_res, t_name ? t_name : "@Bcm.SocketCAN_bcm_frame");
-single_value->field_frames.check_restriction(t_res, t_name ? t_name : "@Bcm.SocketCAN_bcm_frame");
-return;
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@Bcm.SocketCAN_bcm_frame");
-}
-
-boolean SocketCAN__bcm__frame_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean SocketCAN__bcm__frame_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int l_idx=0; l_idx<value_list.n_values; l_idx++)
-if (value_list.list_value[l_idx].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-
-/* Bodies of functions, altsteps and testcases */
-
-boolean operator==(null_type, const SocketCAN__bcm__frame_frames_can__frame& other_value)
-{
-if (other_value.val_ptr == NULL)
-TTCN_error("The right operand of comparison is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.can_frame.");
-return other_value.val_ptr->n_elements == 0;
-}
-
-boolean operator==(null_type, const SocketCAN__bcm__frame_frames_canfd__frame& other_value)
-{
-if (other_value.val_ptr == NULL)
-TTCN_error("The right operand of comparison is an unbound value of type @Bcm.SocketCAN_bcm_frame.frames.canfd_frame.");
-return other_value.val_ptr->n_elements == 0;
-}
-
-
-/* Bodies of static functions */
-
-static void pre_init_module()
-{
-TTCN_Location current_location("../src/Bcm.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "Bcm");
-Can::module_object.pre_init_module();
-current_location.update_lineno(19);
-#line 19 "../src/Bcm.ttcn"
-const_CAN__FRAME__MAX__NUMBER = 256;
-}
-
-static void post_init_module()
-{
-TTCN_Location current_location("../src/Bcm.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "Bcm");
-Can::module_object.post_init_module();
-}
-
-
-} /* end of namespace */
diff --git a/demo/Bcm.d b/demo/Bcm.d
deleted file mode 100644
index fafa54c..0000000
--- a/demo/Bcm.d
+++ /dev/null
@@ -1,59 +0,0 @@
-Bcm.o Bcm.d : Bcm.cc Bcm.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/TTCN3.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/version.h \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/cversion.h \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/JSON.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Types.h \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Vector.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Error.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Basetype.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Encdec.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/RInt.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/JSON_Tokenizer.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Logger.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Template.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Integer.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Float.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/ttcn3float.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Boolean.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/ASN_Null.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Optional.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Param_Types.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/memory.h \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/BER.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Textbuf.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Parameters.h \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/XER.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/XmlReader.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Objid.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Verdicttype.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Component.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Bitstring.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/RAW.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/CharCoding.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Hexstring.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Octetstring.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/ASN_Any.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Charstring.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Universal_charstring.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Struct_of.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Array.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/ASN_CharacterString.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/ASN_External.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/TEXT.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/ASN_EmbeddedPDV.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Addfunc.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Timer.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Port.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Event_Handler.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/RT1/TitanLoggerApiSimple.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/RT1/PreGenRecordOf.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Module_list.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Snapshot.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Default.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Runtime.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/OER.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Profiler.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/ProfilerTools.hh \
- /home/elnrnag/Ericsson/git/titan.core/Install/include/Debugger.hh Can.hh \
- General_Types.hh
diff --git a/demo/Bcm.hh b/demo/Bcm.hh
deleted file mode 100644
index a5a75bd..0000000
--- a/demo/Bcm.hh
+++ /dev/null
@@ -1,945 +0,0 @@
-// This C++ header file was generated by the TTCN-3 compiler
-// of the TTCN-3 Test Executor version CRL 113 200/6 R6A
-// for Lénárd Nagy (elnrnag@elx78355y6x) on Thu Oct 24 10:29:40 2019
-
-// Copyright (c) 2000-2019 Ericsson Telecom AB
-
-// Do not edit this file unless you know what you are doing.
-
-#ifndef Bcm_HH
-#define Bcm_HH
-
-#ifdef TITAN_RUNTIME_2
-#error Generated code does not match with used runtime.\
- Code was generated without -R option but -DTITAN_RUNTIME_2 was used.
-#endif
-
-/* Header file includes */
-
-#include <TTCN3.hh>
-#include "Can.hh"
-
-#if TTCN3_VERSION != 60600
-#error Version mismatch detected.\
- Please check the version of the TTCN-3 compiler and the base library.\
- Run make clean and rebuild the project if the version of the compiler changed recently.
-#endif
-
-#ifndef LINUX
-#error This file should be compiled on LINUX
-#endif
-
-#undef Bcm_HH
-#endif
-
-namespace Bcm {
-
-/* Forward declarations of classes */
-
-class BcmFlagsBitIndex__enum;
-class BcmFlagsBitIndex__enum_template;
-class BcmFlags__enum;
-class BcmFlags__enum_template;
-class BcmOpcode__enum;
-class BcmOpcode__enum_template;
-class Bcm__timeval;
-class Bcm__timeval_template;
-class SocketCAN__bcm__frame_frames;
-class SocketCAN__bcm__frame_frames_template;
-class SocketCAN__bcm__frame_frames_can__frame;
-class SocketCAN__bcm__frame_frames_can__frame_template;
-class SocketCAN__bcm__frame_frames_canfd__frame;
-class SocketCAN__bcm__frame_frames_canfd__frame_template;
-class SocketCAN__bcm__frame;
-class SocketCAN__bcm__frame_template;
-
-} /* end of namespace */
-
-#ifndef Bcm_HH
-#define Bcm_HH
-
-namespace Bcm {
-
-/* Type definitions */
-
-typedef INTEGER Bcm__long;
-typedef INTEGER_template Bcm__long_template;
-
-/* Class definitions */
-
-class BcmFlagsBitIndex__enum : public Base_Type { // enum
-friend class BcmFlagsBitIndex__enum_template;
-public:
-enum enum_type { e__CAN__BCM__SETTIMER__BITINDEX = 0, e__CAN__BCM__STARTTIMER__BITINDEX = 1, e__CAN__BCM__TX__COUNTEVT__BITINDEX = 2, e__CAN__BCM__TX__ANNOUNCE__BITINDEX = 3, e__CAN__BCM__TX__CP__CAN__ID__BITINDEX = 4, e__CAN__BCM__RX__FILTER__ID__BITINDEX = 5, e__CAN__BCM__RX__CHECK__DLC__BITINDEX = 6, e__CAN__BCM__RX__NO__AUTOTIMER__BITINDEX = 7, e__CAN__BCM__RX__ANNOUNCE__RESUME__BITINDEX = 8, e__CAN__BCM__TX__RESET__MULTI__IDX__BITINDEX = 9, e__CAN__BCM__RX__RTR__FRAME__BITINDEX = 10, UNKNOWN_VALUE = 11, UNBOUND_VALUE = 12 };
-private:
-enum_type enum_value;
-
-public:
-BcmFlagsBitIndex__enum();
-BcmFlagsBitIndex__enum(int other_value);
-BcmFlagsBitIndex__enum(enum_type other_value);
-BcmFlagsBitIndex__enum(const BcmFlagsBitIndex__enum& other_value);
-
-BcmFlagsBitIndex__enum& operator=(int other_value);
-BcmFlagsBitIndex__enum& operator=(enum_type other_value);
-BcmFlagsBitIndex__enum& operator=(const BcmFlagsBitIndex__enum& other_value);
-
-boolean operator==(enum_type other_value) const;
-boolean operator==(const BcmFlagsBitIndex__enum& other_value) const;
-inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); }
-inline boolean operator!=(const BcmFlagsBitIndex__enum& other_value) const { return !(*this == other_value); }
-boolean operator<(enum_type other_value) const;
-boolean operator<(const BcmFlagsBitIndex__enum& other_value) const;
-boolean operator>(enum_type other_value) const;
-boolean operator>(const BcmFlagsBitIndex__enum& other_value) const;
-inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); }
-inline boolean operator<=(const BcmFlagsBitIndex__enum& other_value) const { return !(*this > other_value); }
-inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); }
-inline boolean operator>=(const BcmFlagsBitIndex__enum& other_value) const { return !(*this < other_value); }
-
-static const char *enum_to_str(enum_type enum_par);
-static enum_type str_to_enum(const char *str_par);
-static boolean is_valid_enum(int int_par);
-
-static int enum2int(enum_type enum_par);
-static int enum2int(const BcmFlagsBitIndex__enum& enum_par);
-int as_int() const { return enum2int(enum_value); }
-void from_int(int p_val) { *this = p_val; }
-void int2enum(int int_val);
-operator enum_type() const;
-inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; }
-inline boolean is_value() const { return enum_value != UNBOUND_VALUE; }
-inline void clean_up(){ enum_value = UNBOUND_VALUE; }
-inline boolean is_present() const { return is_bound(); }
-void log() const;
-void set_param(Module_Param& param);
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-};
-
-class BcmFlagsBitIndex__enum_template : public Base_Template {
-union {
-BcmFlagsBitIndex__enum::enum_type single_value;
-struct {
-unsigned int n_values;
-BcmFlagsBitIndex__enum_template *list_value;
-} value_list;
-};
-
-void copy_template(const BcmFlagsBitIndex__enum_template& other_value);
-
-public:
-BcmFlagsBitIndex__enum_template();
-BcmFlagsBitIndex__enum_template(template_sel other_value);
-BcmFlagsBitIndex__enum_template(int other_value);
-BcmFlagsBitIndex__enum_template(BcmFlagsBitIndex__enum::enum_type other_value);
-BcmFlagsBitIndex__enum_template(const BcmFlagsBitIndex__enum& other_value);
-BcmFlagsBitIndex__enum_template(const OPTIONAL<BcmFlagsBitIndex__enum>& other_value);
-BcmFlagsBitIndex__enum_template(const BcmFlagsBitIndex__enum_template& other_value);
-~BcmFlagsBitIndex__enum_template();
-
-boolean is_bound() const;
-boolean is_value() const;
-void clean_up();
-BcmFlagsBitIndex__enum_template& operator=(template_sel other_value);
-BcmFlagsBitIndex__enum_template& operator=(int other_value);
-BcmFlagsBitIndex__enum_template& operator=(BcmFlagsBitIndex__enum::enum_type other_value);
-BcmFlagsBitIndex__enum_template& operator=(const BcmFlagsBitIndex__enum& other_value);
-BcmFlagsBitIndex__enum_template& operator=(const OPTIONAL<BcmFlagsBitIndex__enum>& other_value);
-BcmFlagsBitIndex__enum_template& operator=(const BcmFlagsBitIndex__enum_template& other_value);
-
-boolean match(BcmFlagsBitIndex__enum::enum_type other_value, boolean legacy = FALSE) const;
-boolean match(const BcmFlagsBitIndex__enum& other_value, boolean legacy = FALSE) const;
-BcmFlagsBitIndex__enum::enum_type valueof() const;
-void set_type(template_sel template_type, unsigned int list_length);
-BcmFlagsBitIndex__enum_template& list_item(unsigned int list_index);
-void log() const;
-void log_match(const BcmFlagsBitIndex__enum& match_value, boolean legacy = FALSE) const;
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-boolean is_present(boolean legacy = FALSE) const;
-boolean match_omit(boolean legacy = FALSE) const;
-void set_param(Module_Param& param);
-void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
-};
-
-class BcmFlags__enum : public Base_Type { // enum
-friend class BcmFlags__enum_template;
-public:
-enum enum_type { e__CAN__BCM__SETTIMER = 1, e__CAN__BCM__STARTTIMER = 2, e__CAN__BCM__TX__COUNTEVT = 4, e__CAN__BCM__TX__ANNOUNCE = 8, e__CAN__BCM__TX__CP__CAN__ID = 16, e__CAN__BCM__RX__FILTER__ID = 32, e__CAN__BCM__RX__CHECK__DLC = 64, e__CAN__BCM__RX__NO__AUTOTIMER = 128, e__CAN__BCM__RX__ANNOUNCE__RESUME = 256, e__CAN__BCM__TX__RESET__MULTI__IDX = 512, e__CAN__BCM__RX__RTR__FRAME = 1024, UNKNOWN_VALUE = 0, UNBOUND_VALUE = 3 };
-private:
-enum_type enum_value;
-
-public:
-BcmFlags__enum();
-BcmFlags__enum(int other_value);
-BcmFlags__enum(enum_type other_value);
-BcmFlags__enum(const BcmFlags__enum& other_value);
-
-BcmFlags__enum& operator=(int other_value);
-BcmFlags__enum& operator=(enum_type other_value);
-BcmFlags__enum& operator=(const BcmFlags__enum& other_value);
-
-boolean operator==(enum_type other_value) const;
-boolean operator==(const BcmFlags__enum& other_value) const;
-inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); }
-inline boolean operator!=(const BcmFlags__enum& other_value) const { return !(*this == other_value); }
-boolean operator<(enum_type other_value) const;
-boolean operator<(const BcmFlags__enum& other_value) const;
-boolean operator>(enum_type other_value) const;
-boolean operator>(const BcmFlags__enum& other_value) const;
-inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); }
-inline boolean operator<=(const BcmFlags__enum& other_value) const { return !(*this > other_value); }
-inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); }
-inline boolean operator>=(const BcmFlags__enum& other_value) const { return !(*this < other_value); }
-
-static const char *enum_to_str(enum_type enum_par);
-static enum_type str_to_enum(const char *str_par);
-static boolean is_valid_enum(int int_par);
-
-static int enum2int(enum_type enum_par);
-static int enum2int(const BcmFlags__enum& enum_par);
-int as_int() const { return enum2int(enum_value); }
-void from_int(int p_val) { *this = p_val; }
-void int2enum(int int_val);
-operator enum_type() const;
-inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; }
-inline boolean is_value() const { return enum_value != UNBOUND_VALUE; }
-inline void clean_up(){ enum_value = UNBOUND_VALUE; }
-inline boolean is_present() const { return is_bound(); }
-void log() const;
-void set_param(Module_Param& param);
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-};
-
-class BcmFlags__enum_template : public Base_Template {
-union {
-BcmFlags__enum::enum_type single_value;
-struct {
-unsigned int n_values;
-BcmFlags__enum_template *list_value;
-} value_list;
-};
-
-void copy_template(const BcmFlags__enum_template& other_value);
-
-public:
-BcmFlags__enum_template();
-BcmFlags__enum_template(template_sel other_value);
-BcmFlags__enum_template(int other_value);
-BcmFlags__enum_template(BcmFlags__enum::enum_type other_value);
-BcmFlags__enum_template(const BcmFlags__enum& other_value);
-BcmFlags__enum_template(const OPTIONAL<BcmFlags__enum>& other_value);
-BcmFlags__enum_template(const BcmFlags__enum_template& other_value);
-~BcmFlags__enum_template();
-
-boolean is_bound() const;
-boolean is_value() const;
-void clean_up();
-BcmFlags__enum_template& operator=(template_sel other_value);
-BcmFlags__enum_template& operator=(int other_value);
-BcmFlags__enum_template& operator=(BcmFlags__enum::enum_type other_value);
-BcmFlags__enum_template& operator=(const BcmFlags__enum& other_value);
-BcmFlags__enum_template& operator=(const OPTIONAL<BcmFlags__enum>& other_value);
-BcmFlags__enum_template& operator=(const BcmFlags__enum_template& other_value);
-
-boolean match(BcmFlags__enum::enum_type other_value, boolean legacy = FALSE) const;
-boolean match(const BcmFlags__enum& other_value, boolean legacy = FALSE) const;
-BcmFlags__enum::enum_type valueof() const;
-void set_type(template_sel template_type, unsigned int list_length);
-BcmFlags__enum_template& list_item(unsigned int list_index);
-void log() const;
-void log_match(const BcmFlags__enum& match_value, boolean legacy = FALSE) const;
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-boolean is_present(boolean legacy = FALSE) const;
-boolean match_omit(boolean legacy = FALSE) const;
-void set_param(Module_Param& param);
-void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
-};
-
-class BcmOpcode__enum : public Base_Type { // enum
-friend class BcmOpcode__enum_template;
-public:
-enum enum_type { e__CAN__BCM__TX__SETUP = 1, e__CAN__BCM__TX__DELETE = 2, e__CAN__BCM__TX__READ = 3, e__CAN__BCM__TX__SEND = 4, e__CAN__BCM__RX__SETUP = 5, e__CAN__BCM__RX__DELETE = 6, e__CAN__BCM__RX__READ = 7, e__CAN__BCM__TX__STATUS = 8, e__CAN__BCM__TX__EXPIRED = 9, e__CAN__BCM__RX__STATUS = 10, e__CAN__BCM__RX__TIMEOUT = 11, e__CAN__BCM__RX__CHANGED = 12, UNKNOWN_VALUE = 0, UNBOUND_VALUE = 13 };
-private:
-enum_type enum_value;
-
-public:
-BcmOpcode__enum();
-BcmOpcode__enum(int other_value);
-BcmOpcode__enum(enum_type other_value);
-BcmOpcode__enum(const BcmOpcode__enum& other_value);
-
-BcmOpcode__enum& operator=(int other_value);
-BcmOpcode__enum& operator=(enum_type other_value);
-BcmOpcode__enum& operator=(const BcmOpcode__enum& other_value);
-
-boolean operator==(enum_type other_value) const;
-boolean operator==(const BcmOpcode__enum& other_value) const;
-inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); }
-inline boolean operator!=(const BcmOpcode__enum& other_value) const { return !(*this == other_value); }
-boolean operator<(enum_type other_value) const;
-boolean operator<(const BcmOpcode__enum& other_value) const;
-boolean operator>(enum_type other_value) const;
-boolean operator>(const BcmOpcode__enum& other_value) const;
-inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); }
-inline boolean operator<=(const BcmOpcode__enum& other_value) const { return !(*this > other_value); }
-inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); }
-inline boolean operator>=(const BcmOpcode__enum& other_value) const { return !(*this < other_value); }
-
-static const char *enum_to_str(enum_type enum_par);
-static enum_type str_to_enum(const char *str_par);
-static boolean is_valid_enum(int int_par);
-
-static int enum2int(enum_type enum_par);
-static int enum2int(const BcmOpcode__enum& enum_par);
-int as_int() const { return enum2int(enum_value); }
-void from_int(int p_val) { *this = p_val; }
-void int2enum(int int_val);
-operator enum_type() const;
-inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; }
-inline boolean is_value() const { return enum_value != UNBOUND_VALUE; }
-inline void clean_up(){ enum_value = UNBOUND_VALUE; }
-inline boolean is_present() const { return is_bound(); }
-void log() const;
-void set_param(Module_Param& param);
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-};
-
-class BcmOpcode__enum_template : public Base_Template {
-union {
-BcmOpcode__enum::enum_type single_value;
-struct {
-unsigned int n_values;
-BcmOpcode__enum_template *list_value;
-} value_list;
-};
-
-void copy_template(const BcmOpcode__enum_template& other_value);
-
-public:
-BcmOpcode__enum_template();
-BcmOpcode__enum_template(template_sel other_value);
-BcmOpcode__enum_template(int other_value);
-BcmOpcode__enum_template(BcmOpcode__enum::enum_type other_value);
-BcmOpcode__enum_template(const BcmOpcode__enum& other_value);
-BcmOpcode__enum_template(const OPTIONAL<BcmOpcode__enum>& other_value);
-BcmOpcode__enum_template(const BcmOpcode__enum_template& other_value);
-~BcmOpcode__enum_template();
-
-boolean is_bound() const;
-boolean is_value() const;
-void clean_up();
-BcmOpcode__enum_template& operator=(template_sel other_value);
-BcmOpcode__enum_template& operator=(int other_value);
-BcmOpcode__enum_template& operator=(BcmOpcode__enum::enum_type other_value);
-BcmOpcode__enum_template& operator=(const BcmOpcode__enum& other_value);
-BcmOpcode__enum_template& operator=(const OPTIONAL<BcmOpcode__enum>& other_value);
-BcmOpcode__enum_template& operator=(const BcmOpcode__enum_template& other_value);
-
-boolean match(BcmOpcode__enum::enum_type other_value, boolean legacy = FALSE) const;
-boolean match(const BcmOpcode__enum& other_value, boolean legacy = FALSE) const;
-BcmOpcode__enum::enum_type valueof() const;
-void set_type(template_sel template_type, unsigned int list_length);
-BcmOpcode__enum_template& list_item(unsigned int list_index);
-void log() const;
-void log_match(const BcmOpcode__enum& match_value, boolean legacy = FALSE) const;
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-boolean is_present(boolean legacy = FALSE) const;
-boolean match_omit(boolean legacy = FALSE) const;
-void set_param(Module_Param& param);
-void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
-};
-
-class Bcm__timeval {
-  INTEGER field_tv__sec;
-  INTEGER field_tv__usec;
-public:
-  Bcm__timeval();
-  Bcm__timeval(const INTEGER& par_tv__sec,
-    const INTEGER& par_tv__usec);
-  Bcm__timeval(const Bcm__timeval& other_value);
-  inline boolean is_component() { return FALSE; }
-  void clean_up();
-const TTCN_Typedescriptor_t* get_descriptor() const;
-  Bcm__timeval& operator=(const Bcm__timeval& other_value);
-  boolean operator==(const Bcm__timeval& other_value) const;
-  inline boolean operator!=(const Bcm__timeval& other_value) const
-    { return !(*this == other_value); }
-
-  boolean is_bound() const;
-
-inline boolean is_present() const { return is_bound(); }
-  boolean is_value() const;
-
-  inline INTEGER& tv__sec()
-    {return field_tv__sec;}
-  inline const INTEGER& tv__sec() const
-    {return field_tv__sec;}
-  inline INTEGER& tv__usec()
-    {return field_tv__usec;}
-  inline const INTEGER& tv__usec() const
-    {return field_tv__usec;}
-  inline int size_of() const
-    {return 2;}
-  void log() const;
-  void set_param(Module_Param& param);
-  void set_implicit_omit();
-  void encode_text(Text_Buf& text_buf) const;
-  void decode_text(Text_Buf& text_buf);
-};
-
-class Bcm__timeval_template : public Base_Template {
-struct single_value_struct;
-union {
-single_value_struct *single_value;
-struct {
-unsigned int n_values;
-Bcm__timeval_template *list_value;
-} value_list;
-};
-
-void set_specific();
-void copy_value(const Bcm__timeval& other_value);
-void copy_template(const Bcm__timeval_template& other_value);
-
-public:
-Bcm__timeval_template();
-Bcm__timeval_template(template_sel other_value);
-Bcm__timeval_template(const Bcm__timeval& other_value);
-Bcm__timeval_template(const OPTIONAL<Bcm__timeval>& other_value);
-Bcm__timeval_template(const Bcm__timeval_template& other_value);
-~Bcm__timeval_template();
-Bcm__timeval_template& operator=(template_sel other_value);
-Bcm__timeval_template& operator=(const Bcm__timeval& other_value);
-Bcm__timeval_template& operator=(const OPTIONAL<Bcm__timeval>& other_value);
-Bcm__timeval_template& operator=(const Bcm__timeval_template& other_value);
-boolean match(const Bcm__timeval& other_value, boolean legacy = FALSE) const;
-boolean is_bound() const;
-boolean is_value() const;
-void clean_up();
-Bcm__timeval valueof() const;
-void set_type(template_sel template_type, unsigned int list_length);
-Bcm__timeval_template& list_item(unsigned int list_index) const;
-INTEGER_template& tv__sec();
-const INTEGER_template& tv__sec() const;
-INTEGER_template& tv__usec();
-const INTEGER_template& tv__usec() const;
-int size_of() const;
-void log() const;
-void log_match(const Bcm__timeval& match_value, boolean legacy = FALSE) const;
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-void set_param(Module_Param& param);
-void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
-boolean is_present(boolean legacy = FALSE) const;
-boolean match_omit(boolean legacy = FALSE) const;
-};
-
-class SocketCAN__bcm__frame_frames : public Base_Type {
-public:
-enum union_selection_type { UNBOUND_VALUE = 0, ALT_can__frame = 1, ALT_canfd__frame = 2 };
-private:
-union_selection_type union_selection;
-union {
-SocketCAN__bcm__frame_frames_can__frame *field_can__frame;
-SocketCAN__bcm__frame_frames_canfd__frame *field_canfd__frame;
-};
-void copy_value(const SocketCAN__bcm__frame_frames& other_value);
-
-public:
-SocketCAN__bcm__frame_frames();
-SocketCAN__bcm__frame_frames(const SocketCAN__bcm__frame_frames& other_value);
-~SocketCAN__bcm__frame_frames();
-SocketCAN__bcm__frame_frames& operator=(const SocketCAN__bcm__frame_frames& other_value);
-boolean operator==(const SocketCAN__bcm__frame_frames& other_value) const;
-inline boolean operator!=(const SocketCAN__bcm__frame_frames& other_value) const { return !(*this == other_value); }
-SocketCAN__bcm__frame_frames_can__frame& can__frame();
-const SocketCAN__bcm__frame_frames_can__frame& can__frame() const;
-SocketCAN__bcm__frame_frames_canfd__frame& canfd__frame();
-const SocketCAN__bcm__frame_frames_canfd__frame& canfd__frame() const;
-inline union_selection_type get_selection() const { return union_selection; }
-boolean ischosen(union_selection_type checked_selection) const;
-boolean is_bound() const;
-boolean is_value() const;
-void clean_up();
-inline boolean is_present() const { return is_bound(); }
-void log() const;
-void set_param(Module_Param& param);
-  void set_implicit_omit();
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-};
-
-class SocketCAN__bcm__frame_frames_template : public Base_Template {
-union {
-struct {
-SocketCAN__bcm__frame_frames::union_selection_type union_selection;
-union {
-SocketCAN__bcm__frame_frames_can__frame_template *field_can__frame;
-SocketCAN__bcm__frame_frames_canfd__frame_template *field_canfd__frame;
-};
-} single_value;
-struct {
-unsigned int n_values;
-SocketCAN__bcm__frame_frames_template *list_value;
-} value_list;
-};
-void copy_value(const SocketCAN__bcm__frame_frames& other_value);
-
-void copy_template(const SocketCAN__bcm__frame_frames_template& other_value);
-
-public:
-SocketCAN__bcm__frame_frames_template();
-SocketCAN__bcm__frame_frames_template(template_sel other_value);
-SocketCAN__bcm__frame_frames_template(const SocketCAN__bcm__frame_frames& other_value);
-SocketCAN__bcm__frame_frames_template(const OPTIONAL<SocketCAN__bcm__frame_frames>& other_value);
-SocketCAN__bcm__frame_frames_template(const SocketCAN__bcm__frame_frames_template& other_value);
-~SocketCAN__bcm__frame_frames_template();
-void clean_up();
-SocketCAN__bcm__frame_frames_template& operator=(template_sel other_value);
-SocketCAN__bcm__frame_frames_template& operator=(const SocketCAN__bcm__frame_frames& other_value);
-SocketCAN__bcm__frame_frames_template& operator=(const OPTIONAL<SocketCAN__bcm__frame_frames>& other_value);
-SocketCAN__bcm__frame_frames_template& operator=(const SocketCAN__bcm__frame_frames_template& other_value);
-boolean match(const SocketCAN__bcm__frame_frames& other_value, boolean legacy = FALSE) const;
-boolean is_value() const;SocketCAN__bcm__frame_frames valueof() const;
-SocketCAN__bcm__frame_frames_template& list_item(unsigned int list_index) const;
-void set_type(template_sel template_type, unsigned int list_length);
-SocketCAN__bcm__frame_frames_can__frame_template& can__frame();
-const SocketCAN__bcm__frame_frames_can__frame_template& can__frame() const;
-SocketCAN__bcm__frame_frames_canfd__frame_template& canfd__frame();
-const SocketCAN__bcm__frame_frames_canfd__frame_template& canfd__frame() const;
-boolean ischosen(SocketCAN__bcm__frame_frames::union_selection_type checked_selection) const;
-void log() const;
-void log_match(const SocketCAN__bcm__frame_frames& match_value, boolean legacy = FALSE) const;
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-boolean is_present(boolean legacy = FALSE) const;
-boolean match_omit(boolean legacy = FALSE) const;
-void set_param(Module_Param& param);
-void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
-};
-
-class SocketCAN__bcm__frame_frames_can__frame : public Base_Type {
-struct recordof_setof_struct {
-int ref_count;
-int n_elements;
-Can::CAN__frame **value_elements;
-} *val_ptr;
-
-static const Can::CAN__frame UNBOUND_ELEM;
-private:
-friend boolean operator==(null_type null_value, const SocketCAN__bcm__frame_frames_can__frame& other_value);
-
-public:
-  typedef Can::CAN__frame of_type;
-SocketCAN__bcm__frame_frames_can__frame();
-SocketCAN__bcm__frame_frames_can__frame(null_type other_value);
-SocketCAN__bcm__frame_frames_can__frame(const SocketCAN__bcm__frame_frames_can__frame& other_value);
-~SocketCAN__bcm__frame_frames_can__frame();
-
-void clean_up();
-SocketCAN__bcm__frame_frames_can__frame& operator=(null_type other_value);
-SocketCAN__bcm__frame_frames_can__frame& operator=(const SocketCAN__bcm__frame_frames_can__frame& other_value);
-
-boolean operator==(null_type other_value) const;
-boolean operator==(const SocketCAN__bcm__frame_frames_can__frame& other_value) const;
-inline boolean operator!=(null_type other_value) const { return !(*this == other_value); }
-inline boolean operator!=(const SocketCAN__bcm__frame_frames_can__frame& other_value) const { return !(*this == other_value); }
-
-Can::CAN__frame& operator[](int index_value);
-Can::CAN__frame& operator[](const INTEGER& index_value);
-const Can::CAN__frame& operator[](int index_value) const;
-const Can::CAN__frame& operator[](const INTEGER& index_value) const;
-
-SocketCAN__bcm__frame_frames_can__frame operator<<=(int rotate_count) const;
-SocketCAN__bcm__frame_frames_can__frame operator<<=(const INTEGER& rotate_count) const;
-SocketCAN__bcm__frame_frames_can__frame operator>>=(int rotate_count) const;
-SocketCAN__bcm__frame_frames_can__frame operator>>=(const INTEGER& rotate_count) const;
-
-SocketCAN__bcm__frame_frames_can__frame operator+(const SocketCAN__bcm__frame_frames_can__frame& other_value) const;
-
-SocketCAN__bcm__frame_frames_can__frame substr(int index, int returncount) const;
-
-SocketCAN__bcm__frame_frames_can__frame replace(int index, int len, const SocketCAN__bcm__frame_frames_can__frame& repl) const;
-
-SocketCAN__bcm__frame_frames_can__frame replace(int index, int len, const SocketCAN__bcm__frame_frames_can__frame_template& repl) const;
-
-void set_size(int new_size);
-inline boolean is_bound() const {return val_ptr != NULL; }
-inline boolean is_present() const { return is_bound(); }
-boolean is_value() const;
-int size_of() const;
-int n_elem() const { return size_of(); }
-int lengthof() const;
-void log() const;
-void set_param(Module_Param& param);
-  void set_implicit_omit();
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-};
-
-class SocketCAN__bcm__frame_frames_can__frame_template : public Record_Of_Template {
-union {
-struct {
-int n_elements;
-Can::CAN__frame_template **value_elements;
-} single_value;
-struct {
-unsigned int n_values;
-SocketCAN__bcm__frame_frames_can__frame_template *list_value;
-} value_list;
-};
-void copy_value(const SocketCAN__bcm__frame_frames_can__frame& other_value);
-void copy_template(const SocketCAN__bcm__frame_frames_can__frame_template& other_value);
-static boolean match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy);
-
-public:
-SocketCAN__bcm__frame_frames_can__frame_template();
-SocketCAN__bcm__frame_frames_can__frame_template(template_sel other_value);
-SocketCAN__bcm__frame_frames_can__frame_template(null_type other_value);
-SocketCAN__bcm__frame_frames_can__frame_template(const SocketCAN__bcm__frame_frames_can__frame& other_value);
-SocketCAN__bcm__frame_frames_can__frame_template(const OPTIONAL<SocketCAN__bcm__frame_frames_can__frame>& other_value);
-SocketCAN__bcm__frame_frames_can__frame_template(const SocketCAN__bcm__frame_frames_can__frame_template& other_value);
-~SocketCAN__bcm__frame_frames_can__frame_template();
-
-void clean_up();
-SocketCAN__bcm__frame_frames_can__frame_template& operator=(template_sel other_value);
-SocketCAN__bcm__frame_frames_can__frame_template& operator=(null_type other_value);
-SocketCAN__bcm__frame_frames_can__frame_template& operator=(const SocketCAN__bcm__frame_frames_can__frame& other_value);
-SocketCAN__bcm__frame_frames_can__frame_template& operator=(const OPTIONAL<SocketCAN__bcm__frame_frames_can__frame>& other_value);
-SocketCAN__bcm__frame_frames_can__frame_template& operator=(const SocketCAN__bcm__frame_frames_can__frame_template& other_value);
-
-Can::CAN__frame_template& operator[](int index_value);
-Can::CAN__frame_template& operator[](const INTEGER& index_value);
-const Can::CAN__frame_template& operator[](int index_value) const;
-const Can::CAN__frame_template& operator[](const INTEGER& index_value) const;
-
-void set_size(int new_size);
-int n_elem() const;
-int size_of(boolean is_size) const;
-inline int size_of() const { return size_of(TRUE); }
-inline int lengthof() const { return size_of(FALSE); }
-boolean match(const SocketCAN__bcm__frame_frames_can__frame& other_value, boolean legacy = FALSE) const;
-inline boolean is_bound() const 
-  {return template_selection != UNINITIALIZED_TEMPLATE; }
-boolean is_value() const;
-SocketCAN__bcm__frame_frames_can__frame valueof() const;
-SocketCAN__bcm__frame_frames_can__frame substr(int index, int returncount) const;
-
-SocketCAN__bcm__frame_frames_can__frame replace(int index, int len, const SocketCAN__bcm__frame_frames_can__frame_template& repl) const;
-
-SocketCAN__bcm__frame_frames_can__frame replace(int index, int len, const SocketCAN__bcm__frame_frames_can__frame& repl) const;
-
-void set_type(template_sel template_type, unsigned int list_length);
-SocketCAN__bcm__frame_frames_can__frame_template& list_item(unsigned int list_index);
-void log() const;
-void log_match(const SocketCAN__bcm__frame_frames_can__frame& match_value, boolean legacy = FALSE) const;
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-boolean is_present(boolean legacy = FALSE) const;
-boolean match_omit(boolean legacy = FALSE) const;
-void set_param(Module_Param& param);
-void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
-boolean get_istemplate_kind(const char* type) const;
-};
-
-class SocketCAN__bcm__frame_frames_canfd__frame : public Base_Type {
-struct recordof_setof_struct {
-int ref_count;
-int n_elements;
-Can::CANFD__frame **value_elements;
-} *val_ptr;
-
-static const Can::CANFD__frame UNBOUND_ELEM;
-private:
-friend boolean operator==(null_type null_value, const SocketCAN__bcm__frame_frames_canfd__frame& other_value);
-
-public:
-  typedef Can::CANFD__frame of_type;
-SocketCAN__bcm__frame_frames_canfd__frame();
-SocketCAN__bcm__frame_frames_canfd__frame(null_type other_value);
-SocketCAN__bcm__frame_frames_canfd__frame(const SocketCAN__bcm__frame_frames_canfd__frame& other_value);
-~SocketCAN__bcm__frame_frames_canfd__frame();
-
-void clean_up();
-SocketCAN__bcm__frame_frames_canfd__frame& operator=(null_type other_value);
-SocketCAN__bcm__frame_frames_canfd__frame& operator=(const SocketCAN__bcm__frame_frames_canfd__frame& other_value);
-
-boolean operator==(null_type other_value) const;
-boolean operator==(const SocketCAN__bcm__frame_frames_canfd__frame& other_value) const;
-inline boolean operator!=(null_type other_value) const { return !(*this == other_value); }
-inline boolean operator!=(const SocketCAN__bcm__frame_frames_canfd__frame& other_value) const { return !(*this == other_value); }
-
-Can::CANFD__frame& operator[](int index_value);
-Can::CANFD__frame& operator[](const INTEGER& index_value);
-const Can::CANFD__frame& operator[](int index_value) const;
-const Can::CANFD__frame& operator[](const INTEGER& index_value) const;
-
-SocketCAN__bcm__frame_frames_canfd__frame operator<<=(int rotate_count) const;
-SocketCAN__bcm__frame_frames_canfd__frame operator<<=(const INTEGER& rotate_count) const;
-SocketCAN__bcm__frame_frames_canfd__frame operator>>=(int rotate_count) const;
-SocketCAN__bcm__frame_frames_canfd__frame operator>>=(const INTEGER& rotate_count) const;
-
-SocketCAN__bcm__frame_frames_canfd__frame operator+(const SocketCAN__bcm__frame_frames_canfd__frame& other_value) const;
-
-SocketCAN__bcm__frame_frames_canfd__frame substr(int index, int returncount) const;
-
-SocketCAN__bcm__frame_frames_canfd__frame replace(int index, int len, const SocketCAN__bcm__frame_frames_canfd__frame& repl) const;
-
-SocketCAN__bcm__frame_frames_canfd__frame replace(int index, int len, const SocketCAN__bcm__frame_frames_canfd__frame_template& repl) const;
-
-void set_size(int new_size);
-inline boolean is_bound() const {return val_ptr != NULL; }
-inline boolean is_present() const { return is_bound(); }
-boolean is_value() const;
-int size_of() const;
-int n_elem() const { return size_of(); }
-int lengthof() const;
-void log() const;
-void set_param(Module_Param& param);
-  void set_implicit_omit();
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-};
-
-class SocketCAN__bcm__frame_frames_canfd__frame_template : public Record_Of_Template {
-union {
-struct {
-int n_elements;
-Can::CANFD__frame_template **value_elements;
-} single_value;
-struct {
-unsigned int n_values;
-SocketCAN__bcm__frame_frames_canfd__frame_template *list_value;
-} value_list;
-};
-void copy_value(const SocketCAN__bcm__frame_frames_canfd__frame& other_value);
-void copy_template(const SocketCAN__bcm__frame_frames_canfd__frame_template& other_value);
-static boolean match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy);
-
-public:
-SocketCAN__bcm__frame_frames_canfd__frame_template();
-SocketCAN__bcm__frame_frames_canfd__frame_template(template_sel other_value);
-SocketCAN__bcm__frame_frames_canfd__frame_template(null_type other_value);
-SocketCAN__bcm__frame_frames_canfd__frame_template(const SocketCAN__bcm__frame_frames_canfd__frame& other_value);
-SocketCAN__bcm__frame_frames_canfd__frame_template(const OPTIONAL<SocketCAN__bcm__frame_frames_canfd__frame>& other_value);
-SocketCAN__bcm__frame_frames_canfd__frame_template(const SocketCAN__bcm__frame_frames_canfd__frame_template& other_value);
-~SocketCAN__bcm__frame_frames_canfd__frame_template();
-
-void clean_up();
-SocketCAN__bcm__frame_frames_canfd__frame_template& operator=(template_sel other_value);
-SocketCAN__bcm__frame_frames_canfd__frame_template& operator=(null_type other_value);
-SocketCAN__bcm__frame_frames_canfd__frame_template& operator=(const SocketCAN__bcm__frame_frames_canfd__frame& other_value);
-SocketCAN__bcm__frame_frames_canfd__frame_template& operator=(const OPTIONAL<SocketCAN__bcm__frame_frames_canfd__frame>& other_value);
-SocketCAN__bcm__frame_frames_canfd__frame_template& operator=(const SocketCAN__bcm__frame_frames_canfd__frame_template& other_value);
-
-Can::CANFD__frame_template& operator[](int index_value);
-Can::CANFD__frame_template& operator[](const INTEGER& index_value);
-const Can::CANFD__frame_template& operator[](int index_value) const;
-const Can::CANFD__frame_template& operator[](const INTEGER& index_value) const;
-
-void set_size(int new_size);
-int n_elem() const;
-int size_of(boolean is_size) const;
-inline int size_of() const { return size_of(TRUE); }
-inline int lengthof() const { return size_of(FALSE); }
-boolean match(const SocketCAN__bcm__frame_frames_canfd__frame& other_value, boolean legacy = FALSE) const;
-inline boolean is_bound() const 
-  {return template_selection != UNINITIALIZED_TEMPLATE; }
-boolean is_value() const;
-SocketCAN__bcm__frame_frames_canfd__frame valueof() const;
-SocketCAN__bcm__frame_frames_canfd__frame substr(int index, int returncount) const;
-
-SocketCAN__bcm__frame_frames_canfd__frame replace(int index, int len, const SocketCAN__bcm__frame_frames_canfd__frame_template& repl) const;
-
-SocketCAN__bcm__frame_frames_canfd__frame replace(int index, int len, const SocketCAN__bcm__frame_frames_canfd__frame& repl) const;
-
-void set_type(template_sel template_type, unsigned int list_length);
-SocketCAN__bcm__frame_frames_canfd__frame_template& list_item(unsigned int list_index);
-void log() const;
-void log_match(const SocketCAN__bcm__frame_frames_canfd__frame& match_value, boolean legacy = FALSE) const;
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-boolean is_present(boolean legacy = FALSE) const;
-boolean match_omit(boolean legacy = FALSE) const;
-void set_param(Module_Param& param);
-void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
-boolean get_istemplate_kind(const char* type) const;
-};
-
-class SocketCAN__bcm__frame {
-  OCTETSTRING field_opcode;
-  BITSTRING field_flags;
-  INTEGER field_count;
-  Bcm__timeval field_ival1;
-  Bcm__timeval field_ival2;
-  OCTETSTRING field_can__id;
-  SocketCAN__bcm__frame_frames field_frames;
-public:
-  SocketCAN__bcm__frame();
-  SocketCAN__bcm__frame(const OCTETSTRING& par_opcode,
-    const BITSTRING& par_flags,
-    const INTEGER& par_count,
-    const Bcm__timeval& par_ival1,
-    const Bcm__timeval& par_ival2,
-    const OCTETSTRING& par_can__id,
-    const SocketCAN__bcm__frame_frames& par_frames);
-  SocketCAN__bcm__frame(const SocketCAN__bcm__frame& other_value);
-  inline boolean is_component() { return FALSE; }
-  void clean_up();
-const TTCN_Typedescriptor_t* get_descriptor() const;
-  SocketCAN__bcm__frame& operator=(const SocketCAN__bcm__frame& other_value);
-  boolean operator==(const SocketCAN__bcm__frame& other_value) const;
-  inline boolean operator!=(const SocketCAN__bcm__frame& other_value) const
-    { return !(*this == other_value); }
-
-  boolean is_bound() const;
-
-inline boolean is_present() const { return is_bound(); }
-  boolean is_value() const;
-
-  inline OCTETSTRING& opcode()
-    {return field_opcode;}
-  inline const OCTETSTRING& opcode() const
-    {return field_opcode;}
-  inline BITSTRING& flags()
-    {return field_flags;}
-  inline const BITSTRING& flags() const
-    {return field_flags;}
-  inline INTEGER& count()
-    {return field_count;}
-  inline const INTEGER& count() const
-    {return field_count;}
-  inline Bcm__timeval& ival1()
-    {return field_ival1;}
-  inline const Bcm__timeval& ival1() const
-    {return field_ival1;}
-  inline Bcm__timeval& ival2()
-    {return field_ival2;}
-  inline const Bcm__timeval& ival2() const
-    {return field_ival2;}
-  inline OCTETSTRING& can__id()
-    {return field_can__id;}
-  inline const OCTETSTRING& can__id() const
-    {return field_can__id;}
-  inline SocketCAN__bcm__frame_frames& frames()
-    {return field_frames;}
-  inline const SocketCAN__bcm__frame_frames& frames() const
-    {return field_frames;}
-  inline int size_of() const
-    {return 7;}
-  void log() const;
-  void set_param(Module_Param& param);
-  void set_implicit_omit();
-  void encode_text(Text_Buf& text_buf) const;
-  void decode_text(Text_Buf& text_buf);
-};
-
-class SocketCAN__bcm__frame_template : public Base_Template {
-struct single_value_struct;
-union {
-single_value_struct *single_value;
-struct {
-unsigned int n_values;
-SocketCAN__bcm__frame_template *list_value;
-} value_list;
-};
-
-void set_specific();
-void copy_value(const SocketCAN__bcm__frame& other_value);
-void copy_template(const SocketCAN__bcm__frame_template& other_value);
-
-public:
-SocketCAN__bcm__frame_template();
-SocketCAN__bcm__frame_template(template_sel other_value);
-SocketCAN__bcm__frame_template(const SocketCAN__bcm__frame& other_value);
-SocketCAN__bcm__frame_template(const OPTIONAL<SocketCAN__bcm__frame>& other_value);
-SocketCAN__bcm__frame_template(const SocketCAN__bcm__frame_template& other_value);
-~SocketCAN__bcm__frame_template();
-SocketCAN__bcm__frame_template& operator=(template_sel other_value);
-SocketCAN__bcm__frame_template& operator=(const SocketCAN__bcm__frame& other_value);
-SocketCAN__bcm__frame_template& operator=(const OPTIONAL<SocketCAN__bcm__frame>& other_value);
-SocketCAN__bcm__frame_template& operator=(const SocketCAN__bcm__frame_template& other_value);
-boolean match(const SocketCAN__bcm__frame& other_value, boolean legacy = FALSE) const;
-boolean is_bound() const;
-boolean is_value() const;
-void clean_up();
-SocketCAN__bcm__frame valueof() const;
-void set_type(template_sel template_type, unsigned int list_length);
-SocketCAN__bcm__frame_template& list_item(unsigned int list_index) const;
-OCTETSTRING_template& opcode();
-const OCTETSTRING_template& opcode() const;
-BITSTRING_template& flags();
-const BITSTRING_template& flags() const;
-INTEGER_template& count();
-const INTEGER_template& count() const;
-Bcm__timeval_template& ival1();
-const Bcm__timeval_template& ival1() const;
-Bcm__timeval_template& ival2();
-const Bcm__timeval_template& ival2() const;
-OCTETSTRING_template& can__id();
-const OCTETSTRING_template& can__id() const;
-SocketCAN__bcm__frame_frames_template& frames();
-const SocketCAN__bcm__frame_frames_template& frames() const;
-int size_of() const;
-void log() const;
-void log_match(const SocketCAN__bcm__frame& match_value, boolean legacy = FALSE) const;
-void encode_text(Text_Buf& text_buf) const;
-void decode_text(Text_Buf& text_buf);
-void set_param(Module_Param& param);
-void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
-boolean is_present(boolean legacy = FALSE) const;
-boolean match_omit(boolean legacy = FALSE) const;
-};
-
-
-/* Function prototypes */
-
-extern boolean operator==(null_type null_value, const SocketCAN__bcm__frame_frames_can__frame& other_value);
-inline boolean operator!=(null_type null_value, const SocketCAN__bcm__frame_frames_can__frame& other_value) { return !(null_value == other_value); }
-extern boolean operator==(null_type null_value, const SocketCAN__bcm__frame_frames_canfd__frame& other_value);
-inline boolean operator!=(null_type null_value, const SocketCAN__bcm__frame_frames_canfd__frame& other_value) { return !(null_value == other_value); }
-
-/* Global variable declarations */
-
-extern const INTEGER& CAN__FRAME__MAX__NUMBER;
-extern const TTCN_Typedescriptor_t BcmFlagsBitIndex__enum_descr_;
-extern const TTCN_Typedescriptor_t BcmFlags__enum_descr_;
-extern const TTCN_Typedescriptor_t BcmOpcode__enum_descr_;
-extern const XERdescriptor_t Bcm__long_xer_;
-extern const TTCN_OERdescriptor_t Bcm__long_oer_;
-extern const TTCN_Typedescriptor_t Bcm__long_descr_;
-extern const XERdescriptor_t Bcm__timeval_tv__sec_xer_;
-extern const TTCN_OERdescriptor_t Bcm__timeval_tv__sec_oer_;
-extern const TTCN_Typedescriptor_t Bcm__timeval_tv__sec_descr_;
-extern const XERdescriptor_t Bcm__timeval_tv__usec_xer_;
-extern const TTCN_OERdescriptor_t Bcm__timeval_tv__usec_oer_;
-extern const TTCN_Typedescriptor_t Bcm__timeval_tv__usec_descr_;
-extern const TTCN_Typedescriptor_t Bcm__timeval_descr_;
-extern const XERdescriptor_t SocketCAN__bcm__frame_opcode_xer_;
-extern const TTCN_OERdescriptor_t SocketCAN__bcm__frame_opcode_oer_;
-extern const TTCN_Typedescriptor_t SocketCAN__bcm__frame_opcode_descr_;
-extern const TTCN_RAWdescriptor_t SocketCAN__bcm__frame_flags_raw_;
-extern const XERdescriptor_t SocketCAN__bcm__frame_flags_xer_;
-extern const TTCN_OERdescriptor_t SocketCAN__bcm__frame_flags_oer_;
-extern const TTCN_Typedescriptor_t SocketCAN__bcm__frame_flags_descr_;
-extern const XERdescriptor_t SocketCAN__bcm__frame_count_xer_;
-extern const TTCN_OERdescriptor_t SocketCAN__bcm__frame_count_oer_;
-extern const TTCN_Typedescriptor_t SocketCAN__bcm__frame_count_descr_;
-extern const XERdescriptor_t SocketCAN__bcm__frame_can__id_xer_;
-extern const TTCN_OERdescriptor_t SocketCAN__bcm__frame_can__id_oer_;
-extern const TTCN_Typedescriptor_t SocketCAN__bcm__frame_can__id_descr_;
-extern const TTCN_Typedescriptor_t SocketCAN__bcm__frame_frames_descr_;
-extern const TTCN_Typedescriptor_t SocketCAN__bcm__frame_frames_can__frame_descr_;
-extern const TTCN_Typedescriptor_t SocketCAN__bcm__frame_frames_canfd__frame_descr_;
-extern const TTCN_Typedescriptor_t SocketCAN__bcm__frame_descr_;
-extern TTCN_Module module_object;
-
-} /* end of namespace */
-
-#endif
diff --git a/demo/Bcm.o b/demo/Bcm.o
deleted file mode 100644
index 8d03bef..0000000
--- a/demo/Bcm.o
+++ /dev/null
Binary files differ
diff --git a/demo/CANFD_matrix_messages.cc b/demo/CANFD_matrix_messages.cc
deleted file mode 100644
index d82a425..0000000
--- a/demo/CANFD_matrix_messages.cc
+++ /dev/null
@@ -1,6625 +0,0 @@
-// This C++ source file was generated by the TTCN-3 compiler
-// of the TTCN-3 Test Executor version CRL 113 200/6 R6A
-// for Lénárd Nagy (elnrnag@elx78355y6x) on Thu Oct 24 10:29:40 2019
-
-// Copyright (c) 2000-2019 Ericsson Telecom AB
-
-// Do not edit this file unless you know what you are doing.
-
-/* Including header files */
-
-#include "CANFD_matrix_messages.hh"
-
-namespace CANFD__matrix__messages {
-
-/* Prototypes of static functions */
-
-static void pre_init_module();
-static void post_init_module();
-
-/* Literal string constants */
-
-static const unsigned char os_0_octets[] = { 0, 0, 1, 34 },
-os_1_octets[] = { 0, 0, 1, 35 },
-os_2_octets[] = { 0, 0, 1, 36 },
-os_3_octets[] = { 0, 0, 1, 37 },
-os_4_octets[] = { 128, 0, 0, 1 };
-static const OCTETSTRING os_0(4, os_0_octets),
-os_1(4, os_1_octets),
-os_2(4, os_2_octets),
-os_3(4, os_3_octets),
-os_4(4, os_4_octets);
-static const unsigned char module_checksum[] = { 0x23, 0x12, 0x87, 0x6a, 0xa7, 0xe1, 0xed, 0x39, 0xe3, 0x5a, 0xcf, 0xde, 0x64, 0xd8, 0x44, 0x22 };
-
-/* Global variable definitions */
-
-const TTCN_RAWdescriptor_t CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__11__bit__bitstring__lsb__coded_raw_ = {11,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_MSB,EXT_BIT_NO,ORDER_LSB,ORDER_MSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,11,CharCoding::UNKNOWN,NULL,false};
-const XERdescriptor_t       CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__11__bit__bitstring__lsb__coded_xer_ = { {"test_sig_11_bit_bitstring_lsb_coded>\n", "test_sig_11_bit_bitstring_lsb_coded>\n"}, {37, 37}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const TTCN_OERdescriptor_t CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__11__bit__bitstring__lsb__coded_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
-const TTCN_Typedescriptor_t CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__11__bit__bitstring__lsb__coded_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.test_sig_11_bit_bitstring_lsb_coded", &BITSTRING_ber_, &CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__11__bit__bitstring__lsb__coded_raw_, NULL, &CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__11__bit__bitstring__lsb__coded_xer_, &BITSTRING_json_, &CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__11__bit__bitstring__lsb__coded_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__5__bit__bitstring__lsb__coded_raw_ = {5,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_MSB,EXT_BIT_NO,ORDER_LSB,ORDER_MSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,5,CharCoding::UNKNOWN,NULL,false};
-const XERdescriptor_t       CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__5__bit__bitstring__lsb__coded_xer_ = { {"test_sig_5_bit_bitstring_lsb_coded>\n", "test_sig_5_bit_bitstring_lsb_coded>\n"}, {36, 36}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const TTCN_OERdescriptor_t CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__5__bit__bitstring__lsb__coded_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
-const TTCN_Typedescriptor_t CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__5__bit__bitstring__lsb__coded_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.test_sig_5_bit_bitstring_lsb_coded", &BITSTRING_ber_, &CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__5__bit__bitstring__lsb__coded_raw_, NULL, &CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__5__bit__bitstring__lsb__coded_xer_, &BITSTRING_json_, &CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__5__bit__bitstring__lsb__coded_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t CANFD__MESSAGE__TESTFRAME0__msg__type_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_MSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
-// No XER for CANFD__MESSAGE__TESTFRAME0__msg__type
-const TTCN_Typedescriptor_t CANFD__MESSAGE__TESTFRAME0__msg__type_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type", NULL, &CANFD__MESSAGE__TESTFRAME0__msg__type_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__11__bit__bitstring__msb__coded_raw_ = {11,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_MSB,ORDER_MSB,EXT_BIT_NO,ORDER_LSB,ORDER_MSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,11,CharCoding::UNKNOWN,NULL,false};
-const XERdescriptor_t       CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__11__bit__bitstring__msb__coded_xer_ = { {"test_sig_11_bit_bitstring_msb_coded>\n", "test_sig_11_bit_bitstring_msb_coded>\n"}, {37, 37}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const TTCN_OERdescriptor_t CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__11__bit__bitstring__msb__coded_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
-const TTCN_Typedescriptor_t CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__11__bit__bitstring__msb__coded_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.test_sig_11_bit_bitstring_msb_coded", &BITSTRING_ber_, &CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__11__bit__bitstring__msb__coded_raw_, NULL, &CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__11__bit__bitstring__msb__coded_xer_, &BITSTRING_json_, &CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__11__bit__bitstring__msb__coded_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__5__bit__bitstring__msb__coded_raw_ = {5,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_MSB,ORDER_MSB,EXT_BIT_NO,ORDER_LSB,ORDER_MSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,5,CharCoding::UNKNOWN,NULL,false};
-const XERdescriptor_t       CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__5__bit__bitstring__msb__coded_xer_ = { {"test_sig_5_bit_bitstring_msb_coded>\n", "test_sig_5_bit_bitstring_msb_coded>\n"}, {36, 36}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const TTCN_OERdescriptor_t CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__5__bit__bitstring__msb__coded_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
-const TTCN_Typedescriptor_t CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__5__bit__bitstring__msb__coded_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.test_sig_5_bit_bitstring_msb_coded", &BITSTRING_ber_, &CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__5__bit__bitstring__msb__coded_raw_, NULL, &CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__5__bit__bitstring__msb__coded_xer_, &BITSTRING_json_, &CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__5__bit__bitstring__msb__coded_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t CANFD__MESSAGE__TESTFRAME1__msg__type_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_MSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
-// No XER for CANFD__MESSAGE__TESTFRAME1__msg__type
-const TTCN_Typedescriptor_t CANFD__MESSAGE__TESTFRAME1__msg__type_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type", NULL, &CANFD__MESSAGE__TESTFRAME1__msg__type_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__11__bit__integer__msb__coded_raw_ = {11,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_MSB,ORDER_MSB,EXT_BIT_NO,ORDER_LSB,ORDER_MSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
-const XERdescriptor_t       CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__11__bit__integer__msb__coded_xer_ = { {"test_sig_11_bit_integer_msb_coded>\n", "test_sig_11_bit_integer_msb_coded>\n"}, {35, 35}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const TTCN_OERdescriptor_t CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__11__bit__integer__msb__coded_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
-const TTCN_Typedescriptor_t CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__11__bit__integer__msb__coded_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.test_sig_11_bit_integer_msb_coded", &INTEGER_ber_, &CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__11__bit__integer__msb__coded_raw_, &INTEGER_text_, &CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__11__bit__integer__msb__coded_xer_, &INTEGER_json_, &CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__11__bit__integer__msb__coded_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__5__bit__integer__msb__coded_raw_ = {5,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_MSB,ORDER_MSB,EXT_BIT_NO,ORDER_LSB,ORDER_MSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
-const XERdescriptor_t       CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__5__bit__integer__msb__coded_xer_ = { {"test_sig_5_bit_integer_msb_coded>\n", "test_sig_5_bit_integer_msb_coded>\n"}, {34, 34}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const TTCN_OERdescriptor_t CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__5__bit__integer__msb__coded_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
-const TTCN_Typedescriptor_t CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__5__bit__integer__msb__coded_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.test_sig_5_bit_integer_msb_coded", &INTEGER_ber_, &CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__5__bit__integer__msb__coded_raw_, &INTEGER_text_, &CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__5__bit__integer__msb__coded_xer_, &INTEGER_json_, &CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__5__bit__integer__msb__coded_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t CANFD__MESSAGE__TESTFRAME2__msg__type_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_MSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
-// No XER for CANFD__MESSAGE__TESTFRAME2__msg__type
-const TTCN_Typedescriptor_t CANFD__MESSAGE__TESTFRAME2__msg__type_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type", NULL, &CANFD__MESSAGE__TESTFRAME2__msg__type_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const XERdescriptor_t       CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__1__byte__octetstring__msb__coded_xer_ = { {"test_sig_1_byte_octetstring_msb_coded>\n", "test_sig_1_byte_octetstring_msb_coded>\n"}, {39, 39}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const int CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__1__byte__octetstring__msb__coded_oer_ext_arr_[0] = {};
-const int CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__1__byte__octetstring__msb__coded_oer_p_[0] = {};
-const TTCN_OERdescriptor_t CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__1__byte__octetstring__msb__coded_oer_ = { -1, TRUE, 1, FALSE, 0, 0, CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__1__byte__octetstring__msb__coded_oer_ext_arr_, 0, CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__1__byte__octetstring__msb__coded_oer_p_};
-const TTCN_Typedescriptor_t CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__1__byte__octetstring__msb__coded_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.test_sig_1_byte_octetstring_msb_coded", &OCTETSTRING_ber_, &CAN__matrix__signals::OCT1__signal__type_raw_, &OCTETSTRING_text_, &CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__1__byte__octetstring__msb__coded_xer_, &OCTETSTRING_json_, &CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__1__byte__octetstring__msb__coded_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const XERdescriptor_t       CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__2__byte__octetstring__msb__coded_xer_ = { {"test_sig_2_byte_octetstring_msb_coded>\n", "test_sig_2_byte_octetstring_msb_coded>\n"}, {39, 39}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const int CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__2__byte__octetstring__msb__coded_oer_ext_arr_[0] = {};
-const int CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__2__byte__octetstring__msb__coded_oer_p_[0] = {};
-const TTCN_OERdescriptor_t CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__2__byte__octetstring__msb__coded_oer_ = { -1, TRUE, 2, FALSE, 0, 0, CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__2__byte__octetstring__msb__coded_oer_ext_arr_, 0, CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__2__byte__octetstring__msb__coded_oer_p_};
-const TTCN_Typedescriptor_t CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__2__byte__octetstring__msb__coded_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.test_sig_2_byte_octetstring_msb_coded", &OCTETSTRING_ber_, &CAN__matrix__signals::OCT2__signal__type_raw_, &OCTETSTRING_text_, &CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__2__byte__octetstring__msb__coded_xer_, &OCTETSTRING_json_, &CANFD__MESSAGE__TESTFRAME3__msg__type_test__sig__2__byte__octetstring__msb__coded_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t CANFD__MESSAGE__TESTFRAME3__msg__type_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
-// No XER for CANFD__MESSAGE__TESTFRAME3__msg__type
-const TTCN_Typedescriptor_t CANFD__MESSAGE__TESTFRAME3__msg__type_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type", NULL, &CANFD__MESSAGE__TESTFRAME3__msg__type_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const XERdescriptor_t       CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_test__sig__2__byte__octetstring__msb__coded_xer_ = { {"test_sig_2_byte_octetstring_msb_coded>\n", "test_sig_2_byte_octetstring_msb_coded>\n"}, {39, 39}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const int CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_test__sig__2__byte__octetstring__msb__coded_oer_ext_arr_[0] = {};
-const int CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_test__sig__2__byte__octetstring__msb__coded_oer_p_[0] = {};
-const TTCN_OERdescriptor_t CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_test__sig__2__byte__octetstring__msb__coded_oer_ = { -1, TRUE, 2, FALSE, 0, 0, CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_test__sig__2__byte__octetstring__msb__coded_oer_ext_arr_, 0, CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_test__sig__2__byte__octetstring__msb__coded_oer_p_};
-const TTCN_Typedescriptor_t CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_test__sig__2__byte__octetstring__msb__coded_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.test_sig_2_byte_octetstring_msb_coded", &OCTETSTRING_ber_, &CAN__matrix__signals::OCT2__signal__type_raw_, &OCTETSTRING_text_, &CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_test__sig__2__byte__octetstring__msb__coded_xer_, &OCTETSTRING_json_, &CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_test__sig__2__byte__octetstring__msb__coded_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
-// No XER for CANFD__MESSAGE__EXTENDEDFRAME1__msg__type
-const TTCN_Typedescriptor_t CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_descr_ = { "@CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type", NULL, &CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t CANFD__MatrixPayloadUnion_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
-// No XER for CANFD__MatrixPayloadUnion
-const TTCN_Typedescriptor_t CANFD__MatrixPayloadUnion_descr_ = { "@CANFD_matrix_messages.CANFD_MatrixPayloadUnion", NULL, &CANFD__MatrixPayloadUnion_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const XERdescriptor_t       CANFD__MatrixUnion_can__id_xer_ = { {"can_id>\n", "can_id>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const int CANFD__MatrixUnion_can__id_oer_ext_arr_[0] = {};
-const int CANFD__MatrixUnion_can__id_oer_p_[0] = {};
-const TTCN_OERdescriptor_t CANFD__MatrixUnion_can__id_oer_ = { -1, TRUE, 4, FALSE, 0, 0, CANFD__MatrixUnion_can__id_oer_ext_arr_, 0, CANFD__MatrixUnion_can__id_oer_p_};
-const TTCN_Typedescriptor_t CANFD__MatrixUnion_can__id_descr_ = { "@CANFD_matrix_messages.CANFD_MatrixUnion.can_id", &OCTETSTRING_ber_, &Can::CAN__id_raw_, &OCTETSTRING_text_, &CANFD__MatrixUnion_can__id_xer_, &OCTETSTRING_json_, &CANFD__MatrixUnion_can__id_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const XERdescriptor_t       CANFD__MatrixUnion_can__flags_xer_ = { {"can_flags>\n", "can_flags>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE,  NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
-const TTCN_OERdescriptor_t CANFD__MatrixUnion_can__flags_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
-const TTCN_Typedescriptor_t CANFD__MatrixUnion_can__flags_descr_ = { "@CANFD_matrix_messages.CANFD_MatrixUnion.can_flags", &BITSTRING_ber_, &Can::CAN__flags_raw_, NULL, &CANFD__MatrixUnion_can__flags_xer_, &BITSTRING_json_, &CANFD__MatrixUnion_can__flags_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t CANFD__MatrixUnion_can__pdu_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
-// No XER for CANFD__MatrixUnion_can__pdu
-const TTCN_Typedescriptor_t CANFD__MatrixUnion_can__pdu_descr_ = { "@CANFD_matrix_messages.CANFD_MatrixUnion.can_pdu", NULL, &CANFD__MatrixUnion_can__pdu_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-const TTCN_RAWdescriptor_t CANFD__MatrixUnion_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false};
-// No XER for CANFD__MatrixUnion
-const TTCN_Typedescriptor_t CANFD__MatrixUnion_descr_ = { "@CANFD_matrix_messages.CANFD_MatrixUnion", NULL, &CANFD__MatrixUnion_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
-TTCN_Module module_object("CANFD_matrix_messages", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
-
-static const RuntimeVersionChecker ver_checker(  current_runtime_version.requires_major_version_6,
-  current_runtime_version.requires_minor_version_6,
-  current_runtime_version.requires_patch_level_0,  current_runtime_version.requires_runtime_1);
-
-/* Member functions of C++ classes */
-
-CANFD__MESSAGE__TESTFRAME0__msg__type::CANFD__MESSAGE__TESTFRAME0__msg__type()
-{
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type::CANFD__MESSAGE__TESTFRAME0__msg__type(const BITSTRING& par_test__sig__11__bit__bitstring__lsb__coded,
-    const BITSTRING& par_test__sig__5__bit__bitstring__lsb__coded)
-  :   field_test__sig__11__bit__bitstring__lsb__coded(par_test__sig__11__bit__bitstring__lsb__coded),
-  field_test__sig__5__bit__bitstring__lsb__coded(par_test__sig__5__bit__bitstring__lsb__coded)
-{
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type::CANFD__MESSAGE__TESTFRAME0__msg__type(const CANFD__MESSAGE__TESTFRAME0__msg__type& other_value)
-{
-if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-if (other_value.test__sig__11__bit__bitstring__lsb__coded().is_bound()) field_test__sig__11__bit__bitstring__lsb__coded = other_value.test__sig__11__bit__bitstring__lsb__coded();
-else field_test__sig__11__bit__bitstring__lsb__coded.clean_up();
-if (other_value.test__sig__5__bit__bitstring__lsb__coded().is_bound()) field_test__sig__5__bit__bitstring__lsb__coded = other_value.test__sig__5__bit__bitstring__lsb__coded();
-else field_test__sig__5__bit__bitstring__lsb__coded.clean_up();
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type::clean_up()
-{
-field_test__sig__11__bit__bitstring__lsb__coded.clean_up();
-field_test__sig__5__bit__bitstring__lsb__coded.clean_up();
-}
-
-const TTCN_Typedescriptor_t* CANFD__MESSAGE__TESTFRAME0__msg__type::get_descriptor() const { return &CANFD__MESSAGE__TESTFRAME0__msg__type_descr_; }
-CANFD__MESSAGE__TESTFRAME0__msg__type& CANFD__MESSAGE__TESTFRAME0__msg__type::operator=(const CANFD__MESSAGE__TESTFRAME0__msg__type& other_value)
-{
-if (this != &other_value) {
-  if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-  if (other_value.test__sig__11__bit__bitstring__lsb__coded().is_bound()) field_test__sig__11__bit__bitstring__lsb__coded = other_value.test__sig__11__bit__bitstring__lsb__coded();
-  else field_test__sig__11__bit__bitstring__lsb__coded.clean_up();
-  if (other_value.test__sig__5__bit__bitstring__lsb__coded().is_bound()) field_test__sig__5__bit__bitstring__lsb__coded = other_value.test__sig__5__bit__bitstring__lsb__coded();
-  else field_test__sig__5__bit__bitstring__lsb__coded.clean_up();
-}
-return *this;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME0__msg__type::operator==(const CANFD__MESSAGE__TESTFRAME0__msg__type& other_value) const
-{
-return field_test__sig__11__bit__bitstring__lsb__coded==other_value.field_test__sig__11__bit__bitstring__lsb__coded
-  && field_test__sig__5__bit__bitstring__lsb__coded==other_value.field_test__sig__5__bit__bitstring__lsb__coded;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME0__msg__type::is_bound() const
-{
-return (field_test__sig__11__bit__bitstring__lsb__coded.is_bound())
-  || (field_test__sig__5__bit__bitstring__lsb__coded.is_bound());
-}
-boolean CANFD__MESSAGE__TESTFRAME0__msg__type::is_value() const
-{
-return field_test__sig__11__bit__bitstring__lsb__coded.is_value()
-  && field_test__sig__5__bit__bitstring__lsb__coded.is_value();
-}
-void CANFD__MESSAGE__TESTFRAME0__msg__type::log() const
-{
-if (!is_bound()) {
-TTCN_Logger::log_event_unbound();
-return;
-}
-TTCN_Logger::log_event_str("{ test_sig_11_bit_bitstring_lsb_coded := ");
-field_test__sig__11__bit__bitstring__lsb__coded.log();
-TTCN_Logger::log_event_str(", test_sig_5_bit_bitstring_lsb_coded := ");
-field_test__sig__5__bit__bitstring__lsb__coded.log();
-TTCN_Logger::log_event_str(" }");
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
-  case Module_Param::MP_Value_List:
-    if (2<param.get_size()) {
-      param.error("record value of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) test__sig__11__bit__bitstring__lsb__coded().set_param(*param.get_elem(0));
-    if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) test__sig__5__bit__bitstring__lsb__coded().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_11_bit_bitstring_lsb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__11__bit__bitstring__lsb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_5_bit_bitstring_lsb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__5__bit__bitstring__lsb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record value", "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type");
-  }
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type::set_implicit_omit()
-{
-if (test__sig__11__bit__bitstring__lsb__coded().is_bound()) test__sig__11__bit__bitstring__lsb__coded().set_implicit_omit();
-if (test__sig__5__bit__bitstring__lsb__coded().is_bound()) test__sig__5__bit__bitstring__lsb__coded().set_implicit_omit();
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type::encode_text(Text_Buf& text_buf) const
-{
-field_test__sig__11__bit__bitstring__lsb__coded.encode_text(text_buf);
-field_test__sig__5__bit__bitstring__lsb__coded.encode_text(text_buf);
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type::decode_text(Text_Buf& text_buf)
-{
-field_test__sig__11__bit__bitstring__lsb__coded.decode_text(text_buf);
-field_test__sig__5__bit__bitstring__lsb__coded.decode_text(text_buf);
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-encoding type '%s': ", p_td.name);
-    unsigned BER_coding=va_arg(pvar, unsigned);
-    BER_encode_chk_coding(BER_coding);
-    ASN_BER_TLV_t *tlv=BER_encode_TLV(p_td, BER_coding);
-    tlv->put_in_buffer(p_buf);
-    ASN_BER_TLV_t::destruct(tlv);
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-encoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    RAW_enc_tr_pos rp;
-    rp.level=0;
-    rp.pos=NULL;
-    RAW_enc_tree root(FALSE, NULL, &rp, 1, p_td.raw);
-    RAW_encode(p_td, root);
-    root.put_to_buf(p_buf);
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    TTCN_EncDec_ErrorContext ec("While TEXT-encoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-      ("No TEXT descriptor available for type '%s'.", p_td.name);
-    TEXT_encode(p_td,p_buf);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-encoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XER_encode(*(p_td.xer),p_buf, XER_coding, 0, 0, 0);
-    p_buf.put_c('\n');
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-encoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok(va_arg(pvar, int) != 0);
-    JSON_encode(p_td, tok);
-    p_buf.put_s(tok.get_buffer_length(), (const unsigned char*)tok.get_buffer());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-encoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-    OER_encode(p_td, p_buf);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to encode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
-    unsigned L_form=va_arg(pvar, unsigned);
-    ASN_BER_TLV_t tlv;
-    BER_decode_str2TLV(p_buf, tlv, L_form);
-    BER_decode_TLV(p_td, tlv, L_form);
-    if(tlv.isComplete) p_buf.increase_pos(tlv.get_len());
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-decoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    raw_order_t r_order;
-    switch(p_td.raw->top_bit_order) {
-    case TOP_BIT_LEFT:
-      r_order=ORDER_LSB;
-      break;
-    case TOP_BIT_RIGHT:
-    default:
-      r_order=ORDER_MSB;
-    }
-    int rawr = RAW_decode(p_td, p_buf, p_buf.get_len()*8, r_order);
-    if(rawr<0) switch (-rawr) {
-    case TTCN_EncDec::ET_INCOMPL_MSG:
-    case TTCN_EncDec::ET_LEN_ERR:
-      ec.error((TTCN_EncDec::error_type_t)-rawr, "Can not decode type '%s', because incomplete message was received", p_td.name);
-      break;
-    case 1:
-    default:
-      ec.error(TTCN_EncDec::ET_INVAL_MSG, "Can not decode type '%s', because invalid message was received", p_td.name);
-      break;
-    }
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    Limit_Token_List limit;
-    TTCN_EncDec_ErrorContext ec("While TEXT-decoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No TEXT descriptor available for type '%s'.", p_td.name);
-    const unsigned char *b_data=p_buf.get_data();
-    if(b_data[p_buf.get_len()-1]!='\0'){
-      p_buf.set_pos(p_buf.get_len());
-      p_buf.put_zero(8,ORDER_LSB);
-      p_buf.rewind();
-    }
-    if(TEXT_decode(p_td,p_buf,limit)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-decoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XmlReaderWrap reader(p_buf);
-    for (int rd_ok=reader.Read(); rd_ok==1; rd_ok=reader.Read()) {
-      if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break;
-    }
-    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, XER_NONE, 0);
-    size_t bytes = reader.ByteConsumed();
-    p_buf.set_pos(bytes);
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-decoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok((const char*)p_buf.get_data(), p_buf.get_len());
-    if(JSON_decode(p_td, tok, FALSE)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    p_buf.set_pos(tok.get_buf_pos());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-decoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-     OER_struct p_oer;
-    OER_decode(p_td, p_buf, p_oer);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to decode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-int CANFD__MESSAGE__TESTFRAME0__msg__type::RAW_decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int limit, raw_order_t top_bit_ord, boolean no_err, int, boolean, const RAW_Force_Omit* force_omit)
-{ (void)no_err;
-  int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding);
-  limit-=prepaddlength;
-  size_t last_decoded_pos = p_buf.get_pos_bit();
-  int decoded_length = 0;
-  int decoded_field_length = 0;
-  raw_order_t local_top_order;
-  if(p_td.raw->top_bit_order==TOP_BIT_INHERITED)local_top_order=top_bit_ord;
-  else if(p_td.raw->top_bit_order==TOP_BIT_RIGHT)local_top_order=ORDER_MSB;
-  else local_top_order=ORDER_LSB;
-  RAW_Force_Omit field_0_force_omit(0, force_omit, CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__11__bit__bitstring__lsb__coded_descr_.raw->forceomit);
-  decoded_field_length = field_test__sig__11__bit__bitstring__lsb__coded.RAW_decode(CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__11__bit__bitstring__lsb__coded_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_0_force_omit);
-  if (decoded_field_length < 0) return decoded_field_length;
-  decoded_length+=decoded_field_length;
-  limit-=decoded_field_length;
-  last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
-  RAW_Force_Omit field_1_force_omit(1, force_omit, CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__5__bit__bitstring__lsb__coded_descr_.raw->forceomit);
-  decoded_field_length = field_test__sig__5__bit__bitstring__lsb__coded.RAW_decode(CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__5__bit__bitstring__lsb__coded_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_1_force_omit);
-  if (decoded_field_length < 0) return decoded_field_length;
-  decoded_length+=decoded_field_length;
-  limit-=decoded_field_length;
-  last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
-  p_buf.set_pos_bit(last_decoded_pos);
-  return decoded_length+prepaddlength+p_buf.increase_pos_padd(p_td.raw->padding);
-}
-
-int CANFD__MESSAGE__TESTFRAME0__msg__type::RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree& myleaf) const {
-  if (!is_bound()) TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND, "Encoding an unbound value.");
-  int encoded_length = 0;
-  myleaf.isleaf = FALSE;
-  myleaf.body.node.num_of_nodes = 2;
-  myleaf.body.node.nodes = init_nodes_of_enc_tree(2);
-  myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__11__bit__bitstring__lsb__coded_descr_.raw);
-  myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__5__bit__bitstring__lsb__coded_descr_.raw);
-  encoded_length += field_test__sig__11__bit__bitstring__lsb__coded.RAW_encode(CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__11__bit__bitstring__lsb__coded_descr_, *myleaf.body.node.nodes[0]);
-  encoded_length += field_test__sig__5__bit__bitstring__lsb__coded.RAW_encode(CANFD__MESSAGE__TESTFRAME0__msg__type_test__sig__5__bit__bitstring__lsb__coded_descr_, *myleaf.body.node.nodes[1]);
-  return myleaf.length = encoded_length;
-}
-
-struct CANFD__MESSAGE__TESTFRAME0__msg__type_template::single_value_struct {
-BITSTRING_template field_test__sig__11__bit__bitstring__lsb__coded;
-BITSTRING_template field_test__sig__5__bit__bitstring__lsb__coded;
-};
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type_template::set_specific()
-{
-if (template_selection != SPECIFIC_VALUE) {
-template_sel old_selection = template_selection;
-clean_up();
-single_value = new single_value_struct;
-set_selection(SPECIFIC_VALUE);
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
-single_value->field_test__sig__11__bit__bitstring__lsb__coded = ANY_VALUE;
-single_value->field_test__sig__5__bit__bitstring__lsb__coded = ANY_VALUE;
-}
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type_template::copy_value(const CANFD__MESSAGE__TESTFRAME0__msg__type& other_value)
-{
-single_value = new single_value_struct;
-if (other_value.test__sig__11__bit__bitstring__lsb__coded().is_bound()) {
-  single_value->field_test__sig__11__bit__bitstring__lsb__coded = other_value.test__sig__11__bit__bitstring__lsb__coded();
-} else {
-  single_value->field_test__sig__11__bit__bitstring__lsb__coded.clean_up();
-}
-if (other_value.test__sig__5__bit__bitstring__lsb__coded().is_bound()) {
-  single_value->field_test__sig__5__bit__bitstring__lsb__coded = other_value.test__sig__5__bit__bitstring__lsb__coded();
-} else {
-  single_value->field_test__sig__5__bit__bitstring__lsb__coded.clean_up();
-}
-set_selection(SPECIFIC_VALUE);
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type_template::copy_template(const CANFD__MESSAGE__TESTFRAME0__msg__type_template& other_value)
-{
-switch (other_value.template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-if (UNINITIALIZED_TEMPLATE != other_value.test__sig__11__bit__bitstring__lsb__coded().get_selection()) {
-single_value->field_test__sig__11__bit__bitstring__lsb__coded = other_value.test__sig__11__bit__bitstring__lsb__coded();
-} else {
-single_value->field_test__sig__11__bit__bitstring__lsb__coded.clean_up();
-}
-if (UNINITIALIZED_TEMPLATE != other_value.test__sig__5__bit__bitstring__lsb__coded().get_selection()) {
-single_value->field_test__sig__5__bit__bitstring__lsb__coded = other_value.test__sig__5__bit__bitstring__lsb__coded();
-} else {
-single_value->field_test__sig__5__bit__bitstring__lsb__coded.clean_up();
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new CANFD__MESSAGE__TESTFRAME0__msg__type_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-break;
-}
-set_selection(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type_template::CANFD__MESSAGE__TESTFRAME0__msg__type_template()
-{
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type_template::CANFD__MESSAGE__TESTFRAME0__msg__type_template(template_sel other_value)
- : Base_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type_template::CANFD__MESSAGE__TESTFRAME0__msg__type_template(const CANFD__MESSAGE__TESTFRAME0__msg__type& other_value)
-{
-copy_value(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type_template::CANFD__MESSAGE__TESTFRAME0__msg__type_template(const OPTIONAL<CANFD__MESSAGE__TESTFRAME0__msg__type>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const CANFD__MESSAGE__TESTFRAME0__msg__type&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type from an unbound optional field.");
-}
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type_template::CANFD__MESSAGE__TESTFRAME0__msg__type_template(const CANFD__MESSAGE__TESTFRAME0__msg__type_template& other_value)
-: Base_Template()
-{
-copy_template(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type_template::~CANFD__MESSAGE__TESTFRAME0__msg__type_template()
-{
-clean_up();
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type_template& CANFD__MESSAGE__TESTFRAME0__msg__type_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type_template& CANFD__MESSAGE__TESTFRAME0__msg__type_template::operator=(const CANFD__MESSAGE__TESTFRAME0__msg__type& other_value)
-{
-clean_up();
-copy_value(other_value);
-return *this;
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type_template& CANFD__MESSAGE__TESTFRAME0__msg__type_template::operator=(const OPTIONAL<CANFD__MESSAGE__TESTFRAME0__msg__type>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const CANFD__MESSAGE__TESTFRAME0__msg__type&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-}
-return *this;
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type_template& CANFD__MESSAGE__TESTFRAME0__msg__type_template::operator=(const CANFD__MESSAGE__TESTFRAME0__msg__type_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME0__msg__type_template::match(const CANFD__MESSAGE__TESTFRAME0__msg__type& other_value, boolean legacy) const
-{
-if (!other_value.is_bound()) return FALSE;
-switch (template_selection) {
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case OMIT_VALUE:
-return FALSE;
-case SPECIFIC_VALUE:
-if(!other_value.test__sig__11__bit__bitstring__lsb__coded().is_bound()) return FALSE;
-if(!single_value->field_test__sig__11__bit__bitstring__lsb__coded.match(other_value.test__sig__11__bit__bitstring__lsb__coded(), legacy))return FALSE;
-if(!other_value.test__sig__5__bit__bitstring__lsb__coded().is_bound()) return FALSE;
-if(!single_value->field_test__sig__5__bit__bitstring__lsb__coded.match(other_value.test__sig__5__bit__bitstring__lsb__coded(), legacy))return FALSE;
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error("Matching an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-}
-return FALSE;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME0__msg__type_template::is_bound() const
-{
-if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE;
-if (template_selection != SPECIFIC_VALUE) return TRUE;
-return single_value->field_test__sig__11__bit__bitstring__lsb__coded.is_bound()
-
- ||single_value->field_test__sig__5__bit__bitstring__lsb__coded.is_bound()
-;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME0__msg__type_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-return single_value->field_test__sig__11__bit__bitstring__lsb__coded.is_value()
- &&single_value->field_test__sig__5__bit__bitstring__lsb__coded.is_value();
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type_template::clean_up()
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-delete single_value;
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-delete [] value_list.list_value;
-default:
-break;
-}
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type CANFD__MESSAGE__TESTFRAME0__msg__type_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent)
-TTCN_error("Performing a valueof or send operation on a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-CANFD__MESSAGE__TESTFRAME0__msg__type ret_val;
-if (single_value->field_test__sig__11__bit__bitstring__lsb__coded.is_bound()) {
-ret_val.test__sig__11__bit__bitstring__lsb__coded() = single_value->field_test__sig__11__bit__bitstring__lsb__coded.valueof();
-}
-if (single_value->field_test__sig__5__bit__bitstring__lsb__coded.is_bound()) {
-ret_val.test__sig__5__bit__bitstring__lsb__coded() = single_value->field_test__sig__5__bit__bitstring__lsb__coded.valueof();
-}
-return ret_val;
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type_template::set_type(template_sel template_type, unsigned int list_length)
-{
-if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST)
-TTCN_error("Setting an invalid list for a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-clean_up();
-set_selection(template_type);
-value_list.n_values = list_length;
-value_list.list_value = new CANFD__MESSAGE__TESTFRAME0__msg__type_template[list_length];
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type_template& CANFD__MESSAGE__TESTFRAME0__msg__type_template::list_item(unsigned int list_index) const
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST)
-TTCN_error("Accessing a list element of a non-list template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-if (list_index >= value_list.n_values)
-TTCN_error("Index overflow in a value list template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-return value_list.list_value[list_index];
-}
-
-BITSTRING_template& CANFD__MESSAGE__TESTFRAME0__msg__type_template::test__sig__11__bit__bitstring__lsb__coded()
-{
-set_specific();
-return single_value->field_test__sig__11__bit__bitstring__lsb__coded;
-}
-
-const BITSTRING_template& CANFD__MESSAGE__TESTFRAME0__msg__type_template::test__sig__11__bit__bitstring__lsb__coded() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field test_sig_11_bit_bitstring_lsb_coded of a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-return single_value->field_test__sig__11__bit__bitstring__lsb__coded;
-}
-
-BITSTRING_template& CANFD__MESSAGE__TESTFRAME0__msg__type_template::test__sig__5__bit__bitstring__lsb__coded()
-{
-set_specific();
-return single_value->field_test__sig__5__bit__bitstring__lsb__coded;
-}
-
-const BITSTRING_template& CANFD__MESSAGE__TESTFRAME0__msg__type_template::test__sig__5__bit__bitstring__lsb__coded() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field test_sig_5_bit_bitstring_lsb_coded of a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-return single_value->field_test__sig__5__bit__bitstring__lsb__coded;
-}
-
-int CANFD__MESSAGE__TESTFRAME0__msg__type_template::size_of() const
-{
-  if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type which has an ifpresent attribute.");
-  switch (template_selection)
-  {
-  case SPECIFIC_VALUE:
-    return 2;
-  case VALUE_LIST:
-   {
-     if (value_list.n_values<1)
-       TTCN_error("Internal error: Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type containing an empty list.");
-      int item_size = value_list.list_value[0].size_of();
-      for (unsigned int l_idx = 1; l_idx < value_list.n_values; l_idx++)
-      {
-        if (value_list.list_value[l_idx].size_of()!=item_size)
-          TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type containing a value list with different sizes.");
-      }
-      return item_size;
-    }
-  case OMIT_VALUE:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type containing omit value.");
-  case ANY_VALUE:
-  case ANY_OR_OMIT:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type containing */? value.");
-  case COMPLEMENTED_LIST:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type containing complemented list.");
-  default:
-    TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-  }
-  return 0;
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-TTCN_Logger::log_event_str("{ test_sig_11_bit_bitstring_lsb_coded := ");
-single_value->field_test__sig__11__bit__bitstring__lsb__coded.log();
-TTCN_Logger::log_event_str(", test_sig_5_bit_bitstring_lsb_coded := ");
-single_value->field_test__sig__5__bit__bitstring__lsb__coded.log();
-TTCN_Logger::log_event_str(" }");
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) {
-if (list_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[list_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_ifpresent();
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type_template::log_match(const CANFD__MESSAGE__TESTFRAME0__msg__type& match_value, boolean legacy) const
-{
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-if(match(match_value, legacy)){
-TTCN_Logger::print_logmatch_buffer();
-TTCN_Logger::log_event_str(" matched");
-} else{
-if (template_selection == SPECIFIC_VALUE) {
-size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
-if(!single_value->field_test__sig__11__bit__bitstring__lsb__coded.match(match_value.test__sig__11__bit__bitstring__lsb__coded(), legacy)){
-TTCN_Logger::log_logmatch_info(".test_sig_11_bit_bitstring_lsb_coded");
-single_value->field_test__sig__11__bit__bitstring__lsb__coded.log_match(match_value.test__sig__11__bit__bitstring__lsb__coded(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-if(!single_value->field_test__sig__5__bit__bitstring__lsb__coded.match(match_value.test__sig__5__bit__bitstring__lsb__coded(), legacy)){
-TTCN_Logger::log_logmatch_info(".test_sig_5_bit_bitstring_lsb_coded");
-single_value->field_test__sig__5__bit__bitstring__lsb__coded.log_match(match_value.test__sig__5__bit__bitstring__lsb__coded(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-}else {
-TTCN_Logger::print_logmatch_buffer();
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-TTCN_Logger::log_event_str(" unmatched");
-}
-}
-return;
-}
-if (template_selection == SPECIFIC_VALUE) {
-TTCN_Logger::log_event_str("{ test_sig_11_bit_bitstring_lsb_coded := ");
-single_value->field_test__sig__11__bit__bitstring__lsb__coded.log_match(match_value.test__sig__11__bit__bitstring__lsb__coded(), legacy);
-TTCN_Logger::log_event_str(", test_sig_5_bit_bitstring_lsb_coded := ");
-single_value->field_test__sig__5__bit__bitstring__lsb__coded.log_match(match_value.test__sig__5__bit__bitstring__lsb__coded(), legacy);
-TTCN_Logger::log_event_str(" }");
-} else {
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value->field_test__sig__11__bit__bitstring__lsb__coded.encode_text(text_buf);
-single_value->field_test__sig__5__bit__bitstring__lsb__coded.encode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-single_value->field_test__sig__11__bit__bitstring__lsb__coded.decode_text(text_buf);
-single_value->field_test__sig__5__bit__bitstring__lsb__coded.decode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new CANFD__MESSAGE__TESTFRAME0__msg__type_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: An unknown/unsupported selection was received in a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type.");
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type_template::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    CANFD__MESSAGE__TESTFRAME0__msg__type_template new_temp;
-    new_temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      new_temp.list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    *this = new_temp;
-    break; }
-  case Module_Param::MP_Value_List:
-    if (2<param.get_size()) {
-      param.error("record template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) test__sig__11__bit__bitstring__lsb__coded().set_param(*param.get_elem(0));
-    if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) test__sig__5__bit__bitstring__lsb__coded().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_11_bit_bitstring_lsb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__11__bit__bitstring__lsb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_5_bit_bitstring_lsb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__5__bit__bitstring__lsb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type");
-  }
-  is_ifpresent = param.get_ifpresent();
-}
-
-void CANFD__MESSAGE__TESTFRAME0__msg__type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_OMIT:
-if (template_selection==OMIT_VALUE) return;
-case TR_VALUE:
-if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break;
-single_value->field_test__sig__11__bit__bitstring__lsb__coded.check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type");
-single_value->field_test__sig__5__bit__bitstring__lsb__coded.check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type");
-return;
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME0_msg_type");
-}
-
-boolean CANFD__MESSAGE__TESTFRAME0__msg__type_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean CANFD__MESSAGE__TESTFRAME0__msg__type_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int l_idx=0; l_idx<value_list.n_values; l_idx++)
-if (value_list.list_value[l_idx].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type::CANFD__MESSAGE__TESTFRAME1__msg__type()
-{
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type::CANFD__MESSAGE__TESTFRAME1__msg__type(const BITSTRING& par_test__sig__11__bit__bitstring__msb__coded,
-    const BITSTRING& par_test__sig__5__bit__bitstring__msb__coded)
-  :   field_test__sig__11__bit__bitstring__msb__coded(par_test__sig__11__bit__bitstring__msb__coded),
-  field_test__sig__5__bit__bitstring__msb__coded(par_test__sig__5__bit__bitstring__msb__coded)
-{
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type::CANFD__MESSAGE__TESTFRAME1__msg__type(const CANFD__MESSAGE__TESTFRAME1__msg__type& other_value)
-{
-if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-if (other_value.test__sig__11__bit__bitstring__msb__coded().is_bound()) field_test__sig__11__bit__bitstring__msb__coded = other_value.test__sig__11__bit__bitstring__msb__coded();
-else field_test__sig__11__bit__bitstring__msb__coded.clean_up();
-if (other_value.test__sig__5__bit__bitstring__msb__coded().is_bound()) field_test__sig__5__bit__bitstring__msb__coded = other_value.test__sig__5__bit__bitstring__msb__coded();
-else field_test__sig__5__bit__bitstring__msb__coded.clean_up();
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type::clean_up()
-{
-field_test__sig__11__bit__bitstring__msb__coded.clean_up();
-field_test__sig__5__bit__bitstring__msb__coded.clean_up();
-}
-
-const TTCN_Typedescriptor_t* CANFD__MESSAGE__TESTFRAME1__msg__type::get_descriptor() const { return &CANFD__MESSAGE__TESTFRAME1__msg__type_descr_; }
-CANFD__MESSAGE__TESTFRAME1__msg__type& CANFD__MESSAGE__TESTFRAME1__msg__type::operator=(const CANFD__MESSAGE__TESTFRAME1__msg__type& other_value)
-{
-if (this != &other_value) {
-  if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-  if (other_value.test__sig__11__bit__bitstring__msb__coded().is_bound()) field_test__sig__11__bit__bitstring__msb__coded = other_value.test__sig__11__bit__bitstring__msb__coded();
-  else field_test__sig__11__bit__bitstring__msb__coded.clean_up();
-  if (other_value.test__sig__5__bit__bitstring__msb__coded().is_bound()) field_test__sig__5__bit__bitstring__msb__coded = other_value.test__sig__5__bit__bitstring__msb__coded();
-  else field_test__sig__5__bit__bitstring__msb__coded.clean_up();
-}
-return *this;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME1__msg__type::operator==(const CANFD__MESSAGE__TESTFRAME1__msg__type& other_value) const
-{
-return field_test__sig__11__bit__bitstring__msb__coded==other_value.field_test__sig__11__bit__bitstring__msb__coded
-  && field_test__sig__5__bit__bitstring__msb__coded==other_value.field_test__sig__5__bit__bitstring__msb__coded;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME1__msg__type::is_bound() const
-{
-return (field_test__sig__11__bit__bitstring__msb__coded.is_bound())
-  || (field_test__sig__5__bit__bitstring__msb__coded.is_bound());
-}
-boolean CANFD__MESSAGE__TESTFRAME1__msg__type::is_value() const
-{
-return field_test__sig__11__bit__bitstring__msb__coded.is_value()
-  && field_test__sig__5__bit__bitstring__msb__coded.is_value();
-}
-void CANFD__MESSAGE__TESTFRAME1__msg__type::log() const
-{
-if (!is_bound()) {
-TTCN_Logger::log_event_unbound();
-return;
-}
-TTCN_Logger::log_event_str("{ test_sig_11_bit_bitstring_msb_coded := ");
-field_test__sig__11__bit__bitstring__msb__coded.log();
-TTCN_Logger::log_event_str(", test_sig_5_bit_bitstring_msb_coded := ");
-field_test__sig__5__bit__bitstring__msb__coded.log();
-TTCN_Logger::log_event_str(" }");
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
-  case Module_Param::MP_Value_List:
-    if (2<param.get_size()) {
-      param.error("record value of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) test__sig__11__bit__bitstring__msb__coded().set_param(*param.get_elem(0));
-    if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) test__sig__5__bit__bitstring__msb__coded().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_11_bit_bitstring_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__11__bit__bitstring__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_5_bit_bitstring_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__5__bit__bitstring__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record value", "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type");
-  }
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type::set_implicit_omit()
-{
-if (test__sig__11__bit__bitstring__msb__coded().is_bound()) test__sig__11__bit__bitstring__msb__coded().set_implicit_omit();
-if (test__sig__5__bit__bitstring__msb__coded().is_bound()) test__sig__5__bit__bitstring__msb__coded().set_implicit_omit();
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type::encode_text(Text_Buf& text_buf) const
-{
-field_test__sig__11__bit__bitstring__msb__coded.encode_text(text_buf);
-field_test__sig__5__bit__bitstring__msb__coded.encode_text(text_buf);
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type::decode_text(Text_Buf& text_buf)
-{
-field_test__sig__11__bit__bitstring__msb__coded.decode_text(text_buf);
-field_test__sig__5__bit__bitstring__msb__coded.decode_text(text_buf);
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-encoding type '%s': ", p_td.name);
-    unsigned BER_coding=va_arg(pvar, unsigned);
-    BER_encode_chk_coding(BER_coding);
-    ASN_BER_TLV_t *tlv=BER_encode_TLV(p_td, BER_coding);
-    tlv->put_in_buffer(p_buf);
-    ASN_BER_TLV_t::destruct(tlv);
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-encoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    RAW_enc_tr_pos rp;
-    rp.level=0;
-    rp.pos=NULL;
-    RAW_enc_tree root(FALSE, NULL, &rp, 1, p_td.raw);
-    RAW_encode(p_td, root);
-    root.put_to_buf(p_buf);
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    TTCN_EncDec_ErrorContext ec("While TEXT-encoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-      ("No TEXT descriptor available for type '%s'.", p_td.name);
-    TEXT_encode(p_td,p_buf);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-encoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XER_encode(*(p_td.xer),p_buf, XER_coding, 0, 0, 0);
-    p_buf.put_c('\n');
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-encoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok(va_arg(pvar, int) != 0);
-    JSON_encode(p_td, tok);
-    p_buf.put_s(tok.get_buffer_length(), (const unsigned char*)tok.get_buffer());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-encoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-    OER_encode(p_td, p_buf);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to encode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
-    unsigned L_form=va_arg(pvar, unsigned);
-    ASN_BER_TLV_t tlv;
-    BER_decode_str2TLV(p_buf, tlv, L_form);
-    BER_decode_TLV(p_td, tlv, L_form);
-    if(tlv.isComplete) p_buf.increase_pos(tlv.get_len());
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-decoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    raw_order_t r_order;
-    switch(p_td.raw->top_bit_order) {
-    case TOP_BIT_LEFT:
-      r_order=ORDER_LSB;
-      break;
-    case TOP_BIT_RIGHT:
-    default:
-      r_order=ORDER_MSB;
-    }
-    int rawr = RAW_decode(p_td, p_buf, p_buf.get_len()*8, r_order);
-    if(rawr<0) switch (-rawr) {
-    case TTCN_EncDec::ET_INCOMPL_MSG:
-    case TTCN_EncDec::ET_LEN_ERR:
-      ec.error((TTCN_EncDec::error_type_t)-rawr, "Can not decode type '%s', because incomplete message was received", p_td.name);
-      break;
-    case 1:
-    default:
-      ec.error(TTCN_EncDec::ET_INVAL_MSG, "Can not decode type '%s', because invalid message was received", p_td.name);
-      break;
-    }
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    Limit_Token_List limit;
-    TTCN_EncDec_ErrorContext ec("While TEXT-decoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No TEXT descriptor available for type '%s'.", p_td.name);
-    const unsigned char *b_data=p_buf.get_data();
-    if(b_data[p_buf.get_len()-1]!='\0'){
-      p_buf.set_pos(p_buf.get_len());
-      p_buf.put_zero(8,ORDER_LSB);
-      p_buf.rewind();
-    }
-    if(TEXT_decode(p_td,p_buf,limit)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-decoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XmlReaderWrap reader(p_buf);
-    for (int rd_ok=reader.Read(); rd_ok==1; rd_ok=reader.Read()) {
-      if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break;
-    }
-    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, XER_NONE, 0);
-    size_t bytes = reader.ByteConsumed();
-    p_buf.set_pos(bytes);
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-decoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok((const char*)p_buf.get_data(), p_buf.get_len());
-    if(JSON_decode(p_td, tok, FALSE)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    p_buf.set_pos(tok.get_buf_pos());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-decoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-     OER_struct p_oer;
-    OER_decode(p_td, p_buf, p_oer);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to decode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-int CANFD__MESSAGE__TESTFRAME1__msg__type::RAW_decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int limit, raw_order_t top_bit_ord, boolean no_err, int, boolean, const RAW_Force_Omit* force_omit)
-{ (void)no_err;
-  int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding);
-  limit-=prepaddlength;
-  size_t last_decoded_pos = p_buf.get_pos_bit();
-  int decoded_length = 0;
-  int decoded_field_length = 0;
-  raw_order_t local_top_order;
-  if(p_td.raw->top_bit_order==TOP_BIT_INHERITED)local_top_order=top_bit_ord;
-  else if(p_td.raw->top_bit_order==TOP_BIT_RIGHT)local_top_order=ORDER_MSB;
-  else local_top_order=ORDER_LSB;
-  RAW_Force_Omit field_0_force_omit(0, force_omit, CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__11__bit__bitstring__msb__coded_descr_.raw->forceomit);
-  decoded_field_length = field_test__sig__11__bit__bitstring__msb__coded.RAW_decode(CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__11__bit__bitstring__msb__coded_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_0_force_omit);
-  if (decoded_field_length < 0) return decoded_field_length;
-  decoded_length+=decoded_field_length;
-  limit-=decoded_field_length;
-  last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
-  RAW_Force_Omit field_1_force_omit(1, force_omit, CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__5__bit__bitstring__msb__coded_descr_.raw->forceomit);
-  decoded_field_length = field_test__sig__5__bit__bitstring__msb__coded.RAW_decode(CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__5__bit__bitstring__msb__coded_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_1_force_omit);
-  if (decoded_field_length < 0) return decoded_field_length;
-  decoded_length+=decoded_field_length;
-  limit-=decoded_field_length;
-  last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
-  p_buf.set_pos_bit(last_decoded_pos);
-  return decoded_length+prepaddlength+p_buf.increase_pos_padd(p_td.raw->padding);
-}
-
-int CANFD__MESSAGE__TESTFRAME1__msg__type::RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree& myleaf) const {
-  if (!is_bound()) TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND, "Encoding an unbound value.");
-  int encoded_length = 0;
-  myleaf.isleaf = FALSE;
-  myleaf.body.node.num_of_nodes = 2;
-  myleaf.body.node.nodes = init_nodes_of_enc_tree(2);
-  myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__11__bit__bitstring__msb__coded_descr_.raw);
-  myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__5__bit__bitstring__msb__coded_descr_.raw);
-  encoded_length += field_test__sig__11__bit__bitstring__msb__coded.RAW_encode(CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__11__bit__bitstring__msb__coded_descr_, *myleaf.body.node.nodes[0]);
-  encoded_length += field_test__sig__5__bit__bitstring__msb__coded.RAW_encode(CANFD__MESSAGE__TESTFRAME1__msg__type_test__sig__5__bit__bitstring__msb__coded_descr_, *myleaf.body.node.nodes[1]);
-  return myleaf.length = encoded_length;
-}
-
-struct CANFD__MESSAGE__TESTFRAME1__msg__type_template::single_value_struct {
-BITSTRING_template field_test__sig__11__bit__bitstring__msb__coded;
-BITSTRING_template field_test__sig__5__bit__bitstring__msb__coded;
-};
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type_template::set_specific()
-{
-if (template_selection != SPECIFIC_VALUE) {
-template_sel old_selection = template_selection;
-clean_up();
-single_value = new single_value_struct;
-set_selection(SPECIFIC_VALUE);
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
-single_value->field_test__sig__11__bit__bitstring__msb__coded = ANY_VALUE;
-single_value->field_test__sig__5__bit__bitstring__msb__coded = ANY_VALUE;
-}
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type_template::copy_value(const CANFD__MESSAGE__TESTFRAME1__msg__type& other_value)
-{
-single_value = new single_value_struct;
-if (other_value.test__sig__11__bit__bitstring__msb__coded().is_bound()) {
-  single_value->field_test__sig__11__bit__bitstring__msb__coded = other_value.test__sig__11__bit__bitstring__msb__coded();
-} else {
-  single_value->field_test__sig__11__bit__bitstring__msb__coded.clean_up();
-}
-if (other_value.test__sig__5__bit__bitstring__msb__coded().is_bound()) {
-  single_value->field_test__sig__5__bit__bitstring__msb__coded = other_value.test__sig__5__bit__bitstring__msb__coded();
-} else {
-  single_value->field_test__sig__5__bit__bitstring__msb__coded.clean_up();
-}
-set_selection(SPECIFIC_VALUE);
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type_template::copy_template(const CANFD__MESSAGE__TESTFRAME1__msg__type_template& other_value)
-{
-switch (other_value.template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-if (UNINITIALIZED_TEMPLATE != other_value.test__sig__11__bit__bitstring__msb__coded().get_selection()) {
-single_value->field_test__sig__11__bit__bitstring__msb__coded = other_value.test__sig__11__bit__bitstring__msb__coded();
-} else {
-single_value->field_test__sig__11__bit__bitstring__msb__coded.clean_up();
-}
-if (UNINITIALIZED_TEMPLATE != other_value.test__sig__5__bit__bitstring__msb__coded().get_selection()) {
-single_value->field_test__sig__5__bit__bitstring__msb__coded = other_value.test__sig__5__bit__bitstring__msb__coded();
-} else {
-single_value->field_test__sig__5__bit__bitstring__msb__coded.clean_up();
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new CANFD__MESSAGE__TESTFRAME1__msg__type_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-break;
-}
-set_selection(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type_template::CANFD__MESSAGE__TESTFRAME1__msg__type_template()
-{
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type_template::CANFD__MESSAGE__TESTFRAME1__msg__type_template(template_sel other_value)
- : Base_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type_template::CANFD__MESSAGE__TESTFRAME1__msg__type_template(const CANFD__MESSAGE__TESTFRAME1__msg__type& other_value)
-{
-copy_value(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type_template::CANFD__MESSAGE__TESTFRAME1__msg__type_template(const OPTIONAL<CANFD__MESSAGE__TESTFRAME1__msg__type>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const CANFD__MESSAGE__TESTFRAME1__msg__type&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type from an unbound optional field.");
-}
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type_template::CANFD__MESSAGE__TESTFRAME1__msg__type_template(const CANFD__MESSAGE__TESTFRAME1__msg__type_template& other_value)
-: Base_Template()
-{
-copy_template(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type_template::~CANFD__MESSAGE__TESTFRAME1__msg__type_template()
-{
-clean_up();
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type_template& CANFD__MESSAGE__TESTFRAME1__msg__type_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type_template& CANFD__MESSAGE__TESTFRAME1__msg__type_template::operator=(const CANFD__MESSAGE__TESTFRAME1__msg__type& other_value)
-{
-clean_up();
-copy_value(other_value);
-return *this;
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type_template& CANFD__MESSAGE__TESTFRAME1__msg__type_template::operator=(const OPTIONAL<CANFD__MESSAGE__TESTFRAME1__msg__type>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const CANFD__MESSAGE__TESTFRAME1__msg__type&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-}
-return *this;
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type_template& CANFD__MESSAGE__TESTFRAME1__msg__type_template::operator=(const CANFD__MESSAGE__TESTFRAME1__msg__type_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME1__msg__type_template::match(const CANFD__MESSAGE__TESTFRAME1__msg__type& other_value, boolean legacy) const
-{
-if (!other_value.is_bound()) return FALSE;
-switch (template_selection) {
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case OMIT_VALUE:
-return FALSE;
-case SPECIFIC_VALUE:
-if(!other_value.test__sig__11__bit__bitstring__msb__coded().is_bound()) return FALSE;
-if(!single_value->field_test__sig__11__bit__bitstring__msb__coded.match(other_value.test__sig__11__bit__bitstring__msb__coded(), legacy))return FALSE;
-if(!other_value.test__sig__5__bit__bitstring__msb__coded().is_bound()) return FALSE;
-if(!single_value->field_test__sig__5__bit__bitstring__msb__coded.match(other_value.test__sig__5__bit__bitstring__msb__coded(), legacy))return FALSE;
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error("Matching an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-}
-return FALSE;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME1__msg__type_template::is_bound() const
-{
-if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE;
-if (template_selection != SPECIFIC_VALUE) return TRUE;
-return single_value->field_test__sig__11__bit__bitstring__msb__coded.is_bound()
-
- ||single_value->field_test__sig__5__bit__bitstring__msb__coded.is_bound()
-;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME1__msg__type_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-return single_value->field_test__sig__11__bit__bitstring__msb__coded.is_value()
- &&single_value->field_test__sig__5__bit__bitstring__msb__coded.is_value();
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type_template::clean_up()
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-delete single_value;
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-delete [] value_list.list_value;
-default:
-break;
-}
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type CANFD__MESSAGE__TESTFRAME1__msg__type_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent)
-TTCN_error("Performing a valueof or send operation on a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-CANFD__MESSAGE__TESTFRAME1__msg__type ret_val;
-if (single_value->field_test__sig__11__bit__bitstring__msb__coded.is_bound()) {
-ret_val.test__sig__11__bit__bitstring__msb__coded() = single_value->field_test__sig__11__bit__bitstring__msb__coded.valueof();
-}
-if (single_value->field_test__sig__5__bit__bitstring__msb__coded.is_bound()) {
-ret_val.test__sig__5__bit__bitstring__msb__coded() = single_value->field_test__sig__5__bit__bitstring__msb__coded.valueof();
-}
-return ret_val;
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type_template::set_type(template_sel template_type, unsigned int list_length)
-{
-if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST)
-TTCN_error("Setting an invalid list for a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-clean_up();
-set_selection(template_type);
-value_list.n_values = list_length;
-value_list.list_value = new CANFD__MESSAGE__TESTFRAME1__msg__type_template[list_length];
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type_template& CANFD__MESSAGE__TESTFRAME1__msg__type_template::list_item(unsigned int list_index) const
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST)
-TTCN_error("Accessing a list element of a non-list template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-if (list_index >= value_list.n_values)
-TTCN_error("Index overflow in a value list template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-return value_list.list_value[list_index];
-}
-
-BITSTRING_template& CANFD__MESSAGE__TESTFRAME1__msg__type_template::test__sig__11__bit__bitstring__msb__coded()
-{
-set_specific();
-return single_value->field_test__sig__11__bit__bitstring__msb__coded;
-}
-
-const BITSTRING_template& CANFD__MESSAGE__TESTFRAME1__msg__type_template::test__sig__11__bit__bitstring__msb__coded() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field test_sig_11_bit_bitstring_msb_coded of a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-return single_value->field_test__sig__11__bit__bitstring__msb__coded;
-}
-
-BITSTRING_template& CANFD__MESSAGE__TESTFRAME1__msg__type_template::test__sig__5__bit__bitstring__msb__coded()
-{
-set_specific();
-return single_value->field_test__sig__5__bit__bitstring__msb__coded;
-}
-
-const BITSTRING_template& CANFD__MESSAGE__TESTFRAME1__msg__type_template::test__sig__5__bit__bitstring__msb__coded() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field test_sig_5_bit_bitstring_msb_coded of a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-return single_value->field_test__sig__5__bit__bitstring__msb__coded;
-}
-
-int CANFD__MESSAGE__TESTFRAME1__msg__type_template::size_of() const
-{
-  if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type which has an ifpresent attribute.");
-  switch (template_selection)
-  {
-  case SPECIFIC_VALUE:
-    return 2;
-  case VALUE_LIST:
-   {
-     if (value_list.n_values<1)
-       TTCN_error("Internal error: Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type containing an empty list.");
-      int item_size = value_list.list_value[0].size_of();
-      for (unsigned int l_idx = 1; l_idx < value_list.n_values; l_idx++)
-      {
-        if (value_list.list_value[l_idx].size_of()!=item_size)
-          TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type containing a value list with different sizes.");
-      }
-      return item_size;
-    }
-  case OMIT_VALUE:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type containing omit value.");
-  case ANY_VALUE:
-  case ANY_OR_OMIT:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type containing */? value.");
-  case COMPLEMENTED_LIST:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type containing complemented list.");
-  default:
-    TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-  }
-  return 0;
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-TTCN_Logger::log_event_str("{ test_sig_11_bit_bitstring_msb_coded := ");
-single_value->field_test__sig__11__bit__bitstring__msb__coded.log();
-TTCN_Logger::log_event_str(", test_sig_5_bit_bitstring_msb_coded := ");
-single_value->field_test__sig__5__bit__bitstring__msb__coded.log();
-TTCN_Logger::log_event_str(" }");
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) {
-if (list_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[list_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_ifpresent();
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type_template::log_match(const CANFD__MESSAGE__TESTFRAME1__msg__type& match_value, boolean legacy) const
-{
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-if(match(match_value, legacy)){
-TTCN_Logger::print_logmatch_buffer();
-TTCN_Logger::log_event_str(" matched");
-} else{
-if (template_selection == SPECIFIC_VALUE) {
-size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
-if(!single_value->field_test__sig__11__bit__bitstring__msb__coded.match(match_value.test__sig__11__bit__bitstring__msb__coded(), legacy)){
-TTCN_Logger::log_logmatch_info(".test_sig_11_bit_bitstring_msb_coded");
-single_value->field_test__sig__11__bit__bitstring__msb__coded.log_match(match_value.test__sig__11__bit__bitstring__msb__coded(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-if(!single_value->field_test__sig__5__bit__bitstring__msb__coded.match(match_value.test__sig__5__bit__bitstring__msb__coded(), legacy)){
-TTCN_Logger::log_logmatch_info(".test_sig_5_bit_bitstring_msb_coded");
-single_value->field_test__sig__5__bit__bitstring__msb__coded.log_match(match_value.test__sig__5__bit__bitstring__msb__coded(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-}else {
-TTCN_Logger::print_logmatch_buffer();
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-TTCN_Logger::log_event_str(" unmatched");
-}
-}
-return;
-}
-if (template_selection == SPECIFIC_VALUE) {
-TTCN_Logger::log_event_str("{ test_sig_11_bit_bitstring_msb_coded := ");
-single_value->field_test__sig__11__bit__bitstring__msb__coded.log_match(match_value.test__sig__11__bit__bitstring__msb__coded(), legacy);
-TTCN_Logger::log_event_str(", test_sig_5_bit_bitstring_msb_coded := ");
-single_value->field_test__sig__5__bit__bitstring__msb__coded.log_match(match_value.test__sig__5__bit__bitstring__msb__coded(), legacy);
-TTCN_Logger::log_event_str(" }");
-} else {
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value->field_test__sig__11__bit__bitstring__msb__coded.encode_text(text_buf);
-single_value->field_test__sig__5__bit__bitstring__msb__coded.encode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-single_value->field_test__sig__11__bit__bitstring__msb__coded.decode_text(text_buf);
-single_value->field_test__sig__5__bit__bitstring__msb__coded.decode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new CANFD__MESSAGE__TESTFRAME1__msg__type_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: An unknown/unsupported selection was received in a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type.");
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type_template::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    CANFD__MESSAGE__TESTFRAME1__msg__type_template new_temp;
-    new_temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      new_temp.list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    *this = new_temp;
-    break; }
-  case Module_Param::MP_Value_List:
-    if (2<param.get_size()) {
-      param.error("record template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) test__sig__11__bit__bitstring__msb__coded().set_param(*param.get_elem(0));
-    if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) test__sig__5__bit__bitstring__msb__coded().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_11_bit_bitstring_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__11__bit__bitstring__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_5_bit_bitstring_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__5__bit__bitstring__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type");
-  }
-  is_ifpresent = param.get_ifpresent();
-}
-
-void CANFD__MESSAGE__TESTFRAME1__msg__type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_OMIT:
-if (template_selection==OMIT_VALUE) return;
-case TR_VALUE:
-if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break;
-single_value->field_test__sig__11__bit__bitstring__msb__coded.check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type");
-single_value->field_test__sig__5__bit__bitstring__msb__coded.check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type");
-return;
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME1_msg_type");
-}
-
-boolean CANFD__MESSAGE__TESTFRAME1__msg__type_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean CANFD__MESSAGE__TESTFRAME1__msg__type_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int l_idx=0; l_idx<value_list.n_values; l_idx++)
-if (value_list.list_value[l_idx].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type::CANFD__MESSAGE__TESTFRAME2__msg__type()
-{
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type::CANFD__MESSAGE__TESTFRAME2__msg__type(const INTEGER& par_test__sig__11__bit__integer__msb__coded,
-    const INTEGER& par_test__sig__5__bit__integer__msb__coded)
-  :   field_test__sig__11__bit__integer__msb__coded(par_test__sig__11__bit__integer__msb__coded),
-  field_test__sig__5__bit__integer__msb__coded(par_test__sig__5__bit__integer__msb__coded)
-{
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type::CANFD__MESSAGE__TESTFRAME2__msg__type(const CANFD__MESSAGE__TESTFRAME2__msg__type& other_value)
-{
-if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-if (other_value.test__sig__11__bit__integer__msb__coded().is_bound()) field_test__sig__11__bit__integer__msb__coded = other_value.test__sig__11__bit__integer__msb__coded();
-else field_test__sig__11__bit__integer__msb__coded.clean_up();
-if (other_value.test__sig__5__bit__integer__msb__coded().is_bound()) field_test__sig__5__bit__integer__msb__coded = other_value.test__sig__5__bit__integer__msb__coded();
-else field_test__sig__5__bit__integer__msb__coded.clean_up();
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type::clean_up()
-{
-field_test__sig__11__bit__integer__msb__coded.clean_up();
-field_test__sig__5__bit__integer__msb__coded.clean_up();
-}
-
-const TTCN_Typedescriptor_t* CANFD__MESSAGE__TESTFRAME2__msg__type::get_descriptor() const { return &CANFD__MESSAGE__TESTFRAME2__msg__type_descr_; }
-CANFD__MESSAGE__TESTFRAME2__msg__type& CANFD__MESSAGE__TESTFRAME2__msg__type::operator=(const CANFD__MESSAGE__TESTFRAME2__msg__type& other_value)
-{
-if (this != &other_value) {
-  if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-  if (other_value.test__sig__11__bit__integer__msb__coded().is_bound()) field_test__sig__11__bit__integer__msb__coded = other_value.test__sig__11__bit__integer__msb__coded();
-  else field_test__sig__11__bit__integer__msb__coded.clean_up();
-  if (other_value.test__sig__5__bit__integer__msb__coded().is_bound()) field_test__sig__5__bit__integer__msb__coded = other_value.test__sig__5__bit__integer__msb__coded();
-  else field_test__sig__5__bit__integer__msb__coded.clean_up();
-}
-return *this;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME2__msg__type::operator==(const CANFD__MESSAGE__TESTFRAME2__msg__type& other_value) const
-{
-return field_test__sig__11__bit__integer__msb__coded==other_value.field_test__sig__11__bit__integer__msb__coded
-  && field_test__sig__5__bit__integer__msb__coded==other_value.field_test__sig__5__bit__integer__msb__coded;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME2__msg__type::is_bound() const
-{
-return (field_test__sig__11__bit__integer__msb__coded.is_bound())
-  || (field_test__sig__5__bit__integer__msb__coded.is_bound());
-}
-boolean CANFD__MESSAGE__TESTFRAME2__msg__type::is_value() const
-{
-return field_test__sig__11__bit__integer__msb__coded.is_value()
-  && field_test__sig__5__bit__integer__msb__coded.is_value();
-}
-void CANFD__MESSAGE__TESTFRAME2__msg__type::log() const
-{
-if (!is_bound()) {
-TTCN_Logger::log_event_unbound();
-return;
-}
-TTCN_Logger::log_event_str("{ test_sig_11_bit_integer_msb_coded := ");
-field_test__sig__11__bit__integer__msb__coded.log();
-TTCN_Logger::log_event_str(", test_sig_5_bit_integer_msb_coded := ");
-field_test__sig__5__bit__integer__msb__coded.log();
-TTCN_Logger::log_event_str(" }");
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
-  case Module_Param::MP_Value_List:
-    if (2<param.get_size()) {
-      param.error("record value of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) test__sig__11__bit__integer__msb__coded().set_param(*param.get_elem(0));
-    if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) test__sig__5__bit__integer__msb__coded().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_11_bit_integer_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__11__bit__integer__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_5_bit_integer_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__5__bit__integer__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record value", "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type");
-  }
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type::set_implicit_omit()
-{
-if (test__sig__11__bit__integer__msb__coded().is_bound()) test__sig__11__bit__integer__msb__coded().set_implicit_omit();
-if (test__sig__5__bit__integer__msb__coded().is_bound()) test__sig__5__bit__integer__msb__coded().set_implicit_omit();
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type::encode_text(Text_Buf& text_buf) const
-{
-field_test__sig__11__bit__integer__msb__coded.encode_text(text_buf);
-field_test__sig__5__bit__integer__msb__coded.encode_text(text_buf);
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type::decode_text(Text_Buf& text_buf)
-{
-field_test__sig__11__bit__integer__msb__coded.decode_text(text_buf);
-field_test__sig__5__bit__integer__msb__coded.decode_text(text_buf);
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-encoding type '%s': ", p_td.name);
-    unsigned BER_coding=va_arg(pvar, unsigned);
-    BER_encode_chk_coding(BER_coding);
-    ASN_BER_TLV_t *tlv=BER_encode_TLV(p_td, BER_coding);
-    tlv->put_in_buffer(p_buf);
-    ASN_BER_TLV_t::destruct(tlv);
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-encoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    RAW_enc_tr_pos rp;
-    rp.level=0;
-    rp.pos=NULL;
-    RAW_enc_tree root(FALSE, NULL, &rp, 1, p_td.raw);
-    RAW_encode(p_td, root);
-    root.put_to_buf(p_buf);
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    TTCN_EncDec_ErrorContext ec("While TEXT-encoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-      ("No TEXT descriptor available for type '%s'.", p_td.name);
-    TEXT_encode(p_td,p_buf);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-encoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XER_encode(*(p_td.xer),p_buf, XER_coding, 0, 0, 0);
-    p_buf.put_c('\n');
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-encoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok(va_arg(pvar, int) != 0);
-    JSON_encode(p_td, tok);
-    p_buf.put_s(tok.get_buffer_length(), (const unsigned char*)tok.get_buffer());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-encoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-    OER_encode(p_td, p_buf);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to encode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
-    unsigned L_form=va_arg(pvar, unsigned);
-    ASN_BER_TLV_t tlv;
-    BER_decode_str2TLV(p_buf, tlv, L_form);
-    BER_decode_TLV(p_td, tlv, L_form);
-    if(tlv.isComplete) p_buf.increase_pos(tlv.get_len());
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-decoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    raw_order_t r_order;
-    switch(p_td.raw->top_bit_order) {
-    case TOP_BIT_LEFT:
-      r_order=ORDER_LSB;
-      break;
-    case TOP_BIT_RIGHT:
-    default:
-      r_order=ORDER_MSB;
-    }
-    int rawr = RAW_decode(p_td, p_buf, p_buf.get_len()*8, r_order);
-    if(rawr<0) switch (-rawr) {
-    case TTCN_EncDec::ET_INCOMPL_MSG:
-    case TTCN_EncDec::ET_LEN_ERR:
-      ec.error((TTCN_EncDec::error_type_t)-rawr, "Can not decode type '%s', because incomplete message was received", p_td.name);
-      break;
-    case 1:
-    default:
-      ec.error(TTCN_EncDec::ET_INVAL_MSG, "Can not decode type '%s', because invalid message was received", p_td.name);
-      break;
-    }
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    Limit_Token_List limit;
-    TTCN_EncDec_ErrorContext ec("While TEXT-decoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No TEXT descriptor available for type '%s'.", p_td.name);
-    const unsigned char *b_data=p_buf.get_data();
-    if(b_data[p_buf.get_len()-1]!='\0'){
-      p_buf.set_pos(p_buf.get_len());
-      p_buf.put_zero(8,ORDER_LSB);
-      p_buf.rewind();
-    }
-    if(TEXT_decode(p_td,p_buf,limit)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-decoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XmlReaderWrap reader(p_buf);
-    for (int rd_ok=reader.Read(); rd_ok==1; rd_ok=reader.Read()) {
-      if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break;
-    }
-    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, XER_NONE, 0);
-    size_t bytes = reader.ByteConsumed();
-    p_buf.set_pos(bytes);
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-decoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok((const char*)p_buf.get_data(), p_buf.get_len());
-    if(JSON_decode(p_td, tok, FALSE)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    p_buf.set_pos(tok.get_buf_pos());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-decoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-     OER_struct p_oer;
-    OER_decode(p_td, p_buf, p_oer);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to decode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-int CANFD__MESSAGE__TESTFRAME2__msg__type::RAW_decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int limit, raw_order_t top_bit_ord, boolean no_err, int, boolean, const RAW_Force_Omit* force_omit)
-{ (void)no_err;
-  int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding);
-  limit-=prepaddlength;
-  size_t last_decoded_pos = p_buf.get_pos_bit();
-  int decoded_length = 0;
-  int decoded_field_length = 0;
-  raw_order_t local_top_order;
-  if(p_td.raw->top_bit_order==TOP_BIT_INHERITED)local_top_order=top_bit_ord;
-  else if(p_td.raw->top_bit_order==TOP_BIT_RIGHT)local_top_order=ORDER_MSB;
-  else local_top_order=ORDER_LSB;
-  RAW_Force_Omit field_0_force_omit(0, force_omit, CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__11__bit__integer__msb__coded_descr_.raw->forceomit);
-  decoded_field_length = field_test__sig__11__bit__integer__msb__coded.RAW_decode(CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__11__bit__integer__msb__coded_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_0_force_omit);
-  if (decoded_field_length < 0) return decoded_field_length;
-  decoded_length+=decoded_field_length;
-  limit-=decoded_field_length;
-  last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
-  RAW_Force_Omit field_1_force_omit(1, force_omit, CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__5__bit__integer__msb__coded_descr_.raw->forceomit);
-  decoded_field_length = field_test__sig__5__bit__integer__msb__coded.RAW_decode(CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__5__bit__integer__msb__coded_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_1_force_omit);
-  if (decoded_field_length < 0) return decoded_field_length;
-  decoded_length+=decoded_field_length;
-  limit-=decoded_field_length;
-  last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
-  p_buf.set_pos_bit(last_decoded_pos);
-  return decoded_length+prepaddlength+p_buf.increase_pos_padd(p_td.raw->padding);
-}
-
-int CANFD__MESSAGE__TESTFRAME2__msg__type::RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree& myleaf) const {
-  if (!is_bound()) TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND, "Encoding an unbound value.");
-  int encoded_length = 0;
-  myleaf.isleaf = FALSE;
-  myleaf.body.node.num_of_nodes = 2;
-  myleaf.body.node.nodes = init_nodes_of_enc_tree(2);
-  myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__11__bit__integer__msb__coded_descr_.raw);
-  myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__5__bit__integer__msb__coded_descr_.raw);
-  encoded_length += field_test__sig__11__bit__integer__msb__coded.RAW_encode(CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__11__bit__integer__msb__coded_descr_, *myleaf.body.node.nodes[0]);
-  encoded_length += field_test__sig__5__bit__integer__msb__coded.RAW_encode(CANFD__MESSAGE__TESTFRAME2__msg__type_test__sig__5__bit__integer__msb__coded_descr_, *myleaf.body.node.nodes[1]);
-  return myleaf.length = encoded_length;
-}
-
-struct CANFD__MESSAGE__TESTFRAME2__msg__type_template::single_value_struct {
-INTEGER_template field_test__sig__11__bit__integer__msb__coded;
-INTEGER_template field_test__sig__5__bit__integer__msb__coded;
-};
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type_template::set_specific()
-{
-if (template_selection != SPECIFIC_VALUE) {
-template_sel old_selection = template_selection;
-clean_up();
-single_value = new single_value_struct;
-set_selection(SPECIFIC_VALUE);
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
-single_value->field_test__sig__11__bit__integer__msb__coded = ANY_VALUE;
-single_value->field_test__sig__5__bit__integer__msb__coded = ANY_VALUE;
-}
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type_template::copy_value(const CANFD__MESSAGE__TESTFRAME2__msg__type& other_value)
-{
-single_value = new single_value_struct;
-if (other_value.test__sig__11__bit__integer__msb__coded().is_bound()) {
-  single_value->field_test__sig__11__bit__integer__msb__coded = other_value.test__sig__11__bit__integer__msb__coded();
-} else {
-  single_value->field_test__sig__11__bit__integer__msb__coded.clean_up();
-}
-if (other_value.test__sig__5__bit__integer__msb__coded().is_bound()) {
-  single_value->field_test__sig__5__bit__integer__msb__coded = other_value.test__sig__5__bit__integer__msb__coded();
-} else {
-  single_value->field_test__sig__5__bit__integer__msb__coded.clean_up();
-}
-set_selection(SPECIFIC_VALUE);
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type_template::copy_template(const CANFD__MESSAGE__TESTFRAME2__msg__type_template& other_value)
-{
-switch (other_value.template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-if (UNINITIALIZED_TEMPLATE != other_value.test__sig__11__bit__integer__msb__coded().get_selection()) {
-single_value->field_test__sig__11__bit__integer__msb__coded = other_value.test__sig__11__bit__integer__msb__coded();
-} else {
-single_value->field_test__sig__11__bit__integer__msb__coded.clean_up();
-}
-if (UNINITIALIZED_TEMPLATE != other_value.test__sig__5__bit__integer__msb__coded().get_selection()) {
-single_value->field_test__sig__5__bit__integer__msb__coded = other_value.test__sig__5__bit__integer__msb__coded();
-} else {
-single_value->field_test__sig__5__bit__integer__msb__coded.clean_up();
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new CANFD__MESSAGE__TESTFRAME2__msg__type_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-break;
-}
-set_selection(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type_template::CANFD__MESSAGE__TESTFRAME2__msg__type_template()
-{
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type_template::CANFD__MESSAGE__TESTFRAME2__msg__type_template(template_sel other_value)
- : Base_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type_template::CANFD__MESSAGE__TESTFRAME2__msg__type_template(const CANFD__MESSAGE__TESTFRAME2__msg__type& other_value)
-{
-copy_value(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type_template::CANFD__MESSAGE__TESTFRAME2__msg__type_template(const OPTIONAL<CANFD__MESSAGE__TESTFRAME2__msg__type>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const CANFD__MESSAGE__TESTFRAME2__msg__type&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type from an unbound optional field.");
-}
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type_template::CANFD__MESSAGE__TESTFRAME2__msg__type_template(const CANFD__MESSAGE__TESTFRAME2__msg__type_template& other_value)
-: Base_Template()
-{
-copy_template(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type_template::~CANFD__MESSAGE__TESTFRAME2__msg__type_template()
-{
-clean_up();
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type_template& CANFD__MESSAGE__TESTFRAME2__msg__type_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type_template& CANFD__MESSAGE__TESTFRAME2__msg__type_template::operator=(const CANFD__MESSAGE__TESTFRAME2__msg__type& other_value)
-{
-clean_up();
-copy_value(other_value);
-return *this;
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type_template& CANFD__MESSAGE__TESTFRAME2__msg__type_template::operator=(const OPTIONAL<CANFD__MESSAGE__TESTFRAME2__msg__type>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const CANFD__MESSAGE__TESTFRAME2__msg__type&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-}
-return *this;
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type_template& CANFD__MESSAGE__TESTFRAME2__msg__type_template::operator=(const CANFD__MESSAGE__TESTFRAME2__msg__type_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME2__msg__type_template::match(const CANFD__MESSAGE__TESTFRAME2__msg__type& other_value, boolean legacy) const
-{
-if (!other_value.is_bound()) return FALSE;
-switch (template_selection) {
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case OMIT_VALUE:
-return FALSE;
-case SPECIFIC_VALUE:
-if(!other_value.test__sig__11__bit__integer__msb__coded().is_bound()) return FALSE;
-if(!single_value->field_test__sig__11__bit__integer__msb__coded.match(other_value.test__sig__11__bit__integer__msb__coded(), legacy))return FALSE;
-if(!other_value.test__sig__5__bit__integer__msb__coded().is_bound()) return FALSE;
-if(!single_value->field_test__sig__5__bit__integer__msb__coded.match(other_value.test__sig__5__bit__integer__msb__coded(), legacy))return FALSE;
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error("Matching an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-}
-return FALSE;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME2__msg__type_template::is_bound() const
-{
-if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE;
-if (template_selection != SPECIFIC_VALUE) return TRUE;
-return single_value->field_test__sig__11__bit__integer__msb__coded.is_bound()
-
- ||single_value->field_test__sig__5__bit__integer__msb__coded.is_bound()
-;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME2__msg__type_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-return single_value->field_test__sig__11__bit__integer__msb__coded.is_value()
- &&single_value->field_test__sig__5__bit__integer__msb__coded.is_value();
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type_template::clean_up()
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-delete single_value;
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-delete [] value_list.list_value;
-default:
-break;
-}
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type CANFD__MESSAGE__TESTFRAME2__msg__type_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent)
-TTCN_error("Performing a valueof or send operation on a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-CANFD__MESSAGE__TESTFRAME2__msg__type ret_val;
-if (single_value->field_test__sig__11__bit__integer__msb__coded.is_bound()) {
-ret_val.test__sig__11__bit__integer__msb__coded() = single_value->field_test__sig__11__bit__integer__msb__coded.valueof();
-}
-if (single_value->field_test__sig__5__bit__integer__msb__coded.is_bound()) {
-ret_val.test__sig__5__bit__integer__msb__coded() = single_value->field_test__sig__5__bit__integer__msb__coded.valueof();
-}
-return ret_val;
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type_template::set_type(template_sel template_type, unsigned int list_length)
-{
-if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST)
-TTCN_error("Setting an invalid list for a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-clean_up();
-set_selection(template_type);
-value_list.n_values = list_length;
-value_list.list_value = new CANFD__MESSAGE__TESTFRAME2__msg__type_template[list_length];
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type_template& CANFD__MESSAGE__TESTFRAME2__msg__type_template::list_item(unsigned int list_index) const
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST)
-TTCN_error("Accessing a list element of a non-list template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-if (list_index >= value_list.n_values)
-TTCN_error("Index overflow in a value list template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-return value_list.list_value[list_index];
-}
-
-INTEGER_template& CANFD__MESSAGE__TESTFRAME2__msg__type_template::test__sig__11__bit__integer__msb__coded()
-{
-set_specific();
-return single_value->field_test__sig__11__bit__integer__msb__coded;
-}
-
-const INTEGER_template& CANFD__MESSAGE__TESTFRAME2__msg__type_template::test__sig__11__bit__integer__msb__coded() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field test_sig_11_bit_integer_msb_coded of a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-return single_value->field_test__sig__11__bit__integer__msb__coded;
-}
-
-INTEGER_template& CANFD__MESSAGE__TESTFRAME2__msg__type_template::test__sig__5__bit__integer__msb__coded()
-{
-set_specific();
-return single_value->field_test__sig__5__bit__integer__msb__coded;
-}
-
-const INTEGER_template& CANFD__MESSAGE__TESTFRAME2__msg__type_template::test__sig__5__bit__integer__msb__coded() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field test_sig_5_bit_integer_msb_coded of a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-return single_value->field_test__sig__5__bit__integer__msb__coded;
-}
-
-int CANFD__MESSAGE__TESTFRAME2__msg__type_template::size_of() const
-{
-  if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type which has an ifpresent attribute.");
-  switch (template_selection)
-  {
-  case SPECIFIC_VALUE:
-    return 2;
-  case VALUE_LIST:
-   {
-     if (value_list.n_values<1)
-       TTCN_error("Internal error: Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type containing an empty list.");
-      int item_size = value_list.list_value[0].size_of();
-      for (unsigned int l_idx = 1; l_idx < value_list.n_values; l_idx++)
-      {
-        if (value_list.list_value[l_idx].size_of()!=item_size)
-          TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type containing a value list with different sizes.");
-      }
-      return item_size;
-    }
-  case OMIT_VALUE:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type containing omit value.");
-  case ANY_VALUE:
-  case ANY_OR_OMIT:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type containing */? value.");
-  case COMPLEMENTED_LIST:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type containing complemented list.");
-  default:
-    TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-  }
-  return 0;
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-TTCN_Logger::log_event_str("{ test_sig_11_bit_integer_msb_coded := ");
-single_value->field_test__sig__11__bit__integer__msb__coded.log();
-TTCN_Logger::log_event_str(", test_sig_5_bit_integer_msb_coded := ");
-single_value->field_test__sig__5__bit__integer__msb__coded.log();
-TTCN_Logger::log_event_str(" }");
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) {
-if (list_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[list_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_ifpresent();
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type_template::log_match(const CANFD__MESSAGE__TESTFRAME2__msg__type& match_value, boolean legacy) const
-{
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-if(match(match_value, legacy)){
-TTCN_Logger::print_logmatch_buffer();
-TTCN_Logger::log_event_str(" matched");
-} else{
-if (template_selection == SPECIFIC_VALUE) {
-size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
-if(!single_value->field_test__sig__11__bit__integer__msb__coded.match(match_value.test__sig__11__bit__integer__msb__coded(), legacy)){
-TTCN_Logger::log_logmatch_info(".test_sig_11_bit_integer_msb_coded");
-single_value->field_test__sig__11__bit__integer__msb__coded.log_match(match_value.test__sig__11__bit__integer__msb__coded(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-if(!single_value->field_test__sig__5__bit__integer__msb__coded.match(match_value.test__sig__5__bit__integer__msb__coded(), legacy)){
-TTCN_Logger::log_logmatch_info(".test_sig_5_bit_integer_msb_coded");
-single_value->field_test__sig__5__bit__integer__msb__coded.log_match(match_value.test__sig__5__bit__integer__msb__coded(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-}else {
-TTCN_Logger::print_logmatch_buffer();
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-TTCN_Logger::log_event_str(" unmatched");
-}
-}
-return;
-}
-if (template_selection == SPECIFIC_VALUE) {
-TTCN_Logger::log_event_str("{ test_sig_11_bit_integer_msb_coded := ");
-single_value->field_test__sig__11__bit__integer__msb__coded.log_match(match_value.test__sig__11__bit__integer__msb__coded(), legacy);
-TTCN_Logger::log_event_str(", test_sig_5_bit_integer_msb_coded := ");
-single_value->field_test__sig__5__bit__integer__msb__coded.log_match(match_value.test__sig__5__bit__integer__msb__coded(), legacy);
-TTCN_Logger::log_event_str(" }");
-} else {
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value->field_test__sig__11__bit__integer__msb__coded.encode_text(text_buf);
-single_value->field_test__sig__5__bit__integer__msb__coded.encode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-single_value->field_test__sig__11__bit__integer__msb__coded.decode_text(text_buf);
-single_value->field_test__sig__5__bit__integer__msb__coded.decode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new CANFD__MESSAGE__TESTFRAME2__msg__type_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: An unknown/unsupported selection was received in a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type.");
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type_template::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    CANFD__MESSAGE__TESTFRAME2__msg__type_template new_temp;
-    new_temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      new_temp.list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    *this = new_temp;
-    break; }
-  case Module_Param::MP_Value_List:
-    if (2<param.get_size()) {
-      param.error("record template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) test__sig__11__bit__integer__msb__coded().set_param(*param.get_elem(0));
-    if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) test__sig__5__bit__integer__msb__coded().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_11_bit_integer_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__11__bit__integer__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_5_bit_integer_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__5__bit__integer__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type");
-  }
-  is_ifpresent = param.get_ifpresent();
-}
-
-void CANFD__MESSAGE__TESTFRAME2__msg__type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_OMIT:
-if (template_selection==OMIT_VALUE) return;
-case TR_VALUE:
-if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break;
-single_value->field_test__sig__11__bit__integer__msb__coded.check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type");
-single_value->field_test__sig__5__bit__integer__msb__coded.check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type");
-return;
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME2_msg_type");
-}
-
-boolean CANFD__MESSAGE__TESTFRAME2__msg__type_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean CANFD__MESSAGE__TESTFRAME2__msg__type_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int l_idx=0; l_idx<value_list.n_values; l_idx++)
-if (value_list.list_value[l_idx].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type::CANFD__MESSAGE__TESTFRAME3__msg__type()
-{
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type::CANFD__MESSAGE__TESTFRAME3__msg__type(const OCTETSTRING& par_test__sig__1__byte__octetstring__msb__coded,
-    const OCTETSTRING& par_test__sig__2__byte__octetstring__msb__coded)
-  :   field_test__sig__1__byte__octetstring__msb__coded(par_test__sig__1__byte__octetstring__msb__coded),
-  field_test__sig__2__byte__octetstring__msb__coded(par_test__sig__2__byte__octetstring__msb__coded)
-{
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type::CANFD__MESSAGE__TESTFRAME3__msg__type(const CANFD__MESSAGE__TESTFRAME3__msg__type& other_value)
-{
-if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-if (other_value.test__sig__1__byte__octetstring__msb__coded().is_bound()) field_test__sig__1__byte__octetstring__msb__coded = other_value.test__sig__1__byte__octetstring__msb__coded();
-else field_test__sig__1__byte__octetstring__msb__coded.clean_up();
-if (other_value.test__sig__2__byte__octetstring__msb__coded().is_bound()) field_test__sig__2__byte__octetstring__msb__coded = other_value.test__sig__2__byte__octetstring__msb__coded();
-else field_test__sig__2__byte__octetstring__msb__coded.clean_up();
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type::clean_up()
-{
-field_test__sig__1__byte__octetstring__msb__coded.clean_up();
-field_test__sig__2__byte__octetstring__msb__coded.clean_up();
-}
-
-const TTCN_Typedescriptor_t* CANFD__MESSAGE__TESTFRAME3__msg__type::get_descriptor() const { return &CANFD__MESSAGE__TESTFRAME3__msg__type_descr_; }
-CANFD__MESSAGE__TESTFRAME3__msg__type& CANFD__MESSAGE__TESTFRAME3__msg__type::operator=(const CANFD__MESSAGE__TESTFRAME3__msg__type& other_value)
-{
-if (this != &other_value) {
-  if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-  if (other_value.test__sig__1__byte__octetstring__msb__coded().is_bound()) field_test__sig__1__byte__octetstring__msb__coded = other_value.test__sig__1__byte__octetstring__msb__coded();
-  else field_test__sig__1__byte__octetstring__msb__coded.clean_up();
-  if (other_value.test__sig__2__byte__octetstring__msb__coded().is_bound()) field_test__sig__2__byte__octetstring__msb__coded = other_value.test__sig__2__byte__octetstring__msb__coded();
-  else field_test__sig__2__byte__octetstring__msb__coded.clean_up();
-}
-return *this;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME3__msg__type::operator==(const CANFD__MESSAGE__TESTFRAME3__msg__type& other_value) const
-{
-return field_test__sig__1__byte__octetstring__msb__coded==other_value.field_test__sig__1__byte__octetstring__msb__coded
-  && field_test__sig__2__byte__octetstring__msb__coded==other_value.field_test__sig__2__byte__octetstring__msb__coded;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME3__msg__type::is_bound() const
-{
-return (field_test__sig__1__byte__octetstring__msb__coded.is_bound())
-  || (field_test__sig__2__byte__octetstring__msb__coded.is_bound());
-}
-boolean CANFD__MESSAGE__TESTFRAME3__msg__type::is_value() const
-{
-return field_test__sig__1__byte__octetstring__msb__coded.is_value()
-  && field_test__sig__2__byte__octetstring__msb__coded.is_value();
-}
-void CANFD__MESSAGE__TESTFRAME3__msg__type::log() const
-{
-if (!is_bound()) {
-TTCN_Logger::log_event_unbound();
-return;
-}
-TTCN_Logger::log_event_str("{ test_sig_1_byte_octetstring_msb_coded := ");
-field_test__sig__1__byte__octetstring__msb__coded.log();
-TTCN_Logger::log_event_str(", test_sig_2_byte_octetstring_msb_coded := ");
-field_test__sig__2__byte__octetstring__msb__coded.log();
-TTCN_Logger::log_event_str(" }");
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
-  case Module_Param::MP_Value_List:
-    if (2<param.get_size()) {
-      param.error("record value of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) test__sig__1__byte__octetstring__msb__coded().set_param(*param.get_elem(0));
-    if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) test__sig__2__byte__octetstring__msb__coded().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_1_byte_octetstring_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__1__byte__octetstring__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_2_byte_octetstring_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__2__byte__octetstring__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record value", "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type");
-  }
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type::set_implicit_omit()
-{
-if (test__sig__1__byte__octetstring__msb__coded().is_bound()) test__sig__1__byte__octetstring__msb__coded().set_implicit_omit();
-if (test__sig__2__byte__octetstring__msb__coded().is_bound()) test__sig__2__byte__octetstring__msb__coded().set_implicit_omit();
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type::encode_text(Text_Buf& text_buf) const
-{
-field_test__sig__1__byte__octetstring__msb__coded.encode_text(text_buf);
-field_test__sig__2__byte__octetstring__msb__coded.encode_text(text_buf);
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type::decode_text(Text_Buf& text_buf)
-{
-field_test__sig__1__byte__octetstring__msb__coded.decode_text(text_buf);
-field_test__sig__2__byte__octetstring__msb__coded.decode_text(text_buf);
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-encoding type '%s': ", p_td.name);
-    unsigned BER_coding=va_arg(pvar, unsigned);
-    BER_encode_chk_coding(BER_coding);
-    ASN_BER_TLV_t *tlv=BER_encode_TLV(p_td, BER_coding);
-    tlv->put_in_buffer(p_buf);
-    ASN_BER_TLV_t::destruct(tlv);
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-encoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    RAW_enc_tr_pos rp;
-    rp.level=0;
-    rp.pos=NULL;
-    RAW_enc_tree root(FALSE, NULL, &rp, 1, p_td.raw);
-    RAW_encode(p_td, root);
-    root.put_to_buf(p_buf);
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    TTCN_EncDec_ErrorContext ec("While TEXT-encoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-      ("No TEXT descriptor available for type '%s'.", p_td.name);
-    TEXT_encode(p_td,p_buf);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-encoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XER_encode(*(p_td.xer),p_buf, XER_coding, 0, 0, 0);
-    p_buf.put_c('\n');
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-encoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok(va_arg(pvar, int) != 0);
-    JSON_encode(p_td, tok);
-    p_buf.put_s(tok.get_buffer_length(), (const unsigned char*)tok.get_buffer());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-encoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-    OER_encode(p_td, p_buf);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to encode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
-    unsigned L_form=va_arg(pvar, unsigned);
-    ASN_BER_TLV_t tlv;
-    BER_decode_str2TLV(p_buf, tlv, L_form);
-    BER_decode_TLV(p_td, tlv, L_form);
-    if(tlv.isComplete) p_buf.increase_pos(tlv.get_len());
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-decoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    raw_order_t r_order;
-    switch(p_td.raw->top_bit_order) {
-    case TOP_BIT_LEFT:
-      r_order=ORDER_LSB;
-      break;
-    case TOP_BIT_RIGHT:
-    default:
-      r_order=ORDER_MSB;
-    }
-    int rawr = RAW_decode(p_td, p_buf, p_buf.get_len()*8, r_order);
-    if(rawr<0) switch (-rawr) {
-    case TTCN_EncDec::ET_INCOMPL_MSG:
-    case TTCN_EncDec::ET_LEN_ERR:
-      ec.error((TTCN_EncDec::error_type_t)-rawr, "Can not decode type '%s', because incomplete message was received", p_td.name);
-      break;
-    case 1:
-    default:
-      ec.error(TTCN_EncDec::ET_INVAL_MSG, "Can not decode type '%s', because invalid message was received", p_td.name);
-      break;
-    }
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    Limit_Token_List limit;
-    TTCN_EncDec_ErrorContext ec("While TEXT-decoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No TEXT descriptor available for type '%s'.", p_td.name);
-    const unsigned char *b_data=p_buf.get_data();
-    if(b_data[p_buf.get_len()-1]!='\0'){
-      p_buf.set_pos(p_buf.get_len());
-      p_buf.put_zero(8,ORDER_LSB);
-      p_buf.rewind();
-    }
-    if(TEXT_decode(p_td,p_buf,limit)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-decoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XmlReaderWrap reader(p_buf);
-    for (int rd_ok=reader.Read(); rd_ok==1; rd_ok=reader.Read()) {
-      if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break;
-    }
-    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, XER_NONE, 0);
-    size_t bytes = reader.ByteConsumed();
-    p_buf.set_pos(bytes);
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-decoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok((const char*)p_buf.get_data(), p_buf.get_len());
-    if(JSON_decode(p_td, tok, FALSE)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    p_buf.set_pos(tok.get_buf_pos());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-decoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-     OER_struct p_oer;
-    OER_decode(p_td, p_buf, p_oer);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to decode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-int CANFD__MESSAGE__TESTFRAME3__msg__type::RAW_decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int limit, raw_order_t top_bit_ord, boolean no_err, int, boolean, const RAW_Force_Omit* force_omit)
-{ (void)no_err;
-  int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding);
-  limit-=prepaddlength;
-  size_t last_decoded_pos = p_buf.get_pos_bit();
-  int decoded_length = 0;
-  int decoded_field_length = 0;
-  raw_order_t local_top_order;
-  if(p_td.raw->top_bit_order==TOP_BIT_INHERITED)local_top_order=top_bit_ord;
-  else if(p_td.raw->top_bit_order==TOP_BIT_RIGHT)local_top_order=ORDER_MSB;
-  else local_top_order=ORDER_LSB;
-  RAW_Force_Omit field_0_force_omit(0, force_omit, CAN__matrix__signals::OCT1__signal__type_descr_.raw->forceomit);
-  decoded_field_length = field_test__sig__1__byte__octetstring__msb__coded.RAW_decode(CAN__matrix__signals::OCT1__signal__type_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_0_force_omit);
-  if (decoded_field_length < 0) return decoded_field_length;
-  decoded_length+=decoded_field_length;
-  limit-=decoded_field_length;
-  last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
-  RAW_Force_Omit field_1_force_omit(1, force_omit, CAN__matrix__signals::OCT2__signal__type_descr_.raw->forceomit);
-  decoded_field_length = field_test__sig__2__byte__octetstring__msb__coded.RAW_decode(CAN__matrix__signals::OCT2__signal__type_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_1_force_omit);
-  if (decoded_field_length < 0) return decoded_field_length;
-  decoded_length+=decoded_field_length;
-  limit-=decoded_field_length;
-  last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
-  p_buf.set_pos_bit(last_decoded_pos);
-  return decoded_length+prepaddlength+p_buf.increase_pos_padd(p_td.raw->padding);
-}
-
-int CANFD__MESSAGE__TESTFRAME3__msg__type::RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree& myleaf) const {
-  if (!is_bound()) TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND, "Encoding an unbound value.");
-  int encoded_length = 0;
-  myleaf.isleaf = FALSE;
-  myleaf.body.node.num_of_nodes = 2;
-  myleaf.body.node.nodes = init_nodes_of_enc_tree(2);
-  myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, CAN__matrix__signals::OCT1__signal__type_descr_.raw);
-  myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, CAN__matrix__signals::OCT2__signal__type_descr_.raw);
-  encoded_length += field_test__sig__1__byte__octetstring__msb__coded.RAW_encode(CAN__matrix__signals::OCT1__signal__type_descr_, *myleaf.body.node.nodes[0]);
-  encoded_length += field_test__sig__2__byte__octetstring__msb__coded.RAW_encode(CAN__matrix__signals::OCT2__signal__type_descr_, *myleaf.body.node.nodes[1]);
-  return myleaf.length = encoded_length;
-}
-
-struct CANFD__MESSAGE__TESTFRAME3__msg__type_template::single_value_struct {
-OCTETSTRING_template field_test__sig__1__byte__octetstring__msb__coded;
-OCTETSTRING_template field_test__sig__2__byte__octetstring__msb__coded;
-};
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type_template::set_specific()
-{
-if (template_selection != SPECIFIC_VALUE) {
-template_sel old_selection = template_selection;
-clean_up();
-single_value = new single_value_struct;
-set_selection(SPECIFIC_VALUE);
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
-single_value->field_test__sig__1__byte__octetstring__msb__coded = ANY_VALUE;
-single_value->field_test__sig__2__byte__octetstring__msb__coded = ANY_VALUE;
-}
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type_template::copy_value(const CANFD__MESSAGE__TESTFRAME3__msg__type& other_value)
-{
-single_value = new single_value_struct;
-if (other_value.test__sig__1__byte__octetstring__msb__coded().is_bound()) {
-  single_value->field_test__sig__1__byte__octetstring__msb__coded = other_value.test__sig__1__byte__octetstring__msb__coded();
-} else {
-  single_value->field_test__sig__1__byte__octetstring__msb__coded.clean_up();
-}
-if (other_value.test__sig__2__byte__octetstring__msb__coded().is_bound()) {
-  single_value->field_test__sig__2__byte__octetstring__msb__coded = other_value.test__sig__2__byte__octetstring__msb__coded();
-} else {
-  single_value->field_test__sig__2__byte__octetstring__msb__coded.clean_up();
-}
-set_selection(SPECIFIC_VALUE);
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type_template::copy_template(const CANFD__MESSAGE__TESTFRAME3__msg__type_template& other_value)
-{
-switch (other_value.template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-if (UNINITIALIZED_TEMPLATE != other_value.test__sig__1__byte__octetstring__msb__coded().get_selection()) {
-single_value->field_test__sig__1__byte__octetstring__msb__coded = other_value.test__sig__1__byte__octetstring__msb__coded();
-} else {
-single_value->field_test__sig__1__byte__octetstring__msb__coded.clean_up();
-}
-if (UNINITIALIZED_TEMPLATE != other_value.test__sig__2__byte__octetstring__msb__coded().get_selection()) {
-single_value->field_test__sig__2__byte__octetstring__msb__coded = other_value.test__sig__2__byte__octetstring__msb__coded();
-} else {
-single_value->field_test__sig__2__byte__octetstring__msb__coded.clean_up();
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new CANFD__MESSAGE__TESTFRAME3__msg__type_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-break;
-}
-set_selection(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type_template::CANFD__MESSAGE__TESTFRAME3__msg__type_template()
-{
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type_template::CANFD__MESSAGE__TESTFRAME3__msg__type_template(template_sel other_value)
- : Base_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type_template::CANFD__MESSAGE__TESTFRAME3__msg__type_template(const CANFD__MESSAGE__TESTFRAME3__msg__type& other_value)
-{
-copy_value(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type_template::CANFD__MESSAGE__TESTFRAME3__msg__type_template(const OPTIONAL<CANFD__MESSAGE__TESTFRAME3__msg__type>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const CANFD__MESSAGE__TESTFRAME3__msg__type&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type from an unbound optional field.");
-}
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type_template::CANFD__MESSAGE__TESTFRAME3__msg__type_template(const CANFD__MESSAGE__TESTFRAME3__msg__type_template& other_value)
-: Base_Template()
-{
-copy_template(other_value);
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type_template::~CANFD__MESSAGE__TESTFRAME3__msg__type_template()
-{
-clean_up();
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type_template& CANFD__MESSAGE__TESTFRAME3__msg__type_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type_template& CANFD__MESSAGE__TESTFRAME3__msg__type_template::operator=(const CANFD__MESSAGE__TESTFRAME3__msg__type& other_value)
-{
-clean_up();
-copy_value(other_value);
-return *this;
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type_template& CANFD__MESSAGE__TESTFRAME3__msg__type_template::operator=(const OPTIONAL<CANFD__MESSAGE__TESTFRAME3__msg__type>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const CANFD__MESSAGE__TESTFRAME3__msg__type&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-}
-return *this;
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type_template& CANFD__MESSAGE__TESTFRAME3__msg__type_template::operator=(const CANFD__MESSAGE__TESTFRAME3__msg__type_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME3__msg__type_template::match(const CANFD__MESSAGE__TESTFRAME3__msg__type& other_value, boolean legacy) const
-{
-if (!other_value.is_bound()) return FALSE;
-switch (template_selection) {
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case OMIT_VALUE:
-return FALSE;
-case SPECIFIC_VALUE:
-if(!other_value.test__sig__1__byte__octetstring__msb__coded().is_bound()) return FALSE;
-if(!single_value->field_test__sig__1__byte__octetstring__msb__coded.match(other_value.test__sig__1__byte__octetstring__msb__coded(), legacy))return FALSE;
-if(!other_value.test__sig__2__byte__octetstring__msb__coded().is_bound()) return FALSE;
-if(!single_value->field_test__sig__2__byte__octetstring__msb__coded.match(other_value.test__sig__2__byte__octetstring__msb__coded(), legacy))return FALSE;
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error("Matching an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-}
-return FALSE;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME3__msg__type_template::is_bound() const
-{
-if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE;
-if (template_selection != SPECIFIC_VALUE) return TRUE;
-return single_value->field_test__sig__1__byte__octetstring__msb__coded.is_bound()
-
- ||single_value->field_test__sig__2__byte__octetstring__msb__coded.is_bound()
-;
-}
-
-boolean CANFD__MESSAGE__TESTFRAME3__msg__type_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-return single_value->field_test__sig__1__byte__octetstring__msb__coded.is_value()
- &&single_value->field_test__sig__2__byte__octetstring__msb__coded.is_value();
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type_template::clean_up()
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-delete single_value;
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-delete [] value_list.list_value;
-default:
-break;
-}
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type CANFD__MESSAGE__TESTFRAME3__msg__type_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent)
-TTCN_error("Performing a valueof or send operation on a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-CANFD__MESSAGE__TESTFRAME3__msg__type ret_val;
-if (single_value->field_test__sig__1__byte__octetstring__msb__coded.is_bound()) {
-ret_val.test__sig__1__byte__octetstring__msb__coded() = single_value->field_test__sig__1__byte__octetstring__msb__coded.valueof();
-}
-if (single_value->field_test__sig__2__byte__octetstring__msb__coded.is_bound()) {
-ret_val.test__sig__2__byte__octetstring__msb__coded() = single_value->field_test__sig__2__byte__octetstring__msb__coded.valueof();
-}
-return ret_val;
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type_template::set_type(template_sel template_type, unsigned int list_length)
-{
-if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST)
-TTCN_error("Setting an invalid list for a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-clean_up();
-set_selection(template_type);
-value_list.n_values = list_length;
-value_list.list_value = new CANFD__MESSAGE__TESTFRAME3__msg__type_template[list_length];
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type_template& CANFD__MESSAGE__TESTFRAME3__msg__type_template::list_item(unsigned int list_index) const
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST)
-TTCN_error("Accessing a list element of a non-list template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-if (list_index >= value_list.n_values)
-TTCN_error("Index overflow in a value list template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-return value_list.list_value[list_index];
-}
-
-OCTETSTRING_template& CANFD__MESSAGE__TESTFRAME3__msg__type_template::test__sig__1__byte__octetstring__msb__coded()
-{
-set_specific();
-return single_value->field_test__sig__1__byte__octetstring__msb__coded;
-}
-
-const OCTETSTRING_template& CANFD__MESSAGE__TESTFRAME3__msg__type_template::test__sig__1__byte__octetstring__msb__coded() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field test_sig_1_byte_octetstring_msb_coded of a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-return single_value->field_test__sig__1__byte__octetstring__msb__coded;
-}
-
-OCTETSTRING_template& CANFD__MESSAGE__TESTFRAME3__msg__type_template::test__sig__2__byte__octetstring__msb__coded()
-{
-set_specific();
-return single_value->field_test__sig__2__byte__octetstring__msb__coded;
-}
-
-const OCTETSTRING_template& CANFD__MESSAGE__TESTFRAME3__msg__type_template::test__sig__2__byte__octetstring__msb__coded() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field test_sig_2_byte_octetstring_msb_coded of a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-return single_value->field_test__sig__2__byte__octetstring__msb__coded;
-}
-
-int CANFD__MESSAGE__TESTFRAME3__msg__type_template::size_of() const
-{
-  if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type which has an ifpresent attribute.");
-  switch (template_selection)
-  {
-  case SPECIFIC_VALUE:
-    return 2;
-  case VALUE_LIST:
-   {
-     if (value_list.n_values<1)
-       TTCN_error("Internal error: Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type containing an empty list.");
-      int item_size = value_list.list_value[0].size_of();
-      for (unsigned int l_idx = 1; l_idx < value_list.n_values; l_idx++)
-      {
-        if (value_list.list_value[l_idx].size_of()!=item_size)
-          TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type containing a value list with different sizes.");
-      }
-      return item_size;
-    }
-  case OMIT_VALUE:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type containing omit value.");
-  case ANY_VALUE:
-  case ANY_OR_OMIT:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type containing */? value.");
-  case COMPLEMENTED_LIST:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type containing complemented list.");
-  default:
-    TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-  }
-  return 0;
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-TTCN_Logger::log_event_str("{ test_sig_1_byte_octetstring_msb_coded := ");
-single_value->field_test__sig__1__byte__octetstring__msb__coded.log();
-TTCN_Logger::log_event_str(", test_sig_2_byte_octetstring_msb_coded := ");
-single_value->field_test__sig__2__byte__octetstring__msb__coded.log();
-TTCN_Logger::log_event_str(" }");
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) {
-if (list_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[list_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_ifpresent();
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type_template::log_match(const CANFD__MESSAGE__TESTFRAME3__msg__type& match_value, boolean legacy) const
-{
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-if(match(match_value, legacy)){
-TTCN_Logger::print_logmatch_buffer();
-TTCN_Logger::log_event_str(" matched");
-} else{
-if (template_selection == SPECIFIC_VALUE) {
-size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
-if(!single_value->field_test__sig__1__byte__octetstring__msb__coded.match(match_value.test__sig__1__byte__octetstring__msb__coded(), legacy)){
-TTCN_Logger::log_logmatch_info(".test_sig_1_byte_octetstring_msb_coded");
-single_value->field_test__sig__1__byte__octetstring__msb__coded.log_match(match_value.test__sig__1__byte__octetstring__msb__coded(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-if(!single_value->field_test__sig__2__byte__octetstring__msb__coded.match(match_value.test__sig__2__byte__octetstring__msb__coded(), legacy)){
-TTCN_Logger::log_logmatch_info(".test_sig_2_byte_octetstring_msb_coded");
-single_value->field_test__sig__2__byte__octetstring__msb__coded.log_match(match_value.test__sig__2__byte__octetstring__msb__coded(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-}else {
-TTCN_Logger::print_logmatch_buffer();
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-TTCN_Logger::log_event_str(" unmatched");
-}
-}
-return;
-}
-if (template_selection == SPECIFIC_VALUE) {
-TTCN_Logger::log_event_str("{ test_sig_1_byte_octetstring_msb_coded := ");
-single_value->field_test__sig__1__byte__octetstring__msb__coded.log_match(match_value.test__sig__1__byte__octetstring__msb__coded(), legacy);
-TTCN_Logger::log_event_str(", test_sig_2_byte_octetstring_msb_coded := ");
-single_value->field_test__sig__2__byte__octetstring__msb__coded.log_match(match_value.test__sig__2__byte__octetstring__msb__coded(), legacy);
-TTCN_Logger::log_event_str(" }");
-} else {
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value->field_test__sig__1__byte__octetstring__msb__coded.encode_text(text_buf);
-single_value->field_test__sig__2__byte__octetstring__msb__coded.encode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-single_value->field_test__sig__1__byte__octetstring__msb__coded.decode_text(text_buf);
-single_value->field_test__sig__2__byte__octetstring__msb__coded.decode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new CANFD__MESSAGE__TESTFRAME3__msg__type_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: An unknown/unsupported selection was received in a template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type.");
-}
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type_template::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    CANFD__MESSAGE__TESTFRAME3__msg__type_template new_temp;
-    new_temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      new_temp.list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    *this = new_temp;
-    break; }
-  case Module_Param::MP_Value_List:
-    if (2<param.get_size()) {
-      param.error("record template of type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) test__sig__1__byte__octetstring__msb__coded().set_param(*param.get_elem(0));
-    if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) test__sig__2__byte__octetstring__msb__coded().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_1_byte_octetstring_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__1__byte__octetstring__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_2_byte_octetstring_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__2__byte__octetstring__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type");
-  }
-  is_ifpresent = param.get_ifpresent();
-}
-
-void CANFD__MESSAGE__TESTFRAME3__msg__type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_OMIT:
-if (template_selection==OMIT_VALUE) return;
-case TR_VALUE:
-if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break;
-single_value->field_test__sig__1__byte__octetstring__msb__coded.check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type");
-single_value->field_test__sig__2__byte__octetstring__msb__coded.check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type");
-return;
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_TESTFRAME3_msg_type");
-}
-
-boolean CANFD__MESSAGE__TESTFRAME3__msg__type_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean CANFD__MESSAGE__TESTFRAME3__msg__type_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int l_idx=0; l_idx<value_list.n_values; l_idx++)
-if (value_list.list_value[l_idx].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::CANFD__MESSAGE__EXTENDEDFRAME1__msg__type()
-{
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::CANFD__MESSAGE__EXTENDEDFRAME1__msg__type(const OCTETSTRING& par_test__sig__2__byte__octetstring__msb__coded)
-  :   field_test__sig__2__byte__octetstring__msb__coded(par_test__sig__2__byte__octetstring__msb__coded)
-{
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::CANFD__MESSAGE__EXTENDEDFRAME1__msg__type(const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type& other_value)
-{
-if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.");
-if (other_value.test__sig__2__byte__octetstring__msb__coded().is_bound()) field_test__sig__2__byte__octetstring__msb__coded = other_value.test__sig__2__byte__octetstring__msb__coded();
-else field_test__sig__2__byte__octetstring__msb__coded.clean_up();
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::clean_up()
-{
-field_test__sig__2__byte__octetstring__msb__coded.clean_up();
-}
-
-const TTCN_Typedescriptor_t* CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::get_descriptor() const { return &CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_descr_; }
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type& CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::operator=(const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type& other_value)
-{
-if (this != &other_value) {
-  if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.");
-  if (other_value.test__sig__2__byte__octetstring__msb__coded().is_bound()) field_test__sig__2__byte__octetstring__msb__coded = other_value.test__sig__2__byte__octetstring__msb__coded();
-  else field_test__sig__2__byte__octetstring__msb__coded.clean_up();
-}
-return *this;
-}
-
-boolean CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::operator==(const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type& other_value) const
-{
-return field_test__sig__2__byte__octetstring__msb__coded==other_value.field_test__sig__2__byte__octetstring__msb__coded;
-}
-
-boolean CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::is_bound() const
-{
-return (field_test__sig__2__byte__octetstring__msb__coded.is_bound());
-}
-boolean CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::is_value() const
-{
-return field_test__sig__2__byte__octetstring__msb__coded.is_value();
-}
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::log() const
-{
-if (!is_bound()) {
-TTCN_Logger::log_event_unbound();
-return;
-}
-TTCN_Logger::log_event_str("{ test_sig_2_byte_octetstring_msb_coded := ");
-field_test__sig__2__byte__octetstring__msb__coded.log();
-TTCN_Logger::log_event_str(" }");
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
-  case Module_Param::MP_Value_List:
-    if (1<param.get_size()) {
-      param.error("record value of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type has 1 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) test__sig__2__byte__octetstring__msb__coded().set_param(*param.get_elem(0));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_2_byte_octetstring_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__2__byte__octetstring__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record value", "@CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type");
-  }
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::set_implicit_omit()
-{
-if (test__sig__2__byte__octetstring__msb__coded().is_bound()) test__sig__2__byte__octetstring__msb__coded().set_implicit_omit();
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::encode_text(Text_Buf& text_buf) const
-{
-field_test__sig__2__byte__octetstring__msb__coded.encode_text(text_buf);
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::decode_text(Text_Buf& text_buf)
-{
-field_test__sig__2__byte__octetstring__msb__coded.decode_text(text_buf);
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-encoding type '%s': ", p_td.name);
-    unsigned BER_coding=va_arg(pvar, unsigned);
-    BER_encode_chk_coding(BER_coding);
-    ASN_BER_TLV_t *tlv=BER_encode_TLV(p_td, BER_coding);
-    tlv->put_in_buffer(p_buf);
-    ASN_BER_TLV_t::destruct(tlv);
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-encoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    RAW_enc_tr_pos rp;
-    rp.level=0;
-    rp.pos=NULL;
-    RAW_enc_tree root(FALSE, NULL, &rp, 1, p_td.raw);
-    RAW_encode(p_td, root);
-    root.put_to_buf(p_buf);
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    TTCN_EncDec_ErrorContext ec("While TEXT-encoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-      ("No TEXT descriptor available for type '%s'.", p_td.name);
-    TEXT_encode(p_td,p_buf);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-encoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XER_encode(*(p_td.xer),p_buf, XER_coding, 0, 0, 0);
-    p_buf.put_c('\n');
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-encoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok(va_arg(pvar, int) != 0);
-    JSON_encode(p_td, tok);
-    p_buf.put_s(tok.get_buffer_length(), (const unsigned char*)tok.get_buffer());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-encoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-    OER_encode(p_td, p_buf);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to encode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
-    unsigned L_form=va_arg(pvar, unsigned);
-    ASN_BER_TLV_t tlv;
-    BER_decode_str2TLV(p_buf, tlv, L_form);
-    BER_decode_TLV(p_td, tlv, L_form);
-    if(tlv.isComplete) p_buf.increase_pos(tlv.get_len());
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-decoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    raw_order_t r_order;
-    switch(p_td.raw->top_bit_order) {
-    case TOP_BIT_LEFT:
-      r_order=ORDER_LSB;
-      break;
-    case TOP_BIT_RIGHT:
-    default:
-      r_order=ORDER_MSB;
-    }
-    int rawr = RAW_decode(p_td, p_buf, p_buf.get_len()*8, r_order);
-    if(rawr<0) switch (-rawr) {
-    case TTCN_EncDec::ET_INCOMPL_MSG:
-    case TTCN_EncDec::ET_LEN_ERR:
-      ec.error((TTCN_EncDec::error_type_t)-rawr, "Can not decode type '%s', because incomplete message was received", p_td.name);
-      break;
-    case 1:
-    default:
-      ec.error(TTCN_EncDec::ET_INVAL_MSG, "Can not decode type '%s', because invalid message was received", p_td.name);
-      break;
-    }
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    Limit_Token_List limit;
-    TTCN_EncDec_ErrorContext ec("While TEXT-decoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No TEXT descriptor available for type '%s'.", p_td.name);
-    const unsigned char *b_data=p_buf.get_data();
-    if(b_data[p_buf.get_len()-1]!='\0'){
-      p_buf.set_pos(p_buf.get_len());
-      p_buf.put_zero(8,ORDER_LSB);
-      p_buf.rewind();
-    }
-    if(TEXT_decode(p_td,p_buf,limit)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-decoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XmlReaderWrap reader(p_buf);
-    for (int rd_ok=reader.Read(); rd_ok==1; rd_ok=reader.Read()) {
-      if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break;
-    }
-    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, XER_NONE, 0);
-    size_t bytes = reader.ByteConsumed();
-    p_buf.set_pos(bytes);
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-decoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok((const char*)p_buf.get_data(), p_buf.get_len());
-    if(JSON_decode(p_td, tok, FALSE)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    p_buf.set_pos(tok.get_buf_pos());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-decoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-     OER_struct p_oer;
-    OER_decode(p_td, p_buf, p_oer);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to decode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-int CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::RAW_decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int limit, raw_order_t top_bit_ord, boolean no_err, int, boolean, const RAW_Force_Omit* force_omit)
-{ (void)no_err;
-  int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding);
-  limit-=prepaddlength;
-  size_t last_decoded_pos = p_buf.get_pos_bit();
-  int decoded_length = 0;
-  int decoded_field_length = 0;
-  raw_order_t local_top_order;
-  if(p_td.raw->top_bit_order==TOP_BIT_INHERITED)local_top_order=top_bit_ord;
-  else if(p_td.raw->top_bit_order==TOP_BIT_RIGHT)local_top_order=ORDER_MSB;
-  else local_top_order=ORDER_LSB;
-  RAW_Force_Omit field_0_force_omit(0, force_omit, CAN__matrix__signals::OCT2__signal__type_descr_.raw->forceomit);
-  decoded_field_length = field_test__sig__2__byte__octetstring__msb__coded.RAW_decode(CAN__matrix__signals::OCT2__signal__type_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_0_force_omit);
-  if (decoded_field_length < 0) return decoded_field_length;
-  decoded_length+=decoded_field_length;
-  limit-=decoded_field_length;
-  last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
-  p_buf.set_pos_bit(last_decoded_pos);
-  return decoded_length+prepaddlength+p_buf.increase_pos_padd(p_td.raw->padding);
-}
-
-int CANFD__MESSAGE__EXTENDEDFRAME1__msg__type::RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree& myleaf) const {
-  if (!is_bound()) TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND, "Encoding an unbound value.");
-  int encoded_length = 0;
-  myleaf.isleaf = FALSE;
-  myleaf.body.node.num_of_nodes = 1;
-  myleaf.body.node.nodes = init_nodes_of_enc_tree(1);
-  myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, CAN__matrix__signals::OCT2__signal__type_descr_.raw);
-  encoded_length += field_test__sig__2__byte__octetstring__msb__coded.RAW_encode(CAN__matrix__signals::OCT2__signal__type_descr_, *myleaf.body.node.nodes[0]);
-  return myleaf.length = encoded_length;
-}
-
-struct CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::single_value_struct {
-OCTETSTRING_template field_test__sig__2__byte__octetstring__msb__coded;
-};
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::set_specific()
-{
-if (template_selection != SPECIFIC_VALUE) {
-template_sel old_selection = template_selection;
-clean_up();
-single_value = new single_value_struct;
-set_selection(SPECIFIC_VALUE);
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
-single_value->field_test__sig__2__byte__octetstring__msb__coded = ANY_VALUE;
-}
-}
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::copy_value(const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type& other_value)
-{
-single_value = new single_value_struct;
-if (other_value.test__sig__2__byte__octetstring__msb__coded().is_bound()) {
-  single_value->field_test__sig__2__byte__octetstring__msb__coded = other_value.test__sig__2__byte__octetstring__msb__coded();
-} else {
-  single_value->field_test__sig__2__byte__octetstring__msb__coded.clean_up();
-}
-set_selection(SPECIFIC_VALUE);
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::copy_template(const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template& other_value)
-{
-switch (other_value.template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-if (UNINITIALIZED_TEMPLATE != other_value.test__sig__2__byte__octetstring__msb__coded().get_selection()) {
-single_value->field_test__sig__2__byte__octetstring__msb__coded = other_value.test__sig__2__byte__octetstring__msb__coded();
-} else {
-single_value->field_test__sig__2__byte__octetstring__msb__coded.clean_up();
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.");
-break;
-}
-set_selection(other_value);
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template()
-{
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template(template_sel other_value)
- : Base_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template(const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type& other_value)
-{
-copy_value(other_value);
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template(const OPTIONAL<CANFD__MESSAGE__EXTENDEDFRAME1__msg__type>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type from an unbound optional field.");
-}
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template(const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template& other_value)
-: Base_Template()
-{
-copy_template(other_value);
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::~CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template()
-{
-clean_up();
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template& CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template& CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::operator=(const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type& other_value)
-{
-clean_up();
-copy_value(other_value);
-return *this;
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template& CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::operator=(const OPTIONAL<CANFD__MESSAGE__EXTENDEDFRAME1__msg__type>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.");
-}
-return *this;
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template& CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::operator=(const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-boolean CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::match(const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type& other_value, boolean legacy) const
-{
-if (!other_value.is_bound()) return FALSE;
-switch (template_selection) {
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case OMIT_VALUE:
-return FALSE;
-case SPECIFIC_VALUE:
-if(!other_value.test__sig__2__byte__octetstring__msb__coded().is_bound()) return FALSE;
-if(!single_value->field_test__sig__2__byte__octetstring__msb__coded.match(other_value.test__sig__2__byte__octetstring__msb__coded(), legacy))return FALSE;
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error("Matching an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.");
-}
-return FALSE;
-}
-
-boolean CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::is_bound() const
-{
-if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE;
-if (template_selection != SPECIFIC_VALUE) return TRUE;
-return single_value->field_test__sig__2__byte__octetstring__msb__coded.is_bound()
-;
-}
-
-boolean CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-return single_value->field_test__sig__2__byte__octetstring__msb__coded.is_value();
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::clean_up()
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-delete single_value;
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-delete [] value_list.list_value;
-default:
-break;
-}
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent)
-TTCN_error("Performing a valueof or send operation on a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.");
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type ret_val;
-if (single_value->field_test__sig__2__byte__octetstring__msb__coded.is_bound()) {
-ret_val.test__sig__2__byte__octetstring__msb__coded() = single_value->field_test__sig__2__byte__octetstring__msb__coded.valueof();
-}
-return ret_val;
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::set_type(template_sel template_type, unsigned int list_length)
-{
-if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST)
-TTCN_error("Setting an invalid list for a template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.");
-clean_up();
-set_selection(template_type);
-value_list.n_values = list_length;
-value_list.list_value = new CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template[list_length];
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template& CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::list_item(unsigned int list_index) const
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST)
-TTCN_error("Accessing a list element of a non-list template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.");
-if (list_index >= value_list.n_values)
-TTCN_error("Index overflow in a value list template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.");
-return value_list.list_value[list_index];
-}
-
-OCTETSTRING_template& CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::test__sig__2__byte__octetstring__msb__coded()
-{
-set_specific();
-return single_value->field_test__sig__2__byte__octetstring__msb__coded;
-}
-
-const OCTETSTRING_template& CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::test__sig__2__byte__octetstring__msb__coded() const
-{
-if (template_selection != SPECIFIC_VALUE)
-TTCN_error("Accessing field test_sig_2_byte_octetstring_msb_coded of a non-specific template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.");
-return single_value->field_test__sig__2__byte__octetstring__msb__coded;
-}
-
-int CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::size_of() const
-{
-  if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type which has an ifpresent attribute.");
-  switch (template_selection)
-  {
-  case SPECIFIC_VALUE:
-    return 1;
-  case VALUE_LIST:
-   {
-     if (value_list.n_values<1)
-       TTCN_error("Internal error: Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type containing an empty list.");
-      int item_size = value_list.list_value[0].size_of();
-      for (unsigned int l_idx = 1; l_idx < value_list.n_values; l_idx++)
-      {
-        if (value_list.list_value[l_idx].size_of()!=item_size)
-          TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type containing a value list with different sizes.");
-      }
-      return item_size;
-    }
-  case OMIT_VALUE:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type containing omit value.");
-  case ANY_VALUE:
-  case ANY_OR_OMIT:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type containing */? value.");
-  case COMPLEMENTED_LIST:
-    TTCN_error("Performing sizeof() operation on a template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type containing complemented list.");
-  default:
-    TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.");
-  }
-  return 0;
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-TTCN_Logger::log_event_str("{ test_sig_2_byte_octetstring_msb_coded := ");
-single_value->field_test__sig__2__byte__octetstring__msb__coded.log();
-TTCN_Logger::log_event_str(" }");
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) {
-if (list_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[list_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_ifpresent();
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::log_match(const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type& match_value, boolean legacy) const
-{
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-if(match(match_value, legacy)){
-TTCN_Logger::print_logmatch_buffer();
-TTCN_Logger::log_event_str(" matched");
-} else{
-if (template_selection == SPECIFIC_VALUE) {
-size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
-if(!single_value->field_test__sig__2__byte__octetstring__msb__coded.match(match_value.test__sig__2__byte__octetstring__msb__coded(), legacy)){
-TTCN_Logger::log_logmatch_info(".test_sig_2_byte_octetstring_msb_coded");
-single_value->field_test__sig__2__byte__octetstring__msb__coded.log_match(match_value.test__sig__2__byte__octetstring__msb__coded(), legacy);
-TTCN_Logger::set_logmatch_buffer_len(previous_size);
-}
-}else {
-TTCN_Logger::print_logmatch_buffer();
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-TTCN_Logger::log_event_str(" unmatched");
-}
-}
-return;
-}
-if (template_selection == SPECIFIC_VALUE) {
-TTCN_Logger::log_event_str("{ test_sig_2_byte_octetstring_msb_coded := ");
-single_value->field_test__sig__2__byte__octetstring__msb__coded.log_match(match_value.test__sig__2__byte__octetstring__msb__coded(), legacy);
-TTCN_Logger::log_event_str(" }");
-} else {
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value->field_test__sig__2__byte__octetstring__msb__coded.encode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.");
-}
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-single_value = new single_value_struct;
-single_value->field_test__sig__2__byte__octetstring__msb__coded.decode_text(text_buf);
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: An unknown/unsupported selection was received in a template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type.");
-}
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template new_temp;
-    new_temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      new_temp.list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    *this = new_temp;
-    break; }
-  case Module_Param::MP_Value_List:
-    if (1<param.get_size()) {
-      param.error("record template of type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type has 1 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) test__sig__2__byte__octetstring__msb__coded().set_param(*param.get_elem(0));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "test_sig_2_byte_octetstring_msb_coded")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          test__sig__2__byte__octetstring__msb__coded().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "@CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type");
-  }
-  is_ifpresent = param.get_ifpresent();
-}
-
-void CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_OMIT:
-if (template_selection==OMIT_VALUE) return;
-case TR_VALUE:
-if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break;
-single_value->field_test__sig__2__byte__octetstring__msb__coded.check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type");
-return;
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@CANFD_matrix_messages.CANFD_MESSAGE_EXTENDEDFRAME1_msg_type");
-}
-
-boolean CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int l_idx=0; l_idx<value_list.n_values; l_idx++)
-if (value_list.list_value[l_idx].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-void CANFD__MatrixPayloadUnion::copy_value(const CANFD__MatrixPayloadUnion& other_value)
-{
-switch (other_value.union_selection) {
-case ALT_message__MyTestframe0:
-field_message__MyTestframe0 = new CANFD__MESSAGE__TESTFRAME0__msg__type(*other_value.field_message__MyTestframe0);
-break;
-case ALT_message__MyTestframe1:
-field_message__MyTestframe1 = new CANFD__MESSAGE__TESTFRAME1__msg__type(*other_value.field_message__MyTestframe1);
-break;
-case ALT_message__MyTestframe2:
-field_message__MyTestframe2 = new CANFD__MESSAGE__TESTFRAME2__msg__type(*other_value.field_message__MyTestframe2);
-break;
-case ALT_message__MyTestframe3:
-field_message__MyTestframe3 = new CANFD__MESSAGE__TESTFRAME3__msg__type(*other_value.field_message__MyTestframe3);
-break;
-case ALT_message__extendedFrame1:
-field_message__extendedFrame1 = new CANFD__MESSAGE__EXTENDEDFRAME1__msg__type(*other_value.field_message__extendedFrame1);
-break;
-default:
-TTCN_error("Assignment of an unbound union value of type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-union_selection = other_value.union_selection;
-}
-
-CANFD__MatrixPayloadUnion::CANFD__MatrixPayloadUnion()
-{
-union_selection = UNBOUND_VALUE;
-}
-
-CANFD__MatrixPayloadUnion::CANFD__MatrixPayloadUnion(const CANFD__MatrixPayloadUnion& other_value)
-: Base_Type(){
-copy_value(other_value);
-}
-
-CANFD__MatrixPayloadUnion::~CANFD__MatrixPayloadUnion()
-{
-clean_up();
-}
-
-CANFD__MatrixPayloadUnion& CANFD__MatrixPayloadUnion::operator=(const CANFD__MatrixPayloadUnion& other_value)
-{
-if (this != &other_value) {
-clean_up();
-copy_value(other_value);
-}
-return *this;
-}
-
-boolean CANFD__MatrixPayloadUnion::operator==(const CANFD__MatrixPayloadUnion& other_value) const
-{
-if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-if (union_selection != other_value.union_selection) return FALSE;
-switch (union_selection) {
-case ALT_message__MyTestframe0:
-return *field_message__MyTestframe0 == *other_value.field_message__MyTestframe0;
-case ALT_message__MyTestframe1:
-return *field_message__MyTestframe1 == *other_value.field_message__MyTestframe1;
-case ALT_message__MyTestframe2:
-return *field_message__MyTestframe2 == *other_value.field_message__MyTestframe2;
-case ALT_message__MyTestframe3:
-return *field_message__MyTestframe3 == *other_value.field_message__MyTestframe3;
-case ALT_message__extendedFrame1:
-return *field_message__extendedFrame1 == *other_value.field_message__extendedFrame1;
-default:
-return FALSE;
-}
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type& CANFD__MatrixPayloadUnion::message__MyTestframe0()
-{
-if (union_selection != ALT_message__MyTestframe0) {
-clean_up();
-field_message__MyTestframe0 = new CANFD__MESSAGE__TESTFRAME0__msg__type;
-union_selection = ALT_message__MyTestframe0;
-}
-return *field_message__MyTestframe0;
-}
-
-const CANFD__MESSAGE__TESTFRAME0__msg__type& CANFD__MatrixPayloadUnion::message__MyTestframe0() const
-{
-if (union_selection != ALT_message__MyTestframe0) TTCN_error("Using non-selected field message_MyTestframe0 in a value of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-return *field_message__MyTestframe0;
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type& CANFD__MatrixPayloadUnion::message__MyTestframe1()
-{
-if (union_selection != ALT_message__MyTestframe1) {
-clean_up();
-field_message__MyTestframe1 = new CANFD__MESSAGE__TESTFRAME1__msg__type;
-union_selection = ALT_message__MyTestframe1;
-}
-return *field_message__MyTestframe1;
-}
-
-const CANFD__MESSAGE__TESTFRAME1__msg__type& CANFD__MatrixPayloadUnion::message__MyTestframe1() const
-{
-if (union_selection != ALT_message__MyTestframe1) TTCN_error("Using non-selected field message_MyTestframe1 in a value of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-return *field_message__MyTestframe1;
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type& CANFD__MatrixPayloadUnion::message__MyTestframe2()
-{
-if (union_selection != ALT_message__MyTestframe2) {
-clean_up();
-field_message__MyTestframe2 = new CANFD__MESSAGE__TESTFRAME2__msg__type;
-union_selection = ALT_message__MyTestframe2;
-}
-return *field_message__MyTestframe2;
-}
-
-const CANFD__MESSAGE__TESTFRAME2__msg__type& CANFD__MatrixPayloadUnion::message__MyTestframe2() const
-{
-if (union_selection != ALT_message__MyTestframe2) TTCN_error("Using non-selected field message_MyTestframe2 in a value of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-return *field_message__MyTestframe2;
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type& CANFD__MatrixPayloadUnion::message__MyTestframe3()
-{
-if (union_selection != ALT_message__MyTestframe3) {
-clean_up();
-field_message__MyTestframe3 = new CANFD__MESSAGE__TESTFRAME3__msg__type;
-union_selection = ALT_message__MyTestframe3;
-}
-return *field_message__MyTestframe3;
-}
-
-const CANFD__MESSAGE__TESTFRAME3__msg__type& CANFD__MatrixPayloadUnion::message__MyTestframe3() const
-{
-if (union_selection != ALT_message__MyTestframe3) TTCN_error("Using non-selected field message_MyTestframe3 in a value of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-return *field_message__MyTestframe3;
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type& CANFD__MatrixPayloadUnion::message__extendedFrame1()
-{
-if (union_selection != ALT_message__extendedFrame1) {
-clean_up();
-field_message__extendedFrame1 = new CANFD__MESSAGE__EXTENDEDFRAME1__msg__type;
-union_selection = ALT_message__extendedFrame1;
-}
-return *field_message__extendedFrame1;
-}
-
-const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type& CANFD__MatrixPayloadUnion::message__extendedFrame1() const
-{
-if (union_selection != ALT_message__extendedFrame1) TTCN_error("Using non-selected field message_extendedFrame1 in a value of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-return *field_message__extendedFrame1;
-}
-
-boolean CANFD__MatrixPayloadUnion::ischosen(union_selection_type checked_selection) const
-{
-if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-return union_selection == checked_selection;
-}
-
-boolean CANFD__MatrixPayloadUnion::is_bound() const
-{
-  return union_selection != UNBOUND_VALUE;
-}
-
-boolean CANFD__MatrixPayloadUnion::is_value() const
-{
-switch (union_selection) {
-case UNBOUND_VALUE: return FALSE;
-case ALT_message__MyTestframe0: return field_message__MyTestframe0->is_value();
-case ALT_message__MyTestframe1: return field_message__MyTestframe1->is_value();
-case ALT_message__MyTestframe2: return field_message__MyTestframe2->is_value();
-case ALT_message__MyTestframe3: return field_message__MyTestframe3->is_value();
-case ALT_message__extendedFrame1: return field_message__extendedFrame1->is_value();
-default: TTCN_error("Invalid selection in union is_bound");}
-}
-
-void CANFD__MatrixPayloadUnion::clean_up()
-{
-switch (union_selection) {
-case ALT_message__MyTestframe0:
-  delete field_message__MyTestframe0;
-  break;
-case ALT_message__MyTestframe1:
-  delete field_message__MyTestframe1;
-  break;
-case ALT_message__MyTestframe2:
-  delete field_message__MyTestframe2;
-  break;
-case ALT_message__MyTestframe3:
-  delete field_message__MyTestframe3;
-  break;
-case ALT_message__extendedFrame1:
-  delete field_message__extendedFrame1;
-  break;
-default:
-  break;
-}
-union_selection = UNBOUND_VALUE;
-}
-
-void CANFD__MatrixPayloadUnion::log() const
-{
-switch (union_selection) {
-case ALT_message__MyTestframe0:
-TTCN_Logger::log_event_str("{ message_MyTestframe0 := ");
-field_message__MyTestframe0->log();
-TTCN_Logger::log_event_str(" }");
-break;
-case ALT_message__MyTestframe1:
-TTCN_Logger::log_event_str("{ message_MyTestframe1 := ");
-field_message__MyTestframe1->log();
-TTCN_Logger::log_event_str(" }");
-break;
-case ALT_message__MyTestframe2:
-TTCN_Logger::log_event_str("{ message_MyTestframe2 := ");
-field_message__MyTestframe2->log();
-TTCN_Logger::log_event_str(" }");
-break;
-case ALT_message__MyTestframe3:
-TTCN_Logger::log_event_str("{ message_MyTestframe3 := ");
-field_message__MyTestframe3->log();
-TTCN_Logger::log_event_str(" }");
-break;
-case ALT_message__extendedFrame1:
-TTCN_Logger::log_event_str("{ message_extendedFrame1 := ");
-field_message__extendedFrame1->log();
-TTCN_Logger::log_event_str(" }");
-break;
-default:
-TTCN_Logger::log_event_unbound();
-}
-}
-
-void CANFD__MatrixPayloadUnion::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE, "union value");
-  Module_Param_Ptr m_p = &param;
-  if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return;
-  if (m_p->get_type()!=Module_Param::MP_Assignment_List) {
-    param.error("union value with field name was expected");
-  }
-  Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1);
-  char* last_name = mp_last->get_id()->get_name();
-  if (!strcmp(last_name, "message_MyTestframe0")) {
-    message__MyTestframe0().set_param(*mp_last);
-    if (!message__MyTestframe0().is_bound()) clean_up();
-    return;
-  }
-  if (!strcmp(last_name, "message_MyTestframe1")) {
-    message__MyTestframe1().set_param(*mp_last);
-    if (!message__MyTestframe1().is_bound()) clean_up();
-    return;
-  }
-  if (!strcmp(last_name, "message_MyTestframe2")) {
-    message__MyTestframe2().set_param(*mp_last);
-    if (!message__MyTestframe2().is_bound()) clean_up();
-    return;
-  }
-  if (!strcmp(last_name, "message_MyTestframe3")) {
-    message__MyTestframe3().set_param(*mp_last);
-    if (!message__MyTestframe3().is_bound()) clean_up();
-    return;
-  }
-  if (!strcmp(last_name, "message_extendedFrame1")) {
-    message__extendedFrame1().set_param(*mp_last);
-    if (!message__extendedFrame1().is_bound()) clean_up();
-    return;
-  }
-  mp_last->error("Field %s does not exist in type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.", last_name);
-}
-
-void CANFD__MatrixPayloadUnion::set_implicit_omit()
-{
-switch (union_selection) {
-case ALT_message__MyTestframe0:
-field_message__MyTestframe0->set_implicit_omit(); break;
-case ALT_message__MyTestframe1:
-field_message__MyTestframe1->set_implicit_omit(); break;
-case ALT_message__MyTestframe2:
-field_message__MyTestframe2->set_implicit_omit(); break;
-case ALT_message__MyTestframe3:
-field_message__MyTestframe3->set_implicit_omit(); break;
-case ALT_message__extendedFrame1:
-field_message__extendedFrame1->set_implicit_omit(); break;
-default: break;
-}
-}
-
-void CANFD__MatrixPayloadUnion::encode_text(Text_Buf& text_buf) const
-{
-text_buf.push_int(union_selection);
-switch (union_selection) {
-case ALT_message__MyTestframe0:
-field_message__MyTestframe0->encode_text(text_buf);
-break;
-case ALT_message__MyTestframe1:
-field_message__MyTestframe1->encode_text(text_buf);
-break;
-case ALT_message__MyTestframe2:
-field_message__MyTestframe2->encode_text(text_buf);
-break;
-case ALT_message__MyTestframe3:
-field_message__MyTestframe3->encode_text(text_buf);
-break;
-case ALT_message__extendedFrame1:
-field_message__extendedFrame1->encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an unbound value of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-}
-
-void CANFD__MatrixPayloadUnion::decode_text(Text_Buf& text_buf)
-{
-switch ((union_selection_type)text_buf.pull_int().get_val()) {
-case ALT_message__MyTestframe0:
-message__MyTestframe0().decode_text(text_buf);
-break;
-case ALT_message__MyTestframe1:
-message__MyTestframe1().decode_text(text_buf);
-break;
-case ALT_message__MyTestframe2:
-message__MyTestframe2().decode_text(text_buf);
-break;
-case ALT_message__MyTestframe3:
-message__MyTestframe3().decode_text(text_buf);
-break;
-case ALT_message__extendedFrame1:
-message__extendedFrame1().decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: Unrecognized union selector was received for type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-}
-
-void CANFD__MatrixPayloadUnion::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-encoding type '%s': ", p_td.name);
-    unsigned BER_coding=va_arg(pvar, unsigned);
-    BER_encode_chk_coding(BER_coding);
-    ASN_BER_TLV_t *tlv=BER_encode_TLV(p_td, BER_coding);
-    tlv->put_in_buffer(p_buf);
-    ASN_BER_TLV_t::destruct(tlv);
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-encoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    RAW_enc_tr_pos rp;
-    rp.level=0;
-    rp.pos=NULL;
-    RAW_enc_tree root(TRUE, NULL, &rp, 1, p_td.raw);
-    RAW_encode(p_td, root);
-    root.put_to_buf(p_buf);
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    TTCN_EncDec_ErrorContext ec("While TEXT-encoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-      ("No TEXT descriptor available for type '%s'.", p_td.name);
-    TEXT_encode(p_td,p_buf);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-encoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XER_encode(*(p_td.xer),p_buf, XER_coding, 0, 0, 0);
-    p_buf.put_c('\n');
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-encoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok(va_arg(pvar, int) != 0);
-    JSON_encode(p_td, tok);
-    p_buf.put_s(tok.get_buffer_length(), (const unsigned char*)tok.get_buffer());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-encoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-    OER_encode(p_td, p_buf);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to encode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-void CANFD__MatrixPayloadUnion::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
-    unsigned L_form=va_arg(pvar, unsigned);
-    ASN_BER_TLV_t tlv;
-    BER_decode_str2TLV(p_buf, tlv, L_form);
-    BER_decode_TLV(p_td, tlv, L_form);
-    if(tlv.isComplete) p_buf.increase_pos(tlv.get_len());
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-decoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    raw_order_t r_order;
-    switch(p_td.raw->top_bit_order) {
-    case TOP_BIT_LEFT:
-      r_order=ORDER_LSB;
-      break;
-    case TOP_BIT_RIGHT:
-    default:
-      r_order=ORDER_MSB;
-    }
-    int rawr = RAW_decode(p_td, p_buf, p_buf.get_len()*8, r_order);
-    if(rawr<0) switch (-rawr) {
-    case TTCN_EncDec::ET_INCOMPL_MSG:
-    case TTCN_EncDec::ET_LEN_ERR:
-      ec.error((TTCN_EncDec::error_type_t)-rawr, "Can not decode type '%s', because incomplete message was received", p_td.name);
-      break;
-    case 1:
-    default:
-      ec.error(TTCN_EncDec::ET_INVAL_MSG, "Can not decode type '%s', because invalid message was received", p_td.name);
-      break;
-    }
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    Limit_Token_List limit;
-    TTCN_EncDec_ErrorContext ec("While TEXT-decoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No TEXT descriptor available for type '%s'.", p_td.name);
-    const unsigned char *b_data=p_buf.get_data();
-    if(b_data[p_buf.get_len()-1]!='\0'){
-      p_buf.set_pos(p_buf.get_len());
-      p_buf.put_zero(8,ORDER_LSB);
-      p_buf.rewind();
-    }
-    if(TEXT_decode(p_td,p_buf,limit)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-decoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XmlReaderWrap reader(p_buf);
-    for (int rd_ok=reader.Read(); rd_ok==1; rd_ok=reader.Read()) {
-      if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break;
-    }
-    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, XER_NONE, 0);
-    size_t bytes = reader.ByteConsumed();
-    p_buf.set_pos(bytes);
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-decoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok((const char*)p_buf.get_data(), p_buf.get_len());
-    if(JSON_decode(p_td, tok, FALSE)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    p_buf.set_pos(tok.get_buf_pos());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-decoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-     OER_struct p_oer;
-    OER_decode(p_td, p_buf, p_oer);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to decode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-int CANFD__MatrixPayloadUnion::RAW_decode(
-const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int limit, 
-raw_order_t top_bit_ord, boolean no_err, int sel_field, boolean, const RAW_Force_Omit* force_omit)
-{
-  int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding);
-  limit-=prepaddlength;
-  int decoded_length=0;
-  int starting_pos=p_buf.get_pos_bit();
-  if(sel_field!=-1){
-    switch(sel_field){
-    case 0: {
-      RAW_Force_Omit field_force_omit(0, force_omit, CANFD__MESSAGE__TESTFRAME0__msg__type_descr_.raw->forceomit);
-      decoded_length = message__MyTestframe0().RAW_decode(CANFD__MESSAGE__TESTFRAME0__msg__type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit);
-      break; }
-    case 1: {
-      RAW_Force_Omit field_force_omit(1, force_omit, CANFD__MESSAGE__TESTFRAME1__msg__type_descr_.raw->forceomit);
-      decoded_length = message__MyTestframe1().RAW_decode(CANFD__MESSAGE__TESTFRAME1__msg__type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit);
-      break; }
-    case 2: {
-      RAW_Force_Omit field_force_omit(2, force_omit, CANFD__MESSAGE__TESTFRAME2__msg__type_descr_.raw->forceomit);
-      decoded_length = message__MyTestframe2().RAW_decode(CANFD__MESSAGE__TESTFRAME2__msg__type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit);
-      break; }
-    case 3: {
-      RAW_Force_Omit field_force_omit(3, force_omit, CANFD__MESSAGE__TESTFRAME3__msg__type_descr_.raw->forceomit);
-      decoded_length = message__MyTestframe3().RAW_decode(CANFD__MESSAGE__TESTFRAME3__msg__type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit);
-      break; }
-    case 4: {
-      RAW_Force_Omit field_force_omit(4, force_omit, CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_descr_.raw->forceomit);
-      decoded_length = message__extendedFrame1().RAW_decode(CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit);
-      break; }
-    default: break;
-    }
-    return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength;
-  } else {
-      p_buf.set_pos_bit(starting_pos);
-      RAW_Force_Omit field_0_force_omit(0, force_omit, CANFD__MESSAGE__TESTFRAME0__msg__type_descr_.raw->forceomit);
-      decoded_length = message__MyTestframe0().RAW_decode(CANFD__MESSAGE__TESTFRAME0__msg__type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_0_force_omit);
-      if (decoded_length >= 0) {
-         return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength;
-       }
-      p_buf.set_pos_bit(starting_pos);
-      RAW_Force_Omit field_1_force_omit(1, force_omit, CANFD__MESSAGE__TESTFRAME1__msg__type_descr_.raw->forceomit);
-      decoded_length = message__MyTestframe1().RAW_decode(CANFD__MESSAGE__TESTFRAME1__msg__type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_1_force_omit);
-      if (decoded_length >= 0) {
-         return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength;
-       }
-      p_buf.set_pos_bit(starting_pos);
-      RAW_Force_Omit field_2_force_omit(2, force_omit, CANFD__MESSAGE__TESTFRAME2__msg__type_descr_.raw->forceomit);
-      decoded_length = message__MyTestframe2().RAW_decode(CANFD__MESSAGE__TESTFRAME2__msg__type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_2_force_omit);
-      if (decoded_length >= 0) {
-         return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength;
-       }
-      p_buf.set_pos_bit(starting_pos);
-      RAW_Force_Omit field_3_force_omit(3, force_omit, CANFD__MESSAGE__TESTFRAME3__msg__type_descr_.raw->forceomit);
-      decoded_length = message__MyTestframe3().RAW_decode(CANFD__MESSAGE__TESTFRAME3__msg__type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_3_force_omit);
-      if (decoded_length >= 0) {
-         return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength;
-       }
-      p_buf.set_pos_bit(starting_pos);
-      RAW_Force_Omit field_4_force_omit(4, force_omit, CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_descr_.raw->forceomit);
-      decoded_length = message__extendedFrame1().RAW_decode(CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_4_force_omit);
-      if (decoded_length >= 0) {
-         return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength;
-       }
- }
- clean_up();
- return -1;
-}
-
-int CANFD__MatrixPayloadUnion::RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree& myleaf) const
-{
-  int encoded_length = 0;
-  myleaf.isleaf = FALSE;
-  myleaf.body.node.num_of_nodes = 5;  myleaf.body.node.nodes = init_nodes_of_enc_tree(5);
-  memset(myleaf.body.node.nodes, 0, 5 * sizeof(RAW_enc_tree *));
-  switch (union_selection) {
-  case ALT_message__MyTestframe0:
-    myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 0, CANFD__MESSAGE__TESTFRAME0__msg__type_descr_.raw);
-    encoded_length = field_message__MyTestframe0->RAW_encode(CANFD__MESSAGE__TESTFRAME0__msg__type_descr_, *myleaf.body.node.nodes[0]);
-    myleaf.body.node.nodes[0]->coding_descr = &CANFD__MESSAGE__TESTFRAME0__msg__type_descr_;
-    break;
-  case ALT_message__MyTestframe1:
-    myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 1, CANFD__MESSAGE__TESTFRAME1__msg__type_descr_.raw);
-    encoded_length = field_message__MyTestframe1->RAW_encode(CANFD__MESSAGE__TESTFRAME1__msg__type_descr_, *myleaf.body.node.nodes[1]);
-    myleaf.body.node.nodes[1]->coding_descr = &CANFD__MESSAGE__TESTFRAME1__msg__type_descr_;
-    break;
-  case ALT_message__MyTestframe2:
-    myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 2, CANFD__MESSAGE__TESTFRAME2__msg__type_descr_.raw);
-    encoded_length = field_message__MyTestframe2->RAW_encode(CANFD__MESSAGE__TESTFRAME2__msg__type_descr_, *myleaf.body.node.nodes[2]);
-    myleaf.body.node.nodes[2]->coding_descr = &CANFD__MESSAGE__TESTFRAME2__msg__type_descr_;
-    break;
-  case ALT_message__MyTestframe3:
-    myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 3, CANFD__MESSAGE__TESTFRAME3__msg__type_descr_.raw);
-    encoded_length = field_message__MyTestframe3->RAW_encode(CANFD__MESSAGE__TESTFRAME3__msg__type_descr_, *myleaf.body.node.nodes[3]);
-    myleaf.body.node.nodes[3]->coding_descr = &CANFD__MESSAGE__TESTFRAME3__msg__type_descr_;
-    break;
-  case ALT_message__extendedFrame1:
-    myleaf.body.node.nodes[4] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 4, CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_descr_.raw);
-    encoded_length = field_message__extendedFrame1->RAW_encode(CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_descr_, *myleaf.body.node.nodes[4]);
-    myleaf.body.node.nodes[4]->coding_descr = &CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_descr_;
-    break;
-  default:
-    TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND, "Encoding an unbound value.");
-  }
-  return encoded_length;
-}
-
-void CANFD__MatrixPayloadUnion_template::copy_value(const CANFD__MatrixPayloadUnion& other_value)
-{
-single_value.union_selection = other_value.get_selection();
-switch (single_value.union_selection) {
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0:
-single_value.field_message__MyTestframe0 = new CANFD__MESSAGE__TESTFRAME0__msg__type_template(other_value.message__MyTestframe0());
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1:
-single_value.field_message__MyTestframe1 = new CANFD__MESSAGE__TESTFRAME1__msg__type_template(other_value.message__MyTestframe1());
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2:
-single_value.field_message__MyTestframe2 = new CANFD__MESSAGE__TESTFRAME2__msg__type_template(other_value.message__MyTestframe2());
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3:
-single_value.field_message__MyTestframe3 = new CANFD__MESSAGE__TESTFRAME3__msg__type_template(other_value.message__MyTestframe3());
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1:
-single_value.field_message__extendedFrame1 = new CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template(other_value.message__extendedFrame1());
-break;
-default:
-TTCN_error("Initializing a template with an unbound value of type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-set_selection(SPECIFIC_VALUE);
-}
-
-void CANFD__MatrixPayloadUnion_template::copy_template(const CANFD__MatrixPayloadUnion_template& other_value)
-{
-switch (other_value.template_selection) {
-case SPECIFIC_VALUE:
-single_value.union_selection = other_value.single_value.union_selection;
-switch (single_value.union_selection) {
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0:
-single_value.field_message__MyTestframe0 = new CANFD__MESSAGE__TESTFRAME0__msg__type_template(*other_value.single_value.field_message__MyTestframe0);
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1:
-single_value.field_message__MyTestframe1 = new CANFD__MESSAGE__TESTFRAME1__msg__type_template(*other_value.single_value.field_message__MyTestframe1);
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2:
-single_value.field_message__MyTestframe2 = new CANFD__MESSAGE__TESTFRAME2__msg__type_template(*other_value.single_value.field_message__MyTestframe2);
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3:
-single_value.field_message__MyTestframe3 = new CANFD__MESSAGE__TESTFRAME3__msg__type_template(*other_value.single_value.field_message__MyTestframe3);
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1:
-single_value.field_message__extendedFrame1 = new CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template(*other_value.single_value.field_message__extendedFrame1);
-break;
-default:
-TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = other_value.value_list.n_values;
-value_list.list_value = new CANFD__MatrixPayloadUnion_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]);
-break;
-default:
-TTCN_error("Copying an uninitialized template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-set_selection(other_value);
-}
-
-CANFD__MatrixPayloadUnion_template::CANFD__MatrixPayloadUnion_template()
-{
-}
-
-CANFD__MatrixPayloadUnion_template::CANFD__MatrixPayloadUnion_template(template_sel other_value)
- : Base_Template(other_value)
-{
-check_single_selection(other_value);
-}
-
-CANFD__MatrixPayloadUnion_template::CANFD__MatrixPayloadUnion_template(const CANFD__MatrixPayloadUnion& other_value)
-{
-copy_value(other_value);
-}
-
-CANFD__MatrixPayloadUnion_template::CANFD__MatrixPayloadUnion_template(const OPTIONAL<CANFD__MatrixPayloadUnion>& other_value)
-{
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const CANFD__MatrixPayloadUnion&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Creating a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion from an unbound optional field.");
-}
-}
-
-CANFD__MatrixPayloadUnion_template::CANFD__MatrixPayloadUnion_template(const CANFD__MatrixPayloadUnion_template& other_value)
-: Base_Template(){
-copy_template(other_value);
-}
-
-CANFD__MatrixPayloadUnion_template::~CANFD__MatrixPayloadUnion_template()
-{
-clean_up();
-}
-
-void CANFD__MatrixPayloadUnion_template::clean_up()
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-switch (single_value.union_selection) {
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0:
-delete single_value.field_message__MyTestframe0;
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1:
-delete single_value.field_message__MyTestframe1;
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2:
-delete single_value.field_message__MyTestframe2;
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3:
-delete single_value.field_message__MyTestframe3;
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1:
-delete single_value.field_message__extendedFrame1;
-default:
-break;
-}
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-delete [] value_list.list_value;
-default:
-break;
-}
-template_selection = UNINITIALIZED_TEMPLATE;
-}
-
-CANFD__MatrixPayloadUnion_template& CANFD__MatrixPayloadUnion_template::operator=(template_sel other_value)
-{
-check_single_selection(other_value);
-clean_up();
-set_selection(other_value);
-return *this;
-}
-
-CANFD__MatrixPayloadUnion_template& CANFD__MatrixPayloadUnion_template::operator=(const CANFD__MatrixPayloadUnion& other_value)
-{
-clean_up();
-copy_value(other_value);
-return *this;
-}
-
-CANFD__MatrixPayloadUnion_template& CANFD__MatrixPayloadUnion_template::operator=(const OPTIONAL<CANFD__MatrixPayloadUnion>& other_value)
-{
-clean_up();
-switch (other_value.get_selection()) {
-case OPTIONAL_PRESENT:
-copy_value((const CANFD__MatrixPayloadUnion&)other_value);
-break;
-case OPTIONAL_OMIT:
-set_selection(OMIT_VALUE);
-break;
-default:
-TTCN_error("Assignment of an unbound optional field to a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-return *this;
-}
-
-CANFD__MatrixPayloadUnion_template& CANFD__MatrixPayloadUnion_template::operator=(const CANFD__MatrixPayloadUnion_template& other_value)
-{
-if (&other_value != this) {
-clean_up();
-copy_template(other_value);
-}
-return *this;
-}
-
-boolean CANFD__MatrixPayloadUnion_template::match(const CANFD__MatrixPayloadUnion& other_value, boolean legacy) const
-{
-if (!other_value.is_bound()) return FALSE;
-switch (template_selection) {
-case ANY_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case OMIT_VALUE:
-return FALSE;
-case SPECIFIC_VALUE:
-{
-CANFD__MatrixPayloadUnion::union_selection_type value_selection = other_value.get_selection();
-if (value_selection == CANFD__MatrixPayloadUnion::UNBOUND_VALUE) return FALSE;
-if (value_selection != single_value.union_selection) return FALSE;
-switch (value_selection) {
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0:
-return single_value.field_message__MyTestframe0->match(other_value.message__MyTestframe0(), legacy);
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1:
-return single_value.field_message__MyTestframe1->match(other_value.message__MyTestframe1(), legacy);
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2:
-return single_value.field_message__MyTestframe2->match(other_value.message__MyTestframe2(), legacy);
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3:
-return single_value.field_message__MyTestframe3->match(other_value.message__MyTestframe3(), legacy);
-case CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1:
-return single_value.field_message__extendedFrame1->match(other_value.message__extendedFrame1(), legacy);
-default:
-TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-}
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST;
-return template_selection == COMPLEMENTED_LIST;
-default:
-TTCN_error ("Matching an uninitialized template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-return FALSE;
-}
-
-boolean CANFD__MatrixPayloadUnion_template::is_value() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
-switch (single_value.union_selection) {
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0:
-return single_value.field_message__MyTestframe0->is_value();
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1:
-return single_value.field_message__MyTestframe1->is_value();
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2:
-return single_value.field_message__MyTestframe2->is_value();
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3:
-return single_value.field_message__MyTestframe3->is_value();
-case CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1:
-return single_value.field_message__extendedFrame1->is_value();
-default:
-TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-}
-
-CANFD__MatrixPayloadUnion CANFD__MatrixPayloadUnion_template::valueof() const
-{
-if (template_selection != SPECIFIC_VALUE || is_ifpresent)
-TTCN_error("Performing a valueof or send operation on a non-specific template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-CANFD__MatrixPayloadUnion ret_val;
-switch (single_value.union_selection) {
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0:
-ret_val.message__MyTestframe0() = single_value.field_message__MyTestframe0->valueof();
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1:
-ret_val.message__MyTestframe1() = single_value.field_message__MyTestframe1->valueof();
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2:
-ret_val.message__MyTestframe2() = single_value.field_message__MyTestframe2->valueof();
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3:
-ret_val.message__MyTestframe3() = single_value.field_message__MyTestframe3->valueof();
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1:
-ret_val.message__extendedFrame1() = single_value.field_message__extendedFrame1->valueof();
-break;
-default:
-TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-return ret_val;
-}
-
-CANFD__MatrixPayloadUnion_template& CANFD__MatrixPayloadUnion_template::list_item(unsigned int list_index) const
-{
-if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-return value_list.list_value[list_index];
-}
-void CANFD__MatrixPayloadUnion_template::set_type(template_sel template_type, unsigned int list_length)
-{
-if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST) TTCN_error ("Internal error: Setting an invalid list for a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-clean_up();
-set_selection(template_type);
-value_list.n_values = list_length;
-value_list.list_value = new CANFD__MatrixPayloadUnion_template[list_length];
-}
-
-CANFD__MESSAGE__TESTFRAME0__msg__type_template& CANFD__MatrixPayloadUnion_template::message__MyTestframe0()
-{
-if (template_selection != SPECIFIC_VALUE || single_value.union_selection != CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0) {
-template_sel old_selection = template_selection;
-clean_up();
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_message__MyTestframe0 = new CANFD__MESSAGE__TESTFRAME0__msg__type_template(ANY_VALUE);
-else single_value.field_message__MyTestframe0 = new CANFD__MESSAGE__TESTFRAME0__msg__type_template;
-single_value.union_selection = CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0;
-set_selection(SPECIFIC_VALUE);
-}
-return *single_value.field_message__MyTestframe0;
-}
-
-const CANFD__MESSAGE__TESTFRAME0__msg__type_template& CANFD__MatrixPayloadUnion_template::message__MyTestframe0() const
-{
-if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field message_MyTestframe0 in a non-specific template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-if (single_value.union_selection != CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0) TTCN_error("Accessing non-selected field message_MyTestframe0 in a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-return *single_value.field_message__MyTestframe0;
-}
-
-CANFD__MESSAGE__TESTFRAME1__msg__type_template& CANFD__MatrixPayloadUnion_template::message__MyTestframe1()
-{
-if (template_selection != SPECIFIC_VALUE || single_value.union_selection != CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1) {
-template_sel old_selection = template_selection;
-clean_up();
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_message__MyTestframe1 = new CANFD__MESSAGE__TESTFRAME1__msg__type_template(ANY_VALUE);
-else single_value.field_message__MyTestframe1 = new CANFD__MESSAGE__TESTFRAME1__msg__type_template;
-single_value.union_selection = CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1;
-set_selection(SPECIFIC_VALUE);
-}
-return *single_value.field_message__MyTestframe1;
-}
-
-const CANFD__MESSAGE__TESTFRAME1__msg__type_template& CANFD__MatrixPayloadUnion_template::message__MyTestframe1() const
-{
-if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field message_MyTestframe1 in a non-specific template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-if (single_value.union_selection != CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1) TTCN_error("Accessing non-selected field message_MyTestframe1 in a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-return *single_value.field_message__MyTestframe1;
-}
-
-CANFD__MESSAGE__TESTFRAME2__msg__type_template& CANFD__MatrixPayloadUnion_template::message__MyTestframe2()
-{
-if (template_selection != SPECIFIC_VALUE || single_value.union_selection != CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2) {
-template_sel old_selection = template_selection;
-clean_up();
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_message__MyTestframe2 = new CANFD__MESSAGE__TESTFRAME2__msg__type_template(ANY_VALUE);
-else single_value.field_message__MyTestframe2 = new CANFD__MESSAGE__TESTFRAME2__msg__type_template;
-single_value.union_selection = CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2;
-set_selection(SPECIFIC_VALUE);
-}
-return *single_value.field_message__MyTestframe2;
-}
-
-const CANFD__MESSAGE__TESTFRAME2__msg__type_template& CANFD__MatrixPayloadUnion_template::message__MyTestframe2() const
-{
-if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field message_MyTestframe2 in a non-specific template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-if (single_value.union_selection != CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2) TTCN_error("Accessing non-selected field message_MyTestframe2 in a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-return *single_value.field_message__MyTestframe2;
-}
-
-CANFD__MESSAGE__TESTFRAME3__msg__type_template& CANFD__MatrixPayloadUnion_template::message__MyTestframe3()
-{
-if (template_selection != SPECIFIC_VALUE || single_value.union_selection != CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3) {
-template_sel old_selection = template_selection;
-clean_up();
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_message__MyTestframe3 = new CANFD__MESSAGE__TESTFRAME3__msg__type_template(ANY_VALUE);
-else single_value.field_message__MyTestframe3 = new CANFD__MESSAGE__TESTFRAME3__msg__type_template;
-single_value.union_selection = CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3;
-set_selection(SPECIFIC_VALUE);
-}
-return *single_value.field_message__MyTestframe3;
-}
-
-const CANFD__MESSAGE__TESTFRAME3__msg__type_template& CANFD__MatrixPayloadUnion_template::message__MyTestframe3() const
-{
-if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field message_MyTestframe3 in a non-specific template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-if (single_value.union_selection != CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3) TTCN_error("Accessing non-selected field message_MyTestframe3 in a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-return *single_value.field_message__MyTestframe3;
-}
-
-CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template& CANFD__MatrixPayloadUnion_template::message__extendedFrame1()
-{
-if (template_selection != SPECIFIC_VALUE || single_value.union_selection != CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1) {
-template_sel old_selection = template_selection;
-clean_up();
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_message__extendedFrame1 = new CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template(ANY_VALUE);
-else single_value.field_message__extendedFrame1 = new CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template;
-single_value.union_selection = CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1;
-set_selection(SPECIFIC_VALUE);
-}
-return *single_value.field_message__extendedFrame1;
-}
-
-const CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template& CANFD__MatrixPayloadUnion_template::message__extendedFrame1() const
-{
-if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field message_extendedFrame1 in a non-specific template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-if (single_value.union_selection != CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1) TTCN_error("Accessing non-selected field message_extendedFrame1 in a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-return *single_value.field_message__extendedFrame1;
-}
-
-boolean CANFD__MatrixPayloadUnion_template::ischosen(CANFD__MatrixPayloadUnion::union_selection_type checked_selection) const
-{
-if (checked_selection == CANFD__MatrixPayloadUnion::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-switch (template_selection) {
-case SPECIFIC_VALUE:
-if (single_value.union_selection == CANFD__MatrixPayloadUnion::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-return single_value.union_selection == checked_selection;
-case VALUE_LIST:
-{
-if (value_list.n_values < 1)
-TTCN_error("Internal error: Performing ischosen() operation on a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion containing an empty list.");
-boolean ret_val = value_list.list_value[0].ischosen(checked_selection);
-for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) {
-ret_val = value_list.list_value[list_count].ischosen(checked_selection);
-}
-return ret_val;
-}
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-void CANFD__MatrixPayloadUnion_template::log() const
-{
-switch (template_selection) {
-case SPECIFIC_VALUE:
-switch (single_value.union_selection) {
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0:
-TTCN_Logger::log_event_str("{ message_MyTestframe0 := ");
-single_value.field_message__MyTestframe0->log();
-TTCN_Logger::log_event_str(" }");
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1:
-TTCN_Logger::log_event_str("{ message_MyTestframe1 := ");
-single_value.field_message__MyTestframe1->log();
-TTCN_Logger::log_event_str(" }");
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2:
-TTCN_Logger::log_event_str("{ message_MyTestframe2 := ");
-single_value.field_message__MyTestframe2->log();
-TTCN_Logger::log_event_str(" }");
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3:
-TTCN_Logger::log_event_str("{ message_MyTestframe3 := ");
-single_value.field_message__MyTestframe3->log();
-TTCN_Logger::log_event_str(" }");
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1:
-TTCN_Logger::log_event_str("{ message_extendedFrame1 := ");
-single_value.field_message__extendedFrame1->log();
-TTCN_Logger::log_event_str(" }");
-break;
-default:
-TTCN_Logger::log_event_str("<invalid selector>");
-}
-break;
-case COMPLEMENTED_LIST:
-TTCN_Logger::log_event_str("complement");
-case VALUE_LIST:
-TTCN_Logger::log_char('(');
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) {
-if (list_count > 0) TTCN_Logger::log_event_str(", ");
-value_list.list_value[list_count].log();
-}
-TTCN_Logger::log_char(')');
-break;
-default:
-log_generic();
-}
-log_ifpresent();
-}
-
-void CANFD__MatrixPayloadUnion_template::log_match(const CANFD__MatrixPayloadUnion& match_value, boolean legacy) const
-{
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){
-TTCN_Logger::print_logmatch_buffer();
-TTCN_Logger::log_event_str(" matched");
-return;
-}
-if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) {
-switch (single_value.union_selection) {
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0:
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-TTCN_Logger::log_logmatch_info(".message_MyTestframe0");
-single_value.field_message__MyTestframe0->log_match(match_value.message__MyTestframe0(), legacy);
-} else {
-TTCN_Logger::log_event_str("{ message_MyTestframe0 := ");
-single_value.field_message__MyTestframe0->log_match(match_value.message__MyTestframe0(), legacy);
-TTCN_Logger::log_event_str(" }");
-}
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1:
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-TTCN_Logger::log_logmatch_info(".message_MyTestframe1");
-single_value.field_message__MyTestframe1->log_match(match_value.message__MyTestframe1(), legacy);
-} else {
-TTCN_Logger::log_event_str("{ message_MyTestframe1 := ");
-single_value.field_message__MyTestframe1->log_match(match_value.message__MyTestframe1(), legacy);
-TTCN_Logger::log_event_str(" }");
-}
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2:
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-TTCN_Logger::log_logmatch_info(".message_MyTestframe2");
-single_value.field_message__MyTestframe2->log_match(match_value.message__MyTestframe2(), legacy);
-} else {
-TTCN_Logger::log_event_str("{ message_MyTestframe2 := ");
-single_value.field_message__MyTestframe2->log_match(match_value.message__MyTestframe2(), legacy);
-TTCN_Logger::log_event_str(" }");
-}
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3:
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-TTCN_Logger::log_logmatch_info(".message_MyTestframe3");
-single_value.field_message__MyTestframe3->log_match(match_value.message__MyTestframe3(), legacy);
-} else {
-TTCN_Logger::log_event_str("{ message_MyTestframe3 := ");
-single_value.field_message__MyTestframe3->log_match(match_value.message__MyTestframe3(), legacy);
-TTCN_Logger::log_event_str(" }");
-}
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1:
-if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-TTCN_Logger::log_logmatch_info(".message_extendedFrame1");
-single_value.field_message__extendedFrame1->log_match(match_value.message__extendedFrame1(), legacy);
-} else {
-TTCN_Logger::log_event_str("{ message_extendedFrame1 := ");
-single_value.field_message__extendedFrame1->log_match(match_value.message__extendedFrame1(), legacy);
-TTCN_Logger::log_event_str(" }");
-}
-break;
-default:
-TTCN_Logger::print_logmatch_buffer();
-TTCN_Logger::log_event_str("<invalid selector>");
-}
-} else {
-TTCN_Logger::print_logmatch_buffer();
-match_value.log();
-TTCN_Logger::log_event_str(" with ");
-log();
-if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
-else TTCN_Logger::log_event_str(" unmatched");
-}
-}
-
-void CANFD__MatrixPayloadUnion_template::encode_text(Text_Buf& text_buf) const
-{
-encode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-text_buf.push_int(single_value.union_selection);
-switch (single_value.union_selection) {
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0:
-single_value.field_message__MyTestframe0->encode_text(text_buf);
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1:
-single_value.field_message__MyTestframe1->encode_text(text_buf);
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2:
-single_value.field_message__MyTestframe2->encode_text(text_buf);
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3:
-single_value.field_message__MyTestframe3->encode_text(text_buf);
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1:
-single_value.field_message__extendedFrame1->encode_text(text_buf);
-break;
-default:
-TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-text_buf.push_int(value_list.n_values);
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].encode_text(text_buf);
-break;
-default:
-TTCN_error("Text encoder: Encoding an uninitialized template of type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-}
-
-void CANFD__MatrixPayloadUnion_template::decode_text(Text_Buf& text_buf)
-{
-clean_up();
-decode_text_base(text_buf);
-switch (template_selection) {
-case SPECIFIC_VALUE:
-{
-single_value.union_selection = CANFD__MatrixPayloadUnion::UNBOUND_VALUE;
-CANFD__MatrixPayloadUnion::union_selection_type new_selection = (CANFD__MatrixPayloadUnion::union_selection_type)text_buf.pull_int().get_val();
-switch (new_selection) {
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0:
-single_value.field_message__MyTestframe0 = new CANFD__MESSAGE__TESTFRAME0__msg__type_template;
-single_value.field_message__MyTestframe0->decode_text(text_buf);
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1:
-single_value.field_message__MyTestframe1 = new CANFD__MESSAGE__TESTFRAME1__msg__type_template;
-single_value.field_message__MyTestframe1->decode_text(text_buf);
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2:
-single_value.field_message__MyTestframe2 = new CANFD__MESSAGE__TESTFRAME2__msg__type_template;
-single_value.field_message__MyTestframe2->decode_text(text_buf);
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3:
-single_value.field_message__MyTestframe3 = new CANFD__MESSAGE__TESTFRAME3__msg__type_template;
-single_value.field_message__MyTestframe3->decode_text(text_buf);
-break;
-case CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1:
-single_value.field_message__extendedFrame1 = new CANFD__MESSAGE__EXTENDEDFRAME1__msg__type_template;
-single_value.field_message__extendedFrame1->decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-single_value.union_selection = new_selection;
-}
-case OMIT_VALUE:
-case ANY_VALUE:
-case ANY_OR_OMIT:
-break;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-value_list.n_values = text_buf.pull_int().get_val();
-value_list.list_value = new CANFD__MatrixPayloadUnion_template[value_list.n_values];
-for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++)
-value_list.list_value[list_count].decode_text(text_buf);
-break;
-default:
-TTCN_error("Text decoder: Unrecognized selector was received in a template of type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-}
-
-boolean CANFD__MatrixPayloadUnion_template::is_present(boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-return !match_omit(legacy);
-}
-
-boolean CANFD__MatrixPayloadUnion_template::match_omit(boolean legacy) const
-{
-if (is_ifpresent) return TRUE;
-switch (template_selection) {
-case OMIT_VALUE:
-case ANY_OR_OMIT:
-return TRUE;
-case VALUE_LIST:
-case COMPLEMENTED_LIST:
-if (legacy) {
-for (unsigned int v_idx=0; v_idx<value_list.n_values; v_idx++)
-if (value_list.list_value[v_idx].match_omit())
-return template_selection==VALUE_LIST;
-return template_selection==COMPLEMENTED_LIST;
-} // else fall through
-default:
-return FALSE;
-}
-return FALSE;
-}
-
-void CANFD__MatrixPayloadUnion_template::set_param(Module_Param& param)
-{
-  if (dynamic_cast<Module_Param_Name*>(param.get_id()) != NULL &&
-      param.get_id()->next_name()) {
-    char* param_field = param.get_id()->get_current_name();
-    if (param_field[0] >= '0' && param_field[0] <= '9') {
-      param.error("Unexpected array index in module parameter, expected a valid field"
-        " name for union template type `@CANFD_matrix_messages.CANFD_MatrixPayloadUnion'");
-    }
-    if (strcmp("message_MyTestframe0", param_field) == 0) {
-      message__MyTestframe0().set_param(param);
-      return;
-    } else if (strcmp("message_MyTestframe1", param_field) == 0) {
-      message__MyTestframe1().set_param(param);
-      return;
-    } else if (strcmp("message_MyTestframe2", param_field) == 0) {
-      message__MyTestframe2().set_param(param);
-      return;
-    } else if (strcmp("message_MyTestframe3", param_field) == 0) {
-      message__MyTestframe3().set_param(param);
-      return;
-    } else if (strcmp("message_extendedFrame1", param_field) == 0) {
-      message__extendedFrame1().set_param(param);
-      return;
-    } else param.error("Field `%s' not found in union template type `@CANFD_matrix_messages.CANFD_MatrixPayloadUnion'", param_field);
-  }
-  param.basic_check(Module_Param::BC_TEMPLATE, "union template");
-  Module_Param_Ptr m_p = &param;
-  switch (m_p->get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template: {
-    CANFD__MatrixPayloadUnion_template new_temp;
-    new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, m_p->get_size());
-    for (size_t p_i=0; p_i<m_p->get_size(); p_i++) {
-      new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i));
-    }
-    *this = new_temp;
-    break; }
-  case Module_Param::MP_Value_List:
-    if (m_p->get_size()==0) break;
-    param.type_error("union template", "@CANFD_matrix_messages.CANFD_MatrixPayloadUnion");
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1);
-    char* last_name = mp_last->get_id()->get_name();
-    if (!strcmp(last_name, "message_MyTestframe0")) {
-      message__MyTestframe0().set_param(*mp_last);
-      break;
-    }
-    if (!strcmp(last_name, "message_MyTestframe1")) {
-      message__MyTestframe1().set_param(*mp_last);
-      break;
-    }
-    if (!strcmp(last_name, "message_MyTestframe2")) {
-      message__MyTestframe2().set_param(*mp_last);
-      break;
-    }
-    if (!strcmp(last_name, "message_MyTestframe3")) {
-      message__MyTestframe3().set_param(*mp_last);
-      break;
-    }
-    if (!strcmp(last_name, "message_extendedFrame1")) {
-      message__extendedFrame1().set_param(*mp_last);
-      break;
-    }
-    mp_last->error("Field %s does not exist in type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.", last_name);
-  } break;
-  default:
-    param.type_error("union template", "@CANFD_matrix_messages.CANFD_MatrixPayloadUnion");
-  }
-  is_ifpresent = param.get_ifpresent();
-}
-
-void CANFD__MatrixPayloadUnion_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const
-{
-if (template_selection==UNINITIALIZED_TEMPLATE) return;
-switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
-case TR_OMIT:
-if (template_selection==OMIT_VALUE) return;
-case TR_VALUE:
-if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break;
-switch (single_value.union_selection) {
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0:
-single_value.field_message__MyTestframe0->check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MatrixPayloadUnion");
-return;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1:
-single_value.field_message__MyTestframe1->check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MatrixPayloadUnion");
-return;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2:
-single_value.field_message__MyTestframe2->check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MatrixPayloadUnion");
-return;
-case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3:
-single_value.field_message__MyTestframe3->check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MatrixPayloadUnion");
-return;
-case CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1:
-single_value.field_message__extendedFrame1->check_restriction(t_res, t_name ? t_name : "@CANFD_matrix_messages.CANFD_MatrixPayloadUnion");
-return;
-default:
-TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @CANFD_matrix_messages.CANFD_MatrixPayloadUnion.");
-}
-case TR_PRESENT:
-if (!match_omit(legacy)) return;
-break;
-default:
-return;
-}
-TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@CANFD_matrix_messages.CANFD_MatrixPayloadUnion");
-}
-
-CANFD__MatrixUnion::CANFD__MatrixUnion()
-{
-}
-
-CANFD__MatrixUnion::CANFD__MatrixUnion(const OCTETSTRING& par_can__id,
-    const BITSTRING& par_can__flags,
-    const CANFD__MatrixPayloadUnion& par_can__pdu)
-  :   field_can__id(par_can__id),
-  field_can__flags(par_can__flags),
-  field_can__pdu(par_can__pdu)
-{
-}
-
-CANFD__MatrixUnion::CANFD__MatrixUnion(const CANFD__MatrixUnion& other_value)
-{
-if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @CANFD_matrix_messages.CANFD_MatrixUnion.");
-if (other_value.can__id().is_bound()) field_can__id = other_value.can__id();
-else field_can__id.clean_up();
-if (other_value.can__flags().is_bound()) field_can__flags = other_value.can__flags();
-else field_can__flags.clean_up();
-if (other_value.can__pdu().is_bound()) field_can__pdu = other_value.can__pdu();
-else field_can__pdu.clean_up();
-}
-
-void CANFD__MatrixUnion::clean_up()
-{
-field_can__id.clean_up();
-field_can__flags.clean_up();
-field_can__pdu.clean_up();
-}
-
-const TTCN_Typedescriptor_t* CANFD__MatrixUnion::get_descriptor() const { return &CANFD__MatrixUnion_descr_; }
-CANFD__MatrixUnion& CANFD__MatrixUnion::operator=(const CANFD__MatrixUnion& other_value)
-{
-if (this != &other_value) {
-  if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @CANFD_matrix_messages.CANFD_MatrixUnion.");
-  if (other_value.can__id().is_bound()) field_can__id = other_value.can__id();
-  else field_can__id.clean_up();
-  if (other_value.can__flags().is_bound()) field_can__flags = other_value.can__flags();
-  else field_can__flags.clean_up();
-  if (other_value.can__pdu().is_bound()) field_can__pdu = other_value.can__pdu();
-  else field_can__pdu.clean_up();
-}
-return *this;
-}
-
-boolean CANFD__MatrixUnion::operator==(const CANFD__MatrixUnion& other_value) const
-{
-return field_can__id==other_value.field_can__id
-  && field_can__flags==other_value.field_can__flags
-  && field_can__pdu==other_value.field_can__pdu;
-}
-
-boolean CANFD__MatrixUnion::is_bound() const
-{
-return (field_can__id.is_bound())
-  || (field_can__flags.is_bound())
-  || (field_can__pdu.is_bound());
-}
-boolean CANFD__MatrixUnion::is_value() const
-{
-return field_can__id.is_value()
-  && field_can__flags.is_value()
-  && field_can__pdu.is_value();
-}
-void CANFD__MatrixUnion::log() const
-{
-if (!is_bound()) {
-TTCN_Logger::log_event_unbound();
-return;
-}
-TTCN_Logger::log_event_str("{ can_id := ");
-field_can__id.log();
-TTCN_Logger::log_event_str(", can_flags := ");
-field_can__flags.log();
-TTCN_Logger::log_event_str(", can_pdu := ");
-field_can__pdu.log();
-TTCN_Logger::log_event_str(" }");
-}
-
-void CANFD__MatrixUnion::set_param(Module_Param& param)
-{
-  param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
-  case Module_Param::MP_Value_List:
-    if (3<param.get_size()) {
-      param.error("record value of type @CANFD_matrix_messages.CANFD_MatrixUnion has 3 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) can__id().set_param(*param.get_elem(0));
-    if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) can__flags().set_param(*param.get_elem(1));
-    if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) can__pdu().set_param(*param.get_elem(2));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), FALSE);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "can_id")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          can__id().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "can_flags")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          can__flags().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "can_pdu")) {
-        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {
-          can__pdu().set_param(*curr_param);
-        }
-        value_used[val_idx]=TRUE;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      curr_param->error("Non existent field name in type @CANFD_matrix_messages.CANFD_MatrixUnion: %s", curr_param->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record value", "@CANFD_matrix_messages.CANFD_MatrixUnion");
-  }
-}
-
-void CANFD__MatrixUnion::set_implicit_omit()
-{
-if (can__id().is_bound()) can__id().set_implicit_omit();
-if (can__flags().is_bound()) can__flags().set_implicit_omit();
-if (can__pdu().is_bound()) can__pdu().set_implicit_omit();
-}
-
-void CANFD__MatrixUnion::encode_text(Text_Buf& text_buf) const
-{
-field_can__id.encode_text(text_buf);
-field_can__flags.encode_text(text_buf);
-field_can__pdu.encode_text(text_buf);
-}
-
-void CANFD__MatrixUnion::decode_text(Text_Buf& text_buf)
-{
-field_can__id.decode_text(text_buf);
-field_can__flags.decode_text(text_buf);
-field_can__pdu.decode_text(text_buf);
-}
-
-void CANFD__MatrixUnion::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-encoding type '%s': ", p_td.name);
-    unsigned BER_coding=va_arg(pvar, unsigned);
-    BER_encode_chk_coding(BER_coding);
-    ASN_BER_TLV_t *tlv=BER_encode_TLV(p_td, BER_coding);
-    tlv->put_in_buffer(p_buf);
-    ASN_BER_TLV_t::destruct(tlv);
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-encoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    RAW_enc_tr_pos rp;
-    rp.level=0;
-    rp.pos=NULL;
-    RAW_enc_tree root(FALSE, NULL, &rp, 1, p_td.raw);
-    RAW_encode(p_td, root);
-    root.put_to_buf(p_buf);
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    TTCN_EncDec_ErrorContext ec("While TEXT-encoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-      ("No TEXT descriptor available for type '%s'.", p_td.name);
-    TEXT_encode(p_td,p_buf);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-encoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XER_encode(*(p_td.xer),p_buf, XER_coding, 0, 0, 0);
-    p_buf.put_c('\n');
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-encoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok(va_arg(pvar, int) != 0);
-    JSON_encode(p_td, tok);
-    p_buf.put_s(tok.get_buffer_length(), (const unsigned char*)tok.get_buffer());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-encoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-    OER_encode(p_td, p_buf);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to encode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-void CANFD__MatrixUnion::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
-{
-  va_list pvar;
-  va_start(pvar, p_coding);
-  switch(p_coding) {
-  case TTCN_EncDec::CT_BER: {
-    TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
-    unsigned L_form=va_arg(pvar, unsigned);
-    ASN_BER_TLV_t tlv;
-    BER_decode_str2TLV(p_buf, tlv, L_form);
-    BER_decode_TLV(p_td, tlv, L_form);
-    if(tlv.isComplete) p_buf.increase_pos(tlv.get_len());
-    break;}
-  case TTCN_EncDec::CT_RAW: {
-    TTCN_EncDec_ErrorContext ec("While RAW-decoding type '%s': ", p_td.name);
-    if(!p_td.raw)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No RAW descriptor available for type '%s'.", p_td.name);
-    raw_order_t r_order;
-    switch(p_td.raw->top_bit_order) {
-    case TOP_BIT_LEFT:
-      r_order=ORDER_LSB;
-      break;
-    case TOP_BIT_RIGHT:
-    default:
-      r_order=ORDER_MSB;
-    }
-    int rawr = RAW_decode(p_td, p_buf, p_buf.get_len()*8, r_order);
-    if(rawr<0) switch (-rawr) {
-    case TTCN_EncDec::ET_INCOMPL_MSG:
-    case TTCN_EncDec::ET_LEN_ERR:
-      ec.error((TTCN_EncDec::error_type_t)-rawr, "Can not decode type '%s', because incomplete message was received", p_td.name);
-      break;
-    case 1:
-    default:
-      ec.error(TTCN_EncDec::ET_INVAL_MSG, "Can not decode type '%s', because invalid message was received", p_td.name);
-      break;
-    }
-    break;}
-  case TTCN_EncDec::CT_TEXT: {
-    Limit_Token_List limit;
-    TTCN_EncDec_ErrorContext ec("While TEXT-decoding type '%s': ", p_td.name);
-    if(!p_td.text)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No TEXT descriptor available for type '%s'.", p_td.name);
-    const unsigned char *b_data=p_buf.get_data();
-    if(b_data[p_buf.get_len()-1]!='\0'){
-      p_buf.set_pos(p_buf.get_len());
-      p_buf.put_zero(8,ORDER_LSB);
-      p_buf.rewind();
-    }
-    if(TEXT_decode(p_td,p_buf,limit)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    break;}
-  case TTCN_EncDec::CT_XER: {
-    TTCN_EncDec_ErrorContext ec("While XER-decoding type '%s': ", p_td.name);
-    unsigned XER_coding=va_arg(pvar, unsigned);
-    XER_encode_chk_coding(XER_coding, p_td);
-    XmlReaderWrap reader(p_buf);
-    for (int rd_ok=reader.Read(); rd_ok==1; rd_ok=reader.Read()) {
-      if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break;
-    }
-    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, XER_NONE, 0);
-    size_t bytes = reader.ByteConsumed();
-    p_buf.set_pos(bytes);
-    break;}
-  case TTCN_EncDec::CT_JSON: {
-    TTCN_EncDec_ErrorContext ec("While JSON-decoding type '%s': ", p_td.name);
-    if(!p_td.json)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No JSON descriptor available for type '%s'.", p_td.name);
-    JSON_Tokenizer tok((const char*)p_buf.get_data(), p_buf.get_len());
-    if(JSON_decode(p_td, tok, FALSE)<0)
-      ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name);
-    p_buf.set_pos(tok.get_buf_pos());
-    break;}
-  case TTCN_EncDec::CT_OER: {
-    TTCN_EncDec_ErrorContext ec("While OER-decoding type '%s': ", p_td.name);
-    if(!p_td.oer)
-      TTCN_EncDec_ErrorContext::error_internal
-        ("No OER descriptor available for type '%s'.", p_td.name);
-     OER_struct p_oer;
-    OER_decode(p_td, p_buf, p_oer);
-    break;}
-  default:
-    TTCN_error("Unknown coding method requested to decode type '%s'", p_td.name);
-  }
-  va_end(pvar);
-}
-
-int CANFD__MatrixUnion::RAW_decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int limit, raw_order_t top_bit_ord, boolean no_err, int, boolean, const RAW_Force_Omit* force_omit)
-{ (void)no_err;
-  int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding);
-  limit-=prepaddlength;
-  size_t last_decoded_pos = p_buf.get_pos_bit();
-  int decoded_length = 0;
-  int decoded_field_length = 0;
-  raw_order_t local_top_order;
-  int selected_field = -1;
-  if(p_td.raw->top_bit_order==TOP_BIT_INHERITED)local_top_order=top_bit_ord;
-  else if(p_td.raw->top_bit_order==TOP_BIT_RIGHT)local_top_order=ORDER_MSB;
-  else local_top_order=ORDER_LSB;
-  RAW_Force_Omit field_0_force_omit(0, force_omit, Can::CAN__id_descr_.raw->forceomit);
-  decoded_field_length = field_can__id.RAW_decode(Can::CAN__id_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_0_force_omit);
-  if (decoded_field_length < 0) return decoded_field_length;
-  decoded_length+=decoded_field_length;
-  limit-=decoded_field_length;
-  last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
-  RAW_Force_Omit field_1_force_omit(1, force_omit, Can::CAN__flags_descr_.raw->forceomit);
-  decoded_field_length = field_can__flags.RAW_decode(Can::CAN__flags_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_1_force_omit);
-  if (decoded_field_length < 0) return decoded_field_length;
-  decoded_length+=decoded_field_length;
-  limit-=decoded_field_length;
-  last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
-  if (field_can__id ==  os_0) selected_field = 0;
-  else if (field_can__id ==  os_1) selected_field = 1;
-  else if (field_can__id ==  os_2) selected_field = 2;
-  else if (field_can__id ==  os_3) selected_field = 3;
-  else if (field_can__id ==  os_4) selected_field = 4;
-  else selected_field = -1;
-  RAW_Force_Omit field_2_force_omit(2, force_omit, CANFD__MatrixUnion_can__pdu_descr_.raw->forceomit);
-  decoded_field_length = field_can__pdu.RAW_decode(CANFD__MatrixUnion_can__pdu_descr_, p_buf, limit, local_top_order, no_err, selected_field, TRUE, &field_2_force_omit);
-  if (decoded_field_length < 0) return decoded_field_length;
-  decoded_length+=decoded_field_length;
-  limit-=decoded_field_length;
-  last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit());
-  p_buf.set_pos_bit(last_decoded_pos);
-  return decoded_length+prepaddlength+p_buf.increase_pos_padd(p_td.raw->padding);
-}
-
-int CANFD__MatrixUnion::RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree& myleaf) const {
-  if (!is_bound()) TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND, "Encoding an unbound value.");
-  int encoded_length = 0;
-  myleaf.isleaf = FALSE;
-  myleaf.body.node.num_of_nodes = 3;
-  myleaf.body.node.nodes = init_nodes_of_enc_tree(3);
-  myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, Can::CAN__id_descr_.raw);
-  myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, Can::CAN__flags_descr_.raw);
-  myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 2, CANFD__MatrixUnion_can__pdu_descr_.raw);
-  encoded_length += field_can__id.RAW_encode(Can::CAN__id_descr_, *myleaf.body.node.nodes[0]);
-  encoded_length += field_can__flags.RAW_encode(Can::CAN__flags_descr_, *myleaf.body.node.nodes[1]);
-  encoded_length += field_can__pdu.RAW_encode(CANFD__MatrixUnion_can__pdu_descr_, *myleaf.body.node.nodes[2]);
-  switch (field_can__pdu.get_selection()) {
-  case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe0:
-  if (field_can__id !=  os_0) {
-  RAW_enc_tr_pos pr_pos;
-  pr_pos.level = myleaf.curr_pos.level + 1;
-  int new_pos[] = { 0 };
-  pr_pos.pos = init_new_tree_pos(myleaf.curr_pos, 1, new_pos);
-  RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos);
-  if (temp_leaf != NULL)
-     os_0.RAW_encode(Can::CAN__id_descr_,*temp_leaf);
-  else
-    TTCN_EncDec_ErrorContext::error
-      (TTCN_EncDec::ET_OMITTED_TAG, "Encoding a tagged, but omitted value.");
-  free_tree_pos(pr_pos.pos);
-  }
-  break;
-  case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe1:
-  if (field_can__id !=  os_1) {
-  RAW_enc_tr_pos pr_pos;
-  pr_pos.level = myleaf.curr_pos.level + 1;
-  int new_pos[] = { 0 };
-  pr_pos.pos = init_new_tree_pos(myleaf.curr_pos, 1, new_pos);
-  RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos);
-  if (temp_leaf != NULL)
-     os_1.RAW_encode(Can::CAN__id_descr_,*temp_leaf);
-  else
-    TTCN_EncDec_ErrorContext::error
-      (TTCN_EncDec::ET_OMITTED_TAG, "Encoding a tagged, but omitted value.");
-  free_tree_pos(pr_pos.pos);
-  }
-  break;
-  case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe2:
-  if (field_can__id !=  os_2) {
-  RAW_enc_tr_pos pr_pos;
-  pr_pos.level = myleaf.curr_pos.level + 1;
-  int new_pos[] = { 0 };
-  pr_pos.pos = init_new_tree_pos(myleaf.curr_pos, 1, new_pos);
-  RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos);
-  if (temp_leaf != NULL)
-     os_2.RAW_encode(Can::CAN__id_descr_,*temp_leaf);
-  else
-    TTCN_EncDec_ErrorContext::error
-      (TTCN_EncDec::ET_OMITTED_TAG, "Encoding a tagged, but omitted value.");
-  free_tree_pos(pr_pos.pos);
-  }
-  break;
-  case CANFD__MatrixPayloadUnion::ALT_message__MyTestframe3:
-  if (field_can__id !=  os_3) {
-  RAW_enc_tr_pos pr_pos;
-  pr_pos.level = myleaf.curr_pos.level + 1;
-  int new_pos[] = { 0 };
-  pr_pos.pos = init_new_tree_pos(myleaf.curr_pos, 1, new_pos);
-  RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos);
-  if (temp_leaf != NULL)
-     os_3.RAW_encode(Can::CAN__id_descr_,*temp_leaf);
-  else
-    TTCN_EncDec_ErrorContext::error
-      (TTCN_EncDec::ET_OMITTED_TAG, "Encoding a tagged, but omitted value.");
-  free_tree_pos(pr_pos.pos);
-  }
-  break;
-  case CANFD__MatrixPayloadUnion::ALT_message__extendedFrame1:
-  if (field_can__id !=  os_4) {
-  RAW_enc_tr_pos pr_pos;
-  pr_pos.level = myleaf.curr_pos.level + 1;
-  int new_pos[] = { 0 };
-  pr_pos.pos = init_new_tree_pos(myleaf.curr_pos, 1, new_pos);
-  RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos);
-  if (temp_leaf != NULL)
-     os_4.RAW_encode(Can::CAN__id_descr_,*temp_leaf);
-  else
-    TTCN_EncDec_ErrorContext::error
-      (TTCN_EncDec::ET_OMITTED_TAG, "Encoding a tagged, but omitted value.");
-  free_tree_pos(pr_pos.pos);
-  }
-  break;
-  default:;
-  }
-  return myleaf.length = encoded_length;
-}
-
-struct CANFD__MatrixUnion_template::single_value_struct {
-OCTETSTRING_template field_can__id;
-BITSTRING_template field_can__flags;
-CANFD__MatrixPayloadUnion_template field_can__pdu;
-};
-
-void CANFD__MatrixUnion_template::set_specific()
-{
-if (template_selection != SPECIFIC_VALUE) {
-template_sel old_selection = template_selection;
-clean_up();
-single_value = new single_value_struct;
-set_selection(SPECIFIC_VALUE);
-if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
-single_value->field_can__id = ANY_VALUE;
-single_value->field_can__flags = ANY_VALUE;
-single_value->field_can__pdu = ANY_VALUE;
-}
-}
-}
-
-void CANFD__MatrixUnion_template::copy_value(const CANFD__MatrixUnion& other_value)
-{
-single_value =