// This C++ source file was generated by the TTCN-3 compiler // of the TTCN-3 Test Executor version CRL 113 200/6 R5A // The generation of user and time information were disabled by the -D flag. // Copyright (c) 2000-2018 Ericsson Telecom AB // Do not edit this file unless you know what you are doing. /* Including header files */ #include "PCUIF_Types.hh" namespace PCUIF__Types { /* Prototypes of static functions */ static void pre_init_module(); static void post_init_module(); /* Literal string constants */ static const unsigned char bs_1_bits[] = { 0 }, bs_3_bits[] = { 0 }, bs_0_bits[] = { 0, 0 }, bs_2_bits[] = { 128 }; static const BITSTRING bs_1(3, bs_1_bits), bs_3(8, bs_3_bits), bs_0(14, bs_0_bits), bs_2(8, bs_2_bits); static const unsigned char os_2_octets[] = { 0 }, os_0_octets[] = { 0, 0 }, os_1_octets[] = { 0, 0, 0 }, os_4_octets[] = { 0, 0, 0, 0 }, os_3_octets[] = { 7 }; static const OCTETSTRING os_2(1, os_2_octets), os_0(2, os_0_octets), os_1(3, os_1_octets), os_4(4, os_4_octets), os_3(1, os_3_octets); static const CHARSTRING cs_0(12, "/tmp/pcu_bts"); static const unsigned char module_checksum[] = { 0x14, 0x83, 0x83, 0x91, 0xca, 0x91, 0x4c, 0x23, 0x88, 0x82, 0xad, 0xfd, 0x2d, 0xa6, 0x37, 0x42 }; /* Global variable definitions */ static CHARSTRING const_PCU__SOCK__DEFAULT; const CHARSTRING& PCU__SOCK__DEFAULT = const_PCU__SOCK__DEFAULT; static INTEGER const_PCU__IF__VERSION; const INTEGER& PCU__IF__VERSION = const_PCU__IF__VERSION; const TTCN_RAWdescriptor_t PCUIF__MsgType_raw_ = {8,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}; // No XER for PCUIF__MsgType const TTCN_Typedescriptor_t PCUIF__MsgType_descr_ = { "@PCUIF_Types.PCUIF_MsgType", NULL, &PCUIF__MsgType_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__MsgType_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Sapi_raw_ = {8,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}; // No XER for PCUIF__Sapi const TTCN_Typedescriptor_t PCUIF__Sapi_descr_ = { "@PCUIF_Types.PCUIF_Sapi", NULL, &PCUIF__Sapi_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Sapi_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_bts__active_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_bts__active_xer_ = { {"bts_active>\n", "bts_active>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_bts__active_oer_ext_arr_[0] = {}; const int PCUIF__Flags_bts__active_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_bts__active_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_bts__active_oer_ext_arr_, 0, PCUIF__Flags_bts__active_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_bts__active_descr_ = { "@PCUIF_Types.PCUIF_Flags.bts_active", &BOOLEAN_ber_, &PCUIF__Flags_bts__active_raw_, &BOOLEAN_text_, &PCUIF__Flags_bts__active_xer_, &BOOLEAN_json_, &PCUIF__Flags_bts__active_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_bts__active_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_sysmo__direct__dsp_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_sysmo__direct__dsp_xer_ = { {"sysmo_direct_dsp>\n", "sysmo_direct_dsp>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_sysmo__direct__dsp_oer_ext_arr_[0] = {}; const int PCUIF__Flags_sysmo__direct__dsp_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_sysmo__direct__dsp_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_sysmo__direct__dsp_oer_ext_arr_, 0, PCUIF__Flags_sysmo__direct__dsp_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_sysmo__direct__dsp_descr_ = { "@PCUIF_Types.PCUIF_Flags.sysmo_direct_dsp", &BOOLEAN_ber_, &PCUIF__Flags_sysmo__direct__dsp_raw_, &BOOLEAN_text_, &PCUIF__Flags_sysmo__direct__dsp_xer_, &BOOLEAN_json_, &PCUIF__Flags_sysmo__direct__dsp_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_sysmo__direct__dsp_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_spare_raw_ = {14,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,14,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__Flags_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_Typedescriptor_t PCUIF__Flags_spare_descr_ = { "@PCUIF_Types.PCUIF_Flags.spare", &BITSTRING_ber_, &PCUIF__Flags_spare_raw_, NULL, &PCUIF__Flags_spare_xer_, &BITSTRING_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_spare_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_cs1_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_cs1_xer_ = { {"cs1>\n", "cs1>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_cs1_oer_ext_arr_[0] = {}; const int PCUIF__Flags_cs1_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_cs1_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_cs1_oer_ext_arr_, 0, PCUIF__Flags_cs1_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_cs1_descr_ = { "@PCUIF_Types.PCUIF_Flags.cs1", &BOOLEAN_ber_, &PCUIF__Flags_cs1_raw_, &BOOLEAN_text_, &PCUIF__Flags_cs1_xer_, &BOOLEAN_json_, &PCUIF__Flags_cs1_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_cs1_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_cs2_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_cs2_xer_ = { {"cs2>\n", "cs2>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_cs2_oer_ext_arr_[0] = {}; const int PCUIF__Flags_cs2_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_cs2_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_cs2_oer_ext_arr_, 0, PCUIF__Flags_cs2_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_cs2_descr_ = { "@PCUIF_Types.PCUIF_Flags.cs2", &BOOLEAN_ber_, &PCUIF__Flags_cs2_raw_, &BOOLEAN_text_, &PCUIF__Flags_cs2_xer_, &BOOLEAN_json_, &PCUIF__Flags_cs2_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_cs2_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_cs3_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_cs3_xer_ = { {"cs3>\n", "cs3>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_cs3_oer_ext_arr_[0] = {}; const int PCUIF__Flags_cs3_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_cs3_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_cs3_oer_ext_arr_, 0, PCUIF__Flags_cs3_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_cs3_descr_ = { "@PCUIF_Types.PCUIF_Flags.cs3", &BOOLEAN_ber_, &PCUIF__Flags_cs3_raw_, &BOOLEAN_text_, &PCUIF__Flags_cs3_xer_, &BOOLEAN_json_, &PCUIF__Flags_cs3_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_cs3_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_cs4_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_cs4_xer_ = { {"cs4>\n", "cs4>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_cs4_oer_ext_arr_[0] = {}; const int PCUIF__Flags_cs4_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_cs4_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_cs4_oer_ext_arr_, 0, PCUIF__Flags_cs4_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_cs4_descr_ = { "@PCUIF_Types.PCUIF_Flags.cs4", &BOOLEAN_ber_, &PCUIF__Flags_cs4_raw_, &BOOLEAN_text_, &PCUIF__Flags_cs4_xer_, &BOOLEAN_json_, &PCUIF__Flags_cs4_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_cs4_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_mcs1_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_mcs1_xer_ = { {"mcs1>\n", "mcs1>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_mcs1_oer_ext_arr_[0] = {}; const int PCUIF__Flags_mcs1_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_mcs1_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_mcs1_oer_ext_arr_, 0, PCUIF__Flags_mcs1_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_mcs1_descr_ = { "@PCUIF_Types.PCUIF_Flags.mcs1", &BOOLEAN_ber_, &PCUIF__Flags_mcs1_raw_, &BOOLEAN_text_, &PCUIF__Flags_mcs1_xer_, &BOOLEAN_json_, &PCUIF__Flags_mcs1_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_mcs1_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_mcs2_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_mcs2_xer_ = { {"mcs2>\n", "mcs2>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_mcs2_oer_ext_arr_[0] = {}; const int PCUIF__Flags_mcs2_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_mcs2_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_mcs2_oer_ext_arr_, 0, PCUIF__Flags_mcs2_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_mcs2_descr_ = { "@PCUIF_Types.PCUIF_Flags.mcs2", &BOOLEAN_ber_, &PCUIF__Flags_mcs2_raw_, &BOOLEAN_text_, &PCUIF__Flags_mcs2_xer_, &BOOLEAN_json_, &PCUIF__Flags_mcs2_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_mcs2_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_mcs3_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_mcs3_xer_ = { {"mcs3>\n", "mcs3>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_mcs3_oer_ext_arr_[0] = {}; const int PCUIF__Flags_mcs3_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_mcs3_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_mcs3_oer_ext_arr_, 0, PCUIF__Flags_mcs3_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_mcs3_descr_ = { "@PCUIF_Types.PCUIF_Flags.mcs3", &BOOLEAN_ber_, &PCUIF__Flags_mcs3_raw_, &BOOLEAN_text_, &PCUIF__Flags_mcs3_xer_, &BOOLEAN_json_, &PCUIF__Flags_mcs3_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_mcs3_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_mcs4_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_mcs4_xer_ = { {"mcs4>\n", "mcs4>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_mcs4_oer_ext_arr_[0] = {}; const int PCUIF__Flags_mcs4_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_mcs4_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_mcs4_oer_ext_arr_, 0, PCUIF__Flags_mcs4_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_mcs4_descr_ = { "@PCUIF_Types.PCUIF_Flags.mcs4", &BOOLEAN_ber_, &PCUIF__Flags_mcs4_raw_, &BOOLEAN_text_, &PCUIF__Flags_mcs4_xer_, &BOOLEAN_json_, &PCUIF__Flags_mcs4_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_mcs4_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_mcs5_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_mcs5_xer_ = { {"mcs5>\n", "mcs5>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_mcs5_oer_ext_arr_[0] = {}; const int PCUIF__Flags_mcs5_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_mcs5_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_mcs5_oer_ext_arr_, 0, PCUIF__Flags_mcs5_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_mcs5_descr_ = { "@PCUIF_Types.PCUIF_Flags.mcs5", &BOOLEAN_ber_, &PCUIF__Flags_mcs5_raw_, &BOOLEAN_text_, &PCUIF__Flags_mcs5_xer_, &BOOLEAN_json_, &PCUIF__Flags_mcs5_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_mcs5_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_mcs6_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_mcs6_xer_ = { {"mcs6>\n", "mcs6>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_mcs6_oer_ext_arr_[0] = {}; const int PCUIF__Flags_mcs6_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_mcs6_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_mcs6_oer_ext_arr_, 0, PCUIF__Flags_mcs6_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_mcs6_descr_ = { "@PCUIF_Types.PCUIF_Flags.mcs6", &BOOLEAN_ber_, &PCUIF__Flags_mcs6_raw_, &BOOLEAN_text_, &PCUIF__Flags_mcs6_xer_, &BOOLEAN_json_, &PCUIF__Flags_mcs6_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_mcs6_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_mcs7_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_mcs7_xer_ = { {"mcs7>\n", "mcs7>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_mcs7_oer_ext_arr_[0] = {}; const int PCUIF__Flags_mcs7_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_mcs7_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_mcs7_oer_ext_arr_, 0, PCUIF__Flags_mcs7_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_mcs7_descr_ = { "@PCUIF_Types.PCUIF_Flags.mcs7", &BOOLEAN_ber_, &PCUIF__Flags_mcs7_raw_, &BOOLEAN_text_, &PCUIF__Flags_mcs7_xer_, &BOOLEAN_json_, &PCUIF__Flags_mcs7_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_mcs7_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_mcs8_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_mcs8_xer_ = { {"mcs8>\n", "mcs8>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_mcs8_oer_ext_arr_[0] = {}; const int PCUIF__Flags_mcs8_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_mcs8_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_mcs8_oer_ext_arr_, 0, PCUIF__Flags_mcs8_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_mcs8_descr_ = { "@PCUIF_Types.PCUIF_Flags.mcs8", &BOOLEAN_ber_, &PCUIF__Flags_mcs8_raw_, &BOOLEAN_text_, &PCUIF__Flags_mcs8_xer_, &BOOLEAN_json_, &PCUIF__Flags_mcs8_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_mcs8_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_mcs9_raw_ = {1,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}; const XERdescriptor_t PCUIF__Flags_mcs9_xer_ = { {"mcs9>\n", "mcs9>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Flags_mcs9_oer_ext_arr_[0] = {}; const int PCUIF__Flags_mcs9_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Flags_mcs9_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Flags_mcs9_oer_ext_arr_, 0, PCUIF__Flags_mcs9_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Flags_mcs9_descr_ = { "@PCUIF_Types.PCUIF_Flags.mcs9", &BOOLEAN_ber_, &PCUIF__Flags_mcs9_raw_, &BOOLEAN_text_, &PCUIF__Flags_mcs9_xer_, &BOOLEAN_json_, &PCUIF__Flags_mcs9_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_mcs9_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_spare2_raw_ = {3,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,3,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__Flags_spare2_xer_ = { {"spare2>\n", "spare2>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_Typedescriptor_t PCUIF__Flags_spare2_descr_ = { "@PCUIF_Types.PCUIF_Flags.spare2", &BITSTRING_ber_, &PCUIF__Flags_spare2_raw_, NULL, &PCUIF__Flags_spare2_xer_, &BITSTRING_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_spare2_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Flags_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}; // No XER for PCUIF__Flags const TTCN_Typedescriptor_t PCUIF__Flags_descr_ = { "@PCUIF_Types.PCUIF_Flags", NULL, &PCUIF__Flags_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Flags_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__TextType_raw_ = {8,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}; // No XER for PCUIF__TextType const TTCN_Typedescriptor_t PCUIF__TextType_descr_ = { "@PCUIF_Types.PCUIF_TextType", NULL, &PCUIF__TextType_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__TextType_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Text_raw_ = {1024,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,128,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__Text_xer_ = { {"PCUIF_Text>\n", "PCUIF_Text>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_Typedescriptor_t PCUIF__Text_descr_ = { "@PCUIF_Types.PCUIF_Text", NULL, &PCUIF__Text_raw_, &CHARSTRING_text_, &PCUIF__Text_xer_, &CHARSTRING_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Text_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__txt__ind_txt__type_raw_ = {8,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}; // No XER for PCUIF__txt__ind_txt__type const TTCN_Typedescriptor_t PCUIF__txt__ind_txt__type_descr_ = { "@PCUIF_Types.PCUIF_txt_ind.txt_type", NULL, &PCUIF__txt__ind_txt__type_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__txt__ind_txt__type_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__txt__ind_text_raw_ = {1024,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,128,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__txt__ind_text_xer_ = { {"text>\n", "text>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_Typedescriptor_t PCUIF__txt__ind_text_descr_ = { "@PCUIF_Types.PCUIF_txt_ind.text", NULL, &PCUIF__txt__ind_text_raw_, &CHARSTRING_text_, &PCUIF__txt__ind_text_xer_, &CHARSTRING_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__txt__ind_text_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__txt__ind_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}; // No XER for PCUIF__txt__ind const TTCN_Typedescriptor_t PCUIF__txt__ind_descr_ = { "@PCUIF_Types.PCUIF_txt_ind", NULL, &PCUIF__txt__ind_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__txt__ind_default_coding("RAW"); const TTCN_RAWdescriptor_t OCT162_raw_ = {1296,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,162,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t OCT162_xer_ = { {"OCT162>\n", "OCT162>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int OCT162_oer_ext_arr_[0] = {}; const int OCT162_oer_p_[0] = {}; const TTCN_OERdescriptor_t OCT162_oer_ = { -1, TRUE, -1, FALSE, 0, 0, OCT162_oer_ext_arr_, 0, OCT162_oer_p_}; const TTCN_Typedescriptor_t OCT162_descr_ = { "@PCUIF_Types.OCT162", &OCTETSTRING_ber_, &OCT162_raw_, &OCTETSTRING_text_, &OCT162_xer_, &OCTETSTRING_json_, &OCT162_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING OCT162_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data_sapi_raw_ = {8,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}; // No XER for PCUIF__data_sapi const TTCN_Typedescriptor_t PCUIF__data_sapi_descr_ = { "@PCUIF_Types.PCUIF_data.sapi", NULL, &PCUIF__data_sapi_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data_sapi_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data_len_raw_ = {8,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}; const XERdescriptor_t PCUIF__data_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data_len_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data_len_descr_ = { "@PCUIF_Types.PCUIF_data.len", &INTEGER_ber_, &PCUIF__data_len_raw_, &INTEGER_text_, &PCUIF__data_len_xer_, &INTEGER_json_, &PCUIF__data_len_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data_len_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data_data_raw_ = {1296,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,162,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__data_data_xer_ = { {"data>\n", "data>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__data_data_oer_ext_arr_[0] = {}; const int PCUIF__data_data_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__data_data_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__data_data_oer_ext_arr_, 0, PCUIF__data_data_oer_p_}; const TTCN_Typedescriptor_t PCUIF__data_data_descr_ = { "@PCUIF_Types.PCUIF_data.data", &OCTETSTRING_ber_, &PCUIF__data_data_raw_, &OCTETSTRING_text_, &PCUIF__data_data_xer_, &OCTETSTRING_json_, &PCUIF__data_data_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data_data_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data_fn_raw_ = {32,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}; const XERdescriptor_t PCUIF__data_fn_xer_ = { {"fn>\n", "fn>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data_fn_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data_fn_descr_ = { "@PCUIF_Types.PCUIF_data.fn", &INTEGER_ber_, &PCUIF__data_fn_raw_, &INTEGER_text_, &PCUIF__data_fn_xer_, &INTEGER_json_, &PCUIF__data_fn_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data_fn_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data_arfcn_raw_ = {16,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}; const XERdescriptor_t PCUIF__data_arfcn_xer_ = { {"arfcn>\n", "arfcn>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data_arfcn_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data_arfcn_descr_ = { "@PCUIF_Types.PCUIF_data.arfcn", &INTEGER_ber_, &PCUIF__data_arfcn_raw_, &INTEGER_text_, &PCUIF__data_arfcn_xer_, &INTEGER_json_, &PCUIF__data_arfcn_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data_arfcn_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data_trx__nr_raw_ = {8,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}; const XERdescriptor_t PCUIF__data_trx__nr_xer_ = { {"trx_nr>\n", "trx_nr>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data_trx__nr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data_trx__nr_descr_ = { "@PCUIF_Types.PCUIF_data.trx_nr", &INTEGER_ber_, &PCUIF__data_trx__nr_raw_, &INTEGER_text_, &PCUIF__data_trx__nr_xer_, &INTEGER_json_, &PCUIF__data_trx__nr_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data_trx__nr_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data_ts__nr_raw_ = {8,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}; const XERdescriptor_t PCUIF__data_ts__nr_xer_ = { {"ts_nr>\n", "ts_nr>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data_ts__nr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data_ts__nr_descr_ = { "@PCUIF_Types.PCUIF_data.ts_nr", &INTEGER_ber_, &PCUIF__data_ts__nr_raw_, &INTEGER_text_, &PCUIF__data_ts__nr_xer_, &INTEGER_json_, &PCUIF__data_ts__nr_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data_ts__nr_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data_block__nr_raw_ = {8,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}; const XERdescriptor_t PCUIF__data_block__nr_xer_ = { {"block_nr>\n", "block_nr>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data_block__nr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data_block__nr_descr_ = { "@PCUIF_Types.PCUIF_data.block_nr", &INTEGER_ber_, &PCUIF__data_block__nr_raw_, &INTEGER_text_, &PCUIF__data_block__nr_xer_, &INTEGER_json_, &PCUIF__data_block__nr_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data_block__nr_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data_rssi_raw_ = {8,SG_SG_BIT,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}; const XERdescriptor_t PCUIF__data_rssi_xer_ = { {"rssi>\n", "rssi>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data_rssi_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data_rssi_descr_ = { "@PCUIF_Types.PCUIF_data.rssi", &INTEGER_ber_, &PCUIF__data_rssi_raw_, &INTEGER_text_, &PCUIF__data_rssi_xer_, &INTEGER_json_, &PCUIF__data_rssi_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data_rssi_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data_ber10k_raw_ = {16,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}; const XERdescriptor_t PCUIF__data_ber10k_xer_ = { {"ber10k>\n", "ber10k>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data_ber10k_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data_ber10k_descr_ = { "@PCUIF_Types.PCUIF_data.ber10k", &INTEGER_ber_, &PCUIF__data_ber10k_raw_, &INTEGER_text_, &PCUIF__data_ber10k_xer_, &INTEGER_json_, &PCUIF__data_ber10k_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data_ber10k_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data_ta__offs__qbits_raw_ = {16,SG_SG_BIT,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}; const XERdescriptor_t PCUIF__data_ta__offs__qbits_xer_ = { {"ta_offs_qbits>\n", "ta_offs_qbits>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data_ta__offs__qbits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data_ta__offs__qbits_descr_ = { "@PCUIF_Types.PCUIF_data.ta_offs_qbits", &INTEGER_ber_, &PCUIF__data_ta__offs__qbits_raw_, &INTEGER_text_, &PCUIF__data_ta__offs__qbits_xer_, &INTEGER_json_, &PCUIF__data_ta__offs__qbits_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data_ta__offs__qbits_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data_lqual__cb_raw_ = {16,SG_SG_BIT,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}; const XERdescriptor_t PCUIF__data_lqual__cb_xer_ = { {"lqual_cb>\n", "lqual_cb>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data_lqual__cb_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data_lqual__cb_descr_ = { "@PCUIF_Types.PCUIF_data.lqual_cb", &INTEGER_ber_, &PCUIF__data_lqual__cb_raw_, &INTEGER_text_, &PCUIF__data_lqual__cb_xer_, &INTEGER_json_, &PCUIF__data_lqual__cb_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data_lqual__cb_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data_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}; // No XER for PCUIF__data const TTCN_Typedescriptor_t PCUIF__data_descr_ = { "@PCUIF_Types.PCUIF_data", NULL, &PCUIF__data_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data__cnf__dt_sapi_raw_ = {8,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}; // No XER for PCUIF__data__cnf__dt_sapi const TTCN_Typedescriptor_t PCUIF__data__cnf__dt_sapi_descr_ = { "@PCUIF_Types.PCUIF_data_cnf_dt.sapi", NULL, &PCUIF__data__cnf__dt_sapi_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data__cnf__dt_sapi_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data__cnf__dt_tlli_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,4,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__data__cnf__dt_tlli_xer_ = { {"tlli>\n", "tlli>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__data__cnf__dt_tlli_oer_ext_arr_[0] = {}; const int PCUIF__data__cnf__dt_tlli_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__data__cnf__dt_tlli_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__data__cnf__dt_tlli_oer_ext_arr_, 0, PCUIF__data__cnf__dt_tlli_oer_p_}; const TTCN_Typedescriptor_t PCUIF__data__cnf__dt_tlli_descr_ = { "@PCUIF_Types.PCUIF_data_cnf_dt.tlli", &OCTETSTRING_ber_, &PCUIF__data__cnf__dt_tlli_raw_, &OCTETSTRING_text_, &PCUIF__data__cnf__dt_tlli_xer_, &OCTETSTRING_json_, &PCUIF__data__cnf__dt_tlli_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data__cnf__dt_tlli_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data__cnf__dt_fn_raw_ = {32,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}; const XERdescriptor_t PCUIF__data__cnf__dt_fn_xer_ = { {"fn>\n", "fn>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data__cnf__dt_fn_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data__cnf__dt_fn_descr_ = { "@PCUIF_Types.PCUIF_data_cnf_dt.fn", &INTEGER_ber_, &PCUIF__data__cnf__dt_fn_raw_, &INTEGER_text_, &PCUIF__data__cnf__dt_fn_xer_, &INTEGER_json_, &PCUIF__data__cnf__dt_fn_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data__cnf__dt_fn_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data__cnf__dt_arfcn_raw_ = {16,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}; const XERdescriptor_t PCUIF__data__cnf__dt_arfcn_xer_ = { {"arfcn>\n", "arfcn>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data__cnf__dt_arfcn_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data__cnf__dt_arfcn_descr_ = { "@PCUIF_Types.PCUIF_data_cnf_dt.arfcn", &INTEGER_ber_, &PCUIF__data__cnf__dt_arfcn_raw_, &INTEGER_text_, &PCUIF__data__cnf__dt_arfcn_xer_, &INTEGER_json_, &PCUIF__data__cnf__dt_arfcn_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data__cnf__dt_arfcn_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data__cnf__dt_trx__nr_raw_ = {8,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}; const XERdescriptor_t PCUIF__data__cnf__dt_trx__nr_xer_ = { {"trx_nr>\n", "trx_nr>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data__cnf__dt_trx__nr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data__cnf__dt_trx__nr_descr_ = { "@PCUIF_Types.PCUIF_data_cnf_dt.trx_nr", &INTEGER_ber_, &PCUIF__data__cnf__dt_trx__nr_raw_, &INTEGER_text_, &PCUIF__data__cnf__dt_trx__nr_xer_, &INTEGER_json_, &PCUIF__data__cnf__dt_trx__nr_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data__cnf__dt_trx__nr_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data__cnf__dt_ts__nr_raw_ = {8,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}; const XERdescriptor_t PCUIF__data__cnf__dt_ts__nr_xer_ = { {"ts_nr>\n", "ts_nr>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data__cnf__dt_ts__nr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data__cnf__dt_ts__nr_descr_ = { "@PCUIF_Types.PCUIF_data_cnf_dt.ts_nr", &INTEGER_ber_, &PCUIF__data__cnf__dt_ts__nr_raw_, &INTEGER_text_, &PCUIF__data__cnf__dt_ts__nr_xer_, &INTEGER_json_, &PCUIF__data__cnf__dt_ts__nr_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data__cnf__dt_ts__nr_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data__cnf__dt_block__nr_raw_ = {8,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}; const XERdescriptor_t PCUIF__data__cnf__dt_block__nr_xer_ = { {"block_nr>\n", "block_nr>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data__cnf__dt_block__nr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data__cnf__dt_block__nr_descr_ = { "@PCUIF_Types.PCUIF_data_cnf_dt.block_nr", &INTEGER_ber_, &PCUIF__data__cnf__dt_block__nr_raw_, &INTEGER_text_, &PCUIF__data__cnf__dt_block__nr_xer_, &INTEGER_json_, &PCUIF__data__cnf__dt_block__nr_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data__cnf__dt_block__nr_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data__cnf__dt_rssi_raw_ = {8,SG_SG_BIT,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}; const XERdescriptor_t PCUIF__data__cnf__dt_rssi_xer_ = { {"rssi>\n", "rssi>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data__cnf__dt_rssi_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data__cnf__dt_rssi_descr_ = { "@PCUIF_Types.PCUIF_data_cnf_dt.rssi", &INTEGER_ber_, &PCUIF__data__cnf__dt_rssi_raw_, &INTEGER_text_, &PCUIF__data__cnf__dt_rssi_xer_, &INTEGER_json_, &PCUIF__data__cnf__dt_rssi_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data__cnf__dt_rssi_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data__cnf__dt_ber10k_raw_ = {16,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}; const XERdescriptor_t PCUIF__data__cnf__dt_ber10k_xer_ = { {"ber10k>\n", "ber10k>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data__cnf__dt_ber10k_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data__cnf__dt_ber10k_descr_ = { "@PCUIF_Types.PCUIF_data_cnf_dt.ber10k", &INTEGER_ber_, &PCUIF__data__cnf__dt_ber10k_raw_, &INTEGER_text_, &PCUIF__data__cnf__dt_ber10k_xer_, &INTEGER_json_, &PCUIF__data__cnf__dt_ber10k_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data__cnf__dt_ber10k_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data__cnf__dt_ta__offs__qbits_raw_ = {16,SG_SG_BIT,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}; const XERdescriptor_t PCUIF__data__cnf__dt_ta__offs__qbits_xer_ = { {"ta_offs_qbits>\n", "ta_offs_qbits>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data__cnf__dt_ta__offs__qbits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data__cnf__dt_ta__offs__qbits_descr_ = { "@PCUIF_Types.PCUIF_data_cnf_dt.ta_offs_qbits", &INTEGER_ber_, &PCUIF__data__cnf__dt_ta__offs__qbits_raw_, &INTEGER_text_, &PCUIF__data__cnf__dt_ta__offs__qbits_xer_, &INTEGER_json_, &PCUIF__data__cnf__dt_ta__offs__qbits_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data__cnf__dt_ta__offs__qbits_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data__cnf__dt_lqual__cb_raw_ = {16,SG_SG_BIT,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}; const XERdescriptor_t PCUIF__data__cnf__dt_lqual__cb_xer_ = { {"lqual_cb>\n", "lqual_cb>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__data__cnf__dt_lqual__cb_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__data__cnf__dt_lqual__cb_descr_ = { "@PCUIF_Types.PCUIF_data_cnf_dt.lqual_cb", &INTEGER_ber_, &PCUIF__data__cnf__dt_lqual__cb_raw_, &INTEGER_text_, &PCUIF__data__cnf__dt_lqual__cb_xer_, &INTEGER_json_, &PCUIF__data__cnf__dt_lqual__cb_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data__cnf__dt_lqual__cb_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__data__cnf__dt_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}; // No XER for PCUIF__data__cnf__dt const TTCN_Typedescriptor_t PCUIF__data__cnf__dt_descr_ = { "@PCUIF_Types.PCUIF_data_cnf_dt", NULL, &PCUIF__data__cnf__dt_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__data__cnf__dt_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rts__req_sapi_raw_ = {8,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}; // No XER for PCUIF__rts__req_sapi const TTCN_Typedescriptor_t PCUIF__rts__req_sapi_descr_ = { "@PCUIF_Types.PCUIF_rts_req.sapi", NULL, &PCUIF__rts__req_sapi_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rts__req_sapi_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rts__req_spare_raw_ = {24,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,3,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__rts__req_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__rts__req_spare_oer_ext_arr_[0] = {}; const int PCUIF__rts__req_spare_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__rts__req_spare_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__rts__req_spare_oer_ext_arr_, 0, PCUIF__rts__req_spare_oer_p_}; const TTCN_Typedescriptor_t PCUIF__rts__req_spare_descr_ = { "@PCUIF_Types.PCUIF_rts_req.spare", &OCTETSTRING_ber_, &PCUIF__rts__req_spare_raw_, &OCTETSTRING_text_, &PCUIF__rts__req_spare_xer_, &OCTETSTRING_json_, &PCUIF__rts__req_spare_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rts__req_spare_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rts__req_fn_raw_ = {32,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}; const XERdescriptor_t PCUIF__rts__req_fn_xer_ = { {"fn>\n", "fn>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__rts__req_fn_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__rts__req_fn_descr_ = { "@PCUIF_Types.PCUIF_rts_req.fn", &INTEGER_ber_, &PCUIF__rts__req_fn_raw_, &INTEGER_text_, &PCUIF__rts__req_fn_xer_, &INTEGER_json_, &PCUIF__rts__req_fn_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rts__req_fn_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rts__req_arfcn_raw_ = {16,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}; const XERdescriptor_t PCUIF__rts__req_arfcn_xer_ = { {"arfcn>\n", "arfcn>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__rts__req_arfcn_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__rts__req_arfcn_descr_ = { "@PCUIF_Types.PCUIF_rts_req.arfcn", &INTEGER_ber_, &PCUIF__rts__req_arfcn_raw_, &INTEGER_text_, &PCUIF__rts__req_arfcn_xer_, &INTEGER_json_, &PCUIF__rts__req_arfcn_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rts__req_arfcn_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rts__req_trx__nr_raw_ = {8,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}; const XERdescriptor_t PCUIF__rts__req_trx__nr_xer_ = { {"trx_nr>\n", "trx_nr>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__rts__req_trx__nr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__rts__req_trx__nr_descr_ = { "@PCUIF_Types.PCUIF_rts_req.trx_nr", &INTEGER_ber_, &PCUIF__rts__req_trx__nr_raw_, &INTEGER_text_, &PCUIF__rts__req_trx__nr_xer_, &INTEGER_json_, &PCUIF__rts__req_trx__nr_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rts__req_trx__nr_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rts__req_ts__nr_raw_ = {8,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}; const XERdescriptor_t PCUIF__rts__req_ts__nr_xer_ = { {"ts_nr>\n", "ts_nr>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__rts__req_ts__nr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__rts__req_ts__nr_descr_ = { "@PCUIF_Types.PCUIF_rts_req.ts_nr", &INTEGER_ber_, &PCUIF__rts__req_ts__nr_raw_, &INTEGER_text_, &PCUIF__rts__req_ts__nr_xer_, &INTEGER_json_, &PCUIF__rts__req_ts__nr_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rts__req_ts__nr_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rts__req_block__nr_raw_ = {8,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}; const XERdescriptor_t PCUIF__rts__req_block__nr_xer_ = { {"block_nr>\n", "block_nr>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__rts__req_block__nr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__rts__req_block__nr_descr_ = { "@PCUIF_Types.PCUIF_rts_req.block_nr", &INTEGER_ber_, &PCUIF__rts__req_block__nr_raw_, &INTEGER_text_, &PCUIF__rts__req_block__nr_xer_, &INTEGER_json_, &PCUIF__rts__req_block__nr_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rts__req_block__nr_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rts__req_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}; // No XER for PCUIF__rts__req const TTCN_Typedescriptor_t PCUIF__rts__req_descr_ = { "@PCUIF_Types.PCUIF_rts_req", NULL, &PCUIF__rts__req_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rts__req_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__BurstType_raw_ = {8,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}; // No XER for PCUIF__BurstType const TTCN_Typedescriptor_t PCUIF__BurstType_descr_ = { "@PCUIF_Types.PCUIF_BurstType", NULL, &PCUIF__BurstType_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__BurstType_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rach__ind_sapi_raw_ = {8,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}; // No XER for PCUIF__rach__ind_sapi const TTCN_Typedescriptor_t PCUIF__rach__ind_sapi_descr_ = { "@PCUIF_Types.PCUIF_rach_ind.sapi", NULL, &PCUIF__rach__ind_sapi_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rach__ind_sapi_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rach__ind_ra_raw_ = {16,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}; const XERdescriptor_t PCUIF__rach__ind_ra_xer_ = { {"ra>\n", "ra>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__rach__ind_ra_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__rach__ind_ra_descr_ = { "@PCUIF_Types.PCUIF_rach_ind.ra", &INTEGER_ber_, &PCUIF__rach__ind_ra_raw_, &INTEGER_text_, &PCUIF__rach__ind_ra_xer_, &INTEGER_json_, &PCUIF__rach__ind_ra_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rach__ind_ra_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rach__ind_qta_raw_ = {16,SG_SG_BIT,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}; const XERdescriptor_t PCUIF__rach__ind_qta_xer_ = { {"qta>\n", "qta>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__rach__ind_qta_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__rach__ind_qta_descr_ = { "@PCUIF_Types.PCUIF_rach_ind.qta", &INTEGER_ber_, &PCUIF__rach__ind_qta_raw_, &INTEGER_text_, &PCUIF__rach__ind_qta_xer_, &INTEGER_json_, &PCUIF__rach__ind_qta_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rach__ind_qta_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rach__ind_fn_raw_ = {32,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}; const XERdescriptor_t PCUIF__rach__ind_fn_xer_ = { {"fn>\n", "fn>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__rach__ind_fn_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__rach__ind_fn_descr_ = { "@PCUIF_Types.PCUIF_rach_ind.fn", &INTEGER_ber_, &PCUIF__rach__ind_fn_raw_, &INTEGER_text_, &PCUIF__rach__ind_fn_xer_, &INTEGER_json_, &PCUIF__rach__ind_fn_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rach__ind_fn_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rach__ind_arfcn_raw_ = {16,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}; const XERdescriptor_t PCUIF__rach__ind_arfcn_xer_ = { {"arfcn>\n", "arfcn>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__rach__ind_arfcn_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__rach__ind_arfcn_descr_ = { "@PCUIF_Types.PCUIF_rach_ind.arfcn", &INTEGER_ber_, &PCUIF__rach__ind_arfcn_raw_, &INTEGER_text_, &PCUIF__rach__ind_arfcn_xer_, &INTEGER_json_, &PCUIF__rach__ind_arfcn_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rach__ind_arfcn_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rach__ind_is__11bit_raw_ = {8,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}; const XERdescriptor_t PCUIF__rach__ind_is__11bit_xer_ = { {"is_11bit>\n", "is_11bit>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__rach__ind_is__11bit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__rach__ind_is__11bit_descr_ = { "@PCUIF_Types.PCUIF_rach_ind.is_11bit", &INTEGER_ber_, &PCUIF__rach__ind_is__11bit_raw_, &INTEGER_text_, &PCUIF__rach__ind_is__11bit_xer_, &INTEGER_json_, &PCUIF__rach__ind_is__11bit_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rach__ind_is__11bit_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rach__ind_burst__type_raw_ = {8,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}; // No XER for PCUIF__rach__ind_burst__type const TTCN_Typedescriptor_t PCUIF__rach__ind_burst__type_descr_ = { "@PCUIF_Types.PCUIF_rach_ind.burst_type", NULL, &PCUIF__rach__ind_burst__type_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rach__ind_burst__type_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__rach__ind_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}; // No XER for PCUIF__rach__ind const TTCN_Typedescriptor_t PCUIF__rach__ind_descr_ = { "@PCUIF_Types.PCUIF_rach_ind", NULL, &PCUIF__rach__ind_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__rach__ind_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__InfoTrx_arfcn_raw_ = {16,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}; const XERdescriptor_t PCUIF__InfoTrx_arfcn_xer_ = { {"arfcn>\n", "arfcn>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__InfoTrx_arfcn_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__InfoTrx_arfcn_descr_ = { "@PCUIF_Types.PCUIF_InfoTrx.arfcn", &INTEGER_ber_, &PCUIF__InfoTrx_arfcn_raw_, &INTEGER_text_, &PCUIF__InfoTrx_arfcn_xer_, &INTEGER_json_, &PCUIF__InfoTrx_arfcn_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__InfoTrx_arfcn_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__InfoTrx_pdch__mask_raw_ = {8,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_MSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,8,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__InfoTrx_pdch__mask_xer_ = { {"pdch_mask>\n", "pdch_mask>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_Typedescriptor_t PCUIF__InfoTrx_pdch__mask_descr_ = { "@PCUIF_Types.PCUIF_InfoTrx.pdch_mask", &BITSTRING_ber_, &PCUIF__InfoTrx_pdch__mask_raw_, NULL, &PCUIF__InfoTrx_pdch__mask_xer_, &BITSTRING_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__InfoTrx_pdch__mask_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__InfoTrx_spare_raw_ = {8,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}; const XERdescriptor_t PCUIF__InfoTrx_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__InfoTrx_spare_oer_ext_arr_[0] = {}; const int PCUIF__InfoTrx_spare_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__InfoTrx_spare_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__InfoTrx_spare_oer_ext_arr_, 0, PCUIF__InfoTrx_spare_oer_p_}; const TTCN_Typedescriptor_t PCUIF__InfoTrx_spare_descr_ = { "@PCUIF_Types.PCUIF_InfoTrx.spare", &OCTETSTRING_ber_, &PCUIF__InfoTrx_spare_raw_, &OCTETSTRING_text_, &PCUIF__InfoTrx_spare_xer_, &OCTETSTRING_json_, &PCUIF__InfoTrx_spare_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__InfoTrx_spare_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__InfoTrx_tsc_raw_ = {64,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,8,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__InfoTrx_tsc_xer_ = { {"tsc>\n", "tsc>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__InfoTrx_tsc_oer_ext_arr_[0] = {}; const int PCUIF__InfoTrx_tsc_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__InfoTrx_tsc_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__InfoTrx_tsc_oer_ext_arr_, 0, PCUIF__InfoTrx_tsc_oer_p_}; const TTCN_Typedescriptor_t PCUIF__InfoTrx_tsc_descr_ = { "@PCUIF_Types.PCUIF_InfoTrx.tsc", &OCTETSTRING_ber_, &PCUIF__InfoTrx_tsc_raw_, &OCTETSTRING_text_, &PCUIF__InfoTrx_tsc_xer_, &OCTETSTRING_json_, &PCUIF__InfoTrx_tsc_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__InfoTrx_tsc_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__InfoTrx_hLayer1_raw_ = {32,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}; const XERdescriptor_t PCUIF__InfoTrx_hLayer1_xer_ = { {"hLayer1>\n", "hLayer1>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__InfoTrx_hLayer1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__InfoTrx_hLayer1_descr_ = { "@PCUIF_Types.PCUIF_InfoTrx.hLayer1", &INTEGER_ber_, &PCUIF__InfoTrx_hLayer1_raw_, &INTEGER_text_, &PCUIF__InfoTrx_hLayer1_xer_, &INTEGER_json_, &PCUIF__InfoTrx_hLayer1_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__InfoTrx_hLayer1_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__InfoTrx_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}; // No XER for PCUIF__InfoTrx const TTCN_Typedescriptor_t PCUIF__InfoTrx_descr_ = { "@PCUIF_Types.PCUIF_InfoTrx", NULL, &PCUIF__InfoTrx_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__InfoTrx_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__InfoTrxs_raw_ = {8,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}; // No XER for PCUIF__InfoTrxs const TTCN_Typedescriptor_t PCUIF__InfoTrxs_descr_ = { "@PCUIF_Types.PCUIF_InfoTrxs", NULL, &PCUIF__InfoTrxs_raw_, NULL, NULL, NULL, NULL, &PCUIF__InfoTrxs_0_descr_, TTCN_Typedescriptor_t::DONTCARE }; const TTCN_RAWdescriptor_t PCUIF__InfoTrxs_0_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}; // No XER for PCUIF__InfoTrxs_0 const TTCN_Typedescriptor_t PCUIF__InfoTrxs_0_descr_ = { "@PCUIF_Types.PCUIF_InfoTrxs.", NULL, &PCUIF__InfoTrxs_0_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__InfoTrxs_0_default_coding("RAW"); UNIVERSAL_CHARSTRING PCUIF__InfoTrxs_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_version_raw_ = {32,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}; const XERdescriptor_t PCUIF__info__ind_version_xer_ = { {"version>\n", "version>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_version_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_version_descr_ = { "@PCUIF_Types.PCUIF_info_ind.version", &INTEGER_ber_, &PCUIF__info__ind_version_raw_, &INTEGER_text_, &PCUIF__info__ind_version_xer_, &INTEGER_json_, &PCUIF__info__ind_version_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_version_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_flags_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}; // No XER for PCUIF__info__ind_flags const TTCN_Typedescriptor_t PCUIF__info__ind_flags_descr_ = { "@PCUIF_Types.PCUIF_info_ind.flags", NULL, &PCUIF__info__ind_flags_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_flags_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_trx_raw_ = {8,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}; // No XER for PCUIF__info__ind_trx const TTCN_Typedescriptor_t PCUIF__info__ind_trx_descr_ = { "@PCUIF_Types.PCUIF_info_ind.trx", NULL, &PCUIF__info__ind_trx_raw_, NULL, NULL, NULL, NULL, &PCUIF__InfoTrxs_0_descr_, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_trx_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_bsic_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_bsic_xer_ = { {"bsic>\n", "bsic>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_bsic_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_bsic_descr_ = { "@PCUIF_Types.PCUIF_info_ind.bsic", &INTEGER_ber_, &PCUIF__info__ind_bsic_raw_, &INTEGER_text_, &PCUIF__info__ind_bsic_xer_, &INTEGER_json_, &PCUIF__info__ind_bsic_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_bsic_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_mcc_raw_ = {16,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}; const XERdescriptor_t PCUIF__info__ind_mcc_xer_ = { {"mcc>\n", "mcc>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_mcc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_mcc_descr_ = { "@PCUIF_Types.PCUIF_info_ind.mcc", &INTEGER_ber_, &PCUIF__info__ind_mcc_raw_, &INTEGER_text_, &PCUIF__info__ind_mcc_xer_, &INTEGER_json_, &PCUIF__info__ind_mcc_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_mcc_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_mnc_raw_ = {16,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}; const XERdescriptor_t PCUIF__info__ind_mnc_xer_ = { {"mnc>\n", "mnc>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_mnc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_mnc_descr_ = { "@PCUIF_Types.PCUIF_info_ind.mnc", &INTEGER_ber_, &PCUIF__info__ind_mnc_raw_, &INTEGER_text_, &PCUIF__info__ind_mnc_xer_, &INTEGER_json_, &PCUIF__info__ind_mnc_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_mnc_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_mnc__3__digits_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_mnc__3__digits_xer_ = { {"mnc_3_digits>\n", "mnc_3_digits>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_mnc__3__digits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_mnc__3__digits_descr_ = { "@PCUIF_Types.PCUIF_info_ind.mnc_3_digits", &INTEGER_ber_, &PCUIF__info__ind_mnc__3__digits_raw_, &INTEGER_text_, &PCUIF__info__ind_mnc__3__digits_xer_, &INTEGER_json_, &PCUIF__info__ind_mnc__3__digits_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_mnc__3__digits_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_lac_raw_ = {16,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}; const XERdescriptor_t PCUIF__info__ind_lac_xer_ = { {"lac>\n", "lac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_lac_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_lac_descr_ = { "@PCUIF_Types.PCUIF_info_ind.lac", &INTEGER_ber_, &PCUIF__info__ind_lac_raw_, &INTEGER_text_, &PCUIF__info__ind_lac_xer_, &INTEGER_json_, &PCUIF__info__ind_lac_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_lac_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_rac_raw_ = {16,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}; const XERdescriptor_t PCUIF__info__ind_rac_xer_ = { {"rac>\n", "rac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_rac_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_rac_descr_ = { "@PCUIF_Types.PCUIF_info_ind.rac", &INTEGER_ber_, &PCUIF__info__ind_rac_raw_, &INTEGER_text_, &PCUIF__info__ind_rac_xer_, &INTEGER_json_, &PCUIF__info__ind_rac_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_rac_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_nsei_raw_ = {16,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}; const XERdescriptor_t PCUIF__info__ind_nsei_xer_ = { {"nsei>\n", "nsei>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_nsei_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_nsei_descr_ = { "@PCUIF_Types.PCUIF_info_ind.nsei", &INTEGER_ber_, &PCUIF__info__ind_nsei_raw_, &INTEGER_text_, &PCUIF__info__ind_nsei_xer_, &INTEGER_json_, &PCUIF__info__ind_nsei_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_nsei_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_nse__timer_raw_ = {7,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}; // No XER for PCUIF__info__ind_nse__timer const TTCN_Typedescriptor_t PCUIF__info__ind_nse__timer_descr_ = { "@PCUIF_Types.PCUIF_info_ind.nse_timer", NULL, &PCUIF__info__ind_nse__timer_raw_, NULL, NULL, NULL, NULL, &PCUIF__info__ind_nse__timer_0_descr_, TTCN_Typedescriptor_t::DONTCARE }; const TTCN_RAWdescriptor_t PCUIF__info__ind_nse__timer_0_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_nse__timer_0_xer_ = { {"uint8_t>\n", "uint8_t>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_nse__timer_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_nse__timer_0_descr_ = { "@PCUIF_Types.PCUIF_info_ind.nse_timer.", &INTEGER_ber_, &PCUIF__info__ind_nse__timer_0_raw_, &INTEGER_text_, &PCUIF__info__ind_nse__timer_0_xer_, &INTEGER_json_, &PCUIF__info__ind_nse__timer_0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_nse__timer_0_default_coding("RAW"); UNIVERSAL_CHARSTRING PCUIF__info__ind_nse__timer_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_cell__timer_raw_ = {11,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}; // No XER for PCUIF__info__ind_cell__timer const TTCN_Typedescriptor_t PCUIF__info__ind_cell__timer_descr_ = { "@PCUIF_Types.PCUIF_info_ind.cell_timer", NULL, &PCUIF__info__ind_cell__timer_raw_, NULL, NULL, NULL, NULL, &PCUIF__info__ind_cell__timer_0_descr_, TTCN_Typedescriptor_t::DONTCARE }; const TTCN_RAWdescriptor_t PCUIF__info__ind_cell__timer_0_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_cell__timer_0_xer_ = { {"uint8_t>\n", "uint8_t>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_cell__timer_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_cell__timer_0_descr_ = { "@PCUIF_Types.PCUIF_info_ind.cell_timer.", &INTEGER_ber_, &PCUIF__info__ind_cell__timer_0_raw_, &INTEGER_text_, &PCUIF__info__ind_cell__timer_0_xer_, &INTEGER_json_, &PCUIF__info__ind_cell__timer_0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_cell__timer_0_default_coding("RAW"); UNIVERSAL_CHARSTRING PCUIF__info__ind_cell__timer_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_cell__id_raw_ = {16,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}; const XERdescriptor_t PCUIF__info__ind_cell__id_xer_ = { {"cell_id>\n", "cell_id>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_cell__id_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_cell__id_descr_ = { "@PCUIF_Types.PCUIF_info_ind.cell_id", &INTEGER_ber_, &PCUIF__info__ind_cell__id_raw_, &INTEGER_text_, &PCUIF__info__ind_cell__id_xer_, &INTEGER_json_, &PCUIF__info__ind_cell__id_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_cell__id_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_repeat__time_raw_ = {16,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}; const XERdescriptor_t PCUIF__info__ind_repeat__time_xer_ = { {"repeat_time>\n", "repeat_time>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_repeat__time_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_repeat__time_descr_ = { "@PCUIF_Types.PCUIF_info_ind.repeat_time", &INTEGER_ber_, &PCUIF__info__ind_repeat__time_raw_, &INTEGER_text_, &PCUIF__info__ind_repeat__time_xer_, &INTEGER_json_, &PCUIF__info__ind_repeat__time_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_repeat__time_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_repeat__count_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_repeat__count_xer_ = { {"repeat_count>\n", "repeat_count>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_repeat__count_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_repeat__count_descr_ = { "@PCUIF_Types.PCUIF_info_ind.repeat_count", &INTEGER_ber_, &PCUIF__info__ind_repeat__count_raw_, &INTEGER_text_, &PCUIF__info__ind_repeat__count_xer_, &INTEGER_json_, &PCUIF__info__ind_repeat__count_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_repeat__count_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_bvci_raw_ = {16,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}; const XERdescriptor_t PCUIF__info__ind_bvci_xer_ = { {"bvci>\n", "bvci>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_bvci_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_bvci_descr_ = { "@PCUIF_Types.PCUIF_info_ind.bvci", &INTEGER_ber_, &PCUIF__info__ind_bvci_raw_, &INTEGER_text_, &PCUIF__info__ind_bvci_xer_, &INTEGER_json_, &PCUIF__info__ind_bvci_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_bvci_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_t3142_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_t3142_xer_ = { {"t3142>\n", "t3142>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_t3142_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_t3142_descr_ = { "@PCUIF_Types.PCUIF_info_ind.t3142", &INTEGER_ber_, &PCUIF__info__ind_t3142_raw_, &INTEGER_text_, &PCUIF__info__ind_t3142_xer_, &INTEGER_json_, &PCUIF__info__ind_t3142_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_t3142_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_t3169_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_t3169_xer_ = { {"t3169>\n", "t3169>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_t3169_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_t3169_descr_ = { "@PCUIF_Types.PCUIF_info_ind.t3169", &INTEGER_ber_, &PCUIF__info__ind_t3169_raw_, &INTEGER_text_, &PCUIF__info__ind_t3169_xer_, &INTEGER_json_, &PCUIF__info__ind_t3169_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_t3169_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_t3191_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_t3191_xer_ = { {"t3191>\n", "t3191>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_t3191_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_t3191_descr_ = { "@PCUIF_Types.PCUIF_info_ind.t3191", &INTEGER_ber_, &PCUIF__info__ind_t3191_raw_, &INTEGER_text_, &PCUIF__info__ind_t3191_xer_, &INTEGER_json_, &PCUIF__info__ind_t3191_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_t3191_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_t3193__10ms_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_t3193__10ms_xer_ = { {"t3193_10ms>\n", "t3193_10ms>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_t3193__10ms_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_t3193__10ms_descr_ = { "@PCUIF_Types.PCUIF_info_ind.t3193_10ms", &INTEGER_ber_, &PCUIF__info__ind_t3193__10ms_raw_, &INTEGER_text_, &PCUIF__info__ind_t3193__10ms_xer_, &INTEGER_json_, &PCUIF__info__ind_t3193__10ms_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_t3193__10ms_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_t3195_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_t3195_xer_ = { {"t3195>\n", "t3195>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_t3195_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_t3195_descr_ = { "@PCUIF_Types.PCUIF_info_ind.t3195", &INTEGER_ber_, &PCUIF__info__ind_t3195_raw_, &INTEGER_text_, &PCUIF__info__ind_t3195_xer_, &INTEGER_json_, &PCUIF__info__ind_t3195_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_t3195_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_t3101_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_t3101_xer_ = { {"t3101>\n", "t3101>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_t3101_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_t3101_descr_ = { "@PCUIF_Types.PCUIF_info_ind.t3101", &INTEGER_ber_, &PCUIF__info__ind_t3101_raw_, &INTEGER_text_, &PCUIF__info__ind_t3101_xer_, &INTEGER_json_, &PCUIF__info__ind_t3101_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_t3101_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_t3103_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_t3103_xer_ = { {"t3103>\n", "t3103>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_t3103_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_t3103_descr_ = { "@PCUIF_Types.PCUIF_info_ind.t3103", &INTEGER_ber_, &PCUIF__info__ind_t3103_raw_, &INTEGER_text_, &PCUIF__info__ind_t3103_xer_, &INTEGER_json_, &PCUIF__info__ind_t3103_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_t3103_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_t3105_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_t3105_xer_ = { {"t3105>\n", "t3105>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_t3105_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_t3105_descr_ = { "@PCUIF_Types.PCUIF_info_ind.t3105", &INTEGER_ber_, &PCUIF__info__ind_t3105_raw_, &INTEGER_text_, &PCUIF__info__ind_t3105_xer_, &INTEGER_json_, &PCUIF__info__ind_t3105_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_t3105_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_cv__countdown_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_cv__countdown_xer_ = { {"cv_countdown>\n", "cv_countdown>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_cv__countdown_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_cv__countdown_descr_ = { "@PCUIF_Types.PCUIF_info_ind.cv_countdown", &INTEGER_ber_, &PCUIF__info__ind_cv__countdown_raw_, &INTEGER_text_, &PCUIF__info__ind_cv__countdown_xer_, &INTEGER_json_, &PCUIF__info__ind_cv__countdown_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_cv__countdown_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_dl__tbf__ext_raw_ = {16,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}; const XERdescriptor_t PCUIF__info__ind_dl__tbf__ext_xer_ = { {"dl_tbf_ext>\n", "dl_tbf_ext>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_dl__tbf__ext_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_dl__tbf__ext_descr_ = { "@PCUIF_Types.PCUIF_info_ind.dl_tbf_ext", &INTEGER_ber_, &PCUIF__info__ind_dl__tbf__ext_raw_, &INTEGER_text_, &PCUIF__info__ind_dl__tbf__ext_xer_, &INTEGER_json_, &PCUIF__info__ind_dl__tbf__ext_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_dl__tbf__ext_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_ul__tbf__ext_raw_ = {16,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}; const XERdescriptor_t PCUIF__info__ind_ul__tbf__ext_xer_ = { {"ul_tbf_ext>\n", "ul_tbf_ext>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_ul__tbf__ext_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_ul__tbf__ext_descr_ = { "@PCUIF_Types.PCUIF_info_ind.ul_tbf_ext", &INTEGER_ber_, &PCUIF__info__ind_ul__tbf__ext_raw_, &INTEGER_text_, &PCUIF__info__ind_ul__tbf__ext_xer_, &INTEGER_json_, &PCUIF__info__ind_ul__tbf__ext_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_ul__tbf__ext_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_initial__cs_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_initial__cs_xer_ = { {"initial_cs>\n", "initial_cs>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_initial__cs_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_initial__cs_descr_ = { "@PCUIF_Types.PCUIF_info_ind.initial_cs", &INTEGER_ber_, &PCUIF__info__ind_initial__cs_raw_, &INTEGER_text_, &PCUIF__info__ind_initial__cs_xer_, &INTEGER_json_, &PCUIF__info__ind_initial__cs_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_initial__cs_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_initial__mcs_raw_ = {8,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}; const XERdescriptor_t PCUIF__info__ind_initial__mcs_xer_ = { {"initial_mcs>\n", "initial_mcs>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_initial__mcs_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_initial__mcs_descr_ = { "@PCUIF_Types.PCUIF_info_ind.initial_mcs", &INTEGER_ber_, &PCUIF__info__ind_initial__mcs_raw_, &INTEGER_text_, &PCUIF__info__ind_initial__mcs_xer_, &INTEGER_json_, &PCUIF__info__ind_initial__mcs_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_initial__mcs_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_nsvci_raw_ = {2,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}; // No XER for PCUIF__info__ind_nsvci const TTCN_Typedescriptor_t PCUIF__info__ind_nsvci_descr_ = { "@PCUIF_Types.PCUIF_info_ind.nsvci", NULL, &PCUIF__info__ind_nsvci_raw_, NULL, NULL, NULL, NULL, &PCUIF__info__ind_nsvci_0_descr_, TTCN_Typedescriptor_t::DONTCARE }; const TTCN_RAWdescriptor_t PCUIF__info__ind_nsvci_0_raw_ = {16,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}; const XERdescriptor_t PCUIF__info__ind_nsvci_0_xer_ = { {"uint16_t>\n", "uint16_t>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_nsvci_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_nsvci_0_descr_ = { "@PCUIF_Types.PCUIF_info_ind.nsvci.", &INTEGER_ber_, &PCUIF__info__ind_nsvci_0_raw_, &INTEGER_text_, &PCUIF__info__ind_nsvci_0_xer_, &INTEGER_json_, &PCUIF__info__ind_nsvci_0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_nsvci_0_default_coding("RAW"); UNIVERSAL_CHARSTRING PCUIF__info__ind_nsvci_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_local__pprt_raw_ = {2,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}; // No XER for PCUIF__info__ind_local__pprt const TTCN_Typedescriptor_t PCUIF__info__ind_local__pprt_descr_ = { "@PCUIF_Types.PCUIF_info_ind.local_pprt", NULL, &PCUIF__info__ind_local__pprt_raw_, NULL, NULL, NULL, NULL, &PCUIF__info__ind_local__pprt_0_descr_, TTCN_Typedescriptor_t::DONTCARE }; const TTCN_RAWdescriptor_t PCUIF__info__ind_local__pprt_0_raw_ = {16,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}; const XERdescriptor_t PCUIF__info__ind_local__pprt_0_xer_ = { {"uint16_t>\n", "uint16_t>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_local__pprt_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_local__pprt_0_descr_ = { "@PCUIF_Types.PCUIF_info_ind.local_pprt.", &INTEGER_ber_, &PCUIF__info__ind_local__pprt_0_raw_, &INTEGER_text_, &PCUIF__info__ind_local__pprt_0_xer_, &INTEGER_json_, &PCUIF__info__ind_local__pprt_0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_local__pprt_0_default_coding("RAW"); UNIVERSAL_CHARSTRING PCUIF__info__ind_local__pprt_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_remote__port_raw_ = {2,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}; // No XER for PCUIF__info__ind_remote__port const TTCN_Typedescriptor_t PCUIF__info__ind_remote__port_descr_ = { "@PCUIF_Types.PCUIF_info_ind.remote_port", NULL, &PCUIF__info__ind_remote__port_raw_, NULL, NULL, NULL, NULL, &PCUIF__info__ind_remote__port_0_descr_, TTCN_Typedescriptor_t::DONTCARE }; const TTCN_RAWdescriptor_t PCUIF__info__ind_remote__port_0_raw_ = {16,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}; const XERdescriptor_t PCUIF__info__ind_remote__port_0_xer_ = { {"uint16_t>\n", "uint16_t>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__info__ind_remote__port_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__info__ind_remote__port_0_descr_ = { "@PCUIF_Types.PCUIF_info_ind.remote_port.", &INTEGER_ber_, &PCUIF__info__ind_remote__port_0_raw_, &INTEGER_text_, &PCUIF__info__ind_remote__port_0_xer_, &INTEGER_json_, &PCUIF__info__ind_remote__port_0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_remote__port_0_default_coding("RAW"); UNIVERSAL_CHARSTRING PCUIF__info__ind_remote__port_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_remote__ip_raw_ = {2,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}; // No XER for PCUIF__info__ind_remote__ip const TTCN_Typedescriptor_t PCUIF__info__ind_remote__ip_descr_ = { "@PCUIF_Types.PCUIF_info_ind.remote_ip", NULL, &PCUIF__info__ind_remote__ip_raw_, NULL, NULL, NULL, NULL, &PCUIF__info__ind_remote__ip_0_descr_, TTCN_Typedescriptor_t::DONTCARE }; const TTCN_RAWdescriptor_t PCUIF__info__ind_remote__ip_0_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,4,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__info__ind_remote__ip_0_xer_ = { {"OCT4>\n", "OCT4>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__info__ind_remote__ip_0_oer_ext_arr_[0] = {}; const int PCUIF__info__ind_remote__ip_0_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__info__ind_remote__ip_0_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__info__ind_remote__ip_0_oer_ext_arr_, 0, PCUIF__info__ind_remote__ip_0_oer_p_}; const TTCN_Typedescriptor_t PCUIF__info__ind_remote__ip_0_descr_ = { "@PCUIF_Types.PCUIF_info_ind.remote_ip.", &OCTETSTRING_ber_, &PCUIF__info__ind_remote__ip_0_raw_, &OCTETSTRING_text_, &PCUIF__info__ind_remote__ip_0_xer_, &OCTETSTRING_json_, &PCUIF__info__ind_remote__ip_0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_remote__ip_0_default_coding("RAW"); UNIVERSAL_CHARSTRING PCUIF__info__ind_remote__ip_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__info__ind_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}; // No XER for PCUIF__info__ind const TTCN_Typedescriptor_t PCUIF__info__ind_descr_ = { "@PCUIF_Types.PCUIF_info_ind", NULL, &PCUIF__info__ind_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__info__ind_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__act__req_is__activate_raw_ = {8,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}; const XERdescriptor_t PCUIF__act__req_is__activate_xer_ = { {"is_activate>\n", "is_activate>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__act__req_is__activate_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__act__req_is__activate_descr_ = { "@PCUIF_Types.PCUIF_act_req.is_activate", &INTEGER_ber_, &PCUIF__act__req_is__activate_raw_, &INTEGER_text_, &PCUIF__act__req_is__activate_xer_, &INTEGER_json_, &PCUIF__act__req_is__activate_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__act__req_is__activate_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__act__req_trx__nr_raw_ = {8,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}; const XERdescriptor_t PCUIF__act__req_trx__nr_xer_ = { {"trx_nr>\n", "trx_nr>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__act__req_trx__nr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__act__req_trx__nr_descr_ = { "@PCUIF_Types.PCUIF_act_req.trx_nr", &INTEGER_ber_, &PCUIF__act__req_trx__nr_raw_, &INTEGER_text_, &PCUIF__act__req_trx__nr_xer_, &INTEGER_json_, &PCUIF__act__req_trx__nr_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__act__req_trx__nr_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__act__req_ts__nr_raw_ = {8,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}; const XERdescriptor_t PCUIF__act__req_ts__nr_xer_ = { {"ts_nr>\n", "ts_nr>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__act__req_ts__nr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__act__req_ts__nr_descr_ = { "@PCUIF_Types.PCUIF_act_req.ts_nr", &INTEGER_ber_, &PCUIF__act__req_ts__nr_raw_, &INTEGER_text_, &PCUIF__act__req_ts__nr_xer_, &INTEGER_json_, &PCUIF__act__req_ts__nr_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__act__req_ts__nr_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__act__req_spare_raw_ = {8,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}; const XERdescriptor_t PCUIF__act__req_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__act__req_spare_oer_ext_arr_[0] = {}; const int PCUIF__act__req_spare_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__act__req_spare_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__act__req_spare_oer_ext_arr_, 0, PCUIF__act__req_spare_oer_p_}; const TTCN_Typedescriptor_t PCUIF__act__req_spare_descr_ = { "@PCUIF_Types.PCUIF_act_req.spare", &OCTETSTRING_ber_, &PCUIF__act__req_spare_raw_, &OCTETSTRING_text_, &PCUIF__act__req_spare_xer_, &OCTETSTRING_json_, &PCUIF__act__req_spare_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__act__req_spare_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__act__req_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}; // No XER for PCUIF__act__req const TTCN_Typedescriptor_t PCUIF__act__req_descr_ = { "@PCUIF_Types.PCUIF_act_req", NULL, &PCUIF__act__req_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__act__req_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__time__ind_fn_raw_ = {32,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}; const XERdescriptor_t PCUIF__time__ind_fn_xer_ = { {"fn>\n", "fn>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__time__ind_fn_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__time__ind_fn_descr_ = { "@PCUIF_Types.PCUIF_time_ind.fn", &INTEGER_ber_, &PCUIF__time__ind_fn_raw_, &INTEGER_text_, &PCUIF__time__ind_fn_xer_, &INTEGER_json_, &PCUIF__time__ind_fn_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__time__ind_fn_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__time__ind_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}; // No XER for PCUIF__time__ind const TTCN_Typedescriptor_t PCUIF__time__ind_descr_ = { "@PCUIF_Types.PCUIF_time_ind", NULL, &PCUIF__time__ind_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__time__ind_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__pag__req_sapi_raw_ = {8,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}; // No XER for PCUIF__pag__req_sapi const TTCN_Typedescriptor_t PCUIF__pag__req_sapi_descr_ = { "@PCUIF_Types.PCUIF_pag_req.sapi", NULL, &PCUIF__pag__req_sapi_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__pag__req_sapi_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__pag__req_chan__needed_raw_ = {8,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}; const XERdescriptor_t PCUIF__pag__req_chan__needed_xer_ = { {"chan_needed>\n", "chan_needed>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__pag__req_chan__needed_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__pag__req_chan__needed_descr_ = { "@PCUIF_Types.PCUIF_pag_req.chan_needed", &INTEGER_ber_, &PCUIF__pag__req_chan__needed_raw_, &INTEGER_text_, &PCUIF__pag__req_chan__needed_xer_, &INTEGER_json_, &PCUIF__pag__req_chan__needed_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__pag__req_chan__needed_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__pag__req_identity__lv_raw_ = {72,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,9,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__pag__req_identity__lv_xer_ = { {"identity_lv>\n", "identity_lv>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__pag__req_identity__lv_oer_ext_arr_[0] = {}; const int PCUIF__pag__req_identity__lv_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__pag__req_identity__lv_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__pag__req_identity__lv_oer_ext_arr_, 0, PCUIF__pag__req_identity__lv_oer_p_}; const TTCN_Typedescriptor_t PCUIF__pag__req_identity__lv_descr_ = { "@PCUIF_Types.PCUIF_pag_req.identity_lv", &OCTETSTRING_ber_, &PCUIF__pag__req_identity__lv_raw_, &OCTETSTRING_text_, &PCUIF__pag__req_identity__lv_xer_, &OCTETSTRING_json_, &PCUIF__pag__req_identity__lv_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__pag__req_identity__lv_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__pag__req_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}; // No XER for PCUIF__pag__req const TTCN_Typedescriptor_t PCUIF__pag__req_descr_ = { "@PCUIF_Types.PCUIF_pag_req", NULL, &PCUIF__pag__req_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__pag__req_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__susp__req_tlli_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,4,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__susp__req_tlli_xer_ = { {"tlli>\n", "tlli>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__susp__req_tlli_oer_ext_arr_[0] = {}; const int PCUIF__susp__req_tlli_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__susp__req_tlli_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__susp__req_tlli_oer_ext_arr_, 0, PCUIF__susp__req_tlli_oer_p_}; const TTCN_Typedescriptor_t PCUIF__susp__req_tlli_descr_ = { "@PCUIF_Types.PCUIF_susp_req.tlli", &OCTETSTRING_ber_, &PCUIF__susp__req_tlli_raw_, &OCTETSTRING_text_, &PCUIF__susp__req_tlli_xer_, &OCTETSTRING_json_, &PCUIF__susp__req_tlli_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__susp__req_tlli_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__susp__req_ra__id_raw_ = {48,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,6,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__susp__req_ra__id_xer_ = { {"ra_id>\n", "ra_id>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__susp__req_ra__id_oer_ext_arr_[0] = {}; const int PCUIF__susp__req_ra__id_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__susp__req_ra__id_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__susp__req_ra__id_oer_ext_arr_, 0, PCUIF__susp__req_ra__id_oer_p_}; const TTCN_Typedescriptor_t PCUIF__susp__req_ra__id_descr_ = { "@PCUIF_Types.PCUIF_susp_req.ra_id", &OCTETSTRING_ber_, &PCUIF__susp__req_ra__id_raw_, &OCTETSTRING_text_, &PCUIF__susp__req_ra__id_xer_, &OCTETSTRING_json_, &PCUIF__susp__req_ra__id_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__susp__req_ra__id_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__susp__req_cause_raw_ = {8,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}; const XERdescriptor_t PCUIF__susp__req_cause_xer_ = { {"cause>\n", "cause>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__susp__req_cause_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__susp__req_cause_descr_ = { "@PCUIF_Types.PCUIF_susp_req.cause", &INTEGER_ber_, &PCUIF__susp__req_cause_raw_, &INTEGER_text_, &PCUIF__susp__req_cause_xer_, &INTEGER_json_, &PCUIF__susp__req_cause_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__susp__req_cause_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__susp__req_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}; // No XER for PCUIF__susp__req const TTCN_Typedescriptor_t PCUIF__susp__req_descr_ = { "@PCUIF_Types.PCUIF_susp_req", NULL, &PCUIF__susp__req_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__susp__req_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__MsgUnion_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}; // No XER for PCUIF__MsgUnion const TTCN_Typedescriptor_t PCUIF__MsgUnion_descr_ = { "@PCUIF_Types.PCUIF_MsgUnion", NULL, &PCUIF__MsgUnion_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; const TTCN_RAWdescriptor_t PCUIF__MsgUnion_data__req_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}; // No XER for PCUIF__MsgUnion_data__req const TTCN_Typedescriptor_t PCUIF__MsgUnion_data__req_descr_ = { "@PCUIF_Types.PCUIF_MsgUnion.data_req", NULL, &PCUIF__MsgUnion_data__req_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__MsgUnion_data__req_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__MsgUnion_data__cnf_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}; // No XER for PCUIF__MsgUnion_data__cnf const TTCN_Typedescriptor_t PCUIF__MsgUnion_data__cnf_descr_ = { "@PCUIF_Types.PCUIF_MsgUnion.data_cnf", NULL, &PCUIF__MsgUnion_data__cnf_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__MsgUnion_data__cnf_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__MsgUnion_data__cnf__dt_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}; // No XER for PCUIF__MsgUnion_data__cnf__dt const TTCN_Typedescriptor_t PCUIF__MsgUnion_data__cnf__dt_descr_ = { "@PCUIF_Types.PCUIF_MsgUnion.data_cnf_dt", NULL, &PCUIF__MsgUnion_data__cnf__dt_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__MsgUnion_data__cnf__dt_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__MsgUnion_data__ind_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}; // No XER for PCUIF__MsgUnion_data__ind const TTCN_Typedescriptor_t PCUIF__MsgUnion_data__ind_descr_ = { "@PCUIF_Types.PCUIF_MsgUnion.data_ind", NULL, &PCUIF__MsgUnion_data__ind_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__MsgUnion_data__ind_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__MsgUnion_susp__req_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}; // No XER for PCUIF__MsgUnion_susp__req const TTCN_Typedescriptor_t PCUIF__MsgUnion_susp__req_descr_ = { "@PCUIF_Types.PCUIF_MsgUnion.susp_req", NULL, &PCUIF__MsgUnion_susp__req_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__MsgUnion_susp__req_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__MsgUnion_rts__req_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}; // No XER for PCUIF__MsgUnion_rts__req const TTCN_Typedescriptor_t PCUIF__MsgUnion_rts__req_descr_ = { "@PCUIF_Types.PCUIF_MsgUnion.rts_req", NULL, &PCUIF__MsgUnion_rts__req_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__MsgUnion_rts__req_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__MsgUnion_rach__ind_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}; // No XER for PCUIF__MsgUnion_rach__ind const TTCN_Typedescriptor_t PCUIF__MsgUnion_rach__ind_descr_ = { "@PCUIF_Types.PCUIF_MsgUnion.rach_ind", NULL, &PCUIF__MsgUnion_rach__ind_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__MsgUnion_rach__ind_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__MsgUnion_txt__ind_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}; // No XER for PCUIF__MsgUnion_txt__ind const TTCN_Typedescriptor_t PCUIF__MsgUnion_txt__ind_descr_ = { "@PCUIF_Types.PCUIF_MsgUnion.txt_ind", NULL, &PCUIF__MsgUnion_txt__ind_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__MsgUnion_txt__ind_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__MsgUnion_info__ind_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}; // No XER for PCUIF__MsgUnion_info__ind const TTCN_Typedescriptor_t PCUIF__MsgUnion_info__ind_descr_ = { "@PCUIF_Types.PCUIF_MsgUnion.info_ind", NULL, &PCUIF__MsgUnion_info__ind_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__MsgUnion_info__ind_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__MsgUnion_act__req_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}; // No XER for PCUIF__MsgUnion_act__req const TTCN_Typedescriptor_t PCUIF__MsgUnion_act__req_descr_ = { "@PCUIF_Types.PCUIF_MsgUnion.act_req", NULL, &PCUIF__MsgUnion_act__req_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__MsgUnion_act__req_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__MsgUnion_time__ind_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}; // No XER for PCUIF__MsgUnion_time__ind const TTCN_Typedescriptor_t PCUIF__MsgUnion_time__ind_descr_ = { "@PCUIF_Types.PCUIF_MsgUnion.time_ind", NULL, &PCUIF__MsgUnion_time__ind_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__MsgUnion_time__ind_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__MsgUnion_pag__req_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}; // No XER for PCUIF__MsgUnion_pag__req const TTCN_Typedescriptor_t PCUIF__MsgUnion_pag__req_descr_ = { "@PCUIF_Types.PCUIF_MsgUnion.pag_req", NULL, &PCUIF__MsgUnion_pag__req_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__MsgUnion_pag__req_default_coding("RAW"); UNIVERSAL_CHARSTRING PCUIF__MsgUnion_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Message_msg__type_raw_ = {8,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}; // No XER for PCUIF__Message_msg__type const TTCN_Typedescriptor_t PCUIF__Message_msg__type_descr_ = { "@PCUIF_Types.PCUIF_Message.msg_type", NULL, &PCUIF__Message_msg__type_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Message_msg__type_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Message_bts__nr_raw_ = {8,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}; const XERdescriptor_t PCUIF__Message_bts__nr_xer_ = { {"bts_nr>\n", "bts_nr>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const TTCN_OERdescriptor_t PCUIF__Message_bts__nr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; const TTCN_Typedescriptor_t PCUIF__Message_bts__nr_descr_ = { "@PCUIF_Types.PCUIF_Message.bts_nr", &INTEGER_ber_, &PCUIF__Message_bts__nr_raw_, &INTEGER_text_, &PCUIF__Message_bts__nr_xer_, &INTEGER_json_, &PCUIF__Message_bts__nr_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Message_bts__nr_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Message_spare_raw_ = {16,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,2,CharCoding::UNKNOWN,NULL}; const XERdescriptor_t PCUIF__Message_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; const int PCUIF__Message_spare_oer_ext_arr_[0] = {}; const int PCUIF__Message_spare_oer_p_[0] = {}; const TTCN_OERdescriptor_t PCUIF__Message_spare_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PCUIF__Message_spare_oer_ext_arr_, 0, PCUIF__Message_spare_oer_p_}; const TTCN_Typedescriptor_t PCUIF__Message_spare_descr_ = { "@PCUIF_Types.PCUIF_Message.spare", &OCTETSTRING_ber_, &PCUIF__Message_spare_raw_, &OCTETSTRING_text_, &PCUIF__Message_spare_xer_, &OCTETSTRING_json_, &PCUIF__Message_spare_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Message_spare_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Message_u_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}; // No XER for PCUIF__Message_u const TTCN_Typedescriptor_t PCUIF__Message_u_descr_ = { "@PCUIF_Types.PCUIF_Message.u", NULL, &PCUIF__Message_u_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Message_u_default_coding("RAW"); const TTCN_RAWdescriptor_t PCUIF__Message_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,1696,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL}; // No XER for PCUIF__Message const TTCN_Typedescriptor_t PCUIF__Message_descr_ = { "@PCUIF_Types.PCUIF_Message", NULL, &PCUIF__Message_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; UNIVERSAL_CHARSTRING PCUIF__Message_default_coding("RAW"); static INTEGER_template template_tr__PCUIF__RTS__REQ_bts__nr_defval; const INTEGER_template& tr__PCUIF__RTS__REQ_bts__nr_defval = template_tr__PCUIF__RTS__REQ_bts__nr_defval; static INTEGER_template template_tr__PCUIF__RTS__REQ_trx__nr_defval; const INTEGER_template& tr__PCUIF__RTS__REQ_trx__nr_defval = template_tr__PCUIF__RTS__REQ_trx__nr_defval; static INTEGER_template template_tr__PCUIF__RTS__REQ_ts__nr_defval; const INTEGER_template& tr__PCUIF__RTS__REQ_ts__nr_defval = template_tr__PCUIF__RTS__REQ_ts__nr_defval; static PCUIF__Sapi_template template_tr__PCUIF__RTS__REQ_sapi_defval; const PCUIF__Sapi_template& tr__PCUIF__RTS__REQ_sapi_defval = template_tr__PCUIF__RTS__REQ_sapi_defval; static INTEGER_template template_tr__PCUIF__RTS__REQ_fn_defval; const INTEGER_template& tr__PCUIF__RTS__REQ_fn_defval = template_tr__PCUIF__RTS__REQ_fn_defval; static INTEGER_template template_tr__PCUIF__RTS__REQ_block__nr_defval; const INTEGER_template& tr__PCUIF__RTS__REQ_block__nr_defval = template_tr__PCUIF__RTS__REQ_block__nr_defval; static CHARSTRING_template template_tr__PCUIF__TXT__IND_text_defval; const CHARSTRING_template& tr__PCUIF__TXT__IND_text_defval = template_tr__PCUIF__TXT__IND_text_defval; static INTEGER_template template_ts__PCUIF__DATA__IND_rssi_defval; const INTEGER_template& ts__PCUIF__DATA__IND_rssi_defval = template_ts__PCUIF__DATA__IND_rssi_defval; static INTEGER_template template_ts__PCUIF__DATA__IND_ber10k_defval; const INTEGER_template& ts__PCUIF__DATA__IND_ber10k_defval = template_ts__PCUIF__DATA__IND_ber10k_defval; static INTEGER_template template_ts__PCUIF__DATA__IND_ta__offs__qbits_defval; const INTEGER_template& ts__PCUIF__DATA__IND_ta__offs__qbits_defval = template_ts__PCUIF__DATA__IND_ta__offs__qbits_defval; static INTEGER_template template_ts__PCUIF__DATA__IND_lqual__cb_defval; const INTEGER_template& ts__PCUIF__DATA__IND_lqual__cb_defval = template_ts__PCUIF__DATA__IND_lqual__cb_defval; static INTEGER_template template_tr__PCUIF__DATA__IND_bts__nr_defval; const INTEGER_template& tr__PCUIF__DATA__IND_bts__nr_defval = template_tr__PCUIF__DATA__IND_bts__nr_defval; static INTEGER_template template_tr__PCUIF__DATA__IND_trx__nr_defval; const INTEGER_template& tr__PCUIF__DATA__IND_trx__nr_defval = template_tr__PCUIF__DATA__IND_trx__nr_defval; static INTEGER_template template_tr__PCUIF__DATA__IND_ts__nr_defval; const INTEGER_template& tr__PCUIF__DATA__IND_ts__nr_defval = template_tr__PCUIF__DATA__IND_ts__nr_defval; static INTEGER_template template_tr__PCUIF__DATA__IND_block__nr_defval; const INTEGER_template& tr__PCUIF__DATA__IND_block__nr_defval = template_tr__PCUIF__DATA__IND_block__nr_defval; static PCUIF__Sapi_template template_tr__PCUIF__DATA__IND_sapi_defval; const PCUIF__Sapi_template& tr__PCUIF__DATA__IND_sapi_defval = template_tr__PCUIF__DATA__IND_sapi_defval; static OCTETSTRING_template template_tr__PCUIF__DATA__IND_data_defval; const OCTETSTRING_template& tr__PCUIF__DATA__IND_data_defval = template_tr__PCUIF__DATA__IND_data_defval; static INTEGER_template template_tr__PCUIF__DATA__REQ_block__nr_defval; const INTEGER_template& tr__PCUIF__DATA__REQ_block__nr_defval = template_tr__PCUIF__DATA__REQ_block__nr_defval; static INTEGER_template template_tr__PCUIF__DATA__REQ_fn_defval; const INTEGER_template& tr__PCUIF__DATA__REQ_fn_defval = template_tr__PCUIF__DATA__REQ_fn_defval; static PCUIF__Sapi_template template_tr__PCUIF__DATA__REQ_sapi_defval; const PCUIF__Sapi_template& tr__PCUIF__DATA__REQ_sapi_defval = template_tr__PCUIF__DATA__REQ_sapi_defval; static OCTETSTRING_template template_tr__PCUIF__DATA__REQ_data_defval; const OCTETSTRING_template& tr__PCUIF__DATA__REQ_data_defval = template_tr__PCUIF__DATA__REQ_data_defval; static INTEGER_template template_tr__PCUIF__DATA__CNF_bts__nr_defval; const INTEGER_template& tr__PCUIF__DATA__CNF_bts__nr_defval = template_tr__PCUIF__DATA__CNF_bts__nr_defval; static INTEGER_template template_tr__PCUIF__DATA__CNF_trx__nr_defval; const INTEGER_template& tr__PCUIF__DATA__CNF_trx__nr_defval = template_tr__PCUIF__DATA__CNF_trx__nr_defval; static INTEGER_template template_tr__PCUIF__DATA__CNF_ts__nr_defval; const INTEGER_template& tr__PCUIF__DATA__CNF_ts__nr_defval = template_tr__PCUIF__DATA__CNF_ts__nr_defval; static PCUIF__Sapi_template template_tr__PCUIF__DATA__CNF_sapi_defval; const PCUIF__Sapi_template& tr__PCUIF__DATA__CNF_sapi_defval = template_tr__PCUIF__DATA__CNF_sapi_defval; static OCTETSTRING_template template_tr__PCUIF__DATA__CNF_data_defval; const OCTETSTRING_template& tr__PCUIF__DATA__CNF_data_defval = template_tr__PCUIF__DATA__CNF_data_defval; static INTEGER_template template_ts__PCUIF__RACH__IND_qta_defval; const INTEGER_template& ts__PCUIF__RACH__IND_qta_defval = template_ts__PCUIF__RACH__IND_qta_defval; static INTEGER_template template_tr__PCUIF__RACH__IND_bts__nr_defval; const INTEGER_template& tr__PCUIF__RACH__IND_bts__nr_defval = template_tr__PCUIF__RACH__IND_bts__nr_defval; static INTEGER_template template_tr__PCUIF__RACH__IND_ra_defval; const INTEGER_template& tr__PCUIF__RACH__IND_ra_defval = template_tr__PCUIF__RACH__IND_ra_defval; static INTEGER_template template_tr__PCUIF__RACH__IND_is__11bit_defval; const INTEGER_template& tr__PCUIF__RACH__IND_is__11bit_defval = template_tr__PCUIF__RACH__IND_is__11bit_defval; static PCUIF__BurstType_template template_tr__PCUIF__RACH__IND_burst__type_defval; const PCUIF__BurstType_template& tr__PCUIF__RACH__IND_burst__type_defval = template_tr__PCUIF__RACH__IND_burst__type_defval; static INTEGER_template template_tr__PCUIF__RACH__IND_fn_defval; const INTEGER_template& tr__PCUIF__RACH__IND_fn_defval = template_tr__PCUIF__RACH__IND_fn_defval; static INTEGER_template template_tr__PCUIF__PAG__REQ_bts__nr_defval; const INTEGER_template& tr__PCUIF__PAG__REQ_bts__nr_defval = template_tr__PCUIF__PAG__REQ_bts__nr_defval; static OCTETSTRING_template template_tr__PCUIF__PAG__REQ_id__lv_defval; const OCTETSTRING_template& tr__PCUIF__PAG__REQ_id__lv_defval = template_tr__PCUIF__PAG__REQ_id__lv_defval; static INTEGER_template template_tr__PCUIF__PAG__REQ_chan__needed_defval; const INTEGER_template& tr__PCUIF__PAG__REQ_chan__needed_defval = template_tr__PCUIF__PAG__REQ_chan__needed_defval; static PCUIF__Sapi_template template_tr__PCUIF__PAG__REQ_sapi_defval; const PCUIF__Sapi_template& tr__PCUIF__PAG__REQ_sapi_defval = template_tr__PCUIF__PAG__REQ_sapi_defval; static PCUIF__Flags const_c__PCUIF__Flags__default; const PCUIF__Flags& c__PCUIF__Flags__default = const_c__PCUIF__Flags__default; static INTEGER_template template_ts__PCUIF__InfoTrx_arfcn_defval; const INTEGER_template& ts__PCUIF__InfoTrx_arfcn_defval = template_ts__PCUIF__InfoTrx_arfcn_defval; static BITSTRING_template template_ts__PCUIF__InfoTrx_pdch__mask_defval; const BITSTRING_template& ts__PCUIF__InfoTrx_pdch__mask_defval = template_ts__PCUIF__InfoTrx_pdch__mask_defval; static OCTETSTRING const_ts__PCUIF__InfoTrx_tsc_defval; const OCTETSTRING& ts__PCUIF__InfoTrx_tsc_defval = const_ts__PCUIF__InfoTrx_tsc_defval; static PCUIF__InfoTrx_template template_ts__PCUIF__InfoTrxNULL; const PCUIF__InfoTrx_template& ts__PCUIF__InfoTrxNULL = template_ts__PCUIF__InfoTrxNULL; static PCUIF__InfoTrxs_template template_ts__PCUIF__InfoTrxs__def; const PCUIF__InfoTrxs_template& ts__PCUIF__InfoTrxs__def = template_ts__PCUIF__InfoTrxs__def; static PCUIF__Flags_template template_ts__PCUIF__INFO__IND_flags_defval; const PCUIF__Flags_template& ts__PCUIF__INFO__IND_flags_defval = template_ts__PCUIF__INFO__IND_flags_defval; static INTEGER_template template_ts__PCUIF__INFO__IND_mcc_defval; const INTEGER_template& ts__PCUIF__INFO__IND_mcc_defval = template_ts__PCUIF__INFO__IND_mcc_defval; static INTEGER_template template_ts__PCUIF__INFO__IND_mnc_defval; const INTEGER_template& ts__PCUIF__INFO__IND_mnc_defval = template_ts__PCUIF__INFO__IND_mnc_defval; static INTEGER_template template_ts__PCUIF__INFO__IND_lac_defval; const INTEGER_template& ts__PCUIF__INFO__IND_lac_defval = template_ts__PCUIF__INFO__IND_lac_defval; static INTEGER_template template_ts__PCUIF__INFO__IND_rac_defval; const INTEGER_template& ts__PCUIF__INFO__IND_rac_defval = template_ts__PCUIF__INFO__IND_rac_defval; static INTEGER_template template_ts__PCUIF__INFO__IND_cell__id_defval; const INTEGER_template& ts__PCUIF__INFO__IND_cell__id_defval = template_ts__PCUIF__INFO__IND_cell__id_defval; static INTEGER_template template_ts__PCUIF__INFO__IND_bsic_defval; const INTEGER_template& ts__PCUIF__INFO__IND_bsic_defval = template_ts__PCUIF__INFO__IND_bsic_defval; static PCUIF__InfoTrxs_template template_ts__PCUIF__INFO__IND_trx_defval; const PCUIF__InfoTrxs_template& ts__PCUIF__INFO__IND_trx_defval = template_ts__PCUIF__INFO__IND_trx_defval; static INTEGER_template template_ts__PCUIF__INFO__IND_version_defval; const INTEGER_template& ts__PCUIF__INFO__IND_version_defval = template_ts__PCUIF__INFO__IND_version_defval; static INTEGER_template template_tr__PCUIF__INFO__IND_bts__nr_defval; const INTEGER_template& tr__PCUIF__INFO__IND_bts__nr_defval = template_tr__PCUIF__INFO__IND_bts__nr_defval; static PCUIF__Flags_template template_tr__PCUIF__INFO__IND_flags_defval; const PCUIF__Flags_template& tr__PCUIF__INFO__IND_flags_defval = template_tr__PCUIF__INFO__IND_flags_defval; static INTEGER_template template_tr__PCUIF__INFO__IND_version_defval; const INTEGER_template& tr__PCUIF__INFO__IND_version_defval = template_tr__PCUIF__INFO__IND_version_defval; TTCN_Module module_object("PCUIF_Types", __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_5, current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_1); /* Member functions of C++ classes */ PCUIF__MsgType::PCUIF__MsgType() { enum_value = UNBOUND_VALUE; } PCUIF__MsgType::PCUIF__MsgType(int other_value) { if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @PCUIF_Types.PCUIF_MsgType with invalid numeric value %d.", other_value); enum_value = (enum_type)other_value; } PCUIF__MsgType::PCUIF__MsgType(enum_type other_value) { enum_value = other_value; } PCUIF__MsgType::PCUIF__MsgType(const PCUIF__MsgType& other_value) : Base_Type() { if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @PCUIF_Types.PCUIF_MsgType."); enum_value = other_value.enum_value; } PCUIF__MsgType& PCUIF__MsgType::operator=(int other_value) { if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @PCUIF_Types.PCUIF_MsgType.", other_value); enum_value = (enum_type)other_value; return *this; } PCUIF__MsgType& PCUIF__MsgType::operator=(enum_type other_value) { enum_value = other_value; return *this; } PCUIF__MsgType& PCUIF__MsgType::operator=(const PCUIF__MsgType& other_value) { if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @PCUIF_Types.PCUIF_MsgType."); enum_value = other_value.enum_value; return *this; } boolean PCUIF__MsgType::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 @PCUIF_Types.PCUIF_MsgType."); return enum_value == other_value; } boolean PCUIF__MsgType::operator==(const PCUIF__MsgType& other_value) const { if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_MsgType."); if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_MsgType."); return enum_value == other_value.enum_value; } boolean PCUIF__MsgType::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 @PCUIF_Types.PCUIF_MsgType."); return enum_value < other_value; } boolean PCUIF__MsgType::operator<(const PCUIF__MsgType& other_value) const { if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_MsgType."); if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_MsgType."); return enum_value < other_value.enum_value; } boolean PCUIF__MsgType::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 @PCUIF_Types.PCUIF_MsgType."); return enum_value > other_value; } boolean PCUIF__MsgType::operator>(const PCUIF__MsgType& other_value) const { if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_MsgType."); if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_MsgType."); return enum_value > other_value.enum_value; } const char *PCUIF__MsgType::enum_to_str(enum_type enum_par) { switch (enum_par) { case PCU__IF__MSG__DATA__REQ: return "PCU_IF_MSG_DATA_REQ"; case PCU__IF__MSG__DATA__CNF: return "PCU_IF_MSG_DATA_CNF"; case PCU__IF__MSG__DATA__IND: return "PCU_IF_MSG_DATA_IND"; case PCU__IF__MSG__SUSP__REQ: return "PCU_IF_MSG_SUSP_REQ"; case PCU__IF__MSG__RTS__REQ: return "PCU_IF_MSG_RTS_REQ"; case PCU__IF__MSG__DATA__CNF__DT: return "PCU_IF_MSG_DATA_CNF_DT"; case PCU__IF__MSG__RACH__IND: return "PCU_IF_MSG_RACH_IND"; case PCU__IF__MSG__INFO__IND: return "PCU_IF_MSG_INFO_IND"; case PCU__IF__MSG__ACT__REQ: return "PCU_IF_MSG_ACT_REQ"; case PCU__IF__MSG__TIME__IND: return "PCU_IF_MSG_TIME_IND"; case PCU__IF__MSG__PAG__REQ: return "PCU_IF_MSG_PAG_REQ"; case PCU__IF__MSG__TXT__IND: return "PCU_IF_MSG_TXT_IND"; default: return ""; } } PCUIF__MsgType::enum_type PCUIF__MsgType::str_to_enum(const char *str_par) { if (!strcmp(str_par, "PCU_IF_MSG_DATA_REQ")) return PCU__IF__MSG__DATA__REQ; else if (!strcmp(str_par, "PCU_IF_MSG_DATA_CNF")) return PCU__IF__MSG__DATA__CNF; else if (!strcmp(str_par, "PCU_IF_MSG_DATA_IND")) return PCU__IF__MSG__DATA__IND; else if (!strcmp(str_par, "PCU_IF_MSG_SUSP_REQ")) return PCU__IF__MSG__SUSP__REQ; else if (!strcmp(str_par, "PCU_IF_MSG_RTS_REQ")) return PCU__IF__MSG__RTS__REQ; else if (!strcmp(str_par, "PCU_IF_MSG_DATA_CNF_DT")) return PCU__IF__MSG__DATA__CNF__DT; else if (!strcmp(str_par, "PCU_IF_MSG_RACH_IND")) return PCU__IF__MSG__RACH__IND; else if (!strcmp(str_par, "PCU_IF_MSG_INFO_IND")) return PCU__IF__MSG__INFO__IND; else if (!strcmp(str_par, "PCU_IF_MSG_ACT_REQ")) return PCU__IF__MSG__ACT__REQ; else if (!strcmp(str_par, "PCU_IF_MSG_TIME_IND")) return PCU__IF__MSG__TIME__IND; else if (!strcmp(str_par, "PCU_IF_MSG_PAG_REQ")) return PCU__IF__MSG__PAG__REQ; else if (!strcmp(str_par, "PCU_IF_MSG_TXT_IND")) return PCU__IF__MSG__TXT__IND; else return UNKNOWN_VALUE; } boolean PCUIF__MsgType::is_valid_enum(int int_par) { switch (int_par) { case 0: case 1: case 2: case 3: case 16: case 17: case 34: case 50: case 64: case 82: case 96: case 112: return TRUE; default: return FALSE; } } int PCUIF__MsgType::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 @PCUIF_Types.PCUIF_MsgType.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); return enum_par; } int PCUIF__MsgType::enum2int(const PCUIF__MsgType& 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 @PCUIF_Types.PCUIF_MsgType.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); return enum_par.enum_value; } void PCUIF__MsgType::int2enum(int int_val) { if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @PCUIF_Types.PCUIF_MsgType.", int_val); enum_value = (enum_type)int_val; } PCUIF__MsgType::operator PCUIF__MsgType::enum_type() const { if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @PCUIF_Types.PCUIF_MsgType."); return enum_value; } void PCUIF__MsgType::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 PCUIF__MsgType::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", "@PCUIF_Types.PCUIF_MsgType"); enum_value = str_to_enum(param.get_enumerated()); if (!is_valid_enum(enum_value)) { param.error("Invalid enumerated value for type @PCUIF_Types.PCUIF_MsgType."); } } void PCUIF__MsgType::encode_text(Text_Buf& text_buf) const { if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @PCUIF_Types.PCUIF_MsgType."); text_buf.push_int(enum_value); } void PCUIF__MsgType::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 @PCUIF_Types.PCUIF_MsgType.", enum_value); } void PCUIF__MsgType::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 PCUIF__MsgType::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 PCUIF__MsgType::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*) { int decoded_value = 0; int decoded_length = RAW_decode_enum_type(p_td, p_buf, limit, top_bit_ord, decoded_value, 7, no_err); if (decoded_length < 0) return decoded_length; if (is_valid_enum(decoded_value)) enum_value = (enum_type)decoded_value; else { if(no_err){ return -1; } else { TTCN_EncDec_ErrorContext::error (TTCN_EncDec::ET_ENC_ENUM, "Invalid enum value '%d' for '%s': ",decoded_value, p_td.name); enum_value = UNKNOWN_VALUE; } } return decoded_length; } int PCUIF__MsgType::RAW_encode(const TTCN_Typedescriptor_t& p_td, RAW_enc_tree& myleaf) const { return RAW_encode_enum_type(p_td, myleaf, (int)enum_value, 7); } void PCUIF__MsgType_template::copy_template(const PCUIF__MsgType_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 PCUIF__MsgType_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 @PCUIF_Types.PCUIF_MsgType."); } } PCUIF__MsgType_template::PCUIF__MsgType_template() { } PCUIF__MsgType_template::PCUIF__MsgType_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__MsgType_template::PCUIF__MsgType_template(int other_value) : Base_Template(SPECIFIC_VALUE) { if (!PCUIF__MsgType::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @PCUIF_Types.PCUIF_MsgType with unknown numeric value %d.", other_value); single_value = (PCUIF__MsgType::enum_type)other_value; } PCUIF__MsgType_template::PCUIF__MsgType_template(PCUIF__MsgType::enum_type other_value) : Base_Template(SPECIFIC_VALUE) { single_value = other_value; } PCUIF__MsgType_template::PCUIF__MsgType_template(const PCUIF__MsgType& other_value) : Base_Template(SPECIFIC_VALUE) { if (other_value.enum_value == PCUIF__MsgType::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @PCUIF_Types.PCUIF_MsgType."); single_value = other_value.enum_value; } PCUIF__MsgType_template::PCUIF__MsgType_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: set_selection(SPECIFIC_VALUE); single_value = (PCUIF__MsgType::enum_type)(const PCUIF__MsgType&)other_value; break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of enumerated type @PCUIF_Types.PCUIF_MsgType from an unbound optional field."); } } PCUIF__MsgType_template::PCUIF__MsgType_template(const PCUIF__MsgType_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__MsgType_template::~PCUIF__MsgType_template() { clean_up(); } boolean PCUIF__MsgType_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; return TRUE; } boolean PCUIF__MsgType_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; return single_value != PCUIF__MsgType::UNBOUND_VALUE; } void PCUIF__MsgType_template::clean_up() { if (template_selection == VALUE_LIST || template_selection == COMPLEMENTED_LIST) delete [] value_list.list_value; template_selection = UNINITIALIZED_TEMPLATE; } PCUIF__MsgType_template& PCUIF__MsgType_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__MsgType_template& PCUIF__MsgType_template::operator=(int other_value) { if (!PCUIF__MsgType::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @PCUIF_Types.PCUIF_MsgType.", other_value); clean_up(); set_selection(SPECIFIC_VALUE); single_value = (PCUIF__MsgType::enum_type)other_value; return *this; } PCUIF__MsgType_template& PCUIF__MsgType_template::operator=(PCUIF__MsgType::enum_type other_value) { clean_up(); set_selection(SPECIFIC_VALUE); single_value = other_value; return *this; } PCUIF__MsgType_template& PCUIF__MsgType_template::operator=(const PCUIF__MsgType& other_value) { if (other_value.enum_value == PCUIF__MsgType::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @PCUIF_Types.PCUIF_MsgType to a template."); clean_up(); set_selection(SPECIFIC_VALUE); single_value = other_value.enum_value; return *this; } PCUIF__MsgType_template& PCUIF__MsgType_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: set_selection(SPECIFIC_VALUE); single_value = (PCUIF__MsgType::enum_type)(const PCUIF__MsgType&)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 @PCUIF_Types.PCUIF_MsgType."); } return *this; } PCUIF__MsgType_template& PCUIF__MsgType_template::operator=(const PCUIF__MsgType_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__MsgType_template::match(PCUIF__MsgType::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 @PCUIF_Types.PCUIF_MsgType."); } return FALSE; } boolean PCUIF__MsgType_template::match(const PCUIF__MsgType& other_value, boolean) const { if (other_value.enum_value == PCUIF__MsgType::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @PCUIF_Types.PCUIF_MsgType with an unbound value."); return match(other_value.enum_value); } PCUIF__MsgType::enum_type PCUIF__MsgType_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 @PCUIF_Types.PCUIF_MsgType."); return single_value; } void PCUIF__MsgType_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 @PCUIF_Types.PCUIF_MsgType."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__MsgType_template[list_length]; } PCUIF__MsgType_template& PCUIF__MsgType_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 @PCUIF_Types.PCUIF_MsgType."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @PCUIF_Types.PCUIF_MsgType."); return value_list.list_value[list_index]; } void PCUIF__MsgType_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_enum(PCUIF__MsgType::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 PCUIF__MsgType_template::log_match(const PCUIF__MsgType& 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 PCUIF__MsgType_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 @PCUIF_Types.PCUIF_MsgType."); } } void PCUIF__MsgType_template::decode_text(Text_Buf& text_buf) { clean_up(); decode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value = (PCUIF__MsgType::enum_type)text_buf.pull_int().get_val(); if (!PCUIF__MsgType::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @PCUIF_Types.PCUIF_MsgType.", 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 PCUIF__MsgType_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 @PCUIF_Types.PCUIF_MsgType."); } } boolean PCUIF__MsgType_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__MsgType_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; iget_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: { PCUIF__MsgType_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_iget_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: { PCUIF__MsgType::enum_type enum_val = PCUIF__MsgType::str_to_enum(m_p->get_enumerated()); if (!PCUIF__MsgType::is_valid_enum(enum_val)) { param.error("Invalid enumerated value for type @PCUIF_Types.PCUIF_MsgType."); } *this = enum_val; } break; default: param.type_error("enumerated template", "@PCUIF_Types.PCUIF_MsgType"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__MsgType_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 : "@PCUIF_Types.PCUIF_MsgType"); } PCUIF__Sapi::PCUIF__Sapi() { enum_value = UNBOUND_VALUE; } PCUIF__Sapi::PCUIF__Sapi(int other_value) { if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @PCUIF_Types.PCUIF_Sapi with invalid numeric value %d.", other_value); enum_value = (enum_type)other_value; } PCUIF__Sapi::PCUIF__Sapi(enum_type other_value) { enum_value = other_value; } PCUIF__Sapi::PCUIF__Sapi(const PCUIF__Sapi& other_value) : Base_Type() { if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @PCUIF_Types.PCUIF_Sapi."); enum_value = other_value.enum_value; } PCUIF__Sapi& PCUIF__Sapi::operator=(int other_value) { if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @PCUIF_Types.PCUIF_Sapi.", other_value); enum_value = (enum_type)other_value; return *this; } PCUIF__Sapi& PCUIF__Sapi::operator=(enum_type other_value) { enum_value = other_value; return *this; } PCUIF__Sapi& PCUIF__Sapi::operator=(const PCUIF__Sapi& other_value) { if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @PCUIF_Types.PCUIF_Sapi."); enum_value = other_value.enum_value; return *this; } boolean PCUIF__Sapi::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 @PCUIF_Types.PCUIF_Sapi."); return enum_value == other_value; } boolean PCUIF__Sapi::operator==(const PCUIF__Sapi& other_value) const { if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_Sapi."); if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_Sapi."); return enum_value == other_value.enum_value; } boolean PCUIF__Sapi::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 @PCUIF_Types.PCUIF_Sapi."); return enum_value < other_value; } boolean PCUIF__Sapi::operator<(const PCUIF__Sapi& other_value) const { if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_Sapi."); if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_Sapi."); return enum_value < other_value.enum_value; } boolean PCUIF__Sapi::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 @PCUIF_Types.PCUIF_Sapi."); return enum_value > other_value; } boolean PCUIF__Sapi::operator>(const PCUIF__Sapi& other_value) const { if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_Sapi."); if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_Sapi."); return enum_value > other_value.enum_value; } const char *PCUIF__Sapi::enum_to_str(enum_type enum_par) { switch (enum_par) { case PCU__IF__SAPI__UNKNOWN: return "PCU_IF_SAPI_UNKNOWN"; case PCU__IF__SAPI__RACH: return "PCU_IF_SAPI_RACH"; case PCU__IF__SAPI__AGCH: return "PCU_IF_SAPI_AGCH"; case PCU__IF__SAPI__PCH: return "PCU_IF_SAPI_PCH"; case PCU__IF__SAPI__BCCH: return "PCU_IF_SAPI_BCCH"; case PCU__IF__SAPI__PDTCH: return "PCU_IF_SAPI_PDTCH"; case PCU__IF__SAPI__PRACH: return "PCU_IF_SAPI_PRACH"; case PCU__IF__SAPI__PTCCH: return "PCU_IF_SAPI_PTCCH"; case PCU__IF__SAPI__AGCH__DT: return "PCU_IF_SAPI_AGCH_DT"; default: return ""; } } PCUIF__Sapi::enum_type PCUIF__Sapi::str_to_enum(const char *str_par) { if (!strcmp(str_par, "PCU_IF_SAPI_UNKNOWN")) return PCU__IF__SAPI__UNKNOWN; else if (!strcmp(str_par, "PCU_IF_SAPI_RACH")) return PCU__IF__SAPI__RACH; else if (!strcmp(str_par, "PCU_IF_SAPI_AGCH")) return PCU__IF__SAPI__AGCH; else if (!strcmp(str_par, "PCU_IF_SAPI_PCH")) return PCU__IF__SAPI__PCH; else if (!strcmp(str_par, "PCU_IF_SAPI_BCCH")) return PCU__IF__SAPI__BCCH; else if (!strcmp(str_par, "PCU_IF_SAPI_PDTCH")) return PCU__IF__SAPI__PDTCH; else if (!strcmp(str_par, "PCU_IF_SAPI_PRACH")) return PCU__IF__SAPI__PRACH; else if (!strcmp(str_par, "PCU_IF_SAPI_PTCCH")) return PCU__IF__SAPI__PTCCH; else if (!strcmp(str_par, "PCU_IF_SAPI_AGCH_DT")) return PCU__IF__SAPI__AGCH__DT; else return UNKNOWN_VALUE; } boolean PCUIF__Sapi::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: return TRUE; default: return FALSE; } } int PCUIF__Sapi::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 @PCUIF_Types.PCUIF_Sapi.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); return enum_par; } int PCUIF__Sapi::enum2int(const PCUIF__Sapi& 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 @PCUIF_Types.PCUIF_Sapi.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); return enum_par.enum_value; } void PCUIF__Sapi::int2enum(int int_val) { if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @PCUIF_Types.PCUIF_Sapi.", int_val); enum_value = (enum_type)int_val; } PCUIF__Sapi::operator PCUIF__Sapi::enum_type() const { if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @PCUIF_Types.PCUIF_Sapi."); return enum_value; } void PCUIF__Sapi::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 PCUIF__Sapi::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", "@PCUIF_Types.PCUIF_Sapi"); enum_value = str_to_enum(param.get_enumerated()); if (!is_valid_enum(enum_value)) { param.error("Invalid enumerated value for type @PCUIF_Types.PCUIF_Sapi."); } } void PCUIF__Sapi::encode_text(Text_Buf& text_buf) const { if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @PCUIF_Types.PCUIF_Sapi."); text_buf.push_int(enum_value); } void PCUIF__Sapi::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 @PCUIF_Types.PCUIF_Sapi.", enum_value); } void PCUIF__Sapi::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 PCUIF__Sapi::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 PCUIF__Sapi::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*) { int decoded_value = 0; int decoded_length = RAW_decode_enum_type(p_td, p_buf, limit, top_bit_ord, decoded_value, 4, no_err); if (decoded_length < 0) return decoded_length; if (is_valid_enum(decoded_value)) enum_value = (enum_type)decoded_value; else { if(no_err){ return -1; } else { TTCN_EncDec_ErrorContext::error (TTCN_EncDec::ET_ENC_ENUM, "Invalid enum value '%d' for '%s': ",decoded_value, p_td.name); enum_value = UNKNOWN_VALUE; } } return decoded_length; } int PCUIF__Sapi::RAW_encode(const TTCN_Typedescriptor_t& p_td, RAW_enc_tree& myleaf) const { return RAW_encode_enum_type(p_td, myleaf, (int)enum_value, 4); } void PCUIF__Sapi_template::copy_template(const PCUIF__Sapi_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 PCUIF__Sapi_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 @PCUIF_Types.PCUIF_Sapi."); } } PCUIF__Sapi_template::PCUIF__Sapi_template() { } PCUIF__Sapi_template::PCUIF__Sapi_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__Sapi_template::PCUIF__Sapi_template(int other_value) : Base_Template(SPECIFIC_VALUE) { if (!PCUIF__Sapi::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @PCUIF_Types.PCUIF_Sapi with unknown numeric value %d.", other_value); single_value = (PCUIF__Sapi::enum_type)other_value; } PCUIF__Sapi_template::PCUIF__Sapi_template(PCUIF__Sapi::enum_type other_value) : Base_Template(SPECIFIC_VALUE) { single_value = other_value; } PCUIF__Sapi_template::PCUIF__Sapi_template(const PCUIF__Sapi& other_value) : Base_Template(SPECIFIC_VALUE) { if (other_value.enum_value == PCUIF__Sapi::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @PCUIF_Types.PCUIF_Sapi."); single_value = other_value.enum_value; } PCUIF__Sapi_template::PCUIF__Sapi_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: set_selection(SPECIFIC_VALUE); single_value = (PCUIF__Sapi::enum_type)(const PCUIF__Sapi&)other_value; break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of enumerated type @PCUIF_Types.PCUIF_Sapi from an unbound optional field."); } } PCUIF__Sapi_template::PCUIF__Sapi_template(const PCUIF__Sapi_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__Sapi_template::~PCUIF__Sapi_template() { clean_up(); } boolean PCUIF__Sapi_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; return TRUE; } boolean PCUIF__Sapi_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; return single_value != PCUIF__Sapi::UNBOUND_VALUE; } void PCUIF__Sapi_template::clean_up() { if (template_selection == VALUE_LIST || template_selection == COMPLEMENTED_LIST) delete [] value_list.list_value; template_selection = UNINITIALIZED_TEMPLATE; } PCUIF__Sapi_template& PCUIF__Sapi_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__Sapi_template& PCUIF__Sapi_template::operator=(int other_value) { if (!PCUIF__Sapi::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @PCUIF_Types.PCUIF_Sapi.", other_value); clean_up(); set_selection(SPECIFIC_VALUE); single_value = (PCUIF__Sapi::enum_type)other_value; return *this; } PCUIF__Sapi_template& PCUIF__Sapi_template::operator=(PCUIF__Sapi::enum_type other_value) { clean_up(); set_selection(SPECIFIC_VALUE); single_value = other_value; return *this; } PCUIF__Sapi_template& PCUIF__Sapi_template::operator=(const PCUIF__Sapi& other_value) { if (other_value.enum_value == PCUIF__Sapi::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @PCUIF_Types.PCUIF_Sapi to a template."); clean_up(); set_selection(SPECIFIC_VALUE); single_value = other_value.enum_value; return *this; } PCUIF__Sapi_template& PCUIF__Sapi_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: set_selection(SPECIFIC_VALUE); single_value = (PCUIF__Sapi::enum_type)(const PCUIF__Sapi&)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 @PCUIF_Types.PCUIF_Sapi."); } return *this; } PCUIF__Sapi_template& PCUIF__Sapi_template::operator=(const PCUIF__Sapi_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__Sapi_template::match(PCUIF__Sapi::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 @PCUIF_Types.PCUIF_Sapi."); } return FALSE; } boolean PCUIF__Sapi_template::match(const PCUIF__Sapi& other_value, boolean) const { if (other_value.enum_value == PCUIF__Sapi::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @PCUIF_Types.PCUIF_Sapi with an unbound value."); return match(other_value.enum_value); } PCUIF__Sapi::enum_type PCUIF__Sapi_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 @PCUIF_Types.PCUIF_Sapi."); return single_value; } void PCUIF__Sapi_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 @PCUIF_Types.PCUIF_Sapi."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__Sapi_template[list_length]; } PCUIF__Sapi_template& PCUIF__Sapi_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 @PCUIF_Types.PCUIF_Sapi."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @PCUIF_Types.PCUIF_Sapi."); return value_list.list_value[list_index]; } void PCUIF__Sapi_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_enum(PCUIF__Sapi::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 PCUIF__Sapi_template::log_match(const PCUIF__Sapi& 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 PCUIF__Sapi_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 @PCUIF_Types.PCUIF_Sapi."); } } void PCUIF__Sapi_template::decode_text(Text_Buf& text_buf) { clean_up(); decode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value = (PCUIF__Sapi::enum_type)text_buf.pull_int().get_val(); if (!PCUIF__Sapi::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @PCUIF_Types.PCUIF_Sapi.", 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 PCUIF__Sapi_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 @PCUIF_Types.PCUIF_Sapi."); } } boolean PCUIF__Sapi_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__Sapi_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; iget_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: { PCUIF__Sapi_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_iget_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: { PCUIF__Sapi::enum_type enum_val = PCUIF__Sapi::str_to_enum(m_p->get_enumerated()); if (!PCUIF__Sapi::is_valid_enum(enum_val)) { param.error("Invalid enumerated value for type @PCUIF_Types.PCUIF_Sapi."); } *this = enum_val; } break; default: param.type_error("enumerated template", "@PCUIF_Types.PCUIF_Sapi"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__Sapi_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 : "@PCUIF_Types.PCUIF_Sapi"); } PCUIF__Flags::PCUIF__Flags() { } PCUIF__Flags::PCUIF__Flags(const BOOLEAN& par_bts__active, const BOOLEAN& par_sysmo__direct__dsp, const BITSTRING& par_spare, const BOOLEAN& par_cs1, const BOOLEAN& par_cs2, const BOOLEAN& par_cs3, const BOOLEAN& par_cs4, const BOOLEAN& par_mcs1, const BOOLEAN& par_mcs2, const BOOLEAN& par_mcs3, const BOOLEAN& par_mcs4, const BOOLEAN& par_mcs5, const BOOLEAN& par_mcs6, const BOOLEAN& par_mcs7, const BOOLEAN& par_mcs8, const BOOLEAN& par_mcs9, const BITSTRING& par_spare2) : field_bts__active(par_bts__active), field_sysmo__direct__dsp(par_sysmo__direct__dsp), field_spare(par_spare), field_cs1(par_cs1), field_cs2(par_cs2), field_cs3(par_cs3), field_cs4(par_cs4), field_mcs1(par_mcs1), field_mcs2(par_mcs2), field_mcs3(par_mcs3), field_mcs4(par_mcs4), field_mcs5(par_mcs5), field_mcs6(par_mcs6), field_mcs7(par_mcs7), field_mcs8(par_mcs8), field_mcs9(par_mcs9), field_spare2(par_spare2) { } PCUIF__Flags::PCUIF__Flags(const PCUIF__Flags& other_value) { if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_Flags."); if (other_value.bts__active().is_bound()) field_bts__active = other_value.bts__active(); else field_bts__active.clean_up(); if (other_value.sysmo__direct__dsp().is_bound()) field_sysmo__direct__dsp = other_value.sysmo__direct__dsp(); else field_sysmo__direct__dsp.clean_up(); if (other_value.spare().is_bound()) field_spare = other_value.spare(); else field_spare.clean_up(); if (other_value.cs1().is_bound()) field_cs1 = other_value.cs1(); else field_cs1.clean_up(); if (other_value.cs2().is_bound()) field_cs2 = other_value.cs2(); else field_cs2.clean_up(); if (other_value.cs3().is_bound()) field_cs3 = other_value.cs3(); else field_cs3.clean_up(); if (other_value.cs4().is_bound()) field_cs4 = other_value.cs4(); else field_cs4.clean_up(); if (other_value.mcs1().is_bound()) field_mcs1 = other_value.mcs1(); else field_mcs1.clean_up(); if (other_value.mcs2().is_bound()) field_mcs2 = other_value.mcs2(); else field_mcs2.clean_up(); if (other_value.mcs3().is_bound()) field_mcs3 = other_value.mcs3(); else field_mcs3.clean_up(); if (other_value.mcs4().is_bound()) field_mcs4 = other_value.mcs4(); else field_mcs4.clean_up(); if (other_value.mcs5().is_bound()) field_mcs5 = other_value.mcs5(); else field_mcs5.clean_up(); if (other_value.mcs6().is_bound()) field_mcs6 = other_value.mcs6(); else field_mcs6.clean_up(); if (other_value.mcs7().is_bound()) field_mcs7 = other_value.mcs7(); else field_mcs7.clean_up(); if (other_value.mcs8().is_bound()) field_mcs8 = other_value.mcs8(); else field_mcs8.clean_up(); if (other_value.mcs9().is_bound()) field_mcs9 = other_value.mcs9(); else field_mcs9.clean_up(); if (other_value.spare2().is_bound()) field_spare2 = other_value.spare2(); else field_spare2.clean_up(); } void PCUIF__Flags::clean_up() { field_bts__active.clean_up(); field_sysmo__direct__dsp.clean_up(); field_spare.clean_up(); field_cs1.clean_up(); field_cs2.clean_up(); field_cs3.clean_up(); field_cs4.clean_up(); field_mcs1.clean_up(); field_mcs2.clean_up(); field_mcs3.clean_up(); field_mcs4.clean_up(); field_mcs5.clean_up(); field_mcs6.clean_up(); field_mcs7.clean_up(); field_mcs8.clean_up(); field_mcs9.clean_up(); field_spare2.clean_up(); } const TTCN_Typedescriptor_t* PCUIF__Flags::get_descriptor() const { return &PCUIF__Flags_descr_; } PCUIF__Flags& PCUIF__Flags::operator=(const PCUIF__Flags& other_value) { if (this != &other_value) { if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @PCUIF_Types.PCUIF_Flags."); if (other_value.bts__active().is_bound()) field_bts__active = other_value.bts__active(); else field_bts__active.clean_up(); if (other_value.sysmo__direct__dsp().is_bound()) field_sysmo__direct__dsp = other_value.sysmo__direct__dsp(); else field_sysmo__direct__dsp.clean_up(); if (other_value.spare().is_bound()) field_spare = other_value.spare(); else field_spare.clean_up(); if (other_value.cs1().is_bound()) field_cs1 = other_value.cs1(); else field_cs1.clean_up(); if (other_value.cs2().is_bound()) field_cs2 = other_value.cs2(); else field_cs2.clean_up(); if (other_value.cs3().is_bound()) field_cs3 = other_value.cs3(); else field_cs3.clean_up(); if (other_value.cs4().is_bound()) field_cs4 = other_value.cs4(); else field_cs4.clean_up(); if (other_value.mcs1().is_bound()) field_mcs1 = other_value.mcs1(); else field_mcs1.clean_up(); if (other_value.mcs2().is_bound()) field_mcs2 = other_value.mcs2(); else field_mcs2.clean_up(); if (other_value.mcs3().is_bound()) field_mcs3 = other_value.mcs3(); else field_mcs3.clean_up(); if (other_value.mcs4().is_bound()) field_mcs4 = other_value.mcs4(); else field_mcs4.clean_up(); if (other_value.mcs5().is_bound()) field_mcs5 = other_value.mcs5(); else field_mcs5.clean_up(); if (other_value.mcs6().is_bound()) field_mcs6 = other_value.mcs6(); else field_mcs6.clean_up(); if (other_value.mcs7().is_bound()) field_mcs7 = other_value.mcs7(); else field_mcs7.clean_up(); if (other_value.mcs8().is_bound()) field_mcs8 = other_value.mcs8(); else field_mcs8.clean_up(); if (other_value.mcs9().is_bound()) field_mcs9 = other_value.mcs9(); else field_mcs9.clean_up(); if (other_value.spare2().is_bound()) field_spare2 = other_value.spare2(); else field_spare2.clean_up(); } return *this; } boolean PCUIF__Flags::operator==(const PCUIF__Flags& other_value) const { return field_bts__active==other_value.field_bts__active && field_sysmo__direct__dsp==other_value.field_sysmo__direct__dsp && field_spare==other_value.field_spare && field_cs1==other_value.field_cs1 && field_cs2==other_value.field_cs2 && field_cs3==other_value.field_cs3 && field_cs4==other_value.field_cs4 && field_mcs1==other_value.field_mcs1 && field_mcs2==other_value.field_mcs2 && field_mcs3==other_value.field_mcs3 && field_mcs4==other_value.field_mcs4 && field_mcs5==other_value.field_mcs5 && field_mcs6==other_value.field_mcs6 && field_mcs7==other_value.field_mcs7 && field_mcs8==other_value.field_mcs8 && field_mcs9==other_value.field_mcs9 && field_spare2==other_value.field_spare2; } boolean PCUIF__Flags::is_bound() const { if(field_bts__active.is_bound()) return TRUE; if(field_sysmo__direct__dsp.is_bound()) return TRUE; if(field_spare.is_bound()) return TRUE; if(field_cs1.is_bound()) return TRUE; if(field_cs2.is_bound()) return TRUE; if(field_cs3.is_bound()) return TRUE; if(field_cs4.is_bound()) return TRUE; if(field_mcs1.is_bound()) return TRUE; if(field_mcs2.is_bound()) return TRUE; if(field_mcs3.is_bound()) return TRUE; if(field_mcs4.is_bound()) return TRUE; if(field_mcs5.is_bound()) return TRUE; if(field_mcs6.is_bound()) return TRUE; if(field_mcs7.is_bound()) return TRUE; if(field_mcs8.is_bound()) return TRUE; if(field_mcs9.is_bound()) return TRUE; if(field_spare2.is_bound()) return TRUE; return FALSE; } boolean PCUIF__Flags::is_value() const { if(!field_bts__active.is_value()) return FALSE; if(!field_sysmo__direct__dsp.is_value()) return FALSE; if(!field_spare.is_value()) return FALSE; if(!field_cs1.is_value()) return FALSE; if(!field_cs2.is_value()) return FALSE; if(!field_cs3.is_value()) return FALSE; if(!field_cs4.is_value()) return FALSE; if(!field_mcs1.is_value()) return FALSE; if(!field_mcs2.is_value()) return FALSE; if(!field_mcs3.is_value()) return FALSE; if(!field_mcs4.is_value()) return FALSE; if(!field_mcs5.is_value()) return FALSE; if(!field_mcs6.is_value()) return FALSE; if(!field_mcs7.is_value()) return FALSE; if(!field_mcs8.is_value()) return FALSE; if(!field_mcs9.is_value()) return FALSE; if(!field_spare2.is_value()) return FALSE; return TRUE; } void PCUIF__Flags::log() const { if (!is_bound()) { TTCN_Logger::log_event_unbound(); return; } TTCN_Logger::log_event_str("{ bts_active := "); field_bts__active.log(); TTCN_Logger::log_event_str(", sysmo_direct_dsp := "); field_sysmo__direct__dsp.log(); TTCN_Logger::log_event_str(", spare := "); field_spare.log(); TTCN_Logger::log_event_str(", cs1 := "); field_cs1.log(); TTCN_Logger::log_event_str(", cs2 := "); field_cs2.log(); TTCN_Logger::log_event_str(", cs3 := "); field_cs3.log(); TTCN_Logger::log_event_str(", cs4 := "); field_cs4.log(); TTCN_Logger::log_event_str(", mcs1 := "); field_mcs1.log(); TTCN_Logger::log_event_str(", mcs2 := "); field_mcs2.log(); TTCN_Logger::log_event_str(", mcs3 := "); field_mcs3.log(); TTCN_Logger::log_event_str(", mcs4 := "); field_mcs4.log(); TTCN_Logger::log_event_str(", mcs5 := "); field_mcs5.log(); TTCN_Logger::log_event_str(", mcs6 := "); field_mcs6.log(); TTCN_Logger::log_event_str(", mcs7 := "); field_mcs7.log(); TTCN_Logger::log_event_str(", mcs8 := "); field_mcs8.log(); TTCN_Logger::log_event_str(", mcs9 := "); field_mcs9.log(); TTCN_Logger::log_event_str(", spare2 := "); field_spare2.log(); TTCN_Logger::log_event_str(" }"); } void PCUIF__Flags::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 (170 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) bts__active().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) sysmo__direct__dsp().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) spare().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) cs1().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) cs2().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) cs3().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) cs4().set_param(*param.get_elem(6)); if (param.get_size()>7 && param.get_elem(7)->get_type()!=Module_Param::MP_NotUsed) mcs1().set_param(*param.get_elem(7)); if (param.get_size()>8 && param.get_elem(8)->get_type()!=Module_Param::MP_NotUsed) mcs2().set_param(*param.get_elem(8)); if (param.get_size()>9 && param.get_elem(9)->get_type()!=Module_Param::MP_NotUsed) mcs3().set_param(*param.get_elem(9)); if (param.get_size()>10 && param.get_elem(10)->get_type()!=Module_Param::MP_NotUsed) mcs4().set_param(*param.get_elem(10)); if (param.get_size()>11 && param.get_elem(11)->get_type()!=Module_Param::MP_NotUsed) mcs5().set_param(*param.get_elem(11)); if (param.get_size()>12 && param.get_elem(12)->get_type()!=Module_Param::MP_NotUsed) mcs6().set_param(*param.get_elem(12)); if (param.get_size()>13 && param.get_elem(13)->get_type()!=Module_Param::MP_NotUsed) mcs7().set_param(*param.get_elem(13)); if (param.get_size()>14 && param.get_elem(14)->get_type()!=Module_Param::MP_NotUsed) mcs8().set_param(*param.get_elem(14)); if (param.get_size()>15 && param.get_elem(15)->get_type()!=Module_Param::MP_NotUsed) mcs9().set_param(*param.get_elem(15)); if (param.get_size()>16 && param.get_elem(16)->get_type()!=Module_Param::MP_NotUsed) spare2().set_param(*param.get_elem(16)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "bts_active")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { bts__active().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "sysmo_direct_dsp")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sysmo__direct__dsp().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "spare")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { spare().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cs1")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cs1().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cs2")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cs2().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cs3")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cs3().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cs4")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cs4().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs1")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs1().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs2")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs2().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs3")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs3().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs4")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs4().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs5")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs5().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs6")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs6().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs7")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs7().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs8")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs8().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs9")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs9().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "spare2")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { spare2().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_Flags: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@PCUIF_Types.PCUIF_Flags"); } } void PCUIF__Flags::set_implicit_omit() { if (bts__active().is_bound()) bts__active().set_implicit_omit(); if (sysmo__direct__dsp().is_bound()) sysmo__direct__dsp().set_implicit_omit(); if (spare().is_bound()) spare().set_implicit_omit(); if (cs1().is_bound()) cs1().set_implicit_omit(); if (cs2().is_bound()) cs2().set_implicit_omit(); if (cs3().is_bound()) cs3().set_implicit_omit(); if (cs4().is_bound()) cs4().set_implicit_omit(); if (mcs1().is_bound()) mcs1().set_implicit_omit(); if (mcs2().is_bound()) mcs2().set_implicit_omit(); if (mcs3().is_bound()) mcs3().set_implicit_omit(); if (mcs4().is_bound()) mcs4().set_implicit_omit(); if (mcs5().is_bound()) mcs5().set_implicit_omit(); if (mcs6().is_bound()) mcs6().set_implicit_omit(); if (mcs7().is_bound()) mcs7().set_implicit_omit(); if (mcs8().is_bound()) mcs8().set_implicit_omit(); if (mcs9().is_bound()) mcs9().set_implicit_omit(); if (spare2().is_bound()) spare2().set_implicit_omit(); } void PCUIF__Flags::encode_text(Text_Buf& text_buf) const { field_bts__active.encode_text(text_buf); field_sysmo__direct__dsp.encode_text(text_buf); field_spare.encode_text(text_buf); field_cs1.encode_text(text_buf); field_cs2.encode_text(text_buf); field_cs3.encode_text(text_buf); field_cs4.encode_text(text_buf); field_mcs1.encode_text(text_buf); field_mcs2.encode_text(text_buf); field_mcs3.encode_text(text_buf); field_mcs4.encode_text(text_buf); field_mcs5.encode_text(text_buf); field_mcs6.encode_text(text_buf); field_mcs7.encode_text(text_buf); field_mcs8.encode_text(text_buf); field_mcs9.encode_text(text_buf); field_spare2.encode_text(text_buf); } void PCUIF__Flags::decode_text(Text_Buf& text_buf) { field_bts__active.decode_text(text_buf); field_sysmo__direct__dsp.decode_text(text_buf); field_spare.decode_text(text_buf); field_cs1.decode_text(text_buf); field_cs2.decode_text(text_buf); field_cs3.decode_text(text_buf); field_cs4.decode_text(text_buf); field_mcs1.decode_text(text_buf); field_mcs2.decode_text(text_buf); field_mcs3.decode_text(text_buf); field_mcs4.decode_text(text_buf); field_mcs5.decode_text(text_buf); field_mcs6.decode_text(text_buf); field_mcs7.decode_text(text_buf); field_mcs8.decode_text(text_buf); field_mcs9.decode_text(text_buf); field_spare2.decode_text(text_buf); } void PCUIF__Flags::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 PCUIF__Flags::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 PCUIF__Flags::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, PCUIF__Flags_bts__active_descr_.raw->forceomit); decoded_field_length = field_bts__active.RAW_decode(PCUIF__Flags_bts__active_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, PCUIF__Flags_sysmo__direct__dsp_descr_.raw->forceomit); decoded_field_length = field_sysmo__direct__dsp.RAW_decode(PCUIF__Flags_sysmo__direct__dsp_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()); RAW_Force_Omit field_2_force_omit(2, force_omit, PCUIF__Flags_spare_descr_.raw->forceomit); decoded_field_length = field_spare.RAW_decode(PCUIF__Flags_spare_descr_, p_buf, limit, local_top_order, no_err, -1, 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()); RAW_Force_Omit field_3_force_omit(3, force_omit, PCUIF__Flags_cs1_descr_.raw->forceomit); decoded_field_length = field_cs1.RAW_decode(PCUIF__Flags_cs1_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_3_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_4_force_omit(4, force_omit, PCUIF__Flags_cs2_descr_.raw->forceomit); decoded_field_length = field_cs2.RAW_decode(PCUIF__Flags_cs2_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_4_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_5_force_omit(5, force_omit, PCUIF__Flags_cs3_descr_.raw->forceomit); decoded_field_length = field_cs3.RAW_decode(PCUIF__Flags_cs3_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_5_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_6_force_omit(6, force_omit, PCUIF__Flags_cs4_descr_.raw->forceomit); decoded_field_length = field_cs4.RAW_decode(PCUIF__Flags_cs4_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_6_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_7_force_omit(7, force_omit, PCUIF__Flags_mcs1_descr_.raw->forceomit); decoded_field_length = field_mcs1.RAW_decode(PCUIF__Flags_mcs1_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_7_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_8_force_omit(8, force_omit, PCUIF__Flags_mcs2_descr_.raw->forceomit); decoded_field_length = field_mcs2.RAW_decode(PCUIF__Flags_mcs2_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_8_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_9_force_omit(9, force_omit, PCUIF__Flags_mcs3_descr_.raw->forceomit); decoded_field_length = field_mcs3.RAW_decode(PCUIF__Flags_mcs3_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_9_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_10_force_omit(10, force_omit, PCUIF__Flags_mcs4_descr_.raw->forceomit); decoded_field_length = field_mcs4.RAW_decode(PCUIF__Flags_mcs4_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_10_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_11_force_omit(11, force_omit, PCUIF__Flags_mcs5_descr_.raw->forceomit); decoded_field_length = field_mcs5.RAW_decode(PCUIF__Flags_mcs5_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_11_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_12_force_omit(12, force_omit, PCUIF__Flags_mcs6_descr_.raw->forceomit); decoded_field_length = field_mcs6.RAW_decode(PCUIF__Flags_mcs6_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_12_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_13_force_omit(13, force_omit, PCUIF__Flags_mcs7_descr_.raw->forceomit); decoded_field_length = field_mcs7.RAW_decode(PCUIF__Flags_mcs7_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_13_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_14_force_omit(14, force_omit, PCUIF__Flags_mcs8_descr_.raw->forceomit); decoded_field_length = field_mcs8.RAW_decode(PCUIF__Flags_mcs8_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_14_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_15_force_omit(15, force_omit, PCUIF__Flags_mcs9_descr_.raw->forceomit); decoded_field_length = field_mcs9.RAW_decode(PCUIF__Flags_mcs9_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_15_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_16_force_omit(16, force_omit, PCUIF__Flags_spare2_descr_.raw->forceomit); decoded_field_length = field_spare2.RAW_decode(PCUIF__Flags_spare2_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_16_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 PCUIF__Flags::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 = 17; myleaf.body.node.nodes = init_nodes_of_enc_tree(17); myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, PCUIF__Flags_bts__active_descr_.raw); myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, PCUIF__Flags_sysmo__direct__dsp_descr_.raw); myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 2, PCUIF__Flags_spare_descr_.raw); myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 3, PCUIF__Flags_cs1_descr_.raw); myleaf.body.node.nodes[4] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 4, PCUIF__Flags_cs2_descr_.raw); myleaf.body.node.nodes[5] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 5, PCUIF__Flags_cs3_descr_.raw); myleaf.body.node.nodes[6] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 6, PCUIF__Flags_cs4_descr_.raw); myleaf.body.node.nodes[7] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 7, PCUIF__Flags_mcs1_descr_.raw); myleaf.body.node.nodes[8] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 8, PCUIF__Flags_mcs2_descr_.raw); myleaf.body.node.nodes[9] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 9, PCUIF__Flags_mcs3_descr_.raw); myleaf.body.node.nodes[10] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 10, PCUIF__Flags_mcs4_descr_.raw); myleaf.body.node.nodes[11] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 11, PCUIF__Flags_mcs5_descr_.raw); myleaf.body.node.nodes[12] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 12, PCUIF__Flags_mcs6_descr_.raw); myleaf.body.node.nodes[13] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 13, PCUIF__Flags_mcs7_descr_.raw); myleaf.body.node.nodes[14] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 14, PCUIF__Flags_mcs8_descr_.raw); myleaf.body.node.nodes[15] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 15, PCUIF__Flags_mcs9_descr_.raw); myleaf.body.node.nodes[16] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 16, PCUIF__Flags_spare2_descr_.raw); encoded_length += field_bts__active.RAW_encode(PCUIF__Flags_bts__active_descr_, *myleaf.body.node.nodes[0]); encoded_length += field_sysmo__direct__dsp.RAW_encode(PCUIF__Flags_sysmo__direct__dsp_descr_, *myleaf.body.node.nodes[1]); encoded_length += field_spare.RAW_encode(PCUIF__Flags_spare_descr_, *myleaf.body.node.nodes[2]); encoded_length += field_cs1.RAW_encode(PCUIF__Flags_cs1_descr_, *myleaf.body.node.nodes[3]); encoded_length += field_cs2.RAW_encode(PCUIF__Flags_cs2_descr_, *myleaf.body.node.nodes[4]); encoded_length += field_cs3.RAW_encode(PCUIF__Flags_cs3_descr_, *myleaf.body.node.nodes[5]); encoded_length += field_cs4.RAW_encode(PCUIF__Flags_cs4_descr_, *myleaf.body.node.nodes[6]); encoded_length += field_mcs1.RAW_encode(PCUIF__Flags_mcs1_descr_, *myleaf.body.node.nodes[7]); encoded_length += field_mcs2.RAW_encode(PCUIF__Flags_mcs2_descr_, *myleaf.body.node.nodes[8]); encoded_length += field_mcs3.RAW_encode(PCUIF__Flags_mcs3_descr_, *myleaf.body.node.nodes[9]); encoded_length += field_mcs4.RAW_encode(PCUIF__Flags_mcs4_descr_, *myleaf.body.node.nodes[10]); encoded_length += field_mcs5.RAW_encode(PCUIF__Flags_mcs5_descr_, *myleaf.body.node.nodes[11]); encoded_length += field_mcs6.RAW_encode(PCUIF__Flags_mcs6_descr_, *myleaf.body.node.nodes[12]); encoded_length += field_mcs7.RAW_encode(PCUIF__Flags_mcs7_descr_, *myleaf.body.node.nodes[13]); encoded_length += field_mcs8.RAW_encode(PCUIF__Flags_mcs8_descr_, *myleaf.body.node.nodes[14]); encoded_length += field_mcs9.RAW_encode(PCUIF__Flags_mcs9_descr_, *myleaf.body.node.nodes[15]); encoded_length += field_spare2.RAW_encode(PCUIF__Flags_spare2_descr_, *myleaf.body.node.nodes[16]); return myleaf.length = encoded_length; } struct PCUIF__Flags_template::single_value_struct { BOOLEAN_template field_bts__active; BOOLEAN_template field_sysmo__direct__dsp; BITSTRING_template field_spare; BOOLEAN_template field_cs1; BOOLEAN_template field_cs2; BOOLEAN_template field_cs3; BOOLEAN_template field_cs4; BOOLEAN_template field_mcs1; BOOLEAN_template field_mcs2; BOOLEAN_template field_mcs3; BOOLEAN_template field_mcs4; BOOLEAN_template field_mcs5; BOOLEAN_template field_mcs6; BOOLEAN_template field_mcs7; BOOLEAN_template field_mcs8; BOOLEAN_template field_mcs9; BITSTRING_template field_spare2; }; void PCUIF__Flags_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_bts__active = ANY_VALUE; single_value->field_sysmo__direct__dsp = ANY_VALUE; single_value->field_spare = ANY_VALUE; single_value->field_cs1 = ANY_VALUE; single_value->field_cs2 = ANY_VALUE; single_value->field_cs3 = ANY_VALUE; single_value->field_cs4 = ANY_VALUE; single_value->field_mcs1 = ANY_VALUE; single_value->field_mcs2 = ANY_VALUE; single_value->field_mcs3 = ANY_VALUE; single_value->field_mcs4 = ANY_VALUE; single_value->field_mcs5 = ANY_VALUE; single_value->field_mcs6 = ANY_VALUE; single_value->field_mcs7 = ANY_VALUE; single_value->field_mcs8 = ANY_VALUE; single_value->field_mcs9 = ANY_VALUE; single_value->field_spare2 = ANY_VALUE; } } } void PCUIF__Flags_template::copy_value(const PCUIF__Flags& other_value) { single_value = new single_value_struct; if (other_value.bts__active().is_bound()) { single_value->field_bts__active = other_value.bts__active(); } else { single_value->field_bts__active.clean_up(); } if (other_value.sysmo__direct__dsp().is_bound()) { single_value->field_sysmo__direct__dsp = other_value.sysmo__direct__dsp(); } else { single_value->field_sysmo__direct__dsp.clean_up(); } if (other_value.spare().is_bound()) { single_value->field_spare = other_value.spare(); } else { single_value->field_spare.clean_up(); } if (other_value.cs1().is_bound()) { single_value->field_cs1 = other_value.cs1(); } else { single_value->field_cs1.clean_up(); } if (other_value.cs2().is_bound()) { single_value->field_cs2 = other_value.cs2(); } else { single_value->field_cs2.clean_up(); } if (other_value.cs3().is_bound()) { single_value->field_cs3 = other_value.cs3(); } else { single_value->field_cs3.clean_up(); } if (other_value.cs4().is_bound()) { single_value->field_cs4 = other_value.cs4(); } else { single_value->field_cs4.clean_up(); } if (other_value.mcs1().is_bound()) { single_value->field_mcs1 = other_value.mcs1(); } else { single_value->field_mcs1.clean_up(); } if (other_value.mcs2().is_bound()) { single_value->field_mcs2 = other_value.mcs2(); } else { single_value->field_mcs2.clean_up(); } if (other_value.mcs3().is_bound()) { single_value->field_mcs3 = other_value.mcs3(); } else { single_value->field_mcs3.clean_up(); } if (other_value.mcs4().is_bound()) { single_value->field_mcs4 = other_value.mcs4(); } else { single_value->field_mcs4.clean_up(); } if (other_value.mcs5().is_bound()) { single_value->field_mcs5 = other_value.mcs5(); } else { single_value->field_mcs5.clean_up(); } if (other_value.mcs6().is_bound()) { single_value->field_mcs6 = other_value.mcs6(); } else { single_value->field_mcs6.clean_up(); } if (other_value.mcs7().is_bound()) { single_value->field_mcs7 = other_value.mcs7(); } else { single_value->field_mcs7.clean_up(); } if (other_value.mcs8().is_bound()) { single_value->field_mcs8 = other_value.mcs8(); } else { single_value->field_mcs8.clean_up(); } if (other_value.mcs9().is_bound()) { single_value->field_mcs9 = other_value.mcs9(); } else { single_value->field_mcs9.clean_up(); } if (other_value.spare2().is_bound()) { single_value->field_spare2 = other_value.spare2(); } else { single_value->field_spare2.clean_up(); } set_selection(SPECIFIC_VALUE); } void PCUIF__Flags_template::copy_template(const PCUIF__Flags_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.bts__active().get_selection()) { single_value->field_bts__active = other_value.bts__active(); } else { single_value->field_bts__active.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.sysmo__direct__dsp().get_selection()) { single_value->field_sysmo__direct__dsp = other_value.sysmo__direct__dsp(); } else { single_value->field_sysmo__direct__dsp.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.spare().get_selection()) { single_value->field_spare = other_value.spare(); } else { single_value->field_spare.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.cs1().get_selection()) { single_value->field_cs1 = other_value.cs1(); } else { single_value->field_cs1.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.cs2().get_selection()) { single_value->field_cs2 = other_value.cs2(); } else { single_value->field_cs2.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.cs3().get_selection()) { single_value->field_cs3 = other_value.cs3(); } else { single_value->field_cs3.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.cs4().get_selection()) { single_value->field_cs4 = other_value.cs4(); } else { single_value->field_cs4.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mcs1().get_selection()) { single_value->field_mcs1 = other_value.mcs1(); } else { single_value->field_mcs1.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mcs2().get_selection()) { single_value->field_mcs2 = other_value.mcs2(); } else { single_value->field_mcs2.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mcs3().get_selection()) { single_value->field_mcs3 = other_value.mcs3(); } else { single_value->field_mcs3.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mcs4().get_selection()) { single_value->field_mcs4 = other_value.mcs4(); } else { single_value->field_mcs4.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mcs5().get_selection()) { single_value->field_mcs5 = other_value.mcs5(); } else { single_value->field_mcs5.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mcs6().get_selection()) { single_value->field_mcs6 = other_value.mcs6(); } else { single_value->field_mcs6.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mcs7().get_selection()) { single_value->field_mcs7 = other_value.mcs7(); } else { single_value->field_mcs7.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mcs8().get_selection()) { single_value->field_mcs8 = other_value.mcs8(); } else { single_value->field_mcs8.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mcs9().get_selection()) { single_value->field_mcs9 = other_value.mcs9(); } else { single_value->field_mcs9.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.spare2().get_selection()) { single_value->field_spare2 = other_value.spare2(); } else { single_value->field_spare2.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 PCUIF__Flags_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 @PCUIF_Types.PCUIF_Flags."); break; } set_selection(other_value); } PCUIF__Flags_template::PCUIF__Flags_template() { } PCUIF__Flags_template::PCUIF__Flags_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__Flags_template::PCUIF__Flags_template(const PCUIF__Flags& other_value) { copy_value(other_value); } PCUIF__Flags_template::PCUIF__Flags_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__Flags&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_Flags from an unbound optional field."); } } PCUIF__Flags_template::PCUIF__Flags_template(const PCUIF__Flags_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__Flags_template::~PCUIF__Flags_template() { clean_up(); } PCUIF__Flags_template& PCUIF__Flags_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__Flags_template& PCUIF__Flags_template::operator=(const PCUIF__Flags& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__Flags_template& PCUIF__Flags_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__Flags&)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 @PCUIF_Types.PCUIF_Flags."); } return *this; } PCUIF__Flags_template& PCUIF__Flags_template::operator=(const PCUIF__Flags_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__Flags_template::match(const PCUIF__Flags& 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.bts__active().is_bound()) return FALSE; if(!single_value->field_bts__active.match(other_value.bts__active(), legacy))return FALSE; if(!other_value.sysmo__direct__dsp().is_bound()) return FALSE; if(!single_value->field_sysmo__direct__dsp.match(other_value.sysmo__direct__dsp(), legacy))return FALSE; if(!other_value.spare().is_bound()) return FALSE; if(!single_value->field_spare.match(other_value.spare(), legacy))return FALSE; if(!other_value.cs1().is_bound()) return FALSE; if(!single_value->field_cs1.match(other_value.cs1(), legacy))return FALSE; if(!other_value.cs2().is_bound()) return FALSE; if(!single_value->field_cs2.match(other_value.cs2(), legacy))return FALSE; if(!other_value.cs3().is_bound()) return FALSE; if(!single_value->field_cs3.match(other_value.cs3(), legacy))return FALSE; if(!other_value.cs4().is_bound()) return FALSE; if(!single_value->field_cs4.match(other_value.cs4(), legacy))return FALSE; if(!other_value.mcs1().is_bound()) return FALSE; if(!single_value->field_mcs1.match(other_value.mcs1(), legacy))return FALSE; if(!other_value.mcs2().is_bound()) return FALSE; if(!single_value->field_mcs2.match(other_value.mcs2(), legacy))return FALSE; if(!other_value.mcs3().is_bound()) return FALSE; if(!single_value->field_mcs3.match(other_value.mcs3(), legacy))return FALSE; if(!other_value.mcs4().is_bound()) return FALSE; if(!single_value->field_mcs4.match(other_value.mcs4(), legacy))return FALSE; if(!other_value.mcs5().is_bound()) return FALSE; if(!single_value->field_mcs5.match(other_value.mcs5(), legacy))return FALSE; if(!other_value.mcs6().is_bound()) return FALSE; if(!single_value->field_mcs6.match(other_value.mcs6(), legacy))return FALSE; if(!other_value.mcs7().is_bound()) return FALSE; if(!single_value->field_mcs7.match(other_value.mcs7(), legacy))return FALSE; if(!other_value.mcs8().is_bound()) return FALSE; if(!single_value->field_mcs8.match(other_value.mcs8(), legacy))return FALSE; if(!other_value.mcs9().is_bound()) return FALSE; if(!single_value->field_mcs9.match(other_value.mcs9(), legacy))return FALSE; if(!other_value.spare2().is_bound()) return FALSE; if(!single_value->field_spare2.match(other_value.spare2(), 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 @PCUIF_Types.PCUIF_Flags."); } return FALSE; } boolean PCUIF__Flags_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; if (single_value->field_bts__active.is_bound()) return TRUE; if (single_value->field_sysmo__direct__dsp.is_bound()) return TRUE; if (single_value->field_spare.is_bound()) return TRUE; if (single_value->field_cs1.is_bound()) return TRUE; if (single_value->field_cs2.is_bound()) return TRUE; if (single_value->field_cs3.is_bound()) return TRUE; if (single_value->field_cs4.is_bound()) return TRUE; if (single_value->field_mcs1.is_bound()) return TRUE; if (single_value->field_mcs2.is_bound()) return TRUE; if (single_value->field_mcs3.is_bound()) return TRUE; if (single_value->field_mcs4.is_bound()) return TRUE; if (single_value->field_mcs5.is_bound()) return TRUE; if (single_value->field_mcs6.is_bound()) return TRUE; if (single_value->field_mcs7.is_bound()) return TRUE; if (single_value->field_mcs8.is_bound()) return TRUE; if (single_value->field_mcs9.is_bound()) return TRUE; if (single_value->field_spare2.is_bound()) return TRUE; return FALSE; } boolean PCUIF__Flags_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; if (!single_value->field_bts__active.is_value()) return FALSE; if (!single_value->field_sysmo__direct__dsp.is_value()) return FALSE; if (!single_value->field_spare.is_value()) return FALSE; if (!single_value->field_cs1.is_value()) return FALSE; if (!single_value->field_cs2.is_value()) return FALSE; if (!single_value->field_cs3.is_value()) return FALSE; if (!single_value->field_cs4.is_value()) return FALSE; if (!single_value->field_mcs1.is_value()) return FALSE; if (!single_value->field_mcs2.is_value()) return FALSE; if (!single_value->field_mcs3.is_value()) return FALSE; if (!single_value->field_mcs4.is_value()) return FALSE; if (!single_value->field_mcs5.is_value()) return FALSE; if (!single_value->field_mcs6.is_value()) return FALSE; if (!single_value->field_mcs7.is_value()) return FALSE; if (!single_value->field_mcs8.is_value()) return FALSE; if (!single_value->field_mcs9.is_value()) return FALSE; if (!single_value->field_spare2.is_value()) return FALSE; return TRUE; } void PCUIF__Flags_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; } PCUIF__Flags PCUIF__Flags_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 @PCUIF_Types.PCUIF_Flags."); PCUIF__Flags ret_val; if (single_value->field_bts__active.is_bound()) { ret_val.bts__active() = single_value->field_bts__active.valueof(); } if (single_value->field_sysmo__direct__dsp.is_bound()) { ret_val.sysmo__direct__dsp() = single_value->field_sysmo__direct__dsp.valueof(); } if (single_value->field_spare.is_bound()) { ret_val.spare() = single_value->field_spare.valueof(); } if (single_value->field_cs1.is_bound()) { ret_val.cs1() = single_value->field_cs1.valueof(); } if (single_value->field_cs2.is_bound()) { ret_val.cs2() = single_value->field_cs2.valueof(); } if (single_value->field_cs3.is_bound()) { ret_val.cs3() = single_value->field_cs3.valueof(); } if (single_value->field_cs4.is_bound()) { ret_val.cs4() = single_value->field_cs4.valueof(); } if (single_value->field_mcs1.is_bound()) { ret_val.mcs1() = single_value->field_mcs1.valueof(); } if (single_value->field_mcs2.is_bound()) { ret_val.mcs2() = single_value->field_mcs2.valueof(); } if (single_value->field_mcs3.is_bound()) { ret_val.mcs3() = single_value->field_mcs3.valueof(); } if (single_value->field_mcs4.is_bound()) { ret_val.mcs4() = single_value->field_mcs4.valueof(); } if (single_value->field_mcs5.is_bound()) { ret_val.mcs5() = single_value->field_mcs5.valueof(); } if (single_value->field_mcs6.is_bound()) { ret_val.mcs6() = single_value->field_mcs6.valueof(); } if (single_value->field_mcs7.is_bound()) { ret_val.mcs7() = single_value->field_mcs7.valueof(); } if (single_value->field_mcs8.is_bound()) { ret_val.mcs8() = single_value->field_mcs8.valueof(); } if (single_value->field_mcs9.is_bound()) { ret_val.mcs9() = single_value->field_mcs9.valueof(); } if (single_value->field_spare2.is_bound()) { ret_val.spare2() = single_value->field_spare2.valueof(); } return ret_val; } void PCUIF__Flags_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 @PCUIF_Types.PCUIF_Flags."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__Flags_template[list_length]; } PCUIF__Flags_template& PCUIF__Flags_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 @PCUIF_Types.PCUIF_Flags."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @PCUIF_Types.PCUIF_Flags."); return value_list.list_value[list_index]; } BOOLEAN_template& PCUIF__Flags_template::bts__active() { set_specific(); return single_value->field_bts__active; } const BOOLEAN_template& PCUIF__Flags_template::bts__active() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field bts_active of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_bts__active; } BOOLEAN_template& PCUIF__Flags_template::sysmo__direct__dsp() { set_specific(); return single_value->field_sysmo__direct__dsp; } const BOOLEAN_template& PCUIF__Flags_template::sysmo__direct__dsp() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field sysmo_direct_dsp of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_sysmo__direct__dsp; } BITSTRING_template& PCUIF__Flags_template::spare() { set_specific(); return single_value->field_spare; } const BITSTRING_template& PCUIF__Flags_template::spare() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field spare of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_spare; } BOOLEAN_template& PCUIF__Flags_template::cs1() { set_specific(); return single_value->field_cs1; } const BOOLEAN_template& PCUIF__Flags_template::cs1() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field cs1 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_cs1; } BOOLEAN_template& PCUIF__Flags_template::cs2() { set_specific(); return single_value->field_cs2; } const BOOLEAN_template& PCUIF__Flags_template::cs2() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field cs2 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_cs2; } BOOLEAN_template& PCUIF__Flags_template::cs3() { set_specific(); return single_value->field_cs3; } const BOOLEAN_template& PCUIF__Flags_template::cs3() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field cs3 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_cs3; } BOOLEAN_template& PCUIF__Flags_template::cs4() { set_specific(); return single_value->field_cs4; } const BOOLEAN_template& PCUIF__Flags_template::cs4() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field cs4 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_cs4; } BOOLEAN_template& PCUIF__Flags_template::mcs1() { set_specific(); return single_value->field_mcs1; } const BOOLEAN_template& PCUIF__Flags_template::mcs1() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mcs1 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_mcs1; } BOOLEAN_template& PCUIF__Flags_template::mcs2() { set_specific(); return single_value->field_mcs2; } const BOOLEAN_template& PCUIF__Flags_template::mcs2() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mcs2 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_mcs2; } BOOLEAN_template& PCUIF__Flags_template::mcs3() { set_specific(); return single_value->field_mcs3; } const BOOLEAN_template& PCUIF__Flags_template::mcs3() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mcs3 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_mcs3; } BOOLEAN_template& PCUIF__Flags_template::mcs4() { set_specific(); return single_value->field_mcs4; } const BOOLEAN_template& PCUIF__Flags_template::mcs4() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mcs4 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_mcs4; } BOOLEAN_template& PCUIF__Flags_template::mcs5() { set_specific(); return single_value->field_mcs5; } const BOOLEAN_template& PCUIF__Flags_template::mcs5() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mcs5 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_mcs5; } BOOLEAN_template& PCUIF__Flags_template::mcs6() { set_specific(); return single_value->field_mcs6; } const BOOLEAN_template& PCUIF__Flags_template::mcs6() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mcs6 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_mcs6; } BOOLEAN_template& PCUIF__Flags_template::mcs7() { set_specific(); return single_value->field_mcs7; } const BOOLEAN_template& PCUIF__Flags_template::mcs7() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mcs7 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_mcs7; } BOOLEAN_template& PCUIF__Flags_template::mcs8() { set_specific(); return single_value->field_mcs8; } const BOOLEAN_template& PCUIF__Flags_template::mcs8() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mcs8 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_mcs8; } BOOLEAN_template& PCUIF__Flags_template::mcs9() { set_specific(); return single_value->field_mcs9; } const BOOLEAN_template& PCUIF__Flags_template::mcs9() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mcs9 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_mcs9; } BITSTRING_template& PCUIF__Flags_template::spare2() { set_specific(); return single_value->field_spare2; } const BITSTRING_template& PCUIF__Flags_template::spare2() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field spare2 of a non-specific template of type @PCUIF_Types.PCUIF_Flags."); return single_value->field_spare2; } int PCUIF__Flags_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_Flags which has an ifpresent attribute."); switch (template_selection) { case SPECIFIC_VALUE: return 17; case VALUE_LIST: { if (value_list.n_values<1) TTCN_error("Internal error: Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_Flags 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 @PCUIF_Types.PCUIF_Flags containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_Flags containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_Flags containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_Flags containing complemented list."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_Flags."); } return 0; } void PCUIF__Flags_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ bts_active := "); single_value->field_bts__active.log(); TTCN_Logger::log_event_str(", sysmo_direct_dsp := "); single_value->field_sysmo__direct__dsp.log(); TTCN_Logger::log_event_str(", spare := "); single_value->field_spare.log(); TTCN_Logger::log_event_str(", cs1 := "); single_value->field_cs1.log(); TTCN_Logger::log_event_str(", cs2 := "); single_value->field_cs2.log(); TTCN_Logger::log_event_str(", cs3 := "); single_value->field_cs3.log(); TTCN_Logger::log_event_str(", cs4 := "); single_value->field_cs4.log(); TTCN_Logger::log_event_str(", mcs1 := "); single_value->field_mcs1.log(); TTCN_Logger::log_event_str(", mcs2 := "); single_value->field_mcs2.log(); TTCN_Logger::log_event_str(", mcs3 := "); single_value->field_mcs3.log(); TTCN_Logger::log_event_str(", mcs4 := "); single_value->field_mcs4.log(); TTCN_Logger::log_event_str(", mcs5 := "); single_value->field_mcs5.log(); TTCN_Logger::log_event_str(", mcs6 := "); single_value->field_mcs6.log(); TTCN_Logger::log_event_str(", mcs7 := "); single_value->field_mcs7.log(); TTCN_Logger::log_event_str(", mcs8 := "); single_value->field_mcs8.log(); TTCN_Logger::log_event_str(", mcs9 := "); single_value->field_mcs9.log(); TTCN_Logger::log_event_str(", spare2 := "); single_value->field_spare2.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 PCUIF__Flags_template::log_match(const PCUIF__Flags& 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_bts__active.match(match_value.bts__active(), legacy)){ TTCN_Logger::log_logmatch_info(".bts_active"); single_value->field_bts__active.log_match(match_value.bts__active(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_sysmo__direct__dsp.match(match_value.sysmo__direct__dsp(), legacy)){ TTCN_Logger::log_logmatch_info(".sysmo_direct_dsp"); single_value->field_sysmo__direct__dsp.log_match(match_value.sysmo__direct__dsp(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_spare.match(match_value.spare(), legacy)){ TTCN_Logger::log_logmatch_info(".spare"); single_value->field_spare.log_match(match_value.spare(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_cs1.match(match_value.cs1(), legacy)){ TTCN_Logger::log_logmatch_info(".cs1"); single_value->field_cs1.log_match(match_value.cs1(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_cs2.match(match_value.cs2(), legacy)){ TTCN_Logger::log_logmatch_info(".cs2"); single_value->field_cs2.log_match(match_value.cs2(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_cs3.match(match_value.cs3(), legacy)){ TTCN_Logger::log_logmatch_info(".cs3"); single_value->field_cs3.log_match(match_value.cs3(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_cs4.match(match_value.cs4(), legacy)){ TTCN_Logger::log_logmatch_info(".cs4"); single_value->field_cs4.log_match(match_value.cs4(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mcs1.match(match_value.mcs1(), legacy)){ TTCN_Logger::log_logmatch_info(".mcs1"); single_value->field_mcs1.log_match(match_value.mcs1(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mcs2.match(match_value.mcs2(), legacy)){ TTCN_Logger::log_logmatch_info(".mcs2"); single_value->field_mcs2.log_match(match_value.mcs2(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mcs3.match(match_value.mcs3(), legacy)){ TTCN_Logger::log_logmatch_info(".mcs3"); single_value->field_mcs3.log_match(match_value.mcs3(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mcs4.match(match_value.mcs4(), legacy)){ TTCN_Logger::log_logmatch_info(".mcs4"); single_value->field_mcs4.log_match(match_value.mcs4(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mcs5.match(match_value.mcs5(), legacy)){ TTCN_Logger::log_logmatch_info(".mcs5"); single_value->field_mcs5.log_match(match_value.mcs5(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mcs6.match(match_value.mcs6(), legacy)){ TTCN_Logger::log_logmatch_info(".mcs6"); single_value->field_mcs6.log_match(match_value.mcs6(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mcs7.match(match_value.mcs7(), legacy)){ TTCN_Logger::log_logmatch_info(".mcs7"); single_value->field_mcs7.log_match(match_value.mcs7(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mcs8.match(match_value.mcs8(), legacy)){ TTCN_Logger::log_logmatch_info(".mcs8"); single_value->field_mcs8.log_match(match_value.mcs8(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mcs9.match(match_value.mcs9(), legacy)){ TTCN_Logger::log_logmatch_info(".mcs9"); single_value->field_mcs9.log_match(match_value.mcs9(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_spare2.match(match_value.spare2(), legacy)){ TTCN_Logger::log_logmatch_info(".spare2"); single_value->field_spare2.log_match(match_value.spare2(), 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("{ bts_active := "); single_value->field_bts__active.log_match(match_value.bts__active(), legacy); TTCN_Logger::log_event_str(", sysmo_direct_dsp := "); single_value->field_sysmo__direct__dsp.log_match(match_value.sysmo__direct__dsp(), legacy); TTCN_Logger::log_event_str(", spare := "); single_value->field_spare.log_match(match_value.spare(), legacy); TTCN_Logger::log_event_str(", cs1 := "); single_value->field_cs1.log_match(match_value.cs1(), legacy); TTCN_Logger::log_event_str(", cs2 := "); single_value->field_cs2.log_match(match_value.cs2(), legacy); TTCN_Logger::log_event_str(", cs3 := "); single_value->field_cs3.log_match(match_value.cs3(), legacy); TTCN_Logger::log_event_str(", cs4 := "); single_value->field_cs4.log_match(match_value.cs4(), legacy); TTCN_Logger::log_event_str(", mcs1 := "); single_value->field_mcs1.log_match(match_value.mcs1(), legacy); TTCN_Logger::log_event_str(", mcs2 := "); single_value->field_mcs2.log_match(match_value.mcs2(), legacy); TTCN_Logger::log_event_str(", mcs3 := "); single_value->field_mcs3.log_match(match_value.mcs3(), legacy); TTCN_Logger::log_event_str(", mcs4 := "); single_value->field_mcs4.log_match(match_value.mcs4(), legacy); TTCN_Logger::log_event_str(", mcs5 := "); single_value->field_mcs5.log_match(match_value.mcs5(), legacy); TTCN_Logger::log_event_str(", mcs6 := "); single_value->field_mcs6.log_match(match_value.mcs6(), legacy); TTCN_Logger::log_event_str(", mcs7 := "); single_value->field_mcs7.log_match(match_value.mcs7(), legacy); TTCN_Logger::log_event_str(", mcs8 := "); single_value->field_mcs8.log_match(match_value.mcs8(), legacy); TTCN_Logger::log_event_str(", mcs9 := "); single_value->field_mcs9.log_match(match_value.mcs9(), legacy); TTCN_Logger::log_event_str(", spare2 := "); single_value->field_spare2.log_match(match_value.spare2(), 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 PCUIF__Flags_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_bts__active.encode_text(text_buf); single_value->field_sysmo__direct__dsp.encode_text(text_buf); single_value->field_spare.encode_text(text_buf); single_value->field_cs1.encode_text(text_buf); single_value->field_cs2.encode_text(text_buf); single_value->field_cs3.encode_text(text_buf); single_value->field_cs4.encode_text(text_buf); single_value->field_mcs1.encode_text(text_buf); single_value->field_mcs2.encode_text(text_buf); single_value->field_mcs3.encode_text(text_buf); single_value->field_mcs4.encode_text(text_buf); single_value->field_mcs5.encode_text(text_buf); single_value->field_mcs6.encode_text(text_buf); single_value->field_mcs7.encode_text(text_buf); single_value->field_mcs8.encode_text(text_buf); single_value->field_mcs9.encode_text(text_buf); single_value->field_spare2.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 @PCUIF_Types.PCUIF_Flags."); } } void PCUIF__Flags_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_bts__active.decode_text(text_buf); single_value->field_sysmo__direct__dsp.decode_text(text_buf); single_value->field_spare.decode_text(text_buf); single_value->field_cs1.decode_text(text_buf); single_value->field_cs2.decode_text(text_buf); single_value->field_cs3.decode_text(text_buf); single_value->field_cs4.decode_text(text_buf); single_value->field_mcs1.decode_text(text_buf); single_value->field_mcs2.decode_text(text_buf); single_value->field_mcs3.decode_text(text_buf); single_value->field_mcs4.decode_text(text_buf); single_value->field_mcs5.decode_text(text_buf); single_value->field_mcs6.decode_text(text_buf); single_value->field_mcs7.decode_text(text_buf); single_value->field_mcs8.decode_text(text_buf); single_value->field_mcs9.decode_text(text_buf); single_value->field_spare2.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 PCUIF__Flags_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 @PCUIF_Types.PCUIF_Flags."); } } void PCUIF__Flags_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: { PCUIF__Flags_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_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) bts__active().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) sysmo__direct__dsp().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) spare().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) cs1().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) cs2().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) cs3().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) cs4().set_param(*param.get_elem(6)); if (param.get_size()>7 && param.get_elem(7)->get_type()!=Module_Param::MP_NotUsed) mcs1().set_param(*param.get_elem(7)); if (param.get_size()>8 && param.get_elem(8)->get_type()!=Module_Param::MP_NotUsed) mcs2().set_param(*param.get_elem(8)); if (param.get_size()>9 && param.get_elem(9)->get_type()!=Module_Param::MP_NotUsed) mcs3().set_param(*param.get_elem(9)); if (param.get_size()>10 && param.get_elem(10)->get_type()!=Module_Param::MP_NotUsed) mcs4().set_param(*param.get_elem(10)); if (param.get_size()>11 && param.get_elem(11)->get_type()!=Module_Param::MP_NotUsed) mcs5().set_param(*param.get_elem(11)); if (param.get_size()>12 && param.get_elem(12)->get_type()!=Module_Param::MP_NotUsed) mcs6().set_param(*param.get_elem(12)); if (param.get_size()>13 && param.get_elem(13)->get_type()!=Module_Param::MP_NotUsed) mcs7().set_param(*param.get_elem(13)); if (param.get_size()>14 && param.get_elem(14)->get_type()!=Module_Param::MP_NotUsed) mcs8().set_param(*param.get_elem(14)); if (param.get_size()>15 && param.get_elem(15)->get_type()!=Module_Param::MP_NotUsed) mcs9().set_param(*param.get_elem(15)); if (param.get_size()>16 && param.get_elem(16)->get_type()!=Module_Param::MP_NotUsed) spare2().set_param(*param.get_elem(16)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "bts_active")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { bts__active().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "sysmo_direct_dsp")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sysmo__direct__dsp().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "spare")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { spare().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cs1")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cs1().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cs2")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cs2().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cs3")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cs3().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cs4")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cs4().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs1")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs1().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs2")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs2().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs3")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs3().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs4")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs4().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs5")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs5().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs6")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs6().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs7")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs7().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs8")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs8().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcs9")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcs9().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "spare2")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { spare2().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_Flags: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record template", "@PCUIF_Types.PCUIF_Flags"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__Flags_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_bts__active.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_sysmo__direct__dsp.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_spare.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_cs1.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_cs2.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_cs3.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_cs4.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_mcs1.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_mcs2.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_mcs3.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_mcs4.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_mcs5.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_mcs6.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_mcs7.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_mcs8.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_mcs9.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); single_value->field_spare2.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Flags"); 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 : "@PCUIF_Types.PCUIF_Flags"); } boolean PCUIF__Flags_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__Flags_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(enum_type other_value) const { if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_TextType."); return enum_value > other_value; } boolean PCUIF__TextType::operator>(const PCUIF__TextType& other_value) const { if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_TextType."); if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_TextType."); return enum_value > other_value.enum_value; } const char *PCUIF__TextType::enum_to_str(enum_type enum_par) { switch (enum_par) { case PCU__VERSION: return "PCU_VERSION"; case PCU__OML__ALERT: return "PCU_OML_ALERT"; default: return ""; } } PCUIF__TextType::enum_type PCUIF__TextType::str_to_enum(const char *str_par) { if (!strcmp(str_par, "PCU_VERSION")) return PCU__VERSION; else if (!strcmp(str_par, "PCU_OML_ALERT")) return PCU__OML__ALERT; else return UNKNOWN_VALUE; } boolean PCUIF__TextType::is_valid_enum(int int_par) { switch (int_par) { case 0: case 1: return TRUE; default: return FALSE; } } int PCUIF__TextType::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 @PCUIF_Types.PCUIF_TextType.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); return enum_par; } int PCUIF__TextType::enum2int(const PCUIF__TextType& 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 @PCUIF_Types.PCUIF_TextType.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); return enum_par.enum_value; } void PCUIF__TextType::int2enum(int int_val) { if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @PCUIF_Types.PCUIF_TextType.", int_val); enum_value = (enum_type)int_val; } PCUIF__TextType::operator PCUIF__TextType::enum_type() const { if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @PCUIF_Types.PCUIF_TextType."); return enum_value; } void PCUIF__TextType::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 PCUIF__TextType::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", "@PCUIF_Types.PCUIF_TextType"); enum_value = str_to_enum(param.get_enumerated()); if (!is_valid_enum(enum_value)) { param.error("Invalid enumerated value for type @PCUIF_Types.PCUIF_TextType."); } } void PCUIF__TextType::encode_text(Text_Buf& text_buf) const { if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @PCUIF_Types.PCUIF_TextType."); text_buf.push_int(enum_value); } void PCUIF__TextType::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 @PCUIF_Types.PCUIF_TextType.", enum_value); } void PCUIF__TextType::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 PCUIF__TextType::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 PCUIF__TextType::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*) { int decoded_value = 0; int decoded_length = RAW_decode_enum_type(p_td, p_buf, limit, top_bit_ord, decoded_value, 2, no_err); if (decoded_length < 0) return decoded_length; if (is_valid_enum(decoded_value)) enum_value = (enum_type)decoded_value; else { if(no_err){ return -1; } else { TTCN_EncDec_ErrorContext::error (TTCN_EncDec::ET_ENC_ENUM, "Invalid enum value '%d' for '%s': ",decoded_value, p_td.name); enum_value = UNKNOWN_VALUE; } } return decoded_length; } int PCUIF__TextType::RAW_encode(const TTCN_Typedescriptor_t& p_td, RAW_enc_tree& myleaf) const { return RAW_encode_enum_type(p_td, myleaf, (int)enum_value, 2); } void PCUIF__TextType_template::copy_template(const PCUIF__TextType_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 PCUIF__TextType_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 @PCUIF_Types.PCUIF_TextType."); } } PCUIF__TextType_template::PCUIF__TextType_template() { } PCUIF__TextType_template::PCUIF__TextType_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__TextType_template::PCUIF__TextType_template(int other_value) : Base_Template(SPECIFIC_VALUE) { if (!PCUIF__TextType::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @PCUIF_Types.PCUIF_TextType with unknown numeric value %d.", other_value); single_value = (PCUIF__TextType::enum_type)other_value; } PCUIF__TextType_template::PCUIF__TextType_template(PCUIF__TextType::enum_type other_value) : Base_Template(SPECIFIC_VALUE) { single_value = other_value; } PCUIF__TextType_template::PCUIF__TextType_template(const PCUIF__TextType& other_value) : Base_Template(SPECIFIC_VALUE) { if (other_value.enum_value == PCUIF__TextType::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @PCUIF_Types.PCUIF_TextType."); single_value = other_value.enum_value; } PCUIF__TextType_template::PCUIF__TextType_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: set_selection(SPECIFIC_VALUE); single_value = (PCUIF__TextType::enum_type)(const PCUIF__TextType&)other_value; break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of enumerated type @PCUIF_Types.PCUIF_TextType from an unbound optional field."); } } PCUIF__TextType_template::PCUIF__TextType_template(const PCUIF__TextType_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__TextType_template::~PCUIF__TextType_template() { clean_up(); } boolean PCUIF__TextType_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; return TRUE; } boolean PCUIF__TextType_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; return single_value != PCUIF__TextType::UNBOUND_VALUE; } void PCUIF__TextType_template::clean_up() { if (template_selection == VALUE_LIST || template_selection == COMPLEMENTED_LIST) delete [] value_list.list_value; template_selection = UNINITIALIZED_TEMPLATE; } PCUIF__TextType_template& PCUIF__TextType_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__TextType_template& PCUIF__TextType_template::operator=(int other_value) { if (!PCUIF__TextType::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @PCUIF_Types.PCUIF_TextType.", other_value); clean_up(); set_selection(SPECIFIC_VALUE); single_value = (PCUIF__TextType::enum_type)other_value; return *this; } PCUIF__TextType_template& PCUIF__TextType_template::operator=(PCUIF__TextType::enum_type other_value) { clean_up(); set_selection(SPECIFIC_VALUE); single_value = other_value; return *this; } PCUIF__TextType_template& PCUIF__TextType_template::operator=(const PCUIF__TextType& other_value) { if (other_value.enum_value == PCUIF__TextType::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @PCUIF_Types.PCUIF_TextType to a template."); clean_up(); set_selection(SPECIFIC_VALUE); single_value = other_value.enum_value; return *this; } PCUIF__TextType_template& PCUIF__TextType_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: set_selection(SPECIFIC_VALUE); single_value = (PCUIF__TextType::enum_type)(const PCUIF__TextType&)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 @PCUIF_Types.PCUIF_TextType."); } return *this; } PCUIF__TextType_template& PCUIF__TextType_template::operator=(const PCUIF__TextType_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__TextType_template::match(PCUIF__TextType::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 @PCUIF_Types.PCUIF_TextType."); } return FALSE; } boolean PCUIF__TextType_template::match(const PCUIF__TextType& other_value, boolean) const { if (other_value.enum_value == PCUIF__TextType::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @PCUIF_Types.PCUIF_TextType with an unbound value."); return match(other_value.enum_value); } PCUIF__TextType::enum_type PCUIF__TextType_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 @PCUIF_Types.PCUIF_TextType."); return single_value; } void PCUIF__TextType_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 @PCUIF_Types.PCUIF_TextType."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__TextType_template[list_length]; } PCUIF__TextType_template& PCUIF__TextType_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 @PCUIF_Types.PCUIF_TextType."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @PCUIF_Types.PCUIF_TextType."); return value_list.list_value[list_index]; } void PCUIF__TextType_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_enum(PCUIF__TextType::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 PCUIF__TextType_template::log_match(const PCUIF__TextType& 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 PCUIF__TextType_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 @PCUIF_Types.PCUIF_TextType."); } } void PCUIF__TextType_template::decode_text(Text_Buf& text_buf) { clean_up(); decode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value = (PCUIF__TextType::enum_type)text_buf.pull_int().get_val(); if (!PCUIF__TextType::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @PCUIF_Types.PCUIF_TextType.", 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 PCUIF__TextType_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 @PCUIF_Types.PCUIF_TextType."); } } boolean PCUIF__TextType_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__TextType_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; iget_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: { PCUIF__TextType_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_iget_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: { PCUIF__TextType::enum_type enum_val = PCUIF__TextType::str_to_enum(m_p->get_enumerated()); if (!PCUIF__TextType::is_valid_enum(enum_val)) { param.error("Invalid enumerated value for type @PCUIF_Types.PCUIF_TextType."); } *this = enum_val; } break; default: param.type_error("enumerated template", "@PCUIF_Types.PCUIF_TextType"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__TextType_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 : "@PCUIF_Types.PCUIF_TextType"); } PCUIF__txt__ind::PCUIF__txt__ind() { } PCUIF__txt__ind::PCUIF__txt__ind(const PCUIF__TextType& par_txt__type, const CHARSTRING& par_text) : field_txt__type(par_txt__type), field_text(par_text) { } PCUIF__txt__ind::PCUIF__txt__ind(const PCUIF__txt__ind& other_value) { if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_txt_ind."); if (other_value.txt__type().is_bound()) field_txt__type = other_value.txt__type(); else field_txt__type.clean_up(); if (other_value.text().is_bound()) field_text = other_value.text(); else field_text.clean_up(); } void PCUIF__txt__ind::clean_up() { field_txt__type.clean_up(); field_text.clean_up(); } const TTCN_Typedescriptor_t* PCUIF__txt__ind::get_descriptor() const { return &PCUIF__txt__ind_descr_; } PCUIF__txt__ind& PCUIF__txt__ind::operator=(const PCUIF__txt__ind& other_value) { if (this != &other_value) { if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @PCUIF_Types.PCUIF_txt_ind."); if (other_value.txt__type().is_bound()) field_txt__type = other_value.txt__type(); else field_txt__type.clean_up(); if (other_value.text().is_bound()) field_text = other_value.text(); else field_text.clean_up(); } return *this; } boolean PCUIF__txt__ind::operator==(const PCUIF__txt__ind& other_value) const { return field_txt__type==other_value.field_txt__type && field_text==other_value.field_text; } boolean PCUIF__txt__ind::is_bound() const { if(field_txt__type.is_bound()) return TRUE; if(field_text.is_bound()) return TRUE; return FALSE; } boolean PCUIF__txt__ind::is_value() const { if(!field_txt__type.is_value()) return FALSE; if(!field_text.is_value()) return FALSE; return TRUE; } void PCUIF__txt__ind::log() const { if (!is_bound()) { TTCN_Logger::log_event_unbound(); return; } TTCN_Logger::log_event_str("{ txt_type := "); field_txt__type.log(); TTCN_Logger::log_event_str(", text := "); field_text.log(); TTCN_Logger::log_event_str(" }"); } void PCUIF__txt__ind::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 (20 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) txt__type().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) text().set_param(*param.get_elem(1)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "txt_type")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { txt__type().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "text")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { text().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_txt_ind: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@PCUIF_Types.PCUIF_txt_ind"); } } void PCUIF__txt__ind::set_implicit_omit() { if (txt__type().is_bound()) txt__type().set_implicit_omit(); if (text().is_bound()) text().set_implicit_omit(); } void PCUIF__txt__ind::encode_text(Text_Buf& text_buf) const { field_txt__type.encode_text(text_buf); field_text.encode_text(text_buf); } void PCUIF__txt__ind::decode_text(Text_Buf& text_buf) { field_txt__type.decode_text(text_buf); field_text.decode_text(text_buf); } void PCUIF__txt__ind::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 PCUIF__txt__ind::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 PCUIF__txt__ind::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, PCUIF__txt__ind_txt__type_descr_.raw->forceomit); decoded_field_length = field_txt__type.RAW_decode(PCUIF__txt__ind_txt__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, PCUIF__txt__ind_text_descr_.raw->forceomit); decoded_field_length = field_text.RAW_decode(PCUIF__txt__ind_text_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 PCUIF__txt__ind::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, PCUIF__txt__ind_txt__type_descr_.raw); myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, PCUIF__txt__ind_text_descr_.raw); encoded_length += field_txt__type.RAW_encode(PCUIF__txt__ind_txt__type_descr_, *myleaf.body.node.nodes[0]); encoded_length += field_text.RAW_encode(PCUIF__txt__ind_text_descr_, *myleaf.body.node.nodes[1]); return myleaf.length = encoded_length; } struct PCUIF__txt__ind_template::single_value_struct { PCUIF__TextType_template field_txt__type; CHARSTRING_template field_text; }; void PCUIF__txt__ind_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_txt__type = ANY_VALUE; single_value->field_text = ANY_VALUE; } } } void PCUIF__txt__ind_template::copy_value(const PCUIF__txt__ind& other_value) { single_value = new single_value_struct; if (other_value.txt__type().is_bound()) { single_value->field_txt__type = other_value.txt__type(); } else { single_value->field_txt__type.clean_up(); } if (other_value.text().is_bound()) { single_value->field_text = other_value.text(); } else { single_value->field_text.clean_up(); } set_selection(SPECIFIC_VALUE); } void PCUIF__txt__ind_template::copy_template(const PCUIF__txt__ind_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.txt__type().get_selection()) { single_value->field_txt__type = other_value.txt__type(); } else { single_value->field_txt__type.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.text().get_selection()) { single_value->field_text = other_value.text(); } else { single_value->field_text.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 PCUIF__txt__ind_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 @PCUIF_Types.PCUIF_txt_ind."); break; } set_selection(other_value); } PCUIF__txt__ind_template::PCUIF__txt__ind_template() { } PCUIF__txt__ind_template::PCUIF__txt__ind_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__txt__ind_template::PCUIF__txt__ind_template(const PCUIF__txt__ind& other_value) { copy_value(other_value); } PCUIF__txt__ind_template::PCUIF__txt__ind_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__txt__ind&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_txt_ind from an unbound optional field."); } } PCUIF__txt__ind_template::PCUIF__txt__ind_template(const PCUIF__txt__ind_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__txt__ind_template::~PCUIF__txt__ind_template() { clean_up(); } PCUIF__txt__ind_template& PCUIF__txt__ind_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__txt__ind_template& PCUIF__txt__ind_template::operator=(const PCUIF__txt__ind& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__txt__ind_template& PCUIF__txt__ind_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__txt__ind&)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 @PCUIF_Types.PCUIF_txt_ind."); } return *this; } PCUIF__txt__ind_template& PCUIF__txt__ind_template::operator=(const PCUIF__txt__ind_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__txt__ind_template::match(const PCUIF__txt__ind& 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.txt__type().is_bound()) return FALSE; if(!single_value->field_txt__type.match(other_value.txt__type(), legacy))return FALSE; if(!other_value.text().is_bound()) return FALSE; if(!single_value->field_text.match(other_value.text(), 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 @PCUIF_Types.PCUIF_txt_ind."); } return FALSE; } boolean PCUIF__txt__ind_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; if (single_value->field_txt__type.is_bound()) return TRUE; if (single_value->field_text.is_bound()) return TRUE; return FALSE; } boolean PCUIF__txt__ind_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; if (!single_value->field_txt__type.is_value()) return FALSE; if (!single_value->field_text.is_value()) return FALSE; return TRUE; } void PCUIF__txt__ind_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; } PCUIF__txt__ind PCUIF__txt__ind_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 @PCUIF_Types.PCUIF_txt_ind."); PCUIF__txt__ind ret_val; if (single_value->field_txt__type.is_bound()) { ret_val.txt__type() = single_value->field_txt__type.valueof(); } if (single_value->field_text.is_bound()) { ret_val.text() = single_value->field_text.valueof(); } return ret_val; } void PCUIF__txt__ind_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 @PCUIF_Types.PCUIF_txt_ind."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__txt__ind_template[list_length]; } PCUIF__txt__ind_template& PCUIF__txt__ind_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 @PCUIF_Types.PCUIF_txt_ind."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @PCUIF_Types.PCUIF_txt_ind."); return value_list.list_value[list_index]; } PCUIF__TextType_template& PCUIF__txt__ind_template::txt__type() { set_specific(); return single_value->field_txt__type; } const PCUIF__TextType_template& PCUIF__txt__ind_template::txt__type() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field txt_type of a non-specific template of type @PCUIF_Types.PCUIF_txt_ind."); return single_value->field_txt__type; } CHARSTRING_template& PCUIF__txt__ind_template::text() { set_specific(); return single_value->field_text; } const CHARSTRING_template& PCUIF__txt__ind_template::text() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field text of a non-specific template of type @PCUIF_Types.PCUIF_txt_ind."); return single_value->field_text; } int PCUIF__txt__ind_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_txt_ind 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 @PCUIF_Types.PCUIF_txt_ind 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 @PCUIF_Types.PCUIF_txt_ind containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_txt_ind containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_txt_ind containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_txt_ind containing complemented list."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_txt_ind."); } return 0; } void PCUIF__txt__ind_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ txt_type := "); single_value->field_txt__type.log(); TTCN_Logger::log_event_str(", text := "); single_value->field_text.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 PCUIF__txt__ind_template::log_match(const PCUIF__txt__ind& 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_txt__type.match(match_value.txt__type(), legacy)){ TTCN_Logger::log_logmatch_info(".txt_type"); single_value->field_txt__type.log_match(match_value.txt__type(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_text.match(match_value.text(), legacy)){ TTCN_Logger::log_logmatch_info(".text"); single_value->field_text.log_match(match_value.text(), 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("{ txt_type := "); single_value->field_txt__type.log_match(match_value.txt__type(), legacy); TTCN_Logger::log_event_str(", text := "); single_value->field_text.log_match(match_value.text(), 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 PCUIF__txt__ind_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_txt__type.encode_text(text_buf); single_value->field_text.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 @PCUIF_Types.PCUIF_txt_ind."); } } void PCUIF__txt__ind_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_txt__type.decode_text(text_buf); single_value->field_text.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 PCUIF__txt__ind_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 @PCUIF_Types.PCUIF_txt_ind."); } } void PCUIF__txt__ind_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: { PCUIF__txt__ind_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_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) txt__type().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) text().set_param(*param.get_elem(1)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "txt_type")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { txt__type().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "text")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { text().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_txt_ind: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record template", "@PCUIF_Types.PCUIF_txt_ind"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__txt__ind_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_txt__type.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_txt_ind"); single_value->field_text.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_txt_ind"); 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 : "@PCUIF_Types.PCUIF_txt_ind"); } boolean PCUIF__txt__ind_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__txt__ind_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_idx0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) sapi().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) len().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) data().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) fn().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) arfcn().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) trx__nr().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) ts__nr().set_param(*param.get_elem(6)); if (param.get_size()>7 && param.get_elem(7)->get_type()!=Module_Param::MP_NotUsed) block__nr().set_param(*param.get_elem(7)); if (param.get_size()>8 && param.get_elem(8)->get_type()!=Module_Param::MP_NotUsed) rssi().set_param(*param.get_elem(8)); if (param.get_size()>9 && param.get_elem(9)->get_type()!=Module_Param::MP_NotUsed) ber10k().set_param(*param.get_elem(9)); if (param.get_size()>10 && param.get_elem(10)->get_type()!=Module_Param::MP_NotUsed) ta__offs__qbits().set_param(*param.get_elem(10)); if (param.get_size()>11 && param.get_elem(11)->get_type()!=Module_Param::MP_NotUsed) lqual__cb().set_param(*param.get_elem(11)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "sapi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sapi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "len")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { len().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "data")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { data().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "fn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { fn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "arfcn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { arfcn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "trx_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { trx__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ts_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ts__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "block_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { block__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "rssi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { rssi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ber10k")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ber10k().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ta_offs_qbits")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ta__offs__qbits().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "lqual_cb")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { lqual__cb().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_data: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@PCUIF_Types.PCUIF_data"); } } void PCUIF__data::set_implicit_omit() { if (sapi().is_bound()) sapi().set_implicit_omit(); if (len().is_bound()) len().set_implicit_omit(); if (data().is_bound()) data().set_implicit_omit(); if (fn().is_bound()) fn().set_implicit_omit(); if (arfcn().is_bound()) arfcn().set_implicit_omit(); if (trx__nr().is_bound()) trx__nr().set_implicit_omit(); if (ts__nr().is_bound()) ts__nr().set_implicit_omit(); if (block__nr().is_bound()) block__nr().set_implicit_omit(); if (rssi().is_bound()) rssi().set_implicit_omit(); if (ber10k().is_bound()) ber10k().set_implicit_omit(); if (ta__offs__qbits().is_bound()) ta__offs__qbits().set_implicit_omit(); if (lqual__cb().is_bound()) lqual__cb().set_implicit_omit(); } void PCUIF__data::encode_text(Text_Buf& text_buf) const { field_sapi.encode_text(text_buf); field_len.encode_text(text_buf); field_data.encode_text(text_buf); field_fn.encode_text(text_buf); field_arfcn.encode_text(text_buf); field_trx__nr.encode_text(text_buf); field_ts__nr.encode_text(text_buf); field_block__nr.encode_text(text_buf); field_rssi.encode_text(text_buf); field_ber10k.encode_text(text_buf); field_ta__offs__qbits.encode_text(text_buf); field_lqual__cb.encode_text(text_buf); } void PCUIF__data::decode_text(Text_Buf& text_buf) { field_sapi.decode_text(text_buf); field_len.decode_text(text_buf); field_data.decode_text(text_buf); field_fn.decode_text(text_buf); field_arfcn.decode_text(text_buf); field_trx__nr.decode_text(text_buf); field_ts__nr.decode_text(text_buf); field_block__nr.decode_text(text_buf); field_rssi.decode_text(text_buf); field_ber10k.decode_text(text_buf); field_ta__offs__qbits.decode_text(text_buf); field_lqual__cb.decode_text(text_buf); } void PCUIF__data::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 PCUIF__data::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 PCUIF__data::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, PCUIF__data_sapi_descr_.raw->forceomit); decoded_field_length = field_sapi.RAW_decode(PCUIF__data_sapi_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, PCUIF__data_len_descr_.raw->forceomit); decoded_field_length = field_len.RAW_decode(PCUIF__data_len_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()); RAW_Force_Omit field_2_force_omit(2, force_omit, PCUIF__data_data_descr_.raw->forceomit); decoded_field_length = field_data.RAW_decode(PCUIF__data_data_descr_, p_buf, limit, local_top_order, no_err, -1, 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()); RAW_Force_Omit field_3_force_omit(3, force_omit, PCUIF__data_fn_descr_.raw->forceomit); decoded_field_length = field_fn.RAW_decode(PCUIF__data_fn_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_3_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_4_force_omit(4, force_omit, PCUIF__data_arfcn_descr_.raw->forceomit); decoded_field_length = field_arfcn.RAW_decode(PCUIF__data_arfcn_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_4_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_5_force_omit(5, force_omit, PCUIF__data_trx__nr_descr_.raw->forceomit); decoded_field_length = field_trx__nr.RAW_decode(PCUIF__data_trx__nr_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_5_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_6_force_omit(6, force_omit, PCUIF__data_ts__nr_descr_.raw->forceomit); decoded_field_length = field_ts__nr.RAW_decode(PCUIF__data_ts__nr_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_6_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_7_force_omit(7, force_omit, PCUIF__data_block__nr_descr_.raw->forceomit); decoded_field_length = field_block__nr.RAW_decode(PCUIF__data_block__nr_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_7_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_8_force_omit(8, force_omit, PCUIF__data_rssi_descr_.raw->forceomit); decoded_field_length = field_rssi.RAW_decode(PCUIF__data_rssi_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_8_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_9_force_omit(9, force_omit, PCUIF__data_ber10k_descr_.raw->forceomit); decoded_field_length = field_ber10k.RAW_decode(PCUIF__data_ber10k_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_9_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_10_force_omit(10, force_omit, PCUIF__data_ta__offs__qbits_descr_.raw->forceomit); decoded_field_length = field_ta__offs__qbits.RAW_decode(PCUIF__data_ta__offs__qbits_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_10_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_11_force_omit(11, force_omit, PCUIF__data_lqual__cb_descr_.raw->forceomit); decoded_field_length = field_lqual__cb.RAW_decode(PCUIF__data_lqual__cb_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_11_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 PCUIF__data::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 = 12; myleaf.body.node.nodes = init_nodes_of_enc_tree(12); myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, PCUIF__data_sapi_descr_.raw); myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, PCUIF__data_len_descr_.raw); myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 2, PCUIF__data_data_descr_.raw); myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 3, PCUIF__data_fn_descr_.raw); myleaf.body.node.nodes[4] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 4, PCUIF__data_arfcn_descr_.raw); myleaf.body.node.nodes[5] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 5, PCUIF__data_trx__nr_descr_.raw); myleaf.body.node.nodes[6] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 6, PCUIF__data_ts__nr_descr_.raw); myleaf.body.node.nodes[7] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 7, PCUIF__data_block__nr_descr_.raw); myleaf.body.node.nodes[8] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 8, PCUIF__data_rssi_descr_.raw); myleaf.body.node.nodes[9] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 9, PCUIF__data_ber10k_descr_.raw); myleaf.body.node.nodes[10] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 10, PCUIF__data_ta__offs__qbits_descr_.raw); myleaf.body.node.nodes[11] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 11, PCUIF__data_lqual__cb_descr_.raw); encoded_length += field_sapi.RAW_encode(PCUIF__data_sapi_descr_, *myleaf.body.node.nodes[0]); encoded_length += field_len.RAW_encode(PCUIF__data_len_descr_, *myleaf.body.node.nodes[1]); encoded_length += field_data.RAW_encode(PCUIF__data_data_descr_, *myleaf.body.node.nodes[2]); encoded_length += field_fn.RAW_encode(PCUIF__data_fn_descr_, *myleaf.body.node.nodes[3]); encoded_length += field_arfcn.RAW_encode(PCUIF__data_arfcn_descr_, *myleaf.body.node.nodes[4]); encoded_length += field_trx__nr.RAW_encode(PCUIF__data_trx__nr_descr_, *myleaf.body.node.nodes[5]); encoded_length += field_ts__nr.RAW_encode(PCUIF__data_ts__nr_descr_, *myleaf.body.node.nodes[6]); encoded_length += field_block__nr.RAW_encode(PCUIF__data_block__nr_descr_, *myleaf.body.node.nodes[7]); encoded_length += field_rssi.RAW_encode(PCUIF__data_rssi_descr_, *myleaf.body.node.nodes[8]); encoded_length += field_ber10k.RAW_encode(PCUIF__data_ber10k_descr_, *myleaf.body.node.nodes[9]); encoded_length += field_ta__offs__qbits.RAW_encode(PCUIF__data_ta__offs__qbits_descr_, *myleaf.body.node.nodes[10]); encoded_length += field_lqual__cb.RAW_encode(PCUIF__data_lqual__cb_descr_, *myleaf.body.node.nodes[11]); return myleaf.length = encoded_length; } struct PCUIF__data_template::single_value_struct { PCUIF__Sapi_template field_sapi; INTEGER_template field_len; OCTETSTRING_template field_data; INTEGER_template field_fn; INTEGER_template field_arfcn; INTEGER_template field_trx__nr; INTEGER_template field_ts__nr; INTEGER_template field_block__nr; INTEGER_template field_rssi; INTEGER_template field_ber10k; INTEGER_template field_ta__offs__qbits; INTEGER_template field_lqual__cb; }; void PCUIF__data_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_sapi = ANY_VALUE; single_value->field_len = ANY_VALUE; single_value->field_data = ANY_VALUE; single_value->field_fn = ANY_VALUE; single_value->field_arfcn = ANY_VALUE; single_value->field_trx__nr = ANY_VALUE; single_value->field_ts__nr = ANY_VALUE; single_value->field_block__nr = ANY_VALUE; single_value->field_rssi = ANY_VALUE; single_value->field_ber10k = ANY_VALUE; single_value->field_ta__offs__qbits = ANY_VALUE; single_value->field_lqual__cb = ANY_VALUE; } } } void PCUIF__data_template::copy_value(const PCUIF__data& other_value) { single_value = new single_value_struct; if (other_value.sapi().is_bound()) { single_value->field_sapi = other_value.sapi(); } else { single_value->field_sapi.clean_up(); } if (other_value.len().is_bound()) { single_value->field_len = other_value.len(); } else { single_value->field_len.clean_up(); } if (other_value.data().is_bound()) { single_value->field_data = other_value.data(); } else { single_value->field_data.clean_up(); } if (other_value.fn().is_bound()) { single_value->field_fn = other_value.fn(); } else { single_value->field_fn.clean_up(); } if (other_value.arfcn().is_bound()) { single_value->field_arfcn = other_value.arfcn(); } else { single_value->field_arfcn.clean_up(); } if (other_value.trx__nr().is_bound()) { single_value->field_trx__nr = other_value.trx__nr(); } else { single_value->field_trx__nr.clean_up(); } if (other_value.ts__nr().is_bound()) { single_value->field_ts__nr = other_value.ts__nr(); } else { single_value->field_ts__nr.clean_up(); } if (other_value.block__nr().is_bound()) { single_value->field_block__nr = other_value.block__nr(); } else { single_value->field_block__nr.clean_up(); } if (other_value.rssi().is_bound()) { single_value->field_rssi = other_value.rssi(); } else { single_value->field_rssi.clean_up(); } if (other_value.ber10k().is_bound()) { single_value->field_ber10k = other_value.ber10k(); } else { single_value->field_ber10k.clean_up(); } if (other_value.ta__offs__qbits().is_bound()) { single_value->field_ta__offs__qbits = other_value.ta__offs__qbits(); } else { single_value->field_ta__offs__qbits.clean_up(); } if (other_value.lqual__cb().is_bound()) { single_value->field_lqual__cb = other_value.lqual__cb(); } else { single_value->field_lqual__cb.clean_up(); } set_selection(SPECIFIC_VALUE); } void PCUIF__data_template::copy_template(const PCUIF__data_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.sapi().get_selection()) { single_value->field_sapi = other_value.sapi(); } else { single_value->field_sapi.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.len().get_selection()) { single_value->field_len = other_value.len(); } else { single_value->field_len.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.data().get_selection()) { single_value->field_data = other_value.data(); } else { single_value->field_data.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.fn().get_selection()) { single_value->field_fn = other_value.fn(); } else { single_value->field_fn.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.arfcn().get_selection()) { single_value->field_arfcn = other_value.arfcn(); } else { single_value->field_arfcn.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.trx__nr().get_selection()) { single_value->field_trx__nr = other_value.trx__nr(); } else { single_value->field_trx__nr.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.ts__nr().get_selection()) { single_value->field_ts__nr = other_value.ts__nr(); } else { single_value->field_ts__nr.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.block__nr().get_selection()) { single_value->field_block__nr = other_value.block__nr(); } else { single_value->field_block__nr.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.rssi().get_selection()) { single_value->field_rssi = other_value.rssi(); } else { single_value->field_rssi.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.ber10k().get_selection()) { single_value->field_ber10k = other_value.ber10k(); } else { single_value->field_ber10k.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.ta__offs__qbits().get_selection()) { single_value->field_ta__offs__qbits = other_value.ta__offs__qbits(); } else { single_value->field_ta__offs__qbits.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.lqual__cb().get_selection()) { single_value->field_lqual__cb = other_value.lqual__cb(); } else { single_value->field_lqual__cb.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 PCUIF__data_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 @PCUIF_Types.PCUIF_data."); break; } set_selection(other_value); } PCUIF__data_template::PCUIF__data_template() { } PCUIF__data_template::PCUIF__data_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__data_template::PCUIF__data_template(const PCUIF__data& other_value) { copy_value(other_value); } PCUIF__data_template::PCUIF__data_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__data&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_data from an unbound optional field."); } } PCUIF__data_template::PCUIF__data_template(const PCUIF__data_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__data_template::~PCUIF__data_template() { clean_up(); } PCUIF__data_template& PCUIF__data_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__data_template& PCUIF__data_template::operator=(const PCUIF__data& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__data_template& PCUIF__data_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__data&)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 @PCUIF_Types.PCUIF_data."); } return *this; } PCUIF__data_template& PCUIF__data_template::operator=(const PCUIF__data_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__data_template::match(const PCUIF__data& 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.sapi().is_bound()) return FALSE; if(!single_value->field_sapi.match(other_value.sapi(), legacy))return FALSE; if(!other_value.len().is_bound()) return FALSE; if(!single_value->field_len.match(other_value.len(), legacy))return FALSE; if(!other_value.data().is_bound()) return FALSE; if(!single_value->field_data.match(other_value.data(), legacy))return FALSE; if(!other_value.fn().is_bound()) return FALSE; if(!single_value->field_fn.match(other_value.fn(), legacy))return FALSE; if(!other_value.arfcn().is_bound()) return FALSE; if(!single_value->field_arfcn.match(other_value.arfcn(), legacy))return FALSE; if(!other_value.trx__nr().is_bound()) return FALSE; if(!single_value->field_trx__nr.match(other_value.trx__nr(), legacy))return FALSE; if(!other_value.ts__nr().is_bound()) return FALSE; if(!single_value->field_ts__nr.match(other_value.ts__nr(), legacy))return FALSE; if(!other_value.block__nr().is_bound()) return FALSE; if(!single_value->field_block__nr.match(other_value.block__nr(), legacy))return FALSE; if(!other_value.rssi().is_bound()) return FALSE; if(!single_value->field_rssi.match(other_value.rssi(), legacy))return FALSE; if(!other_value.ber10k().is_bound()) return FALSE; if(!single_value->field_ber10k.match(other_value.ber10k(), legacy))return FALSE; if(!other_value.ta__offs__qbits().is_bound()) return FALSE; if(!single_value->field_ta__offs__qbits.match(other_value.ta__offs__qbits(), legacy))return FALSE; if(!other_value.lqual__cb().is_bound()) return FALSE; if(!single_value->field_lqual__cb.match(other_value.lqual__cb(), 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 @PCUIF_Types.PCUIF_data."); } return FALSE; } boolean PCUIF__data_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; if (single_value->field_sapi.is_bound()) return TRUE; if (single_value->field_len.is_bound()) return TRUE; if (single_value->field_data.is_bound()) return TRUE; if (single_value->field_fn.is_bound()) return TRUE; if (single_value->field_arfcn.is_bound()) return TRUE; if (single_value->field_trx__nr.is_bound()) return TRUE; if (single_value->field_ts__nr.is_bound()) return TRUE; if (single_value->field_block__nr.is_bound()) return TRUE; if (single_value->field_rssi.is_bound()) return TRUE; if (single_value->field_ber10k.is_bound()) return TRUE; if (single_value->field_ta__offs__qbits.is_bound()) return TRUE; if (single_value->field_lqual__cb.is_bound()) return TRUE; return FALSE; } boolean PCUIF__data_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; if (!single_value->field_sapi.is_value()) return FALSE; if (!single_value->field_len.is_value()) return FALSE; if (!single_value->field_data.is_value()) return FALSE; if (!single_value->field_fn.is_value()) return FALSE; if (!single_value->field_arfcn.is_value()) return FALSE; if (!single_value->field_trx__nr.is_value()) return FALSE; if (!single_value->field_ts__nr.is_value()) return FALSE; if (!single_value->field_block__nr.is_value()) return FALSE; if (!single_value->field_rssi.is_value()) return FALSE; if (!single_value->field_ber10k.is_value()) return FALSE; if (!single_value->field_ta__offs__qbits.is_value()) return FALSE; if (!single_value->field_lqual__cb.is_value()) return FALSE; return TRUE; } void PCUIF__data_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; } PCUIF__data PCUIF__data_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 @PCUIF_Types.PCUIF_data."); PCUIF__data ret_val; if (single_value->field_sapi.is_bound()) { ret_val.sapi() = single_value->field_sapi.valueof(); } if (single_value->field_len.is_bound()) { ret_val.len() = single_value->field_len.valueof(); } if (single_value->field_data.is_bound()) { ret_val.data() = single_value->field_data.valueof(); } if (single_value->field_fn.is_bound()) { ret_val.fn() = single_value->field_fn.valueof(); } if (single_value->field_arfcn.is_bound()) { ret_val.arfcn() = single_value->field_arfcn.valueof(); } if (single_value->field_trx__nr.is_bound()) { ret_val.trx__nr() = single_value->field_trx__nr.valueof(); } if (single_value->field_ts__nr.is_bound()) { ret_val.ts__nr() = single_value->field_ts__nr.valueof(); } if (single_value->field_block__nr.is_bound()) { ret_val.block__nr() = single_value->field_block__nr.valueof(); } if (single_value->field_rssi.is_bound()) { ret_val.rssi() = single_value->field_rssi.valueof(); } if (single_value->field_ber10k.is_bound()) { ret_val.ber10k() = single_value->field_ber10k.valueof(); } if (single_value->field_ta__offs__qbits.is_bound()) { ret_val.ta__offs__qbits() = single_value->field_ta__offs__qbits.valueof(); } if (single_value->field_lqual__cb.is_bound()) { ret_val.lqual__cb() = single_value->field_lqual__cb.valueof(); } return ret_val; } void PCUIF__data_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 @PCUIF_Types.PCUIF_data."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__data_template[list_length]; } PCUIF__data_template& PCUIF__data_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 @PCUIF_Types.PCUIF_data."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @PCUIF_Types.PCUIF_data."); return value_list.list_value[list_index]; } PCUIF__Sapi_template& PCUIF__data_template::sapi() { set_specific(); return single_value->field_sapi; } const PCUIF__Sapi_template& PCUIF__data_template::sapi() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field sapi of a non-specific template of type @PCUIF_Types.PCUIF_data."); return single_value->field_sapi; } INTEGER_template& PCUIF__data_template::len() { set_specific(); return single_value->field_len; } const INTEGER_template& PCUIF__data_template::len() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field len of a non-specific template of type @PCUIF_Types.PCUIF_data."); return single_value->field_len; } OCTETSTRING_template& PCUIF__data_template::data() { set_specific(); return single_value->field_data; } const OCTETSTRING_template& PCUIF__data_template::data() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field data of a non-specific template of type @PCUIF_Types.PCUIF_data."); return single_value->field_data; } INTEGER_template& PCUIF__data_template::fn() { set_specific(); return single_value->field_fn; } const INTEGER_template& PCUIF__data_template::fn() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field fn of a non-specific template of type @PCUIF_Types.PCUIF_data."); return single_value->field_fn; } INTEGER_template& PCUIF__data_template::arfcn() { set_specific(); return single_value->field_arfcn; } const INTEGER_template& PCUIF__data_template::arfcn() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field arfcn of a non-specific template of type @PCUIF_Types.PCUIF_data."); return single_value->field_arfcn; } INTEGER_template& PCUIF__data_template::trx__nr() { set_specific(); return single_value->field_trx__nr; } const INTEGER_template& PCUIF__data_template::trx__nr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field trx_nr of a non-specific template of type @PCUIF_Types.PCUIF_data."); return single_value->field_trx__nr; } INTEGER_template& PCUIF__data_template::ts__nr() { set_specific(); return single_value->field_ts__nr; } const INTEGER_template& PCUIF__data_template::ts__nr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ts_nr of a non-specific template of type @PCUIF_Types.PCUIF_data."); return single_value->field_ts__nr; } INTEGER_template& PCUIF__data_template::block__nr() { set_specific(); return single_value->field_block__nr; } const INTEGER_template& PCUIF__data_template::block__nr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field block_nr of a non-specific template of type @PCUIF_Types.PCUIF_data."); return single_value->field_block__nr; } INTEGER_template& PCUIF__data_template::rssi() { set_specific(); return single_value->field_rssi; } const INTEGER_template& PCUIF__data_template::rssi() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field rssi of a non-specific template of type @PCUIF_Types.PCUIF_data."); return single_value->field_rssi; } INTEGER_template& PCUIF__data_template::ber10k() { set_specific(); return single_value->field_ber10k; } const INTEGER_template& PCUIF__data_template::ber10k() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ber10k of a non-specific template of type @PCUIF_Types.PCUIF_data."); return single_value->field_ber10k; } INTEGER_template& PCUIF__data_template::ta__offs__qbits() { set_specific(); return single_value->field_ta__offs__qbits; } const INTEGER_template& PCUIF__data_template::ta__offs__qbits() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ta_offs_qbits of a non-specific template of type @PCUIF_Types.PCUIF_data."); return single_value->field_ta__offs__qbits; } INTEGER_template& PCUIF__data_template::lqual__cb() { set_specific(); return single_value->field_lqual__cb; } const INTEGER_template& PCUIF__data_template::lqual__cb() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field lqual_cb of a non-specific template of type @PCUIF_Types.PCUIF_data."); return single_value->field_lqual__cb; } int PCUIF__data_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_data which has an ifpresent attribute."); switch (template_selection) { case SPECIFIC_VALUE: return 12; case VALUE_LIST: { if (value_list.n_values<1) TTCN_error("Internal error: Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_data 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 @PCUIF_Types.PCUIF_data containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_data containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_data containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_data containing complemented list."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_data."); } return 0; } void PCUIF__data_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ sapi := "); single_value->field_sapi.log(); TTCN_Logger::log_event_str(", len := "); single_value->field_len.log(); TTCN_Logger::log_event_str(", data := "); single_value->field_data.log(); TTCN_Logger::log_event_str(", fn := "); single_value->field_fn.log(); TTCN_Logger::log_event_str(", arfcn := "); single_value->field_arfcn.log(); TTCN_Logger::log_event_str(", trx_nr := "); single_value->field_trx__nr.log(); TTCN_Logger::log_event_str(", ts_nr := "); single_value->field_ts__nr.log(); TTCN_Logger::log_event_str(", block_nr := "); single_value->field_block__nr.log(); TTCN_Logger::log_event_str(", rssi := "); single_value->field_rssi.log(); TTCN_Logger::log_event_str(", ber10k := "); single_value->field_ber10k.log(); TTCN_Logger::log_event_str(", ta_offs_qbits := "); single_value->field_ta__offs__qbits.log(); TTCN_Logger::log_event_str(", lqual_cb := "); single_value->field_lqual__cb.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 PCUIF__data_template::log_match(const PCUIF__data& 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_sapi.match(match_value.sapi(), legacy)){ TTCN_Logger::log_logmatch_info(".sapi"); single_value->field_sapi.log_match(match_value.sapi(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_len.match(match_value.len(), legacy)){ TTCN_Logger::log_logmatch_info(".len"); single_value->field_len.log_match(match_value.len(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_data.match(match_value.data(), legacy)){ TTCN_Logger::log_logmatch_info(".data"); single_value->field_data.log_match(match_value.data(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_fn.match(match_value.fn(), legacy)){ TTCN_Logger::log_logmatch_info(".fn"); single_value->field_fn.log_match(match_value.fn(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_arfcn.match(match_value.arfcn(), legacy)){ TTCN_Logger::log_logmatch_info(".arfcn"); single_value->field_arfcn.log_match(match_value.arfcn(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_trx__nr.match(match_value.trx__nr(), legacy)){ TTCN_Logger::log_logmatch_info(".trx_nr"); single_value->field_trx__nr.log_match(match_value.trx__nr(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_ts__nr.match(match_value.ts__nr(), legacy)){ TTCN_Logger::log_logmatch_info(".ts_nr"); single_value->field_ts__nr.log_match(match_value.ts__nr(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_block__nr.match(match_value.block__nr(), legacy)){ TTCN_Logger::log_logmatch_info(".block_nr"); single_value->field_block__nr.log_match(match_value.block__nr(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_rssi.match(match_value.rssi(), legacy)){ TTCN_Logger::log_logmatch_info(".rssi"); single_value->field_rssi.log_match(match_value.rssi(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_ber10k.match(match_value.ber10k(), legacy)){ TTCN_Logger::log_logmatch_info(".ber10k"); single_value->field_ber10k.log_match(match_value.ber10k(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_ta__offs__qbits.match(match_value.ta__offs__qbits(), legacy)){ TTCN_Logger::log_logmatch_info(".ta_offs_qbits"); single_value->field_ta__offs__qbits.log_match(match_value.ta__offs__qbits(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_lqual__cb.match(match_value.lqual__cb(), legacy)){ TTCN_Logger::log_logmatch_info(".lqual_cb"); single_value->field_lqual__cb.log_match(match_value.lqual__cb(), 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("{ sapi := "); single_value->field_sapi.log_match(match_value.sapi(), legacy); TTCN_Logger::log_event_str(", len := "); single_value->field_len.log_match(match_value.len(), legacy); TTCN_Logger::log_event_str(", data := "); single_value->field_data.log_match(match_value.data(), legacy); TTCN_Logger::log_event_str(", fn := "); single_value->field_fn.log_match(match_value.fn(), legacy); TTCN_Logger::log_event_str(", arfcn := "); single_value->field_arfcn.log_match(match_value.arfcn(), legacy); TTCN_Logger::log_event_str(", trx_nr := "); single_value->field_trx__nr.log_match(match_value.trx__nr(), legacy); TTCN_Logger::log_event_str(", ts_nr := "); single_value->field_ts__nr.log_match(match_value.ts__nr(), legacy); TTCN_Logger::log_event_str(", block_nr := "); single_value->field_block__nr.log_match(match_value.block__nr(), legacy); TTCN_Logger::log_event_str(", rssi := "); single_value->field_rssi.log_match(match_value.rssi(), legacy); TTCN_Logger::log_event_str(", ber10k := "); single_value->field_ber10k.log_match(match_value.ber10k(), legacy); TTCN_Logger::log_event_str(", ta_offs_qbits := "); single_value->field_ta__offs__qbits.log_match(match_value.ta__offs__qbits(), legacy); TTCN_Logger::log_event_str(", lqual_cb := "); single_value->field_lqual__cb.log_match(match_value.lqual__cb(), 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 PCUIF__data_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_sapi.encode_text(text_buf); single_value->field_len.encode_text(text_buf); single_value->field_data.encode_text(text_buf); single_value->field_fn.encode_text(text_buf); single_value->field_arfcn.encode_text(text_buf); single_value->field_trx__nr.encode_text(text_buf); single_value->field_ts__nr.encode_text(text_buf); single_value->field_block__nr.encode_text(text_buf); single_value->field_rssi.encode_text(text_buf); single_value->field_ber10k.encode_text(text_buf); single_value->field_ta__offs__qbits.encode_text(text_buf); single_value->field_lqual__cb.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 @PCUIF_Types.PCUIF_data."); } } void PCUIF__data_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_sapi.decode_text(text_buf); single_value->field_len.decode_text(text_buf); single_value->field_data.decode_text(text_buf); single_value->field_fn.decode_text(text_buf); single_value->field_arfcn.decode_text(text_buf); single_value->field_trx__nr.decode_text(text_buf); single_value->field_ts__nr.decode_text(text_buf); single_value->field_block__nr.decode_text(text_buf); single_value->field_rssi.decode_text(text_buf); single_value->field_ber10k.decode_text(text_buf); single_value->field_ta__offs__qbits.decode_text(text_buf); single_value->field_lqual__cb.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 PCUIF__data_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 @PCUIF_Types.PCUIF_data."); } } void PCUIF__data_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: { PCUIF__data_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_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) sapi().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) len().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) data().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) fn().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) arfcn().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) trx__nr().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) ts__nr().set_param(*param.get_elem(6)); if (param.get_size()>7 && param.get_elem(7)->get_type()!=Module_Param::MP_NotUsed) block__nr().set_param(*param.get_elem(7)); if (param.get_size()>8 && param.get_elem(8)->get_type()!=Module_Param::MP_NotUsed) rssi().set_param(*param.get_elem(8)); if (param.get_size()>9 && param.get_elem(9)->get_type()!=Module_Param::MP_NotUsed) ber10k().set_param(*param.get_elem(9)); if (param.get_size()>10 && param.get_elem(10)->get_type()!=Module_Param::MP_NotUsed) ta__offs__qbits().set_param(*param.get_elem(10)); if (param.get_size()>11 && param.get_elem(11)->get_type()!=Module_Param::MP_NotUsed) lqual__cb().set_param(*param.get_elem(11)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "sapi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sapi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "len")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { len().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "data")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { data().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "fn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { fn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "arfcn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { arfcn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "trx_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { trx__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ts_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ts__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "block_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { block__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "rssi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { rssi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ber10k")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ber10k().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ta_offs_qbits")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ta__offs__qbits().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "lqual_cb")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { lqual__cb().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_data: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record template", "@PCUIF_Types.PCUIF_data"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__data_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_sapi.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data"); single_value->field_len.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data"); single_value->field_data.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data"); single_value->field_fn.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data"); single_value->field_arfcn.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data"); single_value->field_trx__nr.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data"); single_value->field_ts__nr.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data"); single_value->field_block__nr.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data"); single_value->field_rssi.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data"); single_value->field_ber10k.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data"); single_value->field_ta__offs__qbits.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data"); single_value->field_lqual__cb.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data"); 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 : "@PCUIF_Types.PCUIF_data"); } boolean PCUIF__data_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__data_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_idx0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) sapi().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) tlli().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) fn().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) arfcn().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) trx__nr().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) ts__nr().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) block__nr().set_param(*param.get_elem(6)); if (param.get_size()>7 && param.get_elem(7)->get_type()!=Module_Param::MP_NotUsed) rssi().set_param(*param.get_elem(7)); if (param.get_size()>8 && param.get_elem(8)->get_type()!=Module_Param::MP_NotUsed) ber10k().set_param(*param.get_elem(8)); if (param.get_size()>9 && param.get_elem(9)->get_type()!=Module_Param::MP_NotUsed) ta__offs__qbits().set_param(*param.get_elem(9)); if (param.get_size()>10 && param.get_elem(10)->get_type()!=Module_Param::MP_NotUsed) lqual__cb().set_param(*param.get_elem(10)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "sapi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sapi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "tlli")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { tlli().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "fn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { fn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "arfcn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { arfcn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "trx_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { trx__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ts_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ts__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "block_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { block__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "rssi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { rssi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ber10k")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ber10k().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ta_offs_qbits")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ta__offs__qbits().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "lqual_cb")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { lqual__cb().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_data_cnf_dt: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@PCUIF_Types.PCUIF_data_cnf_dt"); } } void PCUIF__data__cnf__dt::set_implicit_omit() { if (sapi().is_bound()) sapi().set_implicit_omit(); if (tlli().is_bound()) tlli().set_implicit_omit(); if (fn().is_bound()) fn().set_implicit_omit(); if (arfcn().is_bound()) arfcn().set_implicit_omit(); if (trx__nr().is_bound()) trx__nr().set_implicit_omit(); if (ts__nr().is_bound()) ts__nr().set_implicit_omit(); if (block__nr().is_bound()) block__nr().set_implicit_omit(); if (rssi().is_bound()) rssi().set_implicit_omit(); if (ber10k().is_bound()) ber10k().set_implicit_omit(); if (ta__offs__qbits().is_bound()) ta__offs__qbits().set_implicit_omit(); if (lqual__cb().is_bound()) lqual__cb().set_implicit_omit(); } void PCUIF__data__cnf__dt::encode_text(Text_Buf& text_buf) const { field_sapi.encode_text(text_buf); field_tlli.encode_text(text_buf); field_fn.encode_text(text_buf); field_arfcn.encode_text(text_buf); field_trx__nr.encode_text(text_buf); field_ts__nr.encode_text(text_buf); field_block__nr.encode_text(text_buf); field_rssi.encode_text(text_buf); field_ber10k.encode_text(text_buf); field_ta__offs__qbits.encode_text(text_buf); field_lqual__cb.encode_text(text_buf); } void PCUIF__data__cnf__dt::decode_text(Text_Buf& text_buf) { field_sapi.decode_text(text_buf); field_tlli.decode_text(text_buf); field_fn.decode_text(text_buf); field_arfcn.decode_text(text_buf); field_trx__nr.decode_text(text_buf); field_ts__nr.decode_text(text_buf); field_block__nr.decode_text(text_buf); field_rssi.decode_text(text_buf); field_ber10k.decode_text(text_buf); field_ta__offs__qbits.decode_text(text_buf); field_lqual__cb.decode_text(text_buf); } void PCUIF__data__cnf__dt::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 PCUIF__data__cnf__dt::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 PCUIF__data__cnf__dt::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, PCUIF__data__cnf__dt_sapi_descr_.raw->forceomit); decoded_field_length = field_sapi.RAW_decode(PCUIF__data__cnf__dt_sapi_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, PCUIF__data__cnf__dt_tlli_descr_.raw->forceomit); decoded_field_length = field_tlli.RAW_decode(PCUIF__data__cnf__dt_tlli_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()); RAW_Force_Omit field_2_force_omit(2, force_omit, PCUIF__data__cnf__dt_fn_descr_.raw->forceomit); decoded_field_length = field_fn.RAW_decode(PCUIF__data__cnf__dt_fn_descr_, p_buf, limit, local_top_order, no_err, -1, 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()); RAW_Force_Omit field_3_force_omit(3, force_omit, PCUIF__data__cnf__dt_arfcn_descr_.raw->forceomit); decoded_field_length = field_arfcn.RAW_decode(PCUIF__data__cnf__dt_arfcn_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_3_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_4_force_omit(4, force_omit, PCUIF__data__cnf__dt_trx__nr_descr_.raw->forceomit); decoded_field_length = field_trx__nr.RAW_decode(PCUIF__data__cnf__dt_trx__nr_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_4_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_5_force_omit(5, force_omit, PCUIF__data__cnf__dt_ts__nr_descr_.raw->forceomit); decoded_field_length = field_ts__nr.RAW_decode(PCUIF__data__cnf__dt_ts__nr_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_5_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_6_force_omit(6, force_omit, PCUIF__data__cnf__dt_block__nr_descr_.raw->forceomit); decoded_field_length = field_block__nr.RAW_decode(PCUIF__data__cnf__dt_block__nr_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_6_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_7_force_omit(7, force_omit, PCUIF__data__cnf__dt_rssi_descr_.raw->forceomit); decoded_field_length = field_rssi.RAW_decode(PCUIF__data__cnf__dt_rssi_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_7_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_8_force_omit(8, force_omit, PCUIF__data__cnf__dt_ber10k_descr_.raw->forceomit); decoded_field_length = field_ber10k.RAW_decode(PCUIF__data__cnf__dt_ber10k_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_8_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_9_force_omit(9, force_omit, PCUIF__data__cnf__dt_ta__offs__qbits_descr_.raw->forceomit); decoded_field_length = field_ta__offs__qbits.RAW_decode(PCUIF__data__cnf__dt_ta__offs__qbits_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_9_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_10_force_omit(10, force_omit, PCUIF__data__cnf__dt_lqual__cb_descr_.raw->forceomit); decoded_field_length = field_lqual__cb.RAW_decode(PCUIF__data__cnf__dt_lqual__cb_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_10_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 PCUIF__data__cnf__dt::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 = 11; myleaf.body.node.nodes = init_nodes_of_enc_tree(11); myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, PCUIF__data__cnf__dt_sapi_descr_.raw); myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, PCUIF__data__cnf__dt_tlli_descr_.raw); myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 2, PCUIF__data__cnf__dt_fn_descr_.raw); myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 3, PCUIF__data__cnf__dt_arfcn_descr_.raw); myleaf.body.node.nodes[4] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 4, PCUIF__data__cnf__dt_trx__nr_descr_.raw); myleaf.body.node.nodes[5] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 5, PCUIF__data__cnf__dt_ts__nr_descr_.raw); myleaf.body.node.nodes[6] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 6, PCUIF__data__cnf__dt_block__nr_descr_.raw); myleaf.body.node.nodes[7] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 7, PCUIF__data__cnf__dt_rssi_descr_.raw); myleaf.body.node.nodes[8] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 8, PCUIF__data__cnf__dt_ber10k_descr_.raw); myleaf.body.node.nodes[9] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 9, PCUIF__data__cnf__dt_ta__offs__qbits_descr_.raw); myleaf.body.node.nodes[10] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 10, PCUIF__data__cnf__dt_lqual__cb_descr_.raw); encoded_length += field_sapi.RAW_encode(PCUIF__data__cnf__dt_sapi_descr_, *myleaf.body.node.nodes[0]); encoded_length += field_tlli.RAW_encode(PCUIF__data__cnf__dt_tlli_descr_, *myleaf.body.node.nodes[1]); encoded_length += field_fn.RAW_encode(PCUIF__data__cnf__dt_fn_descr_, *myleaf.body.node.nodes[2]); encoded_length += field_arfcn.RAW_encode(PCUIF__data__cnf__dt_arfcn_descr_, *myleaf.body.node.nodes[3]); encoded_length += field_trx__nr.RAW_encode(PCUIF__data__cnf__dt_trx__nr_descr_, *myleaf.body.node.nodes[4]); encoded_length += field_ts__nr.RAW_encode(PCUIF__data__cnf__dt_ts__nr_descr_, *myleaf.body.node.nodes[5]); encoded_length += field_block__nr.RAW_encode(PCUIF__data__cnf__dt_block__nr_descr_, *myleaf.body.node.nodes[6]); encoded_length += field_rssi.RAW_encode(PCUIF__data__cnf__dt_rssi_descr_, *myleaf.body.node.nodes[7]); encoded_length += field_ber10k.RAW_encode(PCUIF__data__cnf__dt_ber10k_descr_, *myleaf.body.node.nodes[8]); encoded_length += field_ta__offs__qbits.RAW_encode(PCUIF__data__cnf__dt_ta__offs__qbits_descr_, *myleaf.body.node.nodes[9]); encoded_length += field_lqual__cb.RAW_encode(PCUIF__data__cnf__dt_lqual__cb_descr_, *myleaf.body.node.nodes[10]); return myleaf.length = encoded_length; } struct PCUIF__data__cnf__dt_template::single_value_struct { PCUIF__Sapi_template field_sapi; OCTETSTRING_template field_tlli; INTEGER_template field_fn; INTEGER_template field_arfcn; INTEGER_template field_trx__nr; INTEGER_template field_ts__nr; INTEGER_template field_block__nr; INTEGER_template field_rssi; INTEGER_template field_ber10k; INTEGER_template field_ta__offs__qbits; INTEGER_template field_lqual__cb; }; void PCUIF__data__cnf__dt_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_sapi = ANY_VALUE; single_value->field_tlli = ANY_VALUE; single_value->field_fn = ANY_VALUE; single_value->field_arfcn = ANY_VALUE; single_value->field_trx__nr = ANY_VALUE; single_value->field_ts__nr = ANY_VALUE; single_value->field_block__nr = ANY_VALUE; single_value->field_rssi = ANY_VALUE; single_value->field_ber10k = ANY_VALUE; single_value->field_ta__offs__qbits = ANY_VALUE; single_value->field_lqual__cb = ANY_VALUE; } } } void PCUIF__data__cnf__dt_template::copy_value(const PCUIF__data__cnf__dt& other_value) { single_value = new single_value_struct; if (other_value.sapi().is_bound()) { single_value->field_sapi = other_value.sapi(); } else { single_value->field_sapi.clean_up(); } if (other_value.tlli().is_bound()) { single_value->field_tlli = other_value.tlli(); } else { single_value->field_tlli.clean_up(); } if (other_value.fn().is_bound()) { single_value->field_fn = other_value.fn(); } else { single_value->field_fn.clean_up(); } if (other_value.arfcn().is_bound()) { single_value->field_arfcn = other_value.arfcn(); } else { single_value->field_arfcn.clean_up(); } if (other_value.trx__nr().is_bound()) { single_value->field_trx__nr = other_value.trx__nr(); } else { single_value->field_trx__nr.clean_up(); } if (other_value.ts__nr().is_bound()) { single_value->field_ts__nr = other_value.ts__nr(); } else { single_value->field_ts__nr.clean_up(); } if (other_value.block__nr().is_bound()) { single_value->field_block__nr = other_value.block__nr(); } else { single_value->field_block__nr.clean_up(); } if (other_value.rssi().is_bound()) { single_value->field_rssi = other_value.rssi(); } else { single_value->field_rssi.clean_up(); } if (other_value.ber10k().is_bound()) { single_value->field_ber10k = other_value.ber10k(); } else { single_value->field_ber10k.clean_up(); } if (other_value.ta__offs__qbits().is_bound()) { single_value->field_ta__offs__qbits = other_value.ta__offs__qbits(); } else { single_value->field_ta__offs__qbits.clean_up(); } if (other_value.lqual__cb().is_bound()) { single_value->field_lqual__cb = other_value.lqual__cb(); } else { single_value->field_lqual__cb.clean_up(); } set_selection(SPECIFIC_VALUE); } void PCUIF__data__cnf__dt_template::copy_template(const PCUIF__data__cnf__dt_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.sapi().get_selection()) { single_value->field_sapi = other_value.sapi(); } else { single_value->field_sapi.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.tlli().get_selection()) { single_value->field_tlli = other_value.tlli(); } else { single_value->field_tlli.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.fn().get_selection()) { single_value->field_fn = other_value.fn(); } else { single_value->field_fn.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.arfcn().get_selection()) { single_value->field_arfcn = other_value.arfcn(); } else { single_value->field_arfcn.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.trx__nr().get_selection()) { single_value->field_trx__nr = other_value.trx__nr(); } else { single_value->field_trx__nr.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.ts__nr().get_selection()) { single_value->field_ts__nr = other_value.ts__nr(); } else { single_value->field_ts__nr.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.block__nr().get_selection()) { single_value->field_block__nr = other_value.block__nr(); } else { single_value->field_block__nr.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.rssi().get_selection()) { single_value->field_rssi = other_value.rssi(); } else { single_value->field_rssi.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.ber10k().get_selection()) { single_value->field_ber10k = other_value.ber10k(); } else { single_value->field_ber10k.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.ta__offs__qbits().get_selection()) { single_value->field_ta__offs__qbits = other_value.ta__offs__qbits(); } else { single_value->field_ta__offs__qbits.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.lqual__cb().get_selection()) { single_value->field_lqual__cb = other_value.lqual__cb(); } else { single_value->field_lqual__cb.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 PCUIF__data__cnf__dt_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 @PCUIF_Types.PCUIF_data_cnf_dt."); break; } set_selection(other_value); } PCUIF__data__cnf__dt_template::PCUIF__data__cnf__dt_template() { } PCUIF__data__cnf__dt_template::PCUIF__data__cnf__dt_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__data__cnf__dt_template::PCUIF__data__cnf__dt_template(const PCUIF__data__cnf__dt& other_value) { copy_value(other_value); } PCUIF__data__cnf__dt_template::PCUIF__data__cnf__dt_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__data__cnf__dt&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_data_cnf_dt from an unbound optional field."); } } PCUIF__data__cnf__dt_template::PCUIF__data__cnf__dt_template(const PCUIF__data__cnf__dt_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__data__cnf__dt_template::~PCUIF__data__cnf__dt_template() { clean_up(); } PCUIF__data__cnf__dt_template& PCUIF__data__cnf__dt_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__data__cnf__dt_template& PCUIF__data__cnf__dt_template::operator=(const PCUIF__data__cnf__dt& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__data__cnf__dt_template& PCUIF__data__cnf__dt_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__data__cnf__dt&)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 @PCUIF_Types.PCUIF_data_cnf_dt."); } return *this; } PCUIF__data__cnf__dt_template& PCUIF__data__cnf__dt_template::operator=(const PCUIF__data__cnf__dt_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__data__cnf__dt_template::match(const PCUIF__data__cnf__dt& 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.sapi().is_bound()) return FALSE; if(!single_value->field_sapi.match(other_value.sapi(), legacy))return FALSE; if(!other_value.tlli().is_bound()) return FALSE; if(!single_value->field_tlli.match(other_value.tlli(), legacy))return FALSE; if(!other_value.fn().is_bound()) return FALSE; if(!single_value->field_fn.match(other_value.fn(), legacy))return FALSE; if(!other_value.arfcn().is_bound()) return FALSE; if(!single_value->field_arfcn.match(other_value.arfcn(), legacy))return FALSE; if(!other_value.trx__nr().is_bound()) return FALSE; if(!single_value->field_trx__nr.match(other_value.trx__nr(), legacy))return FALSE; if(!other_value.ts__nr().is_bound()) return FALSE; if(!single_value->field_ts__nr.match(other_value.ts__nr(), legacy))return FALSE; if(!other_value.block__nr().is_bound()) return FALSE; if(!single_value->field_block__nr.match(other_value.block__nr(), legacy))return FALSE; if(!other_value.rssi().is_bound()) return FALSE; if(!single_value->field_rssi.match(other_value.rssi(), legacy))return FALSE; if(!other_value.ber10k().is_bound()) return FALSE; if(!single_value->field_ber10k.match(other_value.ber10k(), legacy))return FALSE; if(!other_value.ta__offs__qbits().is_bound()) return FALSE; if(!single_value->field_ta__offs__qbits.match(other_value.ta__offs__qbits(), legacy))return FALSE; if(!other_value.lqual__cb().is_bound()) return FALSE; if(!single_value->field_lqual__cb.match(other_value.lqual__cb(), 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 @PCUIF_Types.PCUIF_data_cnf_dt."); } return FALSE; } boolean PCUIF__data__cnf__dt_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; if (single_value->field_sapi.is_bound()) return TRUE; if (single_value->field_tlli.is_bound()) return TRUE; if (single_value->field_fn.is_bound()) return TRUE; if (single_value->field_arfcn.is_bound()) return TRUE; if (single_value->field_trx__nr.is_bound()) return TRUE; if (single_value->field_ts__nr.is_bound()) return TRUE; if (single_value->field_block__nr.is_bound()) return TRUE; if (single_value->field_rssi.is_bound()) return TRUE; if (single_value->field_ber10k.is_bound()) return TRUE; if (single_value->field_ta__offs__qbits.is_bound()) return TRUE; if (single_value->field_lqual__cb.is_bound()) return TRUE; return FALSE; } boolean PCUIF__data__cnf__dt_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; if (!single_value->field_sapi.is_value()) return FALSE; if (!single_value->field_tlli.is_value()) return FALSE; if (!single_value->field_fn.is_value()) return FALSE; if (!single_value->field_arfcn.is_value()) return FALSE; if (!single_value->field_trx__nr.is_value()) return FALSE; if (!single_value->field_ts__nr.is_value()) return FALSE; if (!single_value->field_block__nr.is_value()) return FALSE; if (!single_value->field_rssi.is_value()) return FALSE; if (!single_value->field_ber10k.is_value()) return FALSE; if (!single_value->field_ta__offs__qbits.is_value()) return FALSE; if (!single_value->field_lqual__cb.is_value()) return FALSE; return TRUE; } void PCUIF__data__cnf__dt_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; } PCUIF__data__cnf__dt PCUIF__data__cnf__dt_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 @PCUIF_Types.PCUIF_data_cnf_dt."); PCUIF__data__cnf__dt ret_val; if (single_value->field_sapi.is_bound()) { ret_val.sapi() = single_value->field_sapi.valueof(); } if (single_value->field_tlli.is_bound()) { ret_val.tlli() = single_value->field_tlli.valueof(); } if (single_value->field_fn.is_bound()) { ret_val.fn() = single_value->field_fn.valueof(); } if (single_value->field_arfcn.is_bound()) { ret_val.arfcn() = single_value->field_arfcn.valueof(); } if (single_value->field_trx__nr.is_bound()) { ret_val.trx__nr() = single_value->field_trx__nr.valueof(); } if (single_value->field_ts__nr.is_bound()) { ret_val.ts__nr() = single_value->field_ts__nr.valueof(); } if (single_value->field_block__nr.is_bound()) { ret_val.block__nr() = single_value->field_block__nr.valueof(); } if (single_value->field_rssi.is_bound()) { ret_val.rssi() = single_value->field_rssi.valueof(); } if (single_value->field_ber10k.is_bound()) { ret_val.ber10k() = single_value->field_ber10k.valueof(); } if (single_value->field_ta__offs__qbits.is_bound()) { ret_val.ta__offs__qbits() = single_value->field_ta__offs__qbits.valueof(); } if (single_value->field_lqual__cb.is_bound()) { ret_val.lqual__cb() = single_value->field_lqual__cb.valueof(); } return ret_val; } void PCUIF__data__cnf__dt_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 @PCUIF_Types.PCUIF_data_cnf_dt."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__data__cnf__dt_template[list_length]; } PCUIF__data__cnf__dt_template& PCUIF__data__cnf__dt_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 @PCUIF_Types.PCUIF_data_cnf_dt."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @PCUIF_Types.PCUIF_data_cnf_dt."); return value_list.list_value[list_index]; } PCUIF__Sapi_template& PCUIF__data__cnf__dt_template::sapi() { set_specific(); return single_value->field_sapi; } const PCUIF__Sapi_template& PCUIF__data__cnf__dt_template::sapi() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field sapi of a non-specific template of type @PCUIF_Types.PCUIF_data_cnf_dt."); return single_value->field_sapi; } OCTETSTRING_template& PCUIF__data__cnf__dt_template::tlli() { set_specific(); return single_value->field_tlli; } const OCTETSTRING_template& PCUIF__data__cnf__dt_template::tlli() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field tlli of a non-specific template of type @PCUIF_Types.PCUIF_data_cnf_dt."); return single_value->field_tlli; } INTEGER_template& PCUIF__data__cnf__dt_template::fn() { set_specific(); return single_value->field_fn; } const INTEGER_template& PCUIF__data__cnf__dt_template::fn() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field fn of a non-specific template of type @PCUIF_Types.PCUIF_data_cnf_dt."); return single_value->field_fn; } INTEGER_template& PCUIF__data__cnf__dt_template::arfcn() { set_specific(); return single_value->field_arfcn; } const INTEGER_template& PCUIF__data__cnf__dt_template::arfcn() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field arfcn of a non-specific template of type @PCUIF_Types.PCUIF_data_cnf_dt."); return single_value->field_arfcn; } INTEGER_template& PCUIF__data__cnf__dt_template::trx__nr() { set_specific(); return single_value->field_trx__nr; } const INTEGER_template& PCUIF__data__cnf__dt_template::trx__nr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field trx_nr of a non-specific template of type @PCUIF_Types.PCUIF_data_cnf_dt."); return single_value->field_trx__nr; } INTEGER_template& PCUIF__data__cnf__dt_template::ts__nr() { set_specific(); return single_value->field_ts__nr; } const INTEGER_template& PCUIF__data__cnf__dt_template::ts__nr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ts_nr of a non-specific template of type @PCUIF_Types.PCUIF_data_cnf_dt."); return single_value->field_ts__nr; } INTEGER_template& PCUIF__data__cnf__dt_template::block__nr() { set_specific(); return single_value->field_block__nr; } const INTEGER_template& PCUIF__data__cnf__dt_template::block__nr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field block_nr of a non-specific template of type @PCUIF_Types.PCUIF_data_cnf_dt."); return single_value->field_block__nr; } INTEGER_template& PCUIF__data__cnf__dt_template::rssi() { set_specific(); return single_value->field_rssi; } const INTEGER_template& PCUIF__data__cnf__dt_template::rssi() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field rssi of a non-specific template of type @PCUIF_Types.PCUIF_data_cnf_dt."); return single_value->field_rssi; } INTEGER_template& PCUIF__data__cnf__dt_template::ber10k() { set_specific(); return single_value->field_ber10k; } const INTEGER_template& PCUIF__data__cnf__dt_template::ber10k() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ber10k of a non-specific template of type @PCUIF_Types.PCUIF_data_cnf_dt."); return single_value->field_ber10k; } INTEGER_template& PCUIF__data__cnf__dt_template::ta__offs__qbits() { set_specific(); return single_value->field_ta__offs__qbits; } const INTEGER_template& PCUIF__data__cnf__dt_template::ta__offs__qbits() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ta_offs_qbits of a non-specific template of type @PCUIF_Types.PCUIF_data_cnf_dt."); return single_value->field_ta__offs__qbits; } INTEGER_template& PCUIF__data__cnf__dt_template::lqual__cb() { set_specific(); return single_value->field_lqual__cb; } const INTEGER_template& PCUIF__data__cnf__dt_template::lqual__cb() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field lqual_cb of a non-specific template of type @PCUIF_Types.PCUIF_data_cnf_dt."); return single_value->field_lqual__cb; } int PCUIF__data__cnf__dt_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_data_cnf_dt which has an ifpresent attribute."); switch (template_selection) { case SPECIFIC_VALUE: return 11; case VALUE_LIST: { if (value_list.n_values<1) TTCN_error("Internal error: Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_data_cnf_dt 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 @PCUIF_Types.PCUIF_data_cnf_dt containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_data_cnf_dt containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_data_cnf_dt containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_data_cnf_dt containing complemented list."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_data_cnf_dt."); } return 0; } void PCUIF__data__cnf__dt_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ sapi := "); single_value->field_sapi.log(); TTCN_Logger::log_event_str(", tlli := "); single_value->field_tlli.log(); TTCN_Logger::log_event_str(", fn := "); single_value->field_fn.log(); TTCN_Logger::log_event_str(", arfcn := "); single_value->field_arfcn.log(); TTCN_Logger::log_event_str(", trx_nr := "); single_value->field_trx__nr.log(); TTCN_Logger::log_event_str(", ts_nr := "); single_value->field_ts__nr.log(); TTCN_Logger::log_event_str(", block_nr := "); single_value->field_block__nr.log(); TTCN_Logger::log_event_str(", rssi := "); single_value->field_rssi.log(); TTCN_Logger::log_event_str(", ber10k := "); single_value->field_ber10k.log(); TTCN_Logger::log_event_str(", ta_offs_qbits := "); single_value->field_ta__offs__qbits.log(); TTCN_Logger::log_event_str(", lqual_cb := "); single_value->field_lqual__cb.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 PCUIF__data__cnf__dt_template::log_match(const PCUIF__data__cnf__dt& 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_sapi.match(match_value.sapi(), legacy)){ TTCN_Logger::log_logmatch_info(".sapi"); single_value->field_sapi.log_match(match_value.sapi(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_tlli.match(match_value.tlli(), legacy)){ TTCN_Logger::log_logmatch_info(".tlli"); single_value->field_tlli.log_match(match_value.tlli(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_fn.match(match_value.fn(), legacy)){ TTCN_Logger::log_logmatch_info(".fn"); single_value->field_fn.log_match(match_value.fn(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_arfcn.match(match_value.arfcn(), legacy)){ TTCN_Logger::log_logmatch_info(".arfcn"); single_value->field_arfcn.log_match(match_value.arfcn(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_trx__nr.match(match_value.trx__nr(), legacy)){ TTCN_Logger::log_logmatch_info(".trx_nr"); single_value->field_trx__nr.log_match(match_value.trx__nr(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_ts__nr.match(match_value.ts__nr(), legacy)){ TTCN_Logger::log_logmatch_info(".ts_nr"); single_value->field_ts__nr.log_match(match_value.ts__nr(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_block__nr.match(match_value.block__nr(), legacy)){ TTCN_Logger::log_logmatch_info(".block_nr"); single_value->field_block__nr.log_match(match_value.block__nr(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_rssi.match(match_value.rssi(), legacy)){ TTCN_Logger::log_logmatch_info(".rssi"); single_value->field_rssi.log_match(match_value.rssi(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_ber10k.match(match_value.ber10k(), legacy)){ TTCN_Logger::log_logmatch_info(".ber10k"); single_value->field_ber10k.log_match(match_value.ber10k(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_ta__offs__qbits.match(match_value.ta__offs__qbits(), legacy)){ TTCN_Logger::log_logmatch_info(".ta_offs_qbits"); single_value->field_ta__offs__qbits.log_match(match_value.ta__offs__qbits(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_lqual__cb.match(match_value.lqual__cb(), legacy)){ TTCN_Logger::log_logmatch_info(".lqual_cb"); single_value->field_lqual__cb.log_match(match_value.lqual__cb(), 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("{ sapi := "); single_value->field_sapi.log_match(match_value.sapi(), legacy); TTCN_Logger::log_event_str(", tlli := "); single_value->field_tlli.log_match(match_value.tlli(), legacy); TTCN_Logger::log_event_str(", fn := "); single_value->field_fn.log_match(match_value.fn(), legacy); TTCN_Logger::log_event_str(", arfcn := "); single_value->field_arfcn.log_match(match_value.arfcn(), legacy); TTCN_Logger::log_event_str(", trx_nr := "); single_value->field_trx__nr.log_match(match_value.trx__nr(), legacy); TTCN_Logger::log_event_str(", ts_nr := "); single_value->field_ts__nr.log_match(match_value.ts__nr(), legacy); TTCN_Logger::log_event_str(", block_nr := "); single_value->field_block__nr.log_match(match_value.block__nr(), legacy); TTCN_Logger::log_event_str(", rssi := "); single_value->field_rssi.log_match(match_value.rssi(), legacy); TTCN_Logger::log_event_str(", ber10k := "); single_value->field_ber10k.log_match(match_value.ber10k(), legacy); TTCN_Logger::log_event_str(", ta_offs_qbits := "); single_value->field_ta__offs__qbits.log_match(match_value.ta__offs__qbits(), legacy); TTCN_Logger::log_event_str(", lqual_cb := "); single_value->field_lqual__cb.log_match(match_value.lqual__cb(), 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 PCUIF__data__cnf__dt_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_sapi.encode_text(text_buf); single_value->field_tlli.encode_text(text_buf); single_value->field_fn.encode_text(text_buf); single_value->field_arfcn.encode_text(text_buf); single_value->field_trx__nr.encode_text(text_buf); single_value->field_ts__nr.encode_text(text_buf); single_value->field_block__nr.encode_text(text_buf); single_value->field_rssi.encode_text(text_buf); single_value->field_ber10k.encode_text(text_buf); single_value->field_ta__offs__qbits.encode_text(text_buf); single_value->field_lqual__cb.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 @PCUIF_Types.PCUIF_data_cnf_dt."); } } void PCUIF__data__cnf__dt_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_sapi.decode_text(text_buf); single_value->field_tlli.decode_text(text_buf); single_value->field_fn.decode_text(text_buf); single_value->field_arfcn.decode_text(text_buf); single_value->field_trx__nr.decode_text(text_buf); single_value->field_ts__nr.decode_text(text_buf); single_value->field_block__nr.decode_text(text_buf); single_value->field_rssi.decode_text(text_buf); single_value->field_ber10k.decode_text(text_buf); single_value->field_ta__offs__qbits.decode_text(text_buf); single_value->field_lqual__cb.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 PCUIF__data__cnf__dt_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 @PCUIF_Types.PCUIF_data_cnf_dt."); } } void PCUIF__data__cnf__dt_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: { PCUIF__data__cnf__dt_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_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) sapi().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) tlli().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) fn().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) arfcn().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) trx__nr().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) ts__nr().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) block__nr().set_param(*param.get_elem(6)); if (param.get_size()>7 && param.get_elem(7)->get_type()!=Module_Param::MP_NotUsed) rssi().set_param(*param.get_elem(7)); if (param.get_size()>8 && param.get_elem(8)->get_type()!=Module_Param::MP_NotUsed) ber10k().set_param(*param.get_elem(8)); if (param.get_size()>9 && param.get_elem(9)->get_type()!=Module_Param::MP_NotUsed) ta__offs__qbits().set_param(*param.get_elem(9)); if (param.get_size()>10 && param.get_elem(10)->get_type()!=Module_Param::MP_NotUsed) lqual__cb().set_param(*param.get_elem(10)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "sapi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sapi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "tlli")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { tlli().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "fn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { fn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "arfcn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { arfcn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "trx_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { trx__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ts_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ts__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "block_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { block__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "rssi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { rssi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ber10k")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ber10k().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ta_offs_qbits")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ta__offs__qbits().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "lqual_cb")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { lqual__cb().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_data_cnf_dt: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record template", "@PCUIF_Types.PCUIF_data_cnf_dt"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__data__cnf__dt_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_sapi.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data_cnf_dt"); single_value->field_tlli.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data_cnf_dt"); single_value->field_fn.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data_cnf_dt"); single_value->field_arfcn.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data_cnf_dt"); single_value->field_trx__nr.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data_cnf_dt"); single_value->field_ts__nr.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data_cnf_dt"); single_value->field_block__nr.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data_cnf_dt"); single_value->field_rssi.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data_cnf_dt"); single_value->field_ber10k.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data_cnf_dt"); single_value->field_ta__offs__qbits.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data_cnf_dt"); single_value->field_lqual__cb.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_data_cnf_dt"); 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 : "@PCUIF_Types.PCUIF_data_cnf_dt"); } boolean PCUIF__data__cnf__dt_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__data__cnf__dt_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_idx0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) sapi().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) spare().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) fn().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) arfcn().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) trx__nr().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) ts__nr().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) block__nr().set_param(*param.get_elem(6)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "sapi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sapi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "spare")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { spare().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "fn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { fn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "arfcn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { arfcn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "trx_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { trx__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ts_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ts__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "block_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { block__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_rts_req: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@PCUIF_Types.PCUIF_rts_req"); } } void PCUIF__rts__req::set_implicit_omit() { if (sapi().is_bound()) sapi().set_implicit_omit(); if (spare().is_bound()) spare().set_implicit_omit(); if (fn().is_bound()) fn().set_implicit_omit(); if (arfcn().is_bound()) arfcn().set_implicit_omit(); if (trx__nr().is_bound()) trx__nr().set_implicit_omit(); if (ts__nr().is_bound()) ts__nr().set_implicit_omit(); if (block__nr().is_bound()) block__nr().set_implicit_omit(); } void PCUIF__rts__req::encode_text(Text_Buf& text_buf) const { field_sapi.encode_text(text_buf); field_spare.encode_text(text_buf); field_fn.encode_text(text_buf); field_arfcn.encode_text(text_buf); field_trx__nr.encode_text(text_buf); field_ts__nr.encode_text(text_buf); field_block__nr.encode_text(text_buf); } void PCUIF__rts__req::decode_text(Text_Buf& text_buf) { field_sapi.decode_text(text_buf); field_spare.decode_text(text_buf); field_fn.decode_text(text_buf); field_arfcn.decode_text(text_buf); field_trx__nr.decode_text(text_buf); field_ts__nr.decode_text(text_buf); field_block__nr.decode_text(text_buf); } void PCUIF__rts__req::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 PCUIF__rts__req::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 PCUIF__rts__req::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, PCUIF__rts__req_sapi_descr_.raw->forceomit); decoded_field_length = field_sapi.RAW_decode(PCUIF__rts__req_sapi_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, PCUIF__rts__req_spare_descr_.raw->forceomit); decoded_field_length = field_spare.RAW_decode(PCUIF__rts__req_spare_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()); RAW_Force_Omit field_2_force_omit(2, force_omit, PCUIF__rts__req_fn_descr_.raw->forceomit); decoded_field_length = field_fn.RAW_decode(PCUIF__rts__req_fn_descr_, p_buf, limit, local_top_order, no_err, -1, 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()); RAW_Force_Omit field_3_force_omit(3, force_omit, PCUIF__rts__req_arfcn_descr_.raw->forceomit); decoded_field_length = field_arfcn.RAW_decode(PCUIF__rts__req_arfcn_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_3_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_4_force_omit(4, force_omit, PCUIF__rts__req_trx__nr_descr_.raw->forceomit); decoded_field_length = field_trx__nr.RAW_decode(PCUIF__rts__req_trx__nr_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_4_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_5_force_omit(5, force_omit, PCUIF__rts__req_ts__nr_descr_.raw->forceomit); decoded_field_length = field_ts__nr.RAW_decode(PCUIF__rts__req_ts__nr_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_5_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_6_force_omit(6, force_omit, PCUIF__rts__req_block__nr_descr_.raw->forceomit); decoded_field_length = field_block__nr.RAW_decode(PCUIF__rts__req_block__nr_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_6_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 PCUIF__rts__req::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 = 7; myleaf.body.node.nodes = init_nodes_of_enc_tree(7); myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, PCUIF__rts__req_sapi_descr_.raw); myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, PCUIF__rts__req_spare_descr_.raw); myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 2, PCUIF__rts__req_fn_descr_.raw); myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 3, PCUIF__rts__req_arfcn_descr_.raw); myleaf.body.node.nodes[4] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 4, PCUIF__rts__req_trx__nr_descr_.raw); myleaf.body.node.nodes[5] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 5, PCUIF__rts__req_ts__nr_descr_.raw); myleaf.body.node.nodes[6] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 6, PCUIF__rts__req_block__nr_descr_.raw); encoded_length += field_sapi.RAW_encode(PCUIF__rts__req_sapi_descr_, *myleaf.body.node.nodes[0]); encoded_length += field_spare.RAW_encode(PCUIF__rts__req_spare_descr_, *myleaf.body.node.nodes[1]); encoded_length += field_fn.RAW_encode(PCUIF__rts__req_fn_descr_, *myleaf.body.node.nodes[2]); encoded_length += field_arfcn.RAW_encode(PCUIF__rts__req_arfcn_descr_, *myleaf.body.node.nodes[3]); encoded_length += field_trx__nr.RAW_encode(PCUIF__rts__req_trx__nr_descr_, *myleaf.body.node.nodes[4]); encoded_length += field_ts__nr.RAW_encode(PCUIF__rts__req_ts__nr_descr_, *myleaf.body.node.nodes[5]); encoded_length += field_block__nr.RAW_encode(PCUIF__rts__req_block__nr_descr_, *myleaf.body.node.nodes[6]); return myleaf.length = encoded_length; } struct PCUIF__rts__req_template::single_value_struct { PCUIF__Sapi_template field_sapi; OCTETSTRING_template field_spare; INTEGER_template field_fn; INTEGER_template field_arfcn; INTEGER_template field_trx__nr; INTEGER_template field_ts__nr; INTEGER_template field_block__nr; }; void PCUIF__rts__req_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_sapi = ANY_VALUE; single_value->field_spare = ANY_VALUE; single_value->field_fn = ANY_VALUE; single_value->field_arfcn = ANY_VALUE; single_value->field_trx__nr = ANY_VALUE; single_value->field_ts__nr = ANY_VALUE; single_value->field_block__nr = ANY_VALUE; } } } void PCUIF__rts__req_template::copy_value(const PCUIF__rts__req& other_value) { single_value = new single_value_struct; if (other_value.sapi().is_bound()) { single_value->field_sapi = other_value.sapi(); } else { single_value->field_sapi.clean_up(); } if (other_value.spare().is_bound()) { single_value->field_spare = other_value.spare(); } else { single_value->field_spare.clean_up(); } if (other_value.fn().is_bound()) { single_value->field_fn = other_value.fn(); } else { single_value->field_fn.clean_up(); } if (other_value.arfcn().is_bound()) { single_value->field_arfcn = other_value.arfcn(); } else { single_value->field_arfcn.clean_up(); } if (other_value.trx__nr().is_bound()) { single_value->field_trx__nr = other_value.trx__nr(); } else { single_value->field_trx__nr.clean_up(); } if (other_value.ts__nr().is_bound()) { single_value->field_ts__nr = other_value.ts__nr(); } else { single_value->field_ts__nr.clean_up(); } if (other_value.block__nr().is_bound()) { single_value->field_block__nr = other_value.block__nr(); } else { single_value->field_block__nr.clean_up(); } set_selection(SPECIFIC_VALUE); } void PCUIF__rts__req_template::copy_template(const PCUIF__rts__req_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.sapi().get_selection()) { single_value->field_sapi = other_value.sapi(); } else { single_value->field_sapi.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.spare().get_selection()) { single_value->field_spare = other_value.spare(); } else { single_value->field_spare.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.fn().get_selection()) { single_value->field_fn = other_value.fn(); } else { single_value->field_fn.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.arfcn().get_selection()) { single_value->field_arfcn = other_value.arfcn(); } else { single_value->field_arfcn.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.trx__nr().get_selection()) { single_value->field_trx__nr = other_value.trx__nr(); } else { single_value->field_trx__nr.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.ts__nr().get_selection()) { single_value->field_ts__nr = other_value.ts__nr(); } else { single_value->field_ts__nr.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.block__nr().get_selection()) { single_value->field_block__nr = other_value.block__nr(); } else { single_value->field_block__nr.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 PCUIF__rts__req_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 @PCUIF_Types.PCUIF_rts_req."); break; } set_selection(other_value); } PCUIF__rts__req_template::PCUIF__rts__req_template() { } PCUIF__rts__req_template::PCUIF__rts__req_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__rts__req_template::PCUIF__rts__req_template(const PCUIF__rts__req& other_value) { copy_value(other_value); } PCUIF__rts__req_template::PCUIF__rts__req_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__rts__req&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_rts_req from an unbound optional field."); } } PCUIF__rts__req_template::PCUIF__rts__req_template(const PCUIF__rts__req_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__rts__req_template::~PCUIF__rts__req_template() { clean_up(); } PCUIF__rts__req_template& PCUIF__rts__req_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__rts__req_template& PCUIF__rts__req_template::operator=(const PCUIF__rts__req& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__rts__req_template& PCUIF__rts__req_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__rts__req&)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 @PCUIF_Types.PCUIF_rts_req."); } return *this; } PCUIF__rts__req_template& PCUIF__rts__req_template::operator=(const PCUIF__rts__req_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__rts__req_template::match(const PCUIF__rts__req& 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.sapi().is_bound()) return FALSE; if(!single_value->field_sapi.match(other_value.sapi(), legacy))return FALSE; if(!other_value.spare().is_bound()) return FALSE; if(!single_value->field_spare.match(other_value.spare(), legacy))return FALSE; if(!other_value.fn().is_bound()) return FALSE; if(!single_value->field_fn.match(other_value.fn(), legacy))return FALSE; if(!other_value.arfcn().is_bound()) return FALSE; if(!single_value->field_arfcn.match(other_value.arfcn(), legacy))return FALSE; if(!other_value.trx__nr().is_bound()) return FALSE; if(!single_value->field_trx__nr.match(other_value.trx__nr(), legacy))return FALSE; if(!other_value.ts__nr().is_bound()) return FALSE; if(!single_value->field_ts__nr.match(other_value.ts__nr(), legacy))return FALSE; if(!other_value.block__nr().is_bound()) return FALSE; if(!single_value->field_block__nr.match(other_value.block__nr(), 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 @PCUIF_Types.PCUIF_rts_req."); } return FALSE; } boolean PCUIF__rts__req_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; if (single_value->field_sapi.is_bound()) return TRUE; if (single_value->field_spare.is_bound()) return TRUE; if (single_value->field_fn.is_bound()) return TRUE; if (single_value->field_arfcn.is_bound()) return TRUE; if (single_value->field_trx__nr.is_bound()) return TRUE; if (single_value->field_ts__nr.is_bound()) return TRUE; if (single_value->field_block__nr.is_bound()) return TRUE; return FALSE; } boolean PCUIF__rts__req_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; if (!single_value->field_sapi.is_value()) return FALSE; if (!single_value->field_spare.is_value()) return FALSE; if (!single_value->field_fn.is_value()) return FALSE; if (!single_value->field_arfcn.is_value()) return FALSE; if (!single_value->field_trx__nr.is_value()) return FALSE; if (!single_value->field_ts__nr.is_value()) return FALSE; if (!single_value->field_block__nr.is_value()) return FALSE; return TRUE; } void PCUIF__rts__req_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; } PCUIF__rts__req PCUIF__rts__req_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 @PCUIF_Types.PCUIF_rts_req."); PCUIF__rts__req ret_val; if (single_value->field_sapi.is_bound()) { ret_val.sapi() = single_value->field_sapi.valueof(); } if (single_value->field_spare.is_bound()) { ret_val.spare() = single_value->field_spare.valueof(); } if (single_value->field_fn.is_bound()) { ret_val.fn() = single_value->field_fn.valueof(); } if (single_value->field_arfcn.is_bound()) { ret_val.arfcn() = single_value->field_arfcn.valueof(); } if (single_value->field_trx__nr.is_bound()) { ret_val.trx__nr() = single_value->field_trx__nr.valueof(); } if (single_value->field_ts__nr.is_bound()) { ret_val.ts__nr() = single_value->field_ts__nr.valueof(); } if (single_value->field_block__nr.is_bound()) { ret_val.block__nr() = single_value->field_block__nr.valueof(); } return ret_val; } void PCUIF__rts__req_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 @PCUIF_Types.PCUIF_rts_req."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__rts__req_template[list_length]; } PCUIF__rts__req_template& PCUIF__rts__req_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 @PCUIF_Types.PCUIF_rts_req."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @PCUIF_Types.PCUIF_rts_req."); return value_list.list_value[list_index]; } PCUIF__Sapi_template& PCUIF__rts__req_template::sapi() { set_specific(); return single_value->field_sapi; } const PCUIF__Sapi_template& PCUIF__rts__req_template::sapi() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field sapi of a non-specific template of type @PCUIF_Types.PCUIF_rts_req."); return single_value->field_sapi; } OCTETSTRING_template& PCUIF__rts__req_template::spare() { set_specific(); return single_value->field_spare; } const OCTETSTRING_template& PCUIF__rts__req_template::spare() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field spare of a non-specific template of type @PCUIF_Types.PCUIF_rts_req."); return single_value->field_spare; } INTEGER_template& PCUIF__rts__req_template::fn() { set_specific(); return single_value->field_fn; } const INTEGER_template& PCUIF__rts__req_template::fn() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field fn of a non-specific template of type @PCUIF_Types.PCUIF_rts_req."); return single_value->field_fn; } INTEGER_template& PCUIF__rts__req_template::arfcn() { set_specific(); return single_value->field_arfcn; } const INTEGER_template& PCUIF__rts__req_template::arfcn() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field arfcn of a non-specific template of type @PCUIF_Types.PCUIF_rts_req."); return single_value->field_arfcn; } INTEGER_template& PCUIF__rts__req_template::trx__nr() { set_specific(); return single_value->field_trx__nr; } const INTEGER_template& PCUIF__rts__req_template::trx__nr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field trx_nr of a non-specific template of type @PCUIF_Types.PCUIF_rts_req."); return single_value->field_trx__nr; } INTEGER_template& PCUIF__rts__req_template::ts__nr() { set_specific(); return single_value->field_ts__nr; } const INTEGER_template& PCUIF__rts__req_template::ts__nr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ts_nr of a non-specific template of type @PCUIF_Types.PCUIF_rts_req."); return single_value->field_ts__nr; } INTEGER_template& PCUIF__rts__req_template::block__nr() { set_specific(); return single_value->field_block__nr; } const INTEGER_template& PCUIF__rts__req_template::block__nr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field block_nr of a non-specific template of type @PCUIF_Types.PCUIF_rts_req."); return single_value->field_block__nr; } int PCUIF__rts__req_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_rts_req 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 @PCUIF_Types.PCUIF_rts_req 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 @PCUIF_Types.PCUIF_rts_req containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_rts_req containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_rts_req containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_rts_req containing complemented list."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_rts_req."); } return 0; } void PCUIF__rts__req_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ sapi := "); single_value->field_sapi.log(); TTCN_Logger::log_event_str(", spare := "); single_value->field_spare.log(); TTCN_Logger::log_event_str(", fn := "); single_value->field_fn.log(); TTCN_Logger::log_event_str(", arfcn := "); single_value->field_arfcn.log(); TTCN_Logger::log_event_str(", trx_nr := "); single_value->field_trx__nr.log(); TTCN_Logger::log_event_str(", ts_nr := "); single_value->field_ts__nr.log(); TTCN_Logger::log_event_str(", block_nr := "); single_value->field_block__nr.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 PCUIF__rts__req_template::log_match(const PCUIF__rts__req& 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_sapi.match(match_value.sapi(), legacy)){ TTCN_Logger::log_logmatch_info(".sapi"); single_value->field_sapi.log_match(match_value.sapi(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_spare.match(match_value.spare(), legacy)){ TTCN_Logger::log_logmatch_info(".spare"); single_value->field_spare.log_match(match_value.spare(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_fn.match(match_value.fn(), legacy)){ TTCN_Logger::log_logmatch_info(".fn"); single_value->field_fn.log_match(match_value.fn(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_arfcn.match(match_value.arfcn(), legacy)){ TTCN_Logger::log_logmatch_info(".arfcn"); single_value->field_arfcn.log_match(match_value.arfcn(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_trx__nr.match(match_value.trx__nr(), legacy)){ TTCN_Logger::log_logmatch_info(".trx_nr"); single_value->field_trx__nr.log_match(match_value.trx__nr(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_ts__nr.match(match_value.ts__nr(), legacy)){ TTCN_Logger::log_logmatch_info(".ts_nr"); single_value->field_ts__nr.log_match(match_value.ts__nr(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_block__nr.match(match_value.block__nr(), legacy)){ TTCN_Logger::log_logmatch_info(".block_nr"); single_value->field_block__nr.log_match(match_value.block__nr(), 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("{ sapi := "); single_value->field_sapi.log_match(match_value.sapi(), legacy); TTCN_Logger::log_event_str(", spare := "); single_value->field_spare.log_match(match_value.spare(), legacy); TTCN_Logger::log_event_str(", fn := "); single_value->field_fn.log_match(match_value.fn(), legacy); TTCN_Logger::log_event_str(", arfcn := "); single_value->field_arfcn.log_match(match_value.arfcn(), legacy); TTCN_Logger::log_event_str(", trx_nr := "); single_value->field_trx__nr.log_match(match_value.trx__nr(), legacy); TTCN_Logger::log_event_str(", ts_nr := "); single_value->field_ts__nr.log_match(match_value.ts__nr(), legacy); TTCN_Logger::log_event_str(", block_nr := "); single_value->field_block__nr.log_match(match_value.block__nr(), 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 PCUIF__rts__req_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_sapi.encode_text(text_buf); single_value->field_spare.encode_text(text_buf); single_value->field_fn.encode_text(text_buf); single_value->field_arfcn.encode_text(text_buf); single_value->field_trx__nr.encode_text(text_buf); single_value->field_ts__nr.encode_text(text_buf); single_value->field_block__nr.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 @PCUIF_Types.PCUIF_rts_req."); } } void PCUIF__rts__req_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_sapi.decode_text(text_buf); single_value->field_spare.decode_text(text_buf); single_value->field_fn.decode_text(text_buf); single_value->field_arfcn.decode_text(text_buf); single_value->field_trx__nr.decode_text(text_buf); single_value->field_ts__nr.decode_text(text_buf); single_value->field_block__nr.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 PCUIF__rts__req_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 @PCUIF_Types.PCUIF_rts_req."); } } void PCUIF__rts__req_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: { PCUIF__rts__req_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_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) sapi().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) spare().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) fn().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) arfcn().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) trx__nr().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) ts__nr().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) block__nr().set_param(*param.get_elem(6)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "sapi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sapi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "spare")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { spare().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "fn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { fn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "arfcn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { arfcn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "trx_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { trx__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ts_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ts__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "block_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { block__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_rts_req: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record template", "@PCUIF_Types.PCUIF_rts_req"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__rts__req_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_sapi.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rts_req"); single_value->field_spare.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rts_req"); single_value->field_fn.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rts_req"); single_value->field_arfcn.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rts_req"); single_value->field_trx__nr.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rts_req"); single_value->field_ts__nr.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rts_req"); single_value->field_block__nr.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rts_req"); 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 : "@PCUIF_Types.PCUIF_rts_req"); } boolean PCUIF__rts__req_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__rts__req_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(enum_type other_value) const { if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_BurstType."); return enum_value > other_value; } boolean PCUIF__BurstType::operator>(const PCUIF__BurstType& other_value) const { if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_BurstType."); if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @PCUIF_Types.PCUIF_BurstType."); return enum_value > other_value.enum_value; } const char *PCUIF__BurstType::enum_to_str(enum_type enum_par) { switch (enum_par) { case BURST__TYPE__NONE: return "BURST_TYPE_NONE"; case BURST__TYPE__0: return "BURST_TYPE_0"; case BURST__TYPE__1: return "BURST_TYPE_1"; case BURST__TYPE__2: return "BURST_TYPE_2"; default: return ""; } } PCUIF__BurstType::enum_type PCUIF__BurstType::str_to_enum(const char *str_par) { if (!strcmp(str_par, "BURST_TYPE_NONE")) return BURST__TYPE__NONE; else if (!strcmp(str_par, "BURST_TYPE_0")) return BURST__TYPE__0; else if (!strcmp(str_par, "BURST_TYPE_1")) return BURST__TYPE__1; else if (!strcmp(str_par, "BURST_TYPE_2")) return BURST__TYPE__2; else return UNKNOWN_VALUE; } boolean PCUIF__BurstType::is_valid_enum(int int_par) { switch (int_par) { case 0: case 1: case 2: case 3: return TRUE; default: return FALSE; } } int PCUIF__BurstType::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 @PCUIF_Types.PCUIF_BurstType.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); return enum_par; } int PCUIF__BurstType::enum2int(const PCUIF__BurstType& 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 @PCUIF_Types.PCUIF_BurstType.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); return enum_par.enum_value; } void PCUIF__BurstType::int2enum(int int_val) { if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @PCUIF_Types.PCUIF_BurstType.", int_val); enum_value = (enum_type)int_val; } PCUIF__BurstType::operator PCUIF__BurstType::enum_type() const { if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @PCUIF_Types.PCUIF_BurstType."); return enum_value; } void PCUIF__BurstType::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 PCUIF__BurstType::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", "@PCUIF_Types.PCUIF_BurstType"); enum_value = str_to_enum(param.get_enumerated()); if (!is_valid_enum(enum_value)) { param.error("Invalid enumerated value for type @PCUIF_Types.PCUIF_BurstType."); } } void PCUIF__BurstType::encode_text(Text_Buf& text_buf) const { if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @PCUIF_Types.PCUIF_BurstType."); text_buf.push_int(enum_value); } void PCUIF__BurstType::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 @PCUIF_Types.PCUIF_BurstType.", enum_value); } void PCUIF__BurstType::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 PCUIF__BurstType::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 PCUIF__BurstType::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*) { int decoded_value = 0; int decoded_length = RAW_decode_enum_type(p_td, p_buf, limit, top_bit_ord, decoded_value, 3, no_err); if (decoded_length < 0) return decoded_length; if (is_valid_enum(decoded_value)) enum_value = (enum_type)decoded_value; else { if(no_err){ return -1; } else { TTCN_EncDec_ErrorContext::error (TTCN_EncDec::ET_ENC_ENUM, "Invalid enum value '%d' for '%s': ",decoded_value, p_td.name); enum_value = UNKNOWN_VALUE; } } return decoded_length; } int PCUIF__BurstType::RAW_encode(const TTCN_Typedescriptor_t& p_td, RAW_enc_tree& myleaf) const { return RAW_encode_enum_type(p_td, myleaf, (int)enum_value, 3); } void PCUIF__BurstType_template::copy_template(const PCUIF__BurstType_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 PCUIF__BurstType_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 @PCUIF_Types.PCUIF_BurstType."); } } PCUIF__BurstType_template::PCUIF__BurstType_template() { } PCUIF__BurstType_template::PCUIF__BurstType_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__BurstType_template::PCUIF__BurstType_template(int other_value) : Base_Template(SPECIFIC_VALUE) { if (!PCUIF__BurstType::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @PCUIF_Types.PCUIF_BurstType with unknown numeric value %d.", other_value); single_value = (PCUIF__BurstType::enum_type)other_value; } PCUIF__BurstType_template::PCUIF__BurstType_template(PCUIF__BurstType::enum_type other_value) : Base_Template(SPECIFIC_VALUE) { single_value = other_value; } PCUIF__BurstType_template::PCUIF__BurstType_template(const PCUIF__BurstType& other_value) : Base_Template(SPECIFIC_VALUE) { if (other_value.enum_value == PCUIF__BurstType::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @PCUIF_Types.PCUIF_BurstType."); single_value = other_value.enum_value; } PCUIF__BurstType_template::PCUIF__BurstType_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: set_selection(SPECIFIC_VALUE); single_value = (PCUIF__BurstType::enum_type)(const PCUIF__BurstType&)other_value; break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of enumerated type @PCUIF_Types.PCUIF_BurstType from an unbound optional field."); } } PCUIF__BurstType_template::PCUIF__BurstType_template(const PCUIF__BurstType_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__BurstType_template::~PCUIF__BurstType_template() { clean_up(); } boolean PCUIF__BurstType_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; return TRUE; } boolean PCUIF__BurstType_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; return single_value != PCUIF__BurstType::UNBOUND_VALUE; } void PCUIF__BurstType_template::clean_up() { if (template_selection == VALUE_LIST || template_selection == COMPLEMENTED_LIST) delete [] value_list.list_value; template_selection = UNINITIALIZED_TEMPLATE; } PCUIF__BurstType_template& PCUIF__BurstType_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__BurstType_template& PCUIF__BurstType_template::operator=(int other_value) { if (!PCUIF__BurstType::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @PCUIF_Types.PCUIF_BurstType.", other_value); clean_up(); set_selection(SPECIFIC_VALUE); single_value = (PCUIF__BurstType::enum_type)other_value; return *this; } PCUIF__BurstType_template& PCUIF__BurstType_template::operator=(PCUIF__BurstType::enum_type other_value) { clean_up(); set_selection(SPECIFIC_VALUE); single_value = other_value; return *this; } PCUIF__BurstType_template& PCUIF__BurstType_template::operator=(const PCUIF__BurstType& other_value) { if (other_value.enum_value == PCUIF__BurstType::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @PCUIF_Types.PCUIF_BurstType to a template."); clean_up(); set_selection(SPECIFIC_VALUE); single_value = other_value.enum_value; return *this; } PCUIF__BurstType_template& PCUIF__BurstType_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: set_selection(SPECIFIC_VALUE); single_value = (PCUIF__BurstType::enum_type)(const PCUIF__BurstType&)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 @PCUIF_Types.PCUIF_BurstType."); } return *this; } PCUIF__BurstType_template& PCUIF__BurstType_template::operator=(const PCUIF__BurstType_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__BurstType_template::match(PCUIF__BurstType::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 @PCUIF_Types.PCUIF_BurstType."); } return FALSE; } boolean PCUIF__BurstType_template::match(const PCUIF__BurstType& other_value, boolean) const { if (other_value.enum_value == PCUIF__BurstType::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @PCUIF_Types.PCUIF_BurstType with an unbound value."); return match(other_value.enum_value); } PCUIF__BurstType::enum_type PCUIF__BurstType_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 @PCUIF_Types.PCUIF_BurstType."); return single_value; } void PCUIF__BurstType_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 @PCUIF_Types.PCUIF_BurstType."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__BurstType_template[list_length]; } PCUIF__BurstType_template& PCUIF__BurstType_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 @PCUIF_Types.PCUIF_BurstType."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @PCUIF_Types.PCUIF_BurstType."); return value_list.list_value[list_index]; } void PCUIF__BurstType_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_enum(PCUIF__BurstType::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 PCUIF__BurstType_template::log_match(const PCUIF__BurstType& 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 PCUIF__BurstType_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 @PCUIF_Types.PCUIF_BurstType."); } } void PCUIF__BurstType_template::decode_text(Text_Buf& text_buf) { clean_up(); decode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value = (PCUIF__BurstType::enum_type)text_buf.pull_int().get_val(); if (!PCUIF__BurstType::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @PCUIF_Types.PCUIF_BurstType.", 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 PCUIF__BurstType_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 @PCUIF_Types.PCUIF_BurstType."); } } boolean PCUIF__BurstType_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__BurstType_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; iget_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: { PCUIF__BurstType_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_iget_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: { PCUIF__BurstType::enum_type enum_val = PCUIF__BurstType::str_to_enum(m_p->get_enumerated()); if (!PCUIF__BurstType::is_valid_enum(enum_val)) { param.error("Invalid enumerated value for type @PCUIF_Types.PCUIF_BurstType."); } *this = enum_val; } break; default: param.type_error("enumerated template", "@PCUIF_Types.PCUIF_BurstType"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__BurstType_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 : "@PCUIF_Types.PCUIF_BurstType"); } PCUIF__rach__ind::PCUIF__rach__ind() { } PCUIF__rach__ind::PCUIF__rach__ind(const PCUIF__Sapi& par_sapi, const INTEGER& par_ra, const INTEGER& par_qta, const INTEGER& par_fn, const INTEGER& par_arfcn, const INTEGER& par_is__11bit, const PCUIF__BurstType& par_burst__type) : field_sapi(par_sapi), field_ra(par_ra), field_qta(par_qta), field_fn(par_fn), field_arfcn(par_arfcn), field_is__11bit(par_is__11bit), field_burst__type(par_burst__type) { } PCUIF__rach__ind::PCUIF__rach__ind(const PCUIF__rach__ind& other_value) { if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_rach_ind."); if (other_value.sapi().is_bound()) field_sapi = other_value.sapi(); else field_sapi.clean_up(); if (other_value.ra().is_bound()) field_ra = other_value.ra(); else field_ra.clean_up(); if (other_value.qta().is_bound()) field_qta = other_value.qta(); else field_qta.clean_up(); if (other_value.fn().is_bound()) field_fn = other_value.fn(); else field_fn.clean_up(); if (other_value.arfcn().is_bound()) field_arfcn = other_value.arfcn(); else field_arfcn.clean_up(); if (other_value.is__11bit().is_bound()) field_is__11bit = other_value.is__11bit(); else field_is__11bit.clean_up(); if (other_value.burst__type().is_bound()) field_burst__type = other_value.burst__type(); else field_burst__type.clean_up(); } void PCUIF__rach__ind::clean_up() { field_sapi.clean_up(); field_ra.clean_up(); field_qta.clean_up(); field_fn.clean_up(); field_arfcn.clean_up(); field_is__11bit.clean_up(); field_burst__type.clean_up(); } const TTCN_Typedescriptor_t* PCUIF__rach__ind::get_descriptor() const { return &PCUIF__rach__ind_descr_; } PCUIF__rach__ind& PCUIF__rach__ind::operator=(const PCUIF__rach__ind& other_value) { if (this != &other_value) { if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @PCUIF_Types.PCUIF_rach_ind."); if (other_value.sapi().is_bound()) field_sapi = other_value.sapi(); else field_sapi.clean_up(); if (other_value.ra().is_bound()) field_ra = other_value.ra(); else field_ra.clean_up(); if (other_value.qta().is_bound()) field_qta = other_value.qta(); else field_qta.clean_up(); if (other_value.fn().is_bound()) field_fn = other_value.fn(); else field_fn.clean_up(); if (other_value.arfcn().is_bound()) field_arfcn = other_value.arfcn(); else field_arfcn.clean_up(); if (other_value.is__11bit().is_bound()) field_is__11bit = other_value.is__11bit(); else field_is__11bit.clean_up(); if (other_value.burst__type().is_bound()) field_burst__type = other_value.burst__type(); else field_burst__type.clean_up(); } return *this; } boolean PCUIF__rach__ind::operator==(const PCUIF__rach__ind& other_value) const { return field_sapi==other_value.field_sapi && field_ra==other_value.field_ra && field_qta==other_value.field_qta && field_fn==other_value.field_fn && field_arfcn==other_value.field_arfcn && field_is__11bit==other_value.field_is__11bit && field_burst__type==other_value.field_burst__type; } boolean PCUIF__rach__ind::is_bound() const { if(field_sapi.is_bound()) return TRUE; if(field_ra.is_bound()) return TRUE; if(field_qta.is_bound()) return TRUE; if(field_fn.is_bound()) return TRUE; if(field_arfcn.is_bound()) return TRUE; if(field_is__11bit.is_bound()) return TRUE; if(field_burst__type.is_bound()) return TRUE; return FALSE; } boolean PCUIF__rach__ind::is_value() const { if(!field_sapi.is_value()) return FALSE; if(!field_ra.is_value()) return FALSE; if(!field_qta.is_value()) return FALSE; if(!field_fn.is_value()) return FALSE; if(!field_arfcn.is_value()) return FALSE; if(!field_is__11bit.is_value()) return FALSE; if(!field_burst__type.is_value()) return FALSE; return TRUE; } void PCUIF__rach__ind::log() const { if (!is_bound()) { TTCN_Logger::log_event_unbound(); return; } TTCN_Logger::log_event_str("{ sapi := "); field_sapi.log(); TTCN_Logger::log_event_str(", ra := "); field_ra.log(); TTCN_Logger::log_event_str(", qta := "); field_qta.log(); TTCN_Logger::log_event_str(", fn := "); field_fn.log(); TTCN_Logger::log_event_str(", arfcn := "); field_arfcn.log(); TTCN_Logger::log_event_str(", is_11bit := "); field_is__11bit.log(); TTCN_Logger::log_event_str(", burst_type := "); field_burst__type.log(); TTCN_Logger::log_event_str(" }"); } void PCUIF__rach__ind::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 (70 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) sapi().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) ra().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) qta().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) fn().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) arfcn().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) is__11bit().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) burst__type().set_param(*param.get_elem(6)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "sapi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sapi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ra")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ra().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "qta")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { qta().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "fn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { fn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "arfcn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { arfcn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "is_11bit")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { is__11bit().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "burst_type")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { burst__type().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_rach_ind: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@PCUIF_Types.PCUIF_rach_ind"); } } void PCUIF__rach__ind::set_implicit_omit() { if (sapi().is_bound()) sapi().set_implicit_omit(); if (ra().is_bound()) ra().set_implicit_omit(); if (qta().is_bound()) qta().set_implicit_omit(); if (fn().is_bound()) fn().set_implicit_omit(); if (arfcn().is_bound()) arfcn().set_implicit_omit(); if (is__11bit().is_bound()) is__11bit().set_implicit_omit(); if (burst__type().is_bound()) burst__type().set_implicit_omit(); } void PCUIF__rach__ind::encode_text(Text_Buf& text_buf) const { field_sapi.encode_text(text_buf); field_ra.encode_text(text_buf); field_qta.encode_text(text_buf); field_fn.encode_text(text_buf); field_arfcn.encode_text(text_buf); field_is__11bit.encode_text(text_buf); field_burst__type.encode_text(text_buf); } void PCUIF__rach__ind::decode_text(Text_Buf& text_buf) { field_sapi.decode_text(text_buf); field_ra.decode_text(text_buf); field_qta.decode_text(text_buf); field_fn.decode_text(text_buf); field_arfcn.decode_text(text_buf); field_is__11bit.decode_text(text_buf); field_burst__type.decode_text(text_buf); } void PCUIF__rach__ind::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 PCUIF__rach__ind::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 PCUIF__rach__ind::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, PCUIF__rach__ind_sapi_descr_.raw->forceomit); decoded_field_length = field_sapi.RAW_decode(PCUIF__rach__ind_sapi_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, PCUIF__rach__ind_ra_descr_.raw->forceomit); decoded_field_length = field_ra.RAW_decode(PCUIF__rach__ind_ra_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()); RAW_Force_Omit field_2_force_omit(2, force_omit, PCUIF__rach__ind_qta_descr_.raw->forceomit); decoded_field_length = field_qta.RAW_decode(PCUIF__rach__ind_qta_descr_, p_buf, limit, local_top_order, no_err, -1, 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()); RAW_Force_Omit field_3_force_omit(3, force_omit, PCUIF__rach__ind_fn_descr_.raw->forceomit); decoded_field_length = field_fn.RAW_decode(PCUIF__rach__ind_fn_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_3_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_4_force_omit(4, force_omit, PCUIF__rach__ind_arfcn_descr_.raw->forceomit); decoded_field_length = field_arfcn.RAW_decode(PCUIF__rach__ind_arfcn_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_4_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_5_force_omit(5, force_omit, PCUIF__rach__ind_is__11bit_descr_.raw->forceomit); decoded_field_length = field_is__11bit.RAW_decode(PCUIF__rach__ind_is__11bit_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_5_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_6_force_omit(6, force_omit, PCUIF__rach__ind_burst__type_descr_.raw->forceomit); decoded_field_length = field_burst__type.RAW_decode(PCUIF__rach__ind_burst__type_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_6_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 PCUIF__rach__ind::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 = 7; myleaf.body.node.nodes = init_nodes_of_enc_tree(7); myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, PCUIF__rach__ind_sapi_descr_.raw); myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, PCUIF__rach__ind_ra_descr_.raw); myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 2, PCUIF__rach__ind_qta_descr_.raw); myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 3, PCUIF__rach__ind_fn_descr_.raw); myleaf.body.node.nodes[4] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 4, PCUIF__rach__ind_arfcn_descr_.raw); myleaf.body.node.nodes[5] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 5, PCUIF__rach__ind_is__11bit_descr_.raw); myleaf.body.node.nodes[6] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 6, PCUIF__rach__ind_burst__type_descr_.raw); encoded_length += field_sapi.RAW_encode(PCUIF__rach__ind_sapi_descr_, *myleaf.body.node.nodes[0]); encoded_length += field_ra.RAW_encode(PCUIF__rach__ind_ra_descr_, *myleaf.body.node.nodes[1]); encoded_length += field_qta.RAW_encode(PCUIF__rach__ind_qta_descr_, *myleaf.body.node.nodes[2]); encoded_length += field_fn.RAW_encode(PCUIF__rach__ind_fn_descr_, *myleaf.body.node.nodes[3]); encoded_length += field_arfcn.RAW_encode(PCUIF__rach__ind_arfcn_descr_, *myleaf.body.node.nodes[4]); encoded_length += field_is__11bit.RAW_encode(PCUIF__rach__ind_is__11bit_descr_, *myleaf.body.node.nodes[5]); encoded_length += field_burst__type.RAW_encode(PCUIF__rach__ind_burst__type_descr_, *myleaf.body.node.nodes[6]); return myleaf.length = encoded_length; } struct PCUIF__rach__ind_template::single_value_struct { PCUIF__Sapi_template field_sapi; INTEGER_template field_ra; INTEGER_template field_qta; INTEGER_template field_fn; INTEGER_template field_arfcn; INTEGER_template field_is__11bit; PCUIF__BurstType_template field_burst__type; }; void PCUIF__rach__ind_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_sapi = ANY_VALUE; single_value->field_ra = ANY_VALUE; single_value->field_qta = ANY_VALUE; single_value->field_fn = ANY_VALUE; single_value->field_arfcn = ANY_VALUE; single_value->field_is__11bit = ANY_VALUE; single_value->field_burst__type = ANY_VALUE; } } } void PCUIF__rach__ind_template::copy_value(const PCUIF__rach__ind& other_value) { single_value = new single_value_struct; if (other_value.sapi().is_bound()) { single_value->field_sapi = other_value.sapi(); } else { single_value->field_sapi.clean_up(); } if (other_value.ra().is_bound()) { single_value->field_ra = other_value.ra(); } else { single_value->field_ra.clean_up(); } if (other_value.qta().is_bound()) { single_value->field_qta = other_value.qta(); } else { single_value->field_qta.clean_up(); } if (other_value.fn().is_bound()) { single_value->field_fn = other_value.fn(); } else { single_value->field_fn.clean_up(); } if (other_value.arfcn().is_bound()) { single_value->field_arfcn = other_value.arfcn(); } else { single_value->field_arfcn.clean_up(); } if (other_value.is__11bit().is_bound()) { single_value->field_is__11bit = other_value.is__11bit(); } else { single_value->field_is__11bit.clean_up(); } if (other_value.burst__type().is_bound()) { single_value->field_burst__type = other_value.burst__type(); } else { single_value->field_burst__type.clean_up(); } set_selection(SPECIFIC_VALUE); } void PCUIF__rach__ind_template::copy_template(const PCUIF__rach__ind_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.sapi().get_selection()) { single_value->field_sapi = other_value.sapi(); } else { single_value->field_sapi.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.ra().get_selection()) { single_value->field_ra = other_value.ra(); } else { single_value->field_ra.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.qta().get_selection()) { single_value->field_qta = other_value.qta(); } else { single_value->field_qta.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.fn().get_selection()) { single_value->field_fn = other_value.fn(); } else { single_value->field_fn.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.arfcn().get_selection()) { single_value->field_arfcn = other_value.arfcn(); } else { single_value->field_arfcn.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.is__11bit().get_selection()) { single_value->field_is__11bit = other_value.is__11bit(); } else { single_value->field_is__11bit.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.burst__type().get_selection()) { single_value->field_burst__type = other_value.burst__type(); } else { single_value->field_burst__type.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 PCUIF__rach__ind_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 @PCUIF_Types.PCUIF_rach_ind."); break; } set_selection(other_value); } PCUIF__rach__ind_template::PCUIF__rach__ind_template() { } PCUIF__rach__ind_template::PCUIF__rach__ind_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__rach__ind_template::PCUIF__rach__ind_template(const PCUIF__rach__ind& other_value) { copy_value(other_value); } PCUIF__rach__ind_template::PCUIF__rach__ind_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__rach__ind&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_rach_ind from an unbound optional field."); } } PCUIF__rach__ind_template::PCUIF__rach__ind_template(const PCUIF__rach__ind_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__rach__ind_template::~PCUIF__rach__ind_template() { clean_up(); } PCUIF__rach__ind_template& PCUIF__rach__ind_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__rach__ind_template& PCUIF__rach__ind_template::operator=(const PCUIF__rach__ind& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__rach__ind_template& PCUIF__rach__ind_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__rach__ind&)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 @PCUIF_Types.PCUIF_rach_ind."); } return *this; } PCUIF__rach__ind_template& PCUIF__rach__ind_template::operator=(const PCUIF__rach__ind_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__rach__ind_template::match(const PCUIF__rach__ind& 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.sapi().is_bound()) return FALSE; if(!single_value->field_sapi.match(other_value.sapi(), legacy))return FALSE; if(!other_value.ra().is_bound()) return FALSE; if(!single_value->field_ra.match(other_value.ra(), legacy))return FALSE; if(!other_value.qta().is_bound()) return FALSE; if(!single_value->field_qta.match(other_value.qta(), legacy))return FALSE; if(!other_value.fn().is_bound()) return FALSE; if(!single_value->field_fn.match(other_value.fn(), legacy))return FALSE; if(!other_value.arfcn().is_bound()) return FALSE; if(!single_value->field_arfcn.match(other_value.arfcn(), legacy))return FALSE; if(!other_value.is__11bit().is_bound()) return FALSE; if(!single_value->field_is__11bit.match(other_value.is__11bit(), legacy))return FALSE; if(!other_value.burst__type().is_bound()) return FALSE; if(!single_value->field_burst__type.match(other_value.burst__type(), 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 @PCUIF_Types.PCUIF_rach_ind."); } return FALSE; } boolean PCUIF__rach__ind_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; if (single_value->field_sapi.is_bound()) return TRUE; if (single_value->field_ra.is_bound()) return TRUE; if (single_value->field_qta.is_bound()) return TRUE; if (single_value->field_fn.is_bound()) return TRUE; if (single_value->field_arfcn.is_bound()) return TRUE; if (single_value->field_is__11bit.is_bound()) return TRUE; if (single_value->field_burst__type.is_bound()) return TRUE; return FALSE; } boolean PCUIF__rach__ind_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; if (!single_value->field_sapi.is_value()) return FALSE; if (!single_value->field_ra.is_value()) return FALSE; if (!single_value->field_qta.is_value()) return FALSE; if (!single_value->field_fn.is_value()) return FALSE; if (!single_value->field_arfcn.is_value()) return FALSE; if (!single_value->field_is__11bit.is_value()) return FALSE; if (!single_value->field_burst__type.is_value()) return FALSE; return TRUE; } void PCUIF__rach__ind_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; } PCUIF__rach__ind PCUIF__rach__ind_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 @PCUIF_Types.PCUIF_rach_ind."); PCUIF__rach__ind ret_val; if (single_value->field_sapi.is_bound()) { ret_val.sapi() = single_value->field_sapi.valueof(); } if (single_value->field_ra.is_bound()) { ret_val.ra() = single_value->field_ra.valueof(); } if (single_value->field_qta.is_bound()) { ret_val.qta() = single_value->field_qta.valueof(); } if (single_value->field_fn.is_bound()) { ret_val.fn() = single_value->field_fn.valueof(); } if (single_value->field_arfcn.is_bound()) { ret_val.arfcn() = single_value->field_arfcn.valueof(); } if (single_value->field_is__11bit.is_bound()) { ret_val.is__11bit() = single_value->field_is__11bit.valueof(); } if (single_value->field_burst__type.is_bound()) { ret_val.burst__type() = single_value->field_burst__type.valueof(); } return ret_val; } void PCUIF__rach__ind_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 @PCUIF_Types.PCUIF_rach_ind."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__rach__ind_template[list_length]; } PCUIF__rach__ind_template& PCUIF__rach__ind_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 @PCUIF_Types.PCUIF_rach_ind."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @PCUIF_Types.PCUIF_rach_ind."); return value_list.list_value[list_index]; } PCUIF__Sapi_template& PCUIF__rach__ind_template::sapi() { set_specific(); return single_value->field_sapi; } const PCUIF__Sapi_template& PCUIF__rach__ind_template::sapi() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field sapi of a non-specific template of type @PCUIF_Types.PCUIF_rach_ind."); return single_value->field_sapi; } INTEGER_template& PCUIF__rach__ind_template::ra() { set_specific(); return single_value->field_ra; } const INTEGER_template& PCUIF__rach__ind_template::ra() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ra of a non-specific template of type @PCUIF_Types.PCUIF_rach_ind."); return single_value->field_ra; } INTEGER_template& PCUIF__rach__ind_template::qta() { set_specific(); return single_value->field_qta; } const INTEGER_template& PCUIF__rach__ind_template::qta() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field qta of a non-specific template of type @PCUIF_Types.PCUIF_rach_ind."); return single_value->field_qta; } INTEGER_template& PCUIF__rach__ind_template::fn() { set_specific(); return single_value->field_fn; } const INTEGER_template& PCUIF__rach__ind_template::fn() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field fn of a non-specific template of type @PCUIF_Types.PCUIF_rach_ind."); return single_value->field_fn; } INTEGER_template& PCUIF__rach__ind_template::arfcn() { set_specific(); return single_value->field_arfcn; } const INTEGER_template& PCUIF__rach__ind_template::arfcn() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field arfcn of a non-specific template of type @PCUIF_Types.PCUIF_rach_ind."); return single_value->field_arfcn; } INTEGER_template& PCUIF__rach__ind_template::is__11bit() { set_specific(); return single_value->field_is__11bit; } const INTEGER_template& PCUIF__rach__ind_template::is__11bit() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field is_11bit of a non-specific template of type @PCUIF_Types.PCUIF_rach_ind."); return single_value->field_is__11bit; } PCUIF__BurstType_template& PCUIF__rach__ind_template::burst__type() { set_specific(); return single_value->field_burst__type; } const PCUIF__BurstType_template& PCUIF__rach__ind_template::burst__type() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field burst_type of a non-specific template of type @PCUIF_Types.PCUIF_rach_ind."); return single_value->field_burst__type; } int PCUIF__rach__ind_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_rach_ind 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 @PCUIF_Types.PCUIF_rach_ind 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 @PCUIF_Types.PCUIF_rach_ind containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_rach_ind containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_rach_ind containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_rach_ind containing complemented list."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_rach_ind."); } return 0; } void PCUIF__rach__ind_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ sapi := "); single_value->field_sapi.log(); TTCN_Logger::log_event_str(", ra := "); single_value->field_ra.log(); TTCN_Logger::log_event_str(", qta := "); single_value->field_qta.log(); TTCN_Logger::log_event_str(", fn := "); single_value->field_fn.log(); TTCN_Logger::log_event_str(", arfcn := "); single_value->field_arfcn.log(); TTCN_Logger::log_event_str(", is_11bit := "); single_value->field_is__11bit.log(); TTCN_Logger::log_event_str(", burst_type := "); single_value->field_burst__type.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 PCUIF__rach__ind_template::log_match(const PCUIF__rach__ind& 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_sapi.match(match_value.sapi(), legacy)){ TTCN_Logger::log_logmatch_info(".sapi"); single_value->field_sapi.log_match(match_value.sapi(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_ra.match(match_value.ra(), legacy)){ TTCN_Logger::log_logmatch_info(".ra"); single_value->field_ra.log_match(match_value.ra(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_qta.match(match_value.qta(), legacy)){ TTCN_Logger::log_logmatch_info(".qta"); single_value->field_qta.log_match(match_value.qta(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_fn.match(match_value.fn(), legacy)){ TTCN_Logger::log_logmatch_info(".fn"); single_value->field_fn.log_match(match_value.fn(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_arfcn.match(match_value.arfcn(), legacy)){ TTCN_Logger::log_logmatch_info(".arfcn"); single_value->field_arfcn.log_match(match_value.arfcn(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_is__11bit.match(match_value.is__11bit(), legacy)){ TTCN_Logger::log_logmatch_info(".is_11bit"); single_value->field_is__11bit.log_match(match_value.is__11bit(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_burst__type.match(match_value.burst__type(), legacy)){ TTCN_Logger::log_logmatch_info(".burst_type"); single_value->field_burst__type.log_match(match_value.burst__type(), 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("{ sapi := "); single_value->field_sapi.log_match(match_value.sapi(), legacy); TTCN_Logger::log_event_str(", ra := "); single_value->field_ra.log_match(match_value.ra(), legacy); TTCN_Logger::log_event_str(", qta := "); single_value->field_qta.log_match(match_value.qta(), legacy); TTCN_Logger::log_event_str(", fn := "); single_value->field_fn.log_match(match_value.fn(), legacy); TTCN_Logger::log_event_str(", arfcn := "); single_value->field_arfcn.log_match(match_value.arfcn(), legacy); TTCN_Logger::log_event_str(", is_11bit := "); single_value->field_is__11bit.log_match(match_value.is__11bit(), legacy); TTCN_Logger::log_event_str(", burst_type := "); single_value->field_burst__type.log_match(match_value.burst__type(), 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 PCUIF__rach__ind_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_sapi.encode_text(text_buf); single_value->field_ra.encode_text(text_buf); single_value->field_qta.encode_text(text_buf); single_value->field_fn.encode_text(text_buf); single_value->field_arfcn.encode_text(text_buf); single_value->field_is__11bit.encode_text(text_buf); single_value->field_burst__type.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 @PCUIF_Types.PCUIF_rach_ind."); } } void PCUIF__rach__ind_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_sapi.decode_text(text_buf); single_value->field_ra.decode_text(text_buf); single_value->field_qta.decode_text(text_buf); single_value->field_fn.decode_text(text_buf); single_value->field_arfcn.decode_text(text_buf); single_value->field_is__11bit.decode_text(text_buf); single_value->field_burst__type.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 PCUIF__rach__ind_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 @PCUIF_Types.PCUIF_rach_ind."); } } void PCUIF__rach__ind_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: { PCUIF__rach__ind_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_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) sapi().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) ra().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) qta().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) fn().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) arfcn().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) is__11bit().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) burst__type().set_param(*param.get_elem(6)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "sapi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sapi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ra")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ra().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "qta")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { qta().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "fn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { fn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "arfcn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { arfcn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "is_11bit")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { is__11bit().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "burst_type")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { burst__type().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_rach_ind: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record template", "@PCUIF_Types.PCUIF_rach_ind"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__rach__ind_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_sapi.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rach_ind"); single_value->field_ra.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rach_ind"); single_value->field_qta.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rach_ind"); single_value->field_fn.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rach_ind"); single_value->field_arfcn.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rach_ind"); single_value->field_is__11bit.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rach_ind"); single_value->field_burst__type.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_rach_ind"); 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 : "@PCUIF_Types.PCUIF_rach_ind"); } boolean PCUIF__rach__ind_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__rach__ind_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_idx0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) arfcn().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) pdch__mask().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) spare().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) tsc().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) hLayer1().set_param(*param.get_elem(4)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "arfcn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { arfcn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "pdch_mask")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { pdch__mask().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "spare")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { spare().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "tsc")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { tsc().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hLayer1")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hLayer1().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_InfoTrx: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@PCUIF_Types.PCUIF_InfoTrx"); } } void PCUIF__InfoTrx::set_implicit_omit() { if (arfcn().is_bound()) arfcn().set_implicit_omit(); if (pdch__mask().is_bound()) pdch__mask().set_implicit_omit(); if (spare().is_bound()) spare().set_implicit_omit(); if (tsc().is_bound()) tsc().set_implicit_omit(); if (hLayer1().is_bound()) hLayer1().set_implicit_omit(); } void PCUIF__InfoTrx::encode_text(Text_Buf& text_buf) const { field_arfcn.encode_text(text_buf); field_pdch__mask.encode_text(text_buf); field_spare.encode_text(text_buf); field_tsc.encode_text(text_buf); field_hLayer1.encode_text(text_buf); } void PCUIF__InfoTrx::decode_text(Text_Buf& text_buf) { field_arfcn.decode_text(text_buf); field_pdch__mask.decode_text(text_buf); field_spare.decode_text(text_buf); field_tsc.decode_text(text_buf); field_hLayer1.decode_text(text_buf); } void PCUIF__InfoTrx::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 PCUIF__InfoTrx::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 PCUIF__InfoTrx::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, PCUIF__InfoTrx_arfcn_descr_.raw->forceomit); decoded_field_length = field_arfcn.RAW_decode(PCUIF__InfoTrx_arfcn_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, PCUIF__InfoTrx_pdch__mask_descr_.raw->forceomit); decoded_field_length = field_pdch__mask.RAW_decode(PCUIF__InfoTrx_pdch__mask_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()); RAW_Force_Omit field_2_force_omit(2, force_omit, PCUIF__InfoTrx_spare_descr_.raw->forceomit); decoded_field_length = field_spare.RAW_decode(PCUIF__InfoTrx_spare_descr_, p_buf, limit, local_top_order, no_err, -1, 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()); RAW_Force_Omit field_3_force_omit(3, force_omit, PCUIF__InfoTrx_tsc_descr_.raw->forceomit); decoded_field_length = field_tsc.RAW_decode(PCUIF__InfoTrx_tsc_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_3_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_4_force_omit(4, force_omit, PCUIF__InfoTrx_hLayer1_descr_.raw->forceomit); decoded_field_length = field_hLayer1.RAW_decode(PCUIF__InfoTrx_hLayer1_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_4_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 PCUIF__InfoTrx::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 = 5; myleaf.body.node.nodes = init_nodes_of_enc_tree(5); myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, PCUIF__InfoTrx_arfcn_descr_.raw); myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, PCUIF__InfoTrx_pdch__mask_descr_.raw); myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 2, PCUIF__InfoTrx_spare_descr_.raw); myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 3, PCUIF__InfoTrx_tsc_descr_.raw); myleaf.body.node.nodes[4] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 4, PCUIF__InfoTrx_hLayer1_descr_.raw); encoded_length += field_arfcn.RAW_encode(PCUIF__InfoTrx_arfcn_descr_, *myleaf.body.node.nodes[0]); encoded_length += field_pdch__mask.RAW_encode(PCUIF__InfoTrx_pdch__mask_descr_, *myleaf.body.node.nodes[1]); encoded_length += field_spare.RAW_encode(PCUIF__InfoTrx_spare_descr_, *myleaf.body.node.nodes[2]); encoded_length += field_tsc.RAW_encode(PCUIF__InfoTrx_tsc_descr_, *myleaf.body.node.nodes[3]); encoded_length += field_hLayer1.RAW_encode(PCUIF__InfoTrx_hLayer1_descr_, *myleaf.body.node.nodes[4]); return myleaf.length = encoded_length; } struct PCUIF__InfoTrx_template::single_value_struct { INTEGER_template field_arfcn; BITSTRING_template field_pdch__mask; OCTETSTRING_template field_spare; OCTETSTRING_template field_tsc; INTEGER_template field_hLayer1; }; void PCUIF__InfoTrx_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_arfcn = ANY_VALUE; single_value->field_pdch__mask = ANY_VALUE; single_value->field_spare = ANY_VALUE; single_value->field_tsc = ANY_VALUE; single_value->field_hLayer1 = ANY_VALUE; } } } void PCUIF__InfoTrx_template::copy_value(const PCUIF__InfoTrx& other_value) { single_value = new single_value_struct; if (other_value.arfcn().is_bound()) { single_value->field_arfcn = other_value.arfcn(); } else { single_value->field_arfcn.clean_up(); } if (other_value.pdch__mask().is_bound()) { single_value->field_pdch__mask = other_value.pdch__mask(); } else { single_value->field_pdch__mask.clean_up(); } if (other_value.spare().is_bound()) { single_value->field_spare = other_value.spare(); } else { single_value->field_spare.clean_up(); } if (other_value.tsc().is_bound()) { single_value->field_tsc = other_value.tsc(); } else { single_value->field_tsc.clean_up(); } if (other_value.hLayer1().is_bound()) { single_value->field_hLayer1 = other_value.hLayer1(); } else { single_value->field_hLayer1.clean_up(); } set_selection(SPECIFIC_VALUE); } void PCUIF__InfoTrx_template::copy_template(const PCUIF__InfoTrx_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.arfcn().get_selection()) { single_value->field_arfcn = other_value.arfcn(); } else { single_value->field_arfcn.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.pdch__mask().get_selection()) { single_value->field_pdch__mask = other_value.pdch__mask(); } else { single_value->field_pdch__mask.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.spare().get_selection()) { single_value->field_spare = other_value.spare(); } else { single_value->field_spare.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.tsc().get_selection()) { single_value->field_tsc = other_value.tsc(); } else { single_value->field_tsc.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.hLayer1().get_selection()) { single_value->field_hLayer1 = other_value.hLayer1(); } else { single_value->field_hLayer1.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 PCUIF__InfoTrx_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 @PCUIF_Types.PCUIF_InfoTrx."); break; } set_selection(other_value); } PCUIF__InfoTrx_template::PCUIF__InfoTrx_template() { } PCUIF__InfoTrx_template::PCUIF__InfoTrx_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__InfoTrx_template::PCUIF__InfoTrx_template(const PCUIF__InfoTrx& other_value) { copy_value(other_value); } PCUIF__InfoTrx_template::PCUIF__InfoTrx_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__InfoTrx&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_InfoTrx from an unbound optional field."); } } PCUIF__InfoTrx_template::PCUIF__InfoTrx_template(const PCUIF__InfoTrx_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__InfoTrx_template::~PCUIF__InfoTrx_template() { clean_up(); } PCUIF__InfoTrx_template& PCUIF__InfoTrx_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__InfoTrx_template& PCUIF__InfoTrx_template::operator=(const PCUIF__InfoTrx& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__InfoTrx_template& PCUIF__InfoTrx_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__InfoTrx&)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 @PCUIF_Types.PCUIF_InfoTrx."); } return *this; } PCUIF__InfoTrx_template& PCUIF__InfoTrx_template::operator=(const PCUIF__InfoTrx_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__InfoTrx_template::match(const PCUIF__InfoTrx& 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.arfcn().is_bound()) return FALSE; if(!single_value->field_arfcn.match(other_value.arfcn(), legacy))return FALSE; if(!other_value.pdch__mask().is_bound()) return FALSE; if(!single_value->field_pdch__mask.match(other_value.pdch__mask(), legacy))return FALSE; if(!other_value.spare().is_bound()) return FALSE; if(!single_value->field_spare.match(other_value.spare(), legacy))return FALSE; if(!other_value.tsc().is_bound()) return FALSE; if(!single_value->field_tsc.match(other_value.tsc(), legacy))return FALSE; if(!other_value.hLayer1().is_bound()) return FALSE; if(!single_value->field_hLayer1.match(other_value.hLayer1(), 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 @PCUIF_Types.PCUIF_InfoTrx."); } return FALSE; } boolean PCUIF__InfoTrx_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; if (single_value->field_arfcn.is_bound()) return TRUE; if (single_value->field_pdch__mask.is_bound()) return TRUE; if (single_value->field_spare.is_bound()) return TRUE; if (single_value->field_tsc.is_bound()) return TRUE; if (single_value->field_hLayer1.is_bound()) return TRUE; return FALSE; } boolean PCUIF__InfoTrx_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; if (!single_value->field_arfcn.is_value()) return FALSE; if (!single_value->field_pdch__mask.is_value()) return FALSE; if (!single_value->field_spare.is_value()) return FALSE; if (!single_value->field_tsc.is_value()) return FALSE; if (!single_value->field_hLayer1.is_value()) return FALSE; return TRUE; } void PCUIF__InfoTrx_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; } PCUIF__InfoTrx PCUIF__InfoTrx_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 @PCUIF_Types.PCUIF_InfoTrx."); PCUIF__InfoTrx ret_val; if (single_value->field_arfcn.is_bound()) { ret_val.arfcn() = single_value->field_arfcn.valueof(); } if (single_value->field_pdch__mask.is_bound()) { ret_val.pdch__mask() = single_value->field_pdch__mask.valueof(); } if (single_value->field_spare.is_bound()) { ret_val.spare() = single_value->field_spare.valueof(); } if (single_value->field_tsc.is_bound()) { ret_val.tsc() = single_value->field_tsc.valueof(); } if (single_value->field_hLayer1.is_bound()) { ret_val.hLayer1() = single_value->field_hLayer1.valueof(); } return ret_val; } void PCUIF__InfoTrx_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 @PCUIF_Types.PCUIF_InfoTrx."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__InfoTrx_template[list_length]; } PCUIF__InfoTrx_template& PCUIF__InfoTrx_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 @PCUIF_Types.PCUIF_InfoTrx."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @PCUIF_Types.PCUIF_InfoTrx."); return value_list.list_value[list_index]; } INTEGER_template& PCUIF__InfoTrx_template::arfcn() { set_specific(); return single_value->field_arfcn; } const INTEGER_template& PCUIF__InfoTrx_template::arfcn() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field arfcn of a non-specific template of type @PCUIF_Types.PCUIF_InfoTrx."); return single_value->field_arfcn; } BITSTRING_template& PCUIF__InfoTrx_template::pdch__mask() { set_specific(); return single_value->field_pdch__mask; } const BITSTRING_template& PCUIF__InfoTrx_template::pdch__mask() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdch_mask of a non-specific template of type @PCUIF_Types.PCUIF_InfoTrx."); return single_value->field_pdch__mask; } OCTETSTRING_template& PCUIF__InfoTrx_template::spare() { set_specific(); return single_value->field_spare; } const OCTETSTRING_template& PCUIF__InfoTrx_template::spare() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field spare of a non-specific template of type @PCUIF_Types.PCUIF_InfoTrx."); return single_value->field_spare; } OCTETSTRING_template& PCUIF__InfoTrx_template::tsc() { set_specific(); return single_value->field_tsc; } const OCTETSTRING_template& PCUIF__InfoTrx_template::tsc() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field tsc of a non-specific template of type @PCUIF_Types.PCUIF_InfoTrx."); return single_value->field_tsc; } INTEGER_template& PCUIF__InfoTrx_template::hLayer1() { set_specific(); return single_value->field_hLayer1; } const INTEGER_template& PCUIF__InfoTrx_template::hLayer1() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field hLayer1 of a non-specific template of type @PCUIF_Types.PCUIF_InfoTrx."); return single_value->field_hLayer1; } int PCUIF__InfoTrx_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_InfoTrx which has an ifpresent attribute."); switch (template_selection) { case SPECIFIC_VALUE: return 5; case VALUE_LIST: { if (value_list.n_values<1) TTCN_error("Internal error: Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_InfoTrx 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 @PCUIF_Types.PCUIF_InfoTrx containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_InfoTrx containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_InfoTrx containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_InfoTrx containing complemented list."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_InfoTrx."); } return 0; } void PCUIF__InfoTrx_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ arfcn := "); single_value->field_arfcn.log(); TTCN_Logger::log_event_str(", pdch_mask := "); single_value->field_pdch__mask.log(); TTCN_Logger::log_event_str(", spare := "); single_value->field_spare.log(); TTCN_Logger::log_event_str(", tsc := "); single_value->field_tsc.log(); TTCN_Logger::log_event_str(", hLayer1 := "); single_value->field_hLayer1.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 PCUIF__InfoTrx_template::log_match(const PCUIF__InfoTrx& 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_arfcn.match(match_value.arfcn(), legacy)){ TTCN_Logger::log_logmatch_info(".arfcn"); single_value->field_arfcn.log_match(match_value.arfcn(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_pdch__mask.match(match_value.pdch__mask(), legacy)){ TTCN_Logger::log_logmatch_info(".pdch_mask"); single_value->field_pdch__mask.log_match(match_value.pdch__mask(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_spare.match(match_value.spare(), legacy)){ TTCN_Logger::log_logmatch_info(".spare"); single_value->field_spare.log_match(match_value.spare(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_tsc.match(match_value.tsc(), legacy)){ TTCN_Logger::log_logmatch_info(".tsc"); single_value->field_tsc.log_match(match_value.tsc(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_hLayer1.match(match_value.hLayer1(), legacy)){ TTCN_Logger::log_logmatch_info(".hLayer1"); single_value->field_hLayer1.log_match(match_value.hLayer1(), 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("{ arfcn := "); single_value->field_arfcn.log_match(match_value.arfcn(), legacy); TTCN_Logger::log_event_str(", pdch_mask := "); single_value->field_pdch__mask.log_match(match_value.pdch__mask(), legacy); TTCN_Logger::log_event_str(", spare := "); single_value->field_spare.log_match(match_value.spare(), legacy); TTCN_Logger::log_event_str(", tsc := "); single_value->field_tsc.log_match(match_value.tsc(), legacy); TTCN_Logger::log_event_str(", hLayer1 := "); single_value->field_hLayer1.log_match(match_value.hLayer1(), 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 PCUIF__InfoTrx_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_arfcn.encode_text(text_buf); single_value->field_pdch__mask.encode_text(text_buf); single_value->field_spare.encode_text(text_buf); single_value->field_tsc.encode_text(text_buf); single_value->field_hLayer1.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 @PCUIF_Types.PCUIF_InfoTrx."); } } void PCUIF__InfoTrx_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_arfcn.decode_text(text_buf); single_value->field_pdch__mask.decode_text(text_buf); single_value->field_spare.decode_text(text_buf); single_value->field_tsc.decode_text(text_buf); single_value->field_hLayer1.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 PCUIF__InfoTrx_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 @PCUIF_Types.PCUIF_InfoTrx."); } } void PCUIF__InfoTrx_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: { PCUIF__InfoTrx_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_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) arfcn().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) pdch__mask().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) spare().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) tsc().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) hLayer1().set_param(*param.get_elem(4)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "arfcn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { arfcn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "pdch_mask")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { pdch__mask().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "spare")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { spare().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "tsc")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { tsc().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "hLayer1")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { hLayer1().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_InfoTrx: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record template", "@PCUIF_Types.PCUIF_InfoTrx"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__InfoTrx_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_arfcn.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_InfoTrx"); single_value->field_pdch__mask.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_InfoTrx"); single_value->field_spare.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_InfoTrx"); single_value->field_tsc.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_InfoTrx"); single_value->field_hLayer1.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_InfoTrx"); 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 : "@PCUIF_Types.PCUIF_InfoTrx"); } boolean PCUIF__InfoTrx_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__InfoTrx_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_idxref_count = 1; val_ptr->n_elements = 0; val_ptr->value_elements = NULL; } PCUIF__InfoTrxs::PCUIF__InfoTrxs(const PCUIF__InfoTrxs& other_value) { if (!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_InfoTrxs."); val_ptr = other_value.val_ptr; val_ptr->ref_count++; } PCUIF__InfoTrxs::~PCUIF__InfoTrxs() { clean_up(); if (val_ptr != NULL) val_ptr = NULL; } void PCUIF__InfoTrxs::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."); } } PCUIF__InfoTrxs& PCUIF__InfoTrxs::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; } PCUIF__InfoTrxs& PCUIF__InfoTrxs::operator=(const PCUIF__InfoTrxs& other_value) { if (other_value.val_ptr == NULL) TTCN_error("Assigning an unbound value of type @PCUIF_Types.PCUIF_InfoTrxs."); if (this != &other_value) { clean_up(); val_ptr = other_value.val_ptr; val_ptr->ref_count++; } return *this; } boolean PCUIF__InfoTrxs::operator==(null_type) const { if (val_ptr == NULL) TTCN_error("The left operand of comparison is an unbound value of type @PCUIF_Types.PCUIF_InfoTrxs."); return val_ptr->n_elements == 0 ; } boolean PCUIF__InfoTrxs::operator==(const PCUIF__InfoTrxs& other_value) const { if (val_ptr == NULL) TTCN_error("The left operand of comparison is an unbound value of type @PCUIF_Types.PCUIF_InfoTrxs."); if (other_value.val_ptr == NULL) TTCN_error("The right operand of comparison is an unbound value of type @PCUIF_Types.PCUIF_InfoTrxs."); 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; } PCUIF__InfoTrx& PCUIF__InfoTrxs::operator[](int index_value) { if (index_value < 0) TTCN_error("Accessing an element of type @PCUIF_Types.PCUIF_InfoTrxs 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 = (PCUIF__InfoTrx**)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 PCUIF__InfoTrx(*(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 PCUIF__InfoTrx; } return *val_ptr->value_elements[index_value]; } PCUIF__InfoTrx& PCUIF__InfoTrxs::operator[](const INTEGER& index_value) { index_value.must_bound("Using an unbound integer value for indexing a value of type @PCUIF_Types.PCUIF_InfoTrxs."); return (*this)[(int)index_value]; } const PCUIF__InfoTrx& PCUIF__InfoTrxs::operator[](int index_value) const { if (val_ptr == NULL) TTCN_error("Accessing an element in an unbound value of type @PCUIF_Types.PCUIF_InfoTrxs."); if (index_value < 0) TTCN_error("Accessing an element of type @PCUIF_Types.PCUIF_InfoTrxs using a negative index: %d.", index_value); if (index_value >= val_ptr->n_elements) TTCN_error("Index overflow in a value of type @PCUIF_Types.PCUIF_InfoTrxs: 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 PCUIF__InfoTrx& PCUIF__InfoTrxs::operator[](const INTEGER& index_value) const { index_value.must_bound("Using an unbound integer value for indexing a value of type @PCUIF_Types.PCUIF_InfoTrxs."); return (*this)[(int)index_value]; } PCUIF__InfoTrxs PCUIF__InfoTrxs::operator<<=(int rotate_count) const { return *this >>= (-rotate_count); } PCUIF__InfoTrxs PCUIF__InfoTrxs::operator<<=(const INTEGER& rotate_count) const { rotate_count.must_bound("Unbound integer operand of rotate left operator."); return *this >>= (int)(-rotate_count); } PCUIF__InfoTrxs PCUIF__InfoTrxs::operator>>=(const INTEGER& rotate_count) const { rotate_count.must_bound("Unbound integer operand of rotate right operator."); return *this >>= (int)rotate_count; } PCUIF__InfoTrxs PCUIF__InfoTrxs::operator>>=(int rotate_count) const { if (val_ptr == NULL) TTCN_error("Performing rotation operation on an unbound value of type @PCUIF_Types.PCUIF_InfoTrxs."); 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; PCUIF__InfoTrxs ret_val; ret_val.set_size(val_ptr->n_elements); for (int i=0; in_elements; i++) { if (val_ptr->value_elements[i] != NULL) { ret_val.val_ptr->value_elements[(i+rc)%val_ptr->n_elements] =new PCUIF__InfoTrx(*val_ptr->value_elements[i]); } } return ret_val; } PCUIF__InfoTrxs PCUIF__InfoTrxs::operator+(const PCUIF__InfoTrxs& other_value) const { if (val_ptr == NULL || other_value.val_ptr == NULL) TTCN_error("Unbound operand of @PCUIF_Types.PCUIF_InfoTrxs concatenation."); if (val_ptr->n_elements == 0) return other_value; if (other_value.val_ptr->n_elements == 0) return *this; PCUIF__InfoTrxs ret_val; ret_val.set_size(val_ptr->n_elements+other_value.val_ptr->n_elements); for (int i=0; in_elements; i++) { if (val_ptr->value_elements[i] != NULL) { ret_val.val_ptr->value_elements[i] = new PCUIF__InfoTrx(*val_ptr->value_elements[i]); } } for (int i=0; in_elements; i++) { if (other_value.val_ptr->value_elements[i] != NULL) { ret_val.val_ptr->value_elements[i+val_ptr->n_elements] = new PCUIF__InfoTrx(*other_value.val_ptr->value_elements[i]); } } return ret_val; } PCUIF__InfoTrxs PCUIF__InfoTrxs::substr(int index, int returncount) const { if (val_ptr == NULL) TTCN_error("The first argument of substr() is an unbound value of type @PCUIF_Types.PCUIF_InfoTrxs."); check_substr_arguments(val_ptr->n_elements, index, returncount, "@PCUIF_Types.PCUIF_InfoTrxs","element"); PCUIF__InfoTrxs ret_val; ret_val.set_size(returncount); for (int i=0; ivalue_elements[i+index] != NULL) { ret_val.val_ptr->value_elements[i] = new PCUIF__InfoTrx(*val_ptr->value_elements[i+index]); } } return ret_val; } PCUIF__InfoTrxs PCUIF__InfoTrxs::replace(int index, int len, const PCUIF__InfoTrxs& repl) const { if (val_ptr == NULL) TTCN_error("The first argument of replace() is an unbound value of type @PCUIF_Types.PCUIF_InfoTrxs."); if (repl.val_ptr == NULL) TTCN_error("The fourth argument of replace() is an unbound value of type @PCUIF_Types.PCUIF_InfoTrxs."); check_replace_arguments(val_ptr->n_elements, index, len, "@PCUIF_Types.PCUIF_InfoTrxs","element"); PCUIF__InfoTrxs 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 PCUIF__InfoTrx(*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 PCUIF__InfoTrx(*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 PCUIF__InfoTrx(*val_ptr->value_elements[index+i+len]); } } return ret_val; } PCUIF__InfoTrxs PCUIF__InfoTrxs::replace(int index, int len, const PCUIF__InfoTrxs_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 PCUIF__InfoTrxs::set_size(int new_size) { if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a value of type @PCUIF_Types.PCUIF_InfoTrxs."); 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 = (PCUIF__InfoTrx**)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 PCUIF__InfoTrx(*(val_ptr->value_elements[elem_count])); } } clean_up(); val_ptr = new_val_ptr; } if (new_size > val_ptr->n_elements) { val_ptr->value_elements = (PCUIF__InfoTrx**)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 @PCUIF_Types.PCUIF_InfoTrxs: %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 = (PCUIF__InfoTrx**)reallocate_pointers((void**)val_ptr->value_elements, val_ptr->n_elements, new_size); val_ptr->n_elements = new_size; } } boolean PCUIF__InfoTrxs::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 PCUIF__InfoTrxs::size_of() const { if (val_ptr == NULL) TTCN_error("Performing sizeof operation on an unbound value of type @PCUIF_Types.PCUIF_InfoTrxs."); return val_ptr->n_elements; } int PCUIF__InfoTrxs::lengthof() const { if (val_ptr == NULL) TTCN_error("Performing lengthof operation on an unbound value of type @PCUIF_Types.PCUIF_InfoTrxs."); 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 PCUIF__InfoTrxs::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 PCUIF__InfoTrxs::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; iget_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; iget_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", "@PCUIF_Types.PCUIF_InfoTrxs"); } 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; iget_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", "@PCUIF_Types.PCUIF_InfoTrxs"); } break; default: TTCN_error("Internal error: Unknown operation type."); } } void PCUIF__InfoTrxs::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 PCUIF__InfoTrxs::encode_text(Text_Buf& text_buf) const { if (val_ptr == NULL) TTCN_error("Text encoder: Encoding an unbound value of type @PCUIF_Types.PCUIF_InfoTrxs."); 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 PCUIF__InfoTrxs::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 @PCUIF_Types.PCUIF_InfoTrxs."); val_ptr->value_elements = (PCUIF__InfoTrx**)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 PCUIF__InfoTrx; val_ptr->value_elements[elem_count]->decode_text(text_buf); } } void PCUIF__InfoTrxs::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 PCUIF__InfoTrxs::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 PCUIF__InfoTrxs::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 first_call, const RAW_Force_Omit*){ int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding); limit-=prepaddlength; int decoded_length=0; int decoded_field_length=0; size_t start_of_field=0; if(first_call) { clean_up(); val_ptr=new recordof_setof_struct; val_ptr->ref_count=1; val_ptr->n_elements=0; val_ptr->value_elements=NULL; } int start_field=val_ptr->n_elements; if(p_td.raw->fieldlength || sel_field!=-1){ int a=0; if(sel_field==-1) sel_field=p_td.raw->fieldlength; for(a=0;an_elements=0; } else { if(limit==0){ if(!first_call) return -1; val_ptr->n_elements=0; return decoded_length+p_buf.increase_pos_padd(p_td.raw->padding)+prepaddlength; } int a=start_field; while(limit>0){ start_of_field=p_buf.get_pos_bit(); decoded_field_length=(*this)[a].RAW_decode(*p_td.oftype_descr,p_buf,limit,top_bit_ord,TRUE); if(decoded_field_length < 0){ delete &(*this)[a]; val_ptr->n_elements--; p_buf.set_pos_bit(start_of_field); if(a>start_field){ return decoded_length+p_buf.increase_pos_padd(p_td.raw->padding)+prepaddlength; } else return -1; } decoded_length+=decoded_field_length; limit-=decoded_field_length; a++; } } return decoded_length+p_buf.increase_pos_padd(p_td.raw->padding)+prepaddlength; } int PCUIF__InfoTrxs::RAW_encode(const TTCN_Typedescriptor_t& p_td,RAW_enc_tree& myleaf) const{ int encoded_length=0; int encoded_num_of_records=p_td.raw->fieldlength?smaller(val_ptr->n_elements, p_td.raw->fieldlength):val_ptr->n_elements; myleaf.isleaf=FALSE; myleaf.rec_of=TRUE; myleaf.body.node.num_of_nodes=encoded_num_of_records; myleaf.body.node.nodes=init_nodes_of_enc_tree(encoded_num_of_records); for(int a=0;araw); encoded_length+=(*this)[a].RAW_encode(*p_td.oftype_descr,*myleaf.body.node.nodes[a]); } return myleaf.length=encoded_length; } void PCUIF__InfoTrxs_template::copy_value(const PCUIF__InfoTrxs& other_value) { if (!other_value.is_bound()) TTCN_error("Initialization of a template of type @PCUIF_Types.PCUIF_InfoTrxs with an unbound value."); single_value.n_elements = other_value.size_of(); single_value.value_elements = (PCUIF__InfoTrx_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 PCUIF__InfoTrx_template(other_value[elem_count]); } else { single_value.value_elements[elem_count] = new PCUIF__InfoTrx_template; } } set_selection(SPECIFIC_VALUE); } void PCUIF__InfoTrxs_template::copy_template(const PCUIF__InfoTrxs_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 = (PCUIF__InfoTrx_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 PCUIF__InfoTrx_template(*other_value.single_value.value_elements[elem_count]); } else { single_value.value_elements[elem_count] = new PCUIF__InfoTrx_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 PCUIF__InfoTrxs_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 @PCUIF_Types.PCUIF_InfoTrxs."); break; } set_selection(other_value); } boolean PCUIF__InfoTrxs_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 PCUIF__InfoTrxs_template*)template_ptr)->single_value.value_elements[template_index]->match((*(const PCUIF__InfoTrxs*)value_ptr)[value_index], legacy); else return ((const PCUIF__InfoTrxs_template*)template_ptr)->single_value.value_elements[template_index]->is_any_or_omit(); } PCUIF__InfoTrxs_template::PCUIF__InfoTrxs_template() { } PCUIF__InfoTrxs_template::PCUIF__InfoTrxs_template(template_sel other_value) : Record_Of_Template(other_value) { check_single_selection(other_value); } PCUIF__InfoTrxs_template::PCUIF__InfoTrxs_template(null_type) : Record_Of_Template(SPECIFIC_VALUE) { single_value.n_elements = 0; single_value.value_elements = NULL; } PCUIF__InfoTrxs_template::PCUIF__InfoTrxs_template(const PCUIF__InfoTrxs& other_value) { copy_value(other_value); } PCUIF__InfoTrxs_template::PCUIF__InfoTrxs_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__InfoTrxs&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_InfoTrxs from an unbound optional field."); } } PCUIF__InfoTrxs_template::PCUIF__InfoTrxs_template(const PCUIF__InfoTrxs_template& other_value) : Record_Of_Template() { copy_template(other_value); } PCUIF__InfoTrxs_template::~PCUIF__InfoTrxs_template() { clean_up(); } void PCUIF__InfoTrxs_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; } PCUIF__InfoTrxs_template& PCUIF__InfoTrxs_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__InfoTrxs_template& PCUIF__InfoTrxs_template::operator=(null_type) { clean_up(); set_selection(SPECIFIC_VALUE); single_value.n_elements = 0; single_value.value_elements = NULL; return *this; } PCUIF__InfoTrxs_template& PCUIF__InfoTrxs_template::operator=(const PCUIF__InfoTrxs& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__InfoTrxs_template& PCUIF__InfoTrxs_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__InfoTrxs&)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 @PCUIF_Types.PCUIF_InfoTrxs."); } return *this; } PCUIF__InfoTrxs_template& PCUIF__InfoTrxs_template::operator=(const PCUIF__InfoTrxs_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } PCUIF__InfoTrx_template& PCUIF__InfoTrxs_template::operator[](int index_value) { if (index_value < 0) TTCN_error("Accessing an element of a template for type @PCUIF_Types.PCUIF_InfoTrxs 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 @PCUIF_Types.PCUIF_InfoTrxs."); break; } return *single_value.value_elements[index_value]; } PCUIF__InfoTrx_template& PCUIF__InfoTrxs_template::operator[](const INTEGER& index_value) { index_value.must_bound("Using an unbound integer value for indexing a template of type @PCUIF_Types.PCUIF_InfoTrxs."); return (*this)[(int)index_value]; } const PCUIF__InfoTrx_template& PCUIF__InfoTrxs_template::operator[](int index_value) const { if (index_value < 0) TTCN_error("Accessing an element of a template for type @PCUIF_Types.PCUIF_InfoTrxs using a negative index: %d.", index_value); if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing an element of a non-specific template for type @PCUIF_Types.PCUIF_InfoTrxs."); if (index_value >= single_value.n_elements) TTCN_error("Index overflow in a template of type @PCUIF_Types.PCUIF_InfoTrxs: 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 PCUIF__InfoTrx_template& PCUIF__InfoTrxs_template::operator[](const INTEGER& index_value) const { index_value.must_bound("Using an unbound integer value for indexing a template of type @PCUIF_Types.PCUIF_InfoTrxs."); return (*this)[(int)index_value]; } void PCUIF__InfoTrxs_template::set_size(int new_size) { if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a template of type @PCUIF_Types.PCUIF_InfoTrxs."); 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 = (PCUIF__InfoTrx_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 PCUIF__InfoTrx_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 PCUIF__InfoTrx_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 = (PCUIF__InfoTrx_template**)reallocate_pointers((void**)single_value.value_elements, single_value.n_elements, new_size); single_value.n_elements = new_size; } } int PCUIF__InfoTrxs_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 PCUIF__InfoTrxs_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 @PCUIF_Types.PCUIF_InfoTrxs 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; iget_selection()) { case OMIT_VALUE: TTCN_error("Performing %sof() operation on a template of type @PCUIF_Types.PCUIF_InfoTrxs 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 @PCUIF_Types.PCUIF_InfoTrxs 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 @PCUIF_Types.PCUIF_InfoTrxs 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 @PCUIF_Types.PCUIF_InfoTrxs 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 @PCUIF_Types.PCUIF_InfoTrxs containing complemented list.", op_name); default: TTCN_error("Performing %sof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_InfoTrxs.", op_name); } return check_section_is_single(min_size, has_any_or_none, op_name, "a", "template of type @PCUIF_Types.PCUIF_InfoTrxs"); } boolean PCUIF__InfoTrxs_template::match(const PCUIF__InfoTrxs& 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 @PCUIF_Types.PCUIF_InfoTrxs."); } return FALSE; } boolean PCUIF__InfoTrxs_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; } PCUIF__InfoTrxs PCUIF__InfoTrxs_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 @PCUIF_Types.PCUIF_InfoTrxs."); PCUIF__InfoTrxs 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; } PCUIF__InfoTrxs PCUIF__InfoTrxs_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); } PCUIF__InfoTrxs PCUIF__InfoTrxs_template::replace(int index, int len, const PCUIF__InfoTrxs_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()); } PCUIF__InfoTrxs PCUIF__InfoTrxs_template::replace(int index, int len, const PCUIF__InfoTrxs& 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 PCUIF__InfoTrxs_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 PCUIF__InfoTrxs_template[list_length]; break; default: TTCN_error("Internal error: Setting an invalid type for a template of type @PCUIF_Types.PCUIF_InfoTrxs."); } set_selection(template_type); } PCUIF__InfoTrxs_template& PCUIF__InfoTrxs_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 @PCUIF_Types.PCUIF_InfoTrxs."); if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of type @PCUIF_Types.PCUIF_InfoTrxs."); return value_list.list_value[list_index]; } void PCUIF__InfoTrxs_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 PCUIF__InfoTrxs_template::log_match(const PCUIF__InfoTrxs& 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 PCUIF__InfoTrxs_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 @PCUIF_Types.PCUIF_InfoTrxs."); } } void PCUIF__InfoTrxs_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 @PCUIF_Types.PCUIF_InfoTrxs."); single_value.value_elements = (PCUIF__InfoTrx_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 PCUIF__InfoTrx_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 PCUIF__InfoTrxs_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 @PCUIF_Types.PCUIF_InfoTrxs."); } } boolean PCUIF__InfoTrxs_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__InfoTrxs_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; iget_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_iget_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_iget_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", "@PCUIF_Types.PCUIF_InfoTrxs"); } is_ifpresent = param.get_ifpresent(); set_length_range(param); } void PCUIF__InfoTrxs_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; icheck_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_InfoTrxs"); 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 : "@PCUIF_Types.PCUIF_InfoTrxs"); } boolean PCUIF__InfoTrxs_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); } } PCUIF__info__ind::PCUIF__info__ind() { } PCUIF__info__ind::PCUIF__info__ind(const INTEGER& par_version, const PCUIF__Flags& par_flags, const PCUIF__InfoTrxs& par_trx, const INTEGER& par_bsic, const INTEGER& par_mcc, const INTEGER& par_mnc, const INTEGER& par_mnc__3__digits, const INTEGER& par_lac, const INTEGER& par_rac, const INTEGER& par_nsei, const PCUIF__info__ind_nse__timer& par_nse__timer, const PCUIF__info__ind_cell__timer& par_cell__timer, const INTEGER& par_cell__id, const INTEGER& par_repeat__time, const INTEGER& par_repeat__count, const INTEGER& par_bvci, const INTEGER& par_t3142, const INTEGER& par_t3169, const INTEGER& par_t3191, const INTEGER& par_t3193__10ms, const INTEGER& par_t3195, const INTEGER& par_t3101, const INTEGER& par_t3103, const INTEGER& par_t3105, const INTEGER& par_cv__countdown, const INTEGER& par_dl__tbf__ext, const INTEGER& par_ul__tbf__ext, const INTEGER& par_initial__cs, const INTEGER& par_initial__mcs, const PCUIF__info__ind_nsvci& par_nsvci, const PCUIF__info__ind_local__pprt& par_local__pprt, const PCUIF__info__ind_remote__port& par_remote__port, const PCUIF__info__ind_remote__ip& par_remote__ip) : field_version(par_version), field_flags(par_flags), field_trx(par_trx), field_bsic(par_bsic), field_mcc(par_mcc), field_mnc(par_mnc), field_mnc__3__digits(par_mnc__3__digits), field_lac(par_lac), field_rac(par_rac), field_nsei(par_nsei), field_nse__timer(par_nse__timer), field_cell__timer(par_cell__timer), field_cell__id(par_cell__id), field_repeat__time(par_repeat__time), field_repeat__count(par_repeat__count), field_bvci(par_bvci), field_t3142(par_t3142), field_t3169(par_t3169), field_t3191(par_t3191), field_t3193__10ms(par_t3193__10ms), field_t3195(par_t3195), field_t3101(par_t3101), field_t3103(par_t3103), field_t3105(par_t3105), field_cv__countdown(par_cv__countdown), field_dl__tbf__ext(par_dl__tbf__ext), field_ul__tbf__ext(par_ul__tbf__ext), field_initial__cs(par_initial__cs), field_initial__mcs(par_initial__mcs), field_nsvci(par_nsvci), field_local__pprt(par_local__pprt), field_remote__port(par_remote__port), field_remote__ip(par_remote__ip) { } PCUIF__info__ind::PCUIF__info__ind(const PCUIF__info__ind& other_value) { if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_info_ind."); if (other_value.version().is_bound()) field_version = other_value.version(); else field_version.clean_up(); if (other_value.flags().is_bound()) field_flags = other_value.flags(); else field_flags.clean_up(); if (other_value.trx().is_bound()) field_trx = other_value.trx(); else field_trx.clean_up(); if (other_value.bsic().is_bound()) field_bsic = other_value.bsic(); else field_bsic.clean_up(); if (other_value.mcc().is_bound()) field_mcc = other_value.mcc(); else field_mcc.clean_up(); if (other_value.mnc().is_bound()) field_mnc = other_value.mnc(); else field_mnc.clean_up(); if (other_value.mnc__3__digits().is_bound()) field_mnc__3__digits = other_value.mnc__3__digits(); else field_mnc__3__digits.clean_up(); if (other_value.lac().is_bound()) field_lac = other_value.lac(); else field_lac.clean_up(); if (other_value.rac().is_bound()) field_rac = other_value.rac(); else field_rac.clean_up(); if (other_value.nsei().is_bound()) field_nsei = other_value.nsei(); else field_nsei.clean_up(); if (other_value.nse__timer().is_bound()) field_nse__timer = other_value.nse__timer(); else field_nse__timer.clean_up(); if (other_value.cell__timer().is_bound()) field_cell__timer = other_value.cell__timer(); else field_cell__timer.clean_up(); if (other_value.cell__id().is_bound()) field_cell__id = other_value.cell__id(); else field_cell__id.clean_up(); if (other_value.repeat__time().is_bound()) field_repeat__time = other_value.repeat__time(); else field_repeat__time.clean_up(); if (other_value.repeat__count().is_bound()) field_repeat__count = other_value.repeat__count(); else field_repeat__count.clean_up(); if (other_value.bvci().is_bound()) field_bvci = other_value.bvci(); else field_bvci.clean_up(); if (other_value.t3142().is_bound()) field_t3142 = other_value.t3142(); else field_t3142.clean_up(); if (other_value.t3169().is_bound()) field_t3169 = other_value.t3169(); else field_t3169.clean_up(); if (other_value.t3191().is_bound()) field_t3191 = other_value.t3191(); else field_t3191.clean_up(); if (other_value.t3193__10ms().is_bound()) field_t3193__10ms = other_value.t3193__10ms(); else field_t3193__10ms.clean_up(); if (other_value.t3195().is_bound()) field_t3195 = other_value.t3195(); else field_t3195.clean_up(); if (other_value.t3101().is_bound()) field_t3101 = other_value.t3101(); else field_t3101.clean_up(); if (other_value.t3103().is_bound()) field_t3103 = other_value.t3103(); else field_t3103.clean_up(); if (other_value.t3105().is_bound()) field_t3105 = other_value.t3105(); else field_t3105.clean_up(); if (other_value.cv__countdown().is_bound()) field_cv__countdown = other_value.cv__countdown(); else field_cv__countdown.clean_up(); if (other_value.dl__tbf__ext().is_bound()) field_dl__tbf__ext = other_value.dl__tbf__ext(); else field_dl__tbf__ext.clean_up(); if (other_value.ul__tbf__ext().is_bound()) field_ul__tbf__ext = other_value.ul__tbf__ext(); else field_ul__tbf__ext.clean_up(); if (other_value.initial__cs().is_bound()) field_initial__cs = other_value.initial__cs(); else field_initial__cs.clean_up(); if (other_value.initial__mcs().is_bound()) field_initial__mcs = other_value.initial__mcs(); else field_initial__mcs.clean_up(); if (other_value.nsvci().is_bound()) field_nsvci = other_value.nsvci(); else field_nsvci.clean_up(); if (other_value.local__pprt().is_bound()) field_local__pprt = other_value.local__pprt(); else field_local__pprt.clean_up(); if (other_value.remote__port().is_bound()) field_remote__port = other_value.remote__port(); else field_remote__port.clean_up(); if (other_value.remote__ip().is_bound()) field_remote__ip = other_value.remote__ip(); else field_remote__ip.clean_up(); } void PCUIF__info__ind::clean_up() { field_version.clean_up(); field_flags.clean_up(); field_trx.clean_up(); field_bsic.clean_up(); field_mcc.clean_up(); field_mnc.clean_up(); field_mnc__3__digits.clean_up(); field_lac.clean_up(); field_rac.clean_up(); field_nsei.clean_up(); field_nse__timer.clean_up(); field_cell__timer.clean_up(); field_cell__id.clean_up(); field_repeat__time.clean_up(); field_repeat__count.clean_up(); field_bvci.clean_up(); field_t3142.clean_up(); field_t3169.clean_up(); field_t3191.clean_up(); field_t3193__10ms.clean_up(); field_t3195.clean_up(); field_t3101.clean_up(); field_t3103.clean_up(); field_t3105.clean_up(); field_cv__countdown.clean_up(); field_dl__tbf__ext.clean_up(); field_ul__tbf__ext.clean_up(); field_initial__cs.clean_up(); field_initial__mcs.clean_up(); field_nsvci.clean_up(); field_local__pprt.clean_up(); field_remote__port.clean_up(); field_remote__ip.clean_up(); } const TTCN_Typedescriptor_t* PCUIF__info__ind::get_descriptor() const { return &PCUIF__info__ind_descr_; } PCUIF__info__ind& PCUIF__info__ind::operator=(const PCUIF__info__ind& other_value) { if (this != &other_value) { if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @PCUIF_Types.PCUIF_info_ind."); if (other_value.version().is_bound()) field_version = other_value.version(); else field_version.clean_up(); if (other_value.flags().is_bound()) field_flags = other_value.flags(); else field_flags.clean_up(); if (other_value.trx().is_bound()) field_trx = other_value.trx(); else field_trx.clean_up(); if (other_value.bsic().is_bound()) field_bsic = other_value.bsic(); else field_bsic.clean_up(); if (other_value.mcc().is_bound()) field_mcc = other_value.mcc(); else field_mcc.clean_up(); if (other_value.mnc().is_bound()) field_mnc = other_value.mnc(); else field_mnc.clean_up(); if (other_value.mnc__3__digits().is_bound()) field_mnc__3__digits = other_value.mnc__3__digits(); else field_mnc__3__digits.clean_up(); if (other_value.lac().is_bound()) field_lac = other_value.lac(); else field_lac.clean_up(); if (other_value.rac().is_bound()) field_rac = other_value.rac(); else field_rac.clean_up(); if (other_value.nsei().is_bound()) field_nsei = other_value.nsei(); else field_nsei.clean_up(); if (other_value.nse__timer().is_bound()) field_nse__timer = other_value.nse__timer(); else field_nse__timer.clean_up(); if (other_value.cell__timer().is_bound()) field_cell__timer = other_value.cell__timer(); else field_cell__timer.clean_up(); if (other_value.cell__id().is_bound()) field_cell__id = other_value.cell__id(); else field_cell__id.clean_up(); if (other_value.repeat__time().is_bound()) field_repeat__time = other_value.repeat__time(); else field_repeat__time.clean_up(); if (other_value.repeat__count().is_bound()) field_repeat__count = other_value.repeat__count(); else field_repeat__count.clean_up(); if (other_value.bvci().is_bound()) field_bvci = other_value.bvci(); else field_bvci.clean_up(); if (other_value.t3142().is_bound()) field_t3142 = other_value.t3142(); else field_t3142.clean_up(); if (other_value.t3169().is_bound()) field_t3169 = other_value.t3169(); else field_t3169.clean_up(); if (other_value.t3191().is_bound()) field_t3191 = other_value.t3191(); else field_t3191.clean_up(); if (other_value.t3193__10ms().is_bound()) field_t3193__10ms = other_value.t3193__10ms(); else field_t3193__10ms.clean_up(); if (other_value.t3195().is_bound()) field_t3195 = other_value.t3195(); else field_t3195.clean_up(); if (other_value.t3101().is_bound()) field_t3101 = other_value.t3101(); else field_t3101.clean_up(); if (other_value.t3103().is_bound()) field_t3103 = other_value.t3103(); else field_t3103.clean_up(); if (other_value.t3105().is_bound()) field_t3105 = other_value.t3105(); else field_t3105.clean_up(); if (other_value.cv__countdown().is_bound()) field_cv__countdown = other_value.cv__countdown(); else field_cv__countdown.clean_up(); if (other_value.dl__tbf__ext().is_bound()) field_dl__tbf__ext = other_value.dl__tbf__ext(); else field_dl__tbf__ext.clean_up(); if (other_value.ul__tbf__ext().is_bound()) field_ul__tbf__ext = other_value.ul__tbf__ext(); else field_ul__tbf__ext.clean_up(); if (other_value.initial__cs().is_bound()) field_initial__cs = other_value.initial__cs(); else field_initial__cs.clean_up(); if (other_value.initial__mcs().is_bound()) field_initial__mcs = other_value.initial__mcs(); else field_initial__mcs.clean_up(); if (other_value.nsvci().is_bound()) field_nsvci = other_value.nsvci(); else field_nsvci.clean_up(); if (other_value.local__pprt().is_bound()) field_local__pprt = other_value.local__pprt(); else field_local__pprt.clean_up(); if (other_value.remote__port().is_bound()) field_remote__port = other_value.remote__port(); else field_remote__port.clean_up(); if (other_value.remote__ip().is_bound()) field_remote__ip = other_value.remote__ip(); else field_remote__ip.clean_up(); } return *this; } boolean PCUIF__info__ind::operator==(const PCUIF__info__ind& other_value) const { return field_version==other_value.field_version && field_flags==other_value.field_flags && field_trx==other_value.field_trx && field_bsic==other_value.field_bsic && field_mcc==other_value.field_mcc && field_mnc==other_value.field_mnc && field_mnc__3__digits==other_value.field_mnc__3__digits && field_lac==other_value.field_lac && field_rac==other_value.field_rac && field_nsei==other_value.field_nsei && field_nse__timer==other_value.field_nse__timer && field_cell__timer==other_value.field_cell__timer && field_cell__id==other_value.field_cell__id && field_repeat__time==other_value.field_repeat__time && field_repeat__count==other_value.field_repeat__count && field_bvci==other_value.field_bvci && field_t3142==other_value.field_t3142 && field_t3169==other_value.field_t3169 && field_t3191==other_value.field_t3191 && field_t3193__10ms==other_value.field_t3193__10ms && field_t3195==other_value.field_t3195 && field_t3101==other_value.field_t3101 && field_t3103==other_value.field_t3103 && field_t3105==other_value.field_t3105 && field_cv__countdown==other_value.field_cv__countdown && field_dl__tbf__ext==other_value.field_dl__tbf__ext && field_ul__tbf__ext==other_value.field_ul__tbf__ext && field_initial__cs==other_value.field_initial__cs && field_initial__mcs==other_value.field_initial__mcs && field_nsvci==other_value.field_nsvci && field_local__pprt==other_value.field_local__pprt && field_remote__port==other_value.field_remote__port && field_remote__ip==other_value.field_remote__ip; } boolean PCUIF__info__ind::is_bound() const { if(field_version.is_bound()) return TRUE; if(field_flags.is_bound()) return TRUE; if(field_trx.is_bound()) return TRUE; if(field_bsic.is_bound()) return TRUE; if(field_mcc.is_bound()) return TRUE; if(field_mnc.is_bound()) return TRUE; if(field_mnc__3__digits.is_bound()) return TRUE; if(field_lac.is_bound()) return TRUE; if(field_rac.is_bound()) return TRUE; if(field_nsei.is_bound()) return TRUE; if(field_nse__timer.is_bound()) return TRUE; if(field_cell__timer.is_bound()) return TRUE; if(field_cell__id.is_bound()) return TRUE; if(field_repeat__time.is_bound()) return TRUE; if(field_repeat__count.is_bound()) return TRUE; if(field_bvci.is_bound()) return TRUE; if(field_t3142.is_bound()) return TRUE; if(field_t3169.is_bound()) return TRUE; if(field_t3191.is_bound()) return TRUE; if(field_t3193__10ms.is_bound()) return TRUE; if(field_t3195.is_bound()) return TRUE; if(field_t3101.is_bound()) return TRUE; if(field_t3103.is_bound()) return TRUE; if(field_t3105.is_bound()) return TRUE; if(field_cv__countdown.is_bound()) return TRUE; if(field_dl__tbf__ext.is_bound()) return TRUE; if(field_ul__tbf__ext.is_bound()) return TRUE; if(field_initial__cs.is_bound()) return TRUE; if(field_initial__mcs.is_bound()) return TRUE; if(field_nsvci.is_bound()) return TRUE; if(field_local__pprt.is_bound()) return TRUE; if(field_remote__port.is_bound()) return TRUE; if(field_remote__ip.is_bound()) return TRUE; return FALSE; } boolean PCUIF__info__ind::is_value() const { if(!field_version.is_value()) return FALSE; if(!field_flags.is_value()) return FALSE; if(!field_trx.is_value()) return FALSE; if(!field_bsic.is_value()) return FALSE; if(!field_mcc.is_value()) return FALSE; if(!field_mnc.is_value()) return FALSE; if(!field_mnc__3__digits.is_value()) return FALSE; if(!field_lac.is_value()) return FALSE; if(!field_rac.is_value()) return FALSE; if(!field_nsei.is_value()) return FALSE; if(!field_nse__timer.is_value()) return FALSE; if(!field_cell__timer.is_value()) return FALSE; if(!field_cell__id.is_value()) return FALSE; if(!field_repeat__time.is_value()) return FALSE; if(!field_repeat__count.is_value()) return FALSE; if(!field_bvci.is_value()) return FALSE; if(!field_t3142.is_value()) return FALSE; if(!field_t3169.is_value()) return FALSE; if(!field_t3191.is_value()) return FALSE; if(!field_t3193__10ms.is_value()) return FALSE; if(!field_t3195.is_value()) return FALSE; if(!field_t3101.is_value()) return FALSE; if(!field_t3103.is_value()) return FALSE; if(!field_t3105.is_value()) return FALSE; if(!field_cv__countdown.is_value()) return FALSE; if(!field_dl__tbf__ext.is_value()) return FALSE; if(!field_ul__tbf__ext.is_value()) return FALSE; if(!field_initial__cs.is_value()) return FALSE; if(!field_initial__mcs.is_value()) return FALSE; if(!field_nsvci.is_value()) return FALSE; if(!field_local__pprt.is_value()) return FALSE; if(!field_remote__port.is_value()) return FALSE; if(!field_remote__ip.is_value()) return FALSE; return TRUE; } void PCUIF__info__ind::log() const { if (!is_bound()) { TTCN_Logger::log_event_unbound(); return; } TTCN_Logger::log_event_str("{ version := "); field_version.log(); TTCN_Logger::log_event_str(", flags := "); field_flags.log(); TTCN_Logger::log_event_str(", trx := "); field_trx.log(); TTCN_Logger::log_event_str(", bsic := "); field_bsic.log(); TTCN_Logger::log_event_str(", mcc := "); field_mcc.log(); TTCN_Logger::log_event_str(", mnc := "); field_mnc.log(); TTCN_Logger::log_event_str(", mnc_3_digits := "); field_mnc__3__digits.log(); TTCN_Logger::log_event_str(", lac := "); field_lac.log(); TTCN_Logger::log_event_str(", rac := "); field_rac.log(); TTCN_Logger::log_event_str(", nsei := "); field_nsei.log(); TTCN_Logger::log_event_str(", nse_timer := "); field_nse__timer.log(); TTCN_Logger::log_event_str(", cell_timer := "); field_cell__timer.log(); TTCN_Logger::log_event_str(", cell_id := "); field_cell__id.log(); TTCN_Logger::log_event_str(", repeat_time := "); field_repeat__time.log(); TTCN_Logger::log_event_str(", repeat_count := "); field_repeat__count.log(); TTCN_Logger::log_event_str(", bvci := "); field_bvci.log(); TTCN_Logger::log_event_str(", t3142 := "); field_t3142.log(); TTCN_Logger::log_event_str(", t3169 := "); field_t3169.log(); TTCN_Logger::log_event_str(", t3191 := "); field_t3191.log(); TTCN_Logger::log_event_str(", t3193_10ms := "); field_t3193__10ms.log(); TTCN_Logger::log_event_str(", t3195 := "); field_t3195.log(); TTCN_Logger::log_event_str(", t3101 := "); field_t3101.log(); TTCN_Logger::log_event_str(", t3103 := "); field_t3103.log(); TTCN_Logger::log_event_str(", t3105 := "); field_t3105.log(); TTCN_Logger::log_event_str(", cv_countdown := "); field_cv__countdown.log(); TTCN_Logger::log_event_str(", dl_tbf_ext := "); field_dl__tbf__ext.log(); TTCN_Logger::log_event_str(", ul_tbf_ext := "); field_ul__tbf__ext.log(); TTCN_Logger::log_event_str(", initial_cs := "); field_initial__cs.log(); TTCN_Logger::log_event_str(", initial_mcs := "); field_initial__mcs.log(); TTCN_Logger::log_event_str(", nsvci := "); field_nsvci.log(); TTCN_Logger::log_event_str(", local_pprt := "); field_local__pprt.log(); TTCN_Logger::log_event_str(", remote_port := "); field_remote__port.log(); TTCN_Logger::log_event_str(", remote_ip := "); field_remote__ip.log(); TTCN_Logger::log_event_str(" }"); } void PCUIF__info__ind::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 (330 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) version().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) trx().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) bsic().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) mcc().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) mnc().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) mnc__3__digits().set_param(*param.get_elem(6)); if (param.get_size()>7 && param.get_elem(7)->get_type()!=Module_Param::MP_NotUsed) lac().set_param(*param.get_elem(7)); if (param.get_size()>8 && param.get_elem(8)->get_type()!=Module_Param::MP_NotUsed) rac().set_param(*param.get_elem(8)); if (param.get_size()>9 && param.get_elem(9)->get_type()!=Module_Param::MP_NotUsed) nsei().set_param(*param.get_elem(9)); if (param.get_size()>10 && param.get_elem(10)->get_type()!=Module_Param::MP_NotUsed) nse__timer().set_param(*param.get_elem(10)); if (param.get_size()>11 && param.get_elem(11)->get_type()!=Module_Param::MP_NotUsed) cell__timer().set_param(*param.get_elem(11)); if (param.get_size()>12 && param.get_elem(12)->get_type()!=Module_Param::MP_NotUsed) cell__id().set_param(*param.get_elem(12)); if (param.get_size()>13 && param.get_elem(13)->get_type()!=Module_Param::MP_NotUsed) repeat__time().set_param(*param.get_elem(13)); if (param.get_size()>14 && param.get_elem(14)->get_type()!=Module_Param::MP_NotUsed) repeat__count().set_param(*param.get_elem(14)); if (param.get_size()>15 && param.get_elem(15)->get_type()!=Module_Param::MP_NotUsed) bvci().set_param(*param.get_elem(15)); if (param.get_size()>16 && param.get_elem(16)->get_type()!=Module_Param::MP_NotUsed) t3142().set_param(*param.get_elem(16)); if (param.get_size()>17 && param.get_elem(17)->get_type()!=Module_Param::MP_NotUsed) t3169().set_param(*param.get_elem(17)); if (param.get_size()>18 && param.get_elem(18)->get_type()!=Module_Param::MP_NotUsed) t3191().set_param(*param.get_elem(18)); if (param.get_size()>19 && param.get_elem(19)->get_type()!=Module_Param::MP_NotUsed) t3193__10ms().set_param(*param.get_elem(19)); if (param.get_size()>20 && param.get_elem(20)->get_type()!=Module_Param::MP_NotUsed) t3195().set_param(*param.get_elem(20)); if (param.get_size()>21 && param.get_elem(21)->get_type()!=Module_Param::MP_NotUsed) t3101().set_param(*param.get_elem(21)); if (param.get_size()>22 && param.get_elem(22)->get_type()!=Module_Param::MP_NotUsed) t3103().set_param(*param.get_elem(22)); if (param.get_size()>23 && param.get_elem(23)->get_type()!=Module_Param::MP_NotUsed) t3105().set_param(*param.get_elem(23)); if (param.get_size()>24 && param.get_elem(24)->get_type()!=Module_Param::MP_NotUsed) cv__countdown().set_param(*param.get_elem(24)); if (param.get_size()>25 && param.get_elem(25)->get_type()!=Module_Param::MP_NotUsed) dl__tbf__ext().set_param(*param.get_elem(25)); if (param.get_size()>26 && param.get_elem(26)->get_type()!=Module_Param::MP_NotUsed) ul__tbf__ext().set_param(*param.get_elem(26)); if (param.get_size()>27 && param.get_elem(27)->get_type()!=Module_Param::MP_NotUsed) initial__cs().set_param(*param.get_elem(27)); if (param.get_size()>28 && param.get_elem(28)->get_type()!=Module_Param::MP_NotUsed) initial__mcs().set_param(*param.get_elem(28)); if (param.get_size()>29 && param.get_elem(29)->get_type()!=Module_Param::MP_NotUsed) nsvci().set_param(*param.get_elem(29)); if (param.get_size()>30 && param.get_elem(30)->get_type()!=Module_Param::MP_NotUsed) local__pprt().set_param(*param.get_elem(30)); if (param.get_size()>31 && param.get_elem(31)->get_type()!=Module_Param::MP_NotUsed) remote__port().set_param(*param.get_elem(31)); if (param.get_size()>32 && param.get_elem(32)->get_type()!=Module_Param::MP_NotUsed) remote__ip().set_param(*param.get_elem(32)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "version")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { version().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_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_idxget_id()->get_name(), "trx")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { trx().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "bsic")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { bsic().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcc")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcc().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mnc")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mnc().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mnc_3_digits")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mnc__3__digits().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "lac")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { lac().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "rac")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { rac().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "nsei")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { nsei().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "nse_timer")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { nse__timer().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cell_timer")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cell__timer().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cell_id")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cell__id().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "repeat_time")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { repeat__time().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "repeat_count")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { repeat__count().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "bvci")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { bvci().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3142")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3142().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3169")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3169().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3191")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3191().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3193_10ms")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3193__10ms().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3195")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3195().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3101")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3101().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3103")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3103().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3105")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3105().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cv_countdown")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cv__countdown().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "dl_tbf_ext")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { dl__tbf__ext().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ul_tbf_ext")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ul__tbf__ext().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "initial_cs")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { initial__cs().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "initial_mcs")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { initial__mcs().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "nsvci")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { nsvci().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "local_pprt")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { local__pprt().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "remote_port")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { remote__port().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "remote_ip")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { remote__ip().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_info_ind: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@PCUIF_Types.PCUIF_info_ind"); } } void PCUIF__info__ind::set_implicit_omit() { if (version().is_bound()) version().set_implicit_omit(); if (flags().is_bound()) flags().set_implicit_omit(); if (trx().is_bound()) trx().set_implicit_omit(); if (bsic().is_bound()) bsic().set_implicit_omit(); if (mcc().is_bound()) mcc().set_implicit_omit(); if (mnc().is_bound()) mnc().set_implicit_omit(); if (mnc__3__digits().is_bound()) mnc__3__digits().set_implicit_omit(); if (lac().is_bound()) lac().set_implicit_omit(); if (rac().is_bound()) rac().set_implicit_omit(); if (nsei().is_bound()) nsei().set_implicit_omit(); if (nse__timer().is_bound()) nse__timer().set_implicit_omit(); if (cell__timer().is_bound()) cell__timer().set_implicit_omit(); if (cell__id().is_bound()) cell__id().set_implicit_omit(); if (repeat__time().is_bound()) repeat__time().set_implicit_omit(); if (repeat__count().is_bound()) repeat__count().set_implicit_omit(); if (bvci().is_bound()) bvci().set_implicit_omit(); if (t3142().is_bound()) t3142().set_implicit_omit(); if (t3169().is_bound()) t3169().set_implicit_omit(); if (t3191().is_bound()) t3191().set_implicit_omit(); if (t3193__10ms().is_bound()) t3193__10ms().set_implicit_omit(); if (t3195().is_bound()) t3195().set_implicit_omit(); if (t3101().is_bound()) t3101().set_implicit_omit(); if (t3103().is_bound()) t3103().set_implicit_omit(); if (t3105().is_bound()) t3105().set_implicit_omit(); if (cv__countdown().is_bound()) cv__countdown().set_implicit_omit(); if (dl__tbf__ext().is_bound()) dl__tbf__ext().set_implicit_omit(); if (ul__tbf__ext().is_bound()) ul__tbf__ext().set_implicit_omit(); if (initial__cs().is_bound()) initial__cs().set_implicit_omit(); if (initial__mcs().is_bound()) initial__mcs().set_implicit_omit(); if (nsvci().is_bound()) nsvci().set_implicit_omit(); if (local__pprt().is_bound()) local__pprt().set_implicit_omit(); if (remote__port().is_bound()) remote__port().set_implicit_omit(); if (remote__ip().is_bound()) remote__ip().set_implicit_omit(); } void PCUIF__info__ind::encode_text(Text_Buf& text_buf) const { field_version.encode_text(text_buf); field_flags.encode_text(text_buf); field_trx.encode_text(text_buf); field_bsic.encode_text(text_buf); field_mcc.encode_text(text_buf); field_mnc.encode_text(text_buf); field_mnc__3__digits.encode_text(text_buf); field_lac.encode_text(text_buf); field_rac.encode_text(text_buf); field_nsei.encode_text(text_buf); field_nse__timer.encode_text(text_buf); field_cell__timer.encode_text(text_buf); field_cell__id.encode_text(text_buf); field_repeat__time.encode_text(text_buf); field_repeat__count.encode_text(text_buf); field_bvci.encode_text(text_buf); field_t3142.encode_text(text_buf); field_t3169.encode_text(text_buf); field_t3191.encode_text(text_buf); field_t3193__10ms.encode_text(text_buf); field_t3195.encode_text(text_buf); field_t3101.encode_text(text_buf); field_t3103.encode_text(text_buf); field_t3105.encode_text(text_buf); field_cv__countdown.encode_text(text_buf); field_dl__tbf__ext.encode_text(text_buf); field_ul__tbf__ext.encode_text(text_buf); field_initial__cs.encode_text(text_buf); field_initial__mcs.encode_text(text_buf); field_nsvci.encode_text(text_buf); field_local__pprt.encode_text(text_buf); field_remote__port.encode_text(text_buf); field_remote__ip.encode_text(text_buf); } void PCUIF__info__ind::decode_text(Text_Buf& text_buf) { field_version.decode_text(text_buf); field_flags.decode_text(text_buf); field_trx.decode_text(text_buf); field_bsic.decode_text(text_buf); field_mcc.decode_text(text_buf); field_mnc.decode_text(text_buf); field_mnc__3__digits.decode_text(text_buf); field_lac.decode_text(text_buf); field_rac.decode_text(text_buf); field_nsei.decode_text(text_buf); field_nse__timer.decode_text(text_buf); field_cell__timer.decode_text(text_buf); field_cell__id.decode_text(text_buf); field_repeat__time.decode_text(text_buf); field_repeat__count.decode_text(text_buf); field_bvci.decode_text(text_buf); field_t3142.decode_text(text_buf); field_t3169.decode_text(text_buf); field_t3191.decode_text(text_buf); field_t3193__10ms.decode_text(text_buf); field_t3195.decode_text(text_buf); field_t3101.decode_text(text_buf); field_t3103.decode_text(text_buf); field_t3105.decode_text(text_buf); field_cv__countdown.decode_text(text_buf); field_dl__tbf__ext.decode_text(text_buf); field_ul__tbf__ext.decode_text(text_buf); field_initial__cs.decode_text(text_buf); field_initial__mcs.decode_text(text_buf); field_nsvci.decode_text(text_buf); field_local__pprt.decode_text(text_buf); field_remote__port.decode_text(text_buf); field_remote__ip.decode_text(text_buf); } void PCUIF__info__ind::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 PCUIF__info__ind::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 PCUIF__info__ind::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, PCUIF__info__ind_version_descr_.raw->forceomit); decoded_field_length = field_version.RAW_decode(PCUIF__info__ind_version_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, PCUIF__info__ind_flags_descr_.raw->forceomit); decoded_field_length = field_flags.RAW_decode(PCUIF__info__ind_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()); RAW_Force_Omit field_2_force_omit(2, force_omit, PCUIF__info__ind_trx_descr_.raw->forceomit); decoded_field_length = field_trx.RAW_decode(PCUIF__info__ind_trx_descr_, p_buf, limit, local_top_order, no_err, -1, 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()); RAW_Force_Omit field_3_force_omit(3, force_omit, PCUIF__info__ind_bsic_descr_.raw->forceomit); decoded_field_length = field_bsic.RAW_decode(PCUIF__info__ind_bsic_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_3_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_4_force_omit(4, force_omit, PCUIF__info__ind_mcc_descr_.raw->forceomit); decoded_field_length = field_mcc.RAW_decode(PCUIF__info__ind_mcc_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_4_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_5_force_omit(5, force_omit, PCUIF__info__ind_mnc_descr_.raw->forceomit); decoded_field_length = field_mnc.RAW_decode(PCUIF__info__ind_mnc_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_5_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_6_force_omit(6, force_omit, PCUIF__info__ind_mnc__3__digits_descr_.raw->forceomit); decoded_field_length = field_mnc__3__digits.RAW_decode(PCUIF__info__ind_mnc__3__digits_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_6_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_7_force_omit(7, force_omit, PCUIF__info__ind_lac_descr_.raw->forceomit); decoded_field_length = field_lac.RAW_decode(PCUIF__info__ind_lac_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_7_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_8_force_omit(8, force_omit, PCUIF__info__ind_rac_descr_.raw->forceomit); decoded_field_length = field_rac.RAW_decode(PCUIF__info__ind_rac_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_8_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_9_force_omit(9, force_omit, PCUIF__info__ind_nsei_descr_.raw->forceomit); decoded_field_length = field_nsei.RAW_decode(PCUIF__info__ind_nsei_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_9_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_10_force_omit(10, force_omit, PCUIF__info__ind_nse__timer_descr_.raw->forceomit); decoded_field_length = field_nse__timer.RAW_decode(PCUIF__info__ind_nse__timer_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_10_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_11_force_omit(11, force_omit, PCUIF__info__ind_cell__timer_descr_.raw->forceomit); decoded_field_length = field_cell__timer.RAW_decode(PCUIF__info__ind_cell__timer_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_11_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_12_force_omit(12, force_omit, PCUIF__info__ind_cell__id_descr_.raw->forceomit); decoded_field_length = field_cell__id.RAW_decode(PCUIF__info__ind_cell__id_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_12_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_13_force_omit(13, force_omit, PCUIF__info__ind_repeat__time_descr_.raw->forceomit); decoded_field_length = field_repeat__time.RAW_decode(PCUIF__info__ind_repeat__time_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_13_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_14_force_omit(14, force_omit, PCUIF__info__ind_repeat__count_descr_.raw->forceomit); decoded_field_length = field_repeat__count.RAW_decode(PCUIF__info__ind_repeat__count_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_14_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_15_force_omit(15, force_omit, PCUIF__info__ind_bvci_descr_.raw->forceomit); decoded_field_length = field_bvci.RAW_decode(PCUIF__info__ind_bvci_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_15_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_16_force_omit(16, force_omit, PCUIF__info__ind_t3142_descr_.raw->forceomit); decoded_field_length = field_t3142.RAW_decode(PCUIF__info__ind_t3142_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_16_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_17_force_omit(17, force_omit, PCUIF__info__ind_t3169_descr_.raw->forceomit); decoded_field_length = field_t3169.RAW_decode(PCUIF__info__ind_t3169_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_17_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_18_force_omit(18, force_omit, PCUIF__info__ind_t3191_descr_.raw->forceomit); decoded_field_length = field_t3191.RAW_decode(PCUIF__info__ind_t3191_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_18_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_19_force_omit(19, force_omit, PCUIF__info__ind_t3193__10ms_descr_.raw->forceomit); decoded_field_length = field_t3193__10ms.RAW_decode(PCUIF__info__ind_t3193__10ms_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_19_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_20_force_omit(20, force_omit, PCUIF__info__ind_t3195_descr_.raw->forceomit); decoded_field_length = field_t3195.RAW_decode(PCUIF__info__ind_t3195_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_20_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_21_force_omit(21, force_omit, PCUIF__info__ind_t3101_descr_.raw->forceomit); decoded_field_length = field_t3101.RAW_decode(PCUIF__info__ind_t3101_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_21_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_22_force_omit(22, force_omit, PCUIF__info__ind_t3103_descr_.raw->forceomit); decoded_field_length = field_t3103.RAW_decode(PCUIF__info__ind_t3103_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_22_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_23_force_omit(23, force_omit, PCUIF__info__ind_t3105_descr_.raw->forceomit); decoded_field_length = field_t3105.RAW_decode(PCUIF__info__ind_t3105_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_23_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_24_force_omit(24, force_omit, PCUIF__info__ind_cv__countdown_descr_.raw->forceomit); decoded_field_length = field_cv__countdown.RAW_decode(PCUIF__info__ind_cv__countdown_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_24_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_25_force_omit(25, force_omit, PCUIF__info__ind_dl__tbf__ext_descr_.raw->forceomit); decoded_field_length = field_dl__tbf__ext.RAW_decode(PCUIF__info__ind_dl__tbf__ext_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_25_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_26_force_omit(26, force_omit, PCUIF__info__ind_ul__tbf__ext_descr_.raw->forceomit); decoded_field_length = field_ul__tbf__ext.RAW_decode(PCUIF__info__ind_ul__tbf__ext_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_26_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_27_force_omit(27, force_omit, PCUIF__info__ind_initial__cs_descr_.raw->forceomit); decoded_field_length = field_initial__cs.RAW_decode(PCUIF__info__ind_initial__cs_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_27_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_28_force_omit(28, force_omit, PCUIF__info__ind_initial__mcs_descr_.raw->forceomit); decoded_field_length = field_initial__mcs.RAW_decode(PCUIF__info__ind_initial__mcs_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_28_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_29_force_omit(29, force_omit, PCUIF__info__ind_nsvci_descr_.raw->forceomit); decoded_field_length = field_nsvci.RAW_decode(PCUIF__info__ind_nsvci_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_29_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_30_force_omit(30, force_omit, PCUIF__info__ind_local__pprt_descr_.raw->forceomit); decoded_field_length = field_local__pprt.RAW_decode(PCUIF__info__ind_local__pprt_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_30_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_31_force_omit(31, force_omit, PCUIF__info__ind_remote__port_descr_.raw->forceomit); decoded_field_length = field_remote__port.RAW_decode(PCUIF__info__ind_remote__port_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_31_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_32_force_omit(32, force_omit, PCUIF__info__ind_remote__ip_descr_.raw->forceomit); decoded_field_length = field_remote__ip.RAW_decode(PCUIF__info__ind_remote__ip_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_32_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 PCUIF__info__ind::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 = 33; myleaf.body.node.nodes = init_nodes_of_enc_tree(33); myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, PCUIF__info__ind_version_descr_.raw); myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, PCUIF__info__ind_flags_descr_.raw); myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 2, PCUIF__info__ind_trx_descr_.raw); myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 3, PCUIF__info__ind_bsic_descr_.raw); myleaf.body.node.nodes[4] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 4, PCUIF__info__ind_mcc_descr_.raw); myleaf.body.node.nodes[5] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 5, PCUIF__info__ind_mnc_descr_.raw); myleaf.body.node.nodes[6] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 6, PCUIF__info__ind_mnc__3__digits_descr_.raw); myleaf.body.node.nodes[7] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 7, PCUIF__info__ind_lac_descr_.raw); myleaf.body.node.nodes[8] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 8, PCUIF__info__ind_rac_descr_.raw); myleaf.body.node.nodes[9] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 9, PCUIF__info__ind_nsei_descr_.raw); myleaf.body.node.nodes[10] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 10, PCUIF__info__ind_nse__timer_descr_.raw); myleaf.body.node.nodes[11] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 11, PCUIF__info__ind_cell__timer_descr_.raw); myleaf.body.node.nodes[12] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 12, PCUIF__info__ind_cell__id_descr_.raw); myleaf.body.node.nodes[13] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 13, PCUIF__info__ind_repeat__time_descr_.raw); myleaf.body.node.nodes[14] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 14, PCUIF__info__ind_repeat__count_descr_.raw); myleaf.body.node.nodes[15] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 15, PCUIF__info__ind_bvci_descr_.raw); myleaf.body.node.nodes[16] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 16, PCUIF__info__ind_t3142_descr_.raw); myleaf.body.node.nodes[17] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 17, PCUIF__info__ind_t3169_descr_.raw); myleaf.body.node.nodes[18] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 18, PCUIF__info__ind_t3191_descr_.raw); myleaf.body.node.nodes[19] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 19, PCUIF__info__ind_t3193__10ms_descr_.raw); myleaf.body.node.nodes[20] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 20, PCUIF__info__ind_t3195_descr_.raw); myleaf.body.node.nodes[21] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 21, PCUIF__info__ind_t3101_descr_.raw); myleaf.body.node.nodes[22] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 22, PCUIF__info__ind_t3103_descr_.raw); myleaf.body.node.nodes[23] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 23, PCUIF__info__ind_t3105_descr_.raw); myleaf.body.node.nodes[24] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 24, PCUIF__info__ind_cv__countdown_descr_.raw); myleaf.body.node.nodes[25] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 25, PCUIF__info__ind_dl__tbf__ext_descr_.raw); myleaf.body.node.nodes[26] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 26, PCUIF__info__ind_ul__tbf__ext_descr_.raw); myleaf.body.node.nodes[27] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 27, PCUIF__info__ind_initial__cs_descr_.raw); myleaf.body.node.nodes[28] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 28, PCUIF__info__ind_initial__mcs_descr_.raw); myleaf.body.node.nodes[29] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 29, PCUIF__info__ind_nsvci_descr_.raw); myleaf.body.node.nodes[30] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 30, PCUIF__info__ind_local__pprt_descr_.raw); myleaf.body.node.nodes[31] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 31, PCUIF__info__ind_remote__port_descr_.raw); myleaf.body.node.nodes[32] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 32, PCUIF__info__ind_remote__ip_descr_.raw); encoded_length += field_version.RAW_encode(PCUIF__info__ind_version_descr_, *myleaf.body.node.nodes[0]); encoded_length += field_flags.RAW_encode(PCUIF__info__ind_flags_descr_, *myleaf.body.node.nodes[1]); encoded_length += field_trx.RAW_encode(PCUIF__info__ind_trx_descr_, *myleaf.body.node.nodes[2]); encoded_length += field_bsic.RAW_encode(PCUIF__info__ind_bsic_descr_, *myleaf.body.node.nodes[3]); encoded_length += field_mcc.RAW_encode(PCUIF__info__ind_mcc_descr_, *myleaf.body.node.nodes[4]); encoded_length += field_mnc.RAW_encode(PCUIF__info__ind_mnc_descr_, *myleaf.body.node.nodes[5]); encoded_length += field_mnc__3__digits.RAW_encode(PCUIF__info__ind_mnc__3__digits_descr_, *myleaf.body.node.nodes[6]); encoded_length += field_lac.RAW_encode(PCUIF__info__ind_lac_descr_, *myleaf.body.node.nodes[7]); encoded_length += field_rac.RAW_encode(PCUIF__info__ind_rac_descr_, *myleaf.body.node.nodes[8]); encoded_length += field_nsei.RAW_encode(PCUIF__info__ind_nsei_descr_, *myleaf.body.node.nodes[9]); encoded_length += field_nse__timer.RAW_encode(PCUIF__info__ind_nse__timer_descr_, *myleaf.body.node.nodes[10]); encoded_length += field_cell__timer.RAW_encode(PCUIF__info__ind_cell__timer_descr_, *myleaf.body.node.nodes[11]); encoded_length += field_cell__id.RAW_encode(PCUIF__info__ind_cell__id_descr_, *myleaf.body.node.nodes[12]); encoded_length += field_repeat__time.RAW_encode(PCUIF__info__ind_repeat__time_descr_, *myleaf.body.node.nodes[13]); encoded_length += field_repeat__count.RAW_encode(PCUIF__info__ind_repeat__count_descr_, *myleaf.body.node.nodes[14]); encoded_length += field_bvci.RAW_encode(PCUIF__info__ind_bvci_descr_, *myleaf.body.node.nodes[15]); encoded_length += field_t3142.RAW_encode(PCUIF__info__ind_t3142_descr_, *myleaf.body.node.nodes[16]); encoded_length += field_t3169.RAW_encode(PCUIF__info__ind_t3169_descr_, *myleaf.body.node.nodes[17]); encoded_length += field_t3191.RAW_encode(PCUIF__info__ind_t3191_descr_, *myleaf.body.node.nodes[18]); encoded_length += field_t3193__10ms.RAW_encode(PCUIF__info__ind_t3193__10ms_descr_, *myleaf.body.node.nodes[19]); encoded_length += field_t3195.RAW_encode(PCUIF__info__ind_t3195_descr_, *myleaf.body.node.nodes[20]); encoded_length += field_t3101.RAW_encode(PCUIF__info__ind_t3101_descr_, *myleaf.body.node.nodes[21]); encoded_length += field_t3103.RAW_encode(PCUIF__info__ind_t3103_descr_, *myleaf.body.node.nodes[22]); encoded_length += field_t3105.RAW_encode(PCUIF__info__ind_t3105_descr_, *myleaf.body.node.nodes[23]); encoded_length += field_cv__countdown.RAW_encode(PCUIF__info__ind_cv__countdown_descr_, *myleaf.body.node.nodes[24]); encoded_length += field_dl__tbf__ext.RAW_encode(PCUIF__info__ind_dl__tbf__ext_descr_, *myleaf.body.node.nodes[25]); encoded_length += field_ul__tbf__ext.RAW_encode(PCUIF__info__ind_ul__tbf__ext_descr_, *myleaf.body.node.nodes[26]); encoded_length += field_initial__cs.RAW_encode(PCUIF__info__ind_initial__cs_descr_, *myleaf.body.node.nodes[27]); encoded_length += field_initial__mcs.RAW_encode(PCUIF__info__ind_initial__mcs_descr_, *myleaf.body.node.nodes[28]); encoded_length += field_nsvci.RAW_encode(PCUIF__info__ind_nsvci_descr_, *myleaf.body.node.nodes[29]); encoded_length += field_local__pprt.RAW_encode(PCUIF__info__ind_local__pprt_descr_, *myleaf.body.node.nodes[30]); encoded_length += field_remote__port.RAW_encode(PCUIF__info__ind_remote__port_descr_, *myleaf.body.node.nodes[31]); encoded_length += field_remote__ip.RAW_encode(PCUIF__info__ind_remote__ip_descr_, *myleaf.body.node.nodes[32]); return myleaf.length = encoded_length; } struct PCUIF__info__ind_template::single_value_struct { INTEGER_template field_version; PCUIF__Flags_template field_flags; PCUIF__InfoTrxs_template field_trx; INTEGER_template field_bsic; INTEGER_template field_mcc; INTEGER_template field_mnc; INTEGER_template field_mnc__3__digits; INTEGER_template field_lac; INTEGER_template field_rac; INTEGER_template field_nsei; PCUIF__info__ind_nse__timer_template field_nse__timer; PCUIF__info__ind_cell__timer_template field_cell__timer; INTEGER_template field_cell__id; INTEGER_template field_repeat__time; INTEGER_template field_repeat__count; INTEGER_template field_bvci; INTEGER_template field_t3142; INTEGER_template field_t3169; INTEGER_template field_t3191; INTEGER_template field_t3193__10ms; INTEGER_template field_t3195; INTEGER_template field_t3101; INTEGER_template field_t3103; INTEGER_template field_t3105; INTEGER_template field_cv__countdown; INTEGER_template field_dl__tbf__ext; INTEGER_template field_ul__tbf__ext; INTEGER_template field_initial__cs; INTEGER_template field_initial__mcs; PCUIF__info__ind_nsvci_template field_nsvci; PCUIF__info__ind_local__pprt_template field_local__pprt; PCUIF__info__ind_remote__port_template field_remote__port; PCUIF__info__ind_remote__ip_template field_remote__ip; }; void PCUIF__info__ind_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_version = ANY_VALUE; single_value->field_flags = ANY_VALUE; single_value->field_trx = ANY_VALUE; single_value->field_bsic = ANY_VALUE; single_value->field_mcc = ANY_VALUE; single_value->field_mnc = ANY_VALUE; single_value->field_mnc__3__digits = ANY_VALUE; single_value->field_lac = ANY_VALUE; single_value->field_rac = ANY_VALUE; single_value->field_nsei = ANY_VALUE; single_value->field_nse__timer = ANY_VALUE; single_value->field_cell__timer = ANY_VALUE; single_value->field_cell__id = ANY_VALUE; single_value->field_repeat__time = ANY_VALUE; single_value->field_repeat__count = ANY_VALUE; single_value->field_bvci = ANY_VALUE; single_value->field_t3142 = ANY_VALUE; single_value->field_t3169 = ANY_VALUE; single_value->field_t3191 = ANY_VALUE; single_value->field_t3193__10ms = ANY_VALUE; single_value->field_t3195 = ANY_VALUE; single_value->field_t3101 = ANY_VALUE; single_value->field_t3103 = ANY_VALUE; single_value->field_t3105 = ANY_VALUE; single_value->field_cv__countdown = ANY_VALUE; single_value->field_dl__tbf__ext = ANY_VALUE; single_value->field_ul__tbf__ext = ANY_VALUE; single_value->field_initial__cs = ANY_VALUE; single_value->field_initial__mcs = ANY_VALUE; single_value->field_nsvci = ANY_VALUE; single_value->field_local__pprt = ANY_VALUE; single_value->field_remote__port = ANY_VALUE; single_value->field_remote__ip = ANY_VALUE; } } } void PCUIF__info__ind_template::copy_value(const PCUIF__info__ind& other_value) { single_value = new single_value_struct; if (other_value.version().is_bound()) { single_value->field_version = other_value.version(); } else { single_value->field_version.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.trx().is_bound()) { single_value->field_trx = other_value.trx(); } else { single_value->field_trx.clean_up(); } if (other_value.bsic().is_bound()) { single_value->field_bsic = other_value.bsic(); } else { single_value->field_bsic.clean_up(); } if (other_value.mcc().is_bound()) { single_value->field_mcc = other_value.mcc(); } else { single_value->field_mcc.clean_up(); } if (other_value.mnc().is_bound()) { single_value->field_mnc = other_value.mnc(); } else { single_value->field_mnc.clean_up(); } if (other_value.mnc__3__digits().is_bound()) { single_value->field_mnc__3__digits = other_value.mnc__3__digits(); } else { single_value->field_mnc__3__digits.clean_up(); } if (other_value.lac().is_bound()) { single_value->field_lac = other_value.lac(); } else { single_value->field_lac.clean_up(); } if (other_value.rac().is_bound()) { single_value->field_rac = other_value.rac(); } else { single_value->field_rac.clean_up(); } if (other_value.nsei().is_bound()) { single_value->field_nsei = other_value.nsei(); } else { single_value->field_nsei.clean_up(); } if (other_value.nse__timer().is_bound()) { single_value->field_nse__timer = other_value.nse__timer(); } else { single_value->field_nse__timer.clean_up(); } if (other_value.cell__timer().is_bound()) { single_value->field_cell__timer = other_value.cell__timer(); } else { single_value->field_cell__timer.clean_up(); } if (other_value.cell__id().is_bound()) { single_value->field_cell__id = other_value.cell__id(); } else { single_value->field_cell__id.clean_up(); } if (other_value.repeat__time().is_bound()) { single_value->field_repeat__time = other_value.repeat__time(); } else { single_value->field_repeat__time.clean_up(); } if (other_value.repeat__count().is_bound()) { single_value->field_repeat__count = other_value.repeat__count(); } else { single_value->field_repeat__count.clean_up(); } if (other_value.bvci().is_bound()) { single_value->field_bvci = other_value.bvci(); } else { single_value->field_bvci.clean_up(); } if (other_value.t3142().is_bound()) { single_value->field_t3142 = other_value.t3142(); } else { single_value->field_t3142.clean_up(); } if (other_value.t3169().is_bound()) { single_value->field_t3169 = other_value.t3169(); } else { single_value->field_t3169.clean_up(); } if (other_value.t3191().is_bound()) { single_value->field_t3191 = other_value.t3191(); } else { single_value->field_t3191.clean_up(); } if (other_value.t3193__10ms().is_bound()) { single_value->field_t3193__10ms = other_value.t3193__10ms(); } else { single_value->field_t3193__10ms.clean_up(); } if (other_value.t3195().is_bound()) { single_value->field_t3195 = other_value.t3195(); } else { single_value->field_t3195.clean_up(); } if (other_value.t3101().is_bound()) { single_value->field_t3101 = other_value.t3101(); } else { single_value->field_t3101.clean_up(); } if (other_value.t3103().is_bound()) { single_value->field_t3103 = other_value.t3103(); } else { single_value->field_t3103.clean_up(); } if (other_value.t3105().is_bound()) { single_value->field_t3105 = other_value.t3105(); } else { single_value->field_t3105.clean_up(); } if (other_value.cv__countdown().is_bound()) { single_value->field_cv__countdown = other_value.cv__countdown(); } else { single_value->field_cv__countdown.clean_up(); } if (other_value.dl__tbf__ext().is_bound()) { single_value->field_dl__tbf__ext = other_value.dl__tbf__ext(); } else { single_value->field_dl__tbf__ext.clean_up(); } if (other_value.ul__tbf__ext().is_bound()) { single_value->field_ul__tbf__ext = other_value.ul__tbf__ext(); } else { single_value->field_ul__tbf__ext.clean_up(); } if (other_value.initial__cs().is_bound()) { single_value->field_initial__cs = other_value.initial__cs(); } else { single_value->field_initial__cs.clean_up(); } if (other_value.initial__mcs().is_bound()) { single_value->field_initial__mcs = other_value.initial__mcs(); } else { single_value->field_initial__mcs.clean_up(); } if (other_value.nsvci().is_bound()) { single_value->field_nsvci = other_value.nsvci(); } else { single_value->field_nsvci.clean_up(); } if (other_value.local__pprt().is_bound()) { single_value->field_local__pprt = other_value.local__pprt(); } else { single_value->field_local__pprt.clean_up(); } if (other_value.remote__port().is_bound()) { single_value->field_remote__port = other_value.remote__port(); } else { single_value->field_remote__port.clean_up(); } if (other_value.remote__ip().is_bound()) { single_value->field_remote__ip = other_value.remote__ip(); } else { single_value->field_remote__ip.clean_up(); } set_selection(SPECIFIC_VALUE); } void PCUIF__info__ind_template::copy_template(const PCUIF__info__ind_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.version().get_selection()) { single_value->field_version = other_value.version(); } else { single_value->field_version.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.trx().get_selection()) { single_value->field_trx = other_value.trx(); } else { single_value->field_trx.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.bsic().get_selection()) { single_value->field_bsic = other_value.bsic(); } else { single_value->field_bsic.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mcc().get_selection()) { single_value->field_mcc = other_value.mcc(); } else { single_value->field_mcc.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mnc().get_selection()) { single_value->field_mnc = other_value.mnc(); } else { single_value->field_mnc.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.mnc__3__digits().get_selection()) { single_value->field_mnc__3__digits = other_value.mnc__3__digits(); } else { single_value->field_mnc__3__digits.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.lac().get_selection()) { single_value->field_lac = other_value.lac(); } else { single_value->field_lac.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.rac().get_selection()) { single_value->field_rac = other_value.rac(); } else { single_value->field_rac.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.nsei().get_selection()) { single_value->field_nsei = other_value.nsei(); } else { single_value->field_nsei.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.nse__timer().get_selection()) { single_value->field_nse__timer = other_value.nse__timer(); } else { single_value->field_nse__timer.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.cell__timer().get_selection()) { single_value->field_cell__timer = other_value.cell__timer(); } else { single_value->field_cell__timer.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.cell__id().get_selection()) { single_value->field_cell__id = other_value.cell__id(); } else { single_value->field_cell__id.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.repeat__time().get_selection()) { single_value->field_repeat__time = other_value.repeat__time(); } else { single_value->field_repeat__time.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.repeat__count().get_selection()) { single_value->field_repeat__count = other_value.repeat__count(); } else { single_value->field_repeat__count.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.bvci().get_selection()) { single_value->field_bvci = other_value.bvci(); } else { single_value->field_bvci.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.t3142().get_selection()) { single_value->field_t3142 = other_value.t3142(); } else { single_value->field_t3142.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.t3169().get_selection()) { single_value->field_t3169 = other_value.t3169(); } else { single_value->field_t3169.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.t3191().get_selection()) { single_value->field_t3191 = other_value.t3191(); } else { single_value->field_t3191.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.t3193__10ms().get_selection()) { single_value->field_t3193__10ms = other_value.t3193__10ms(); } else { single_value->field_t3193__10ms.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.t3195().get_selection()) { single_value->field_t3195 = other_value.t3195(); } else { single_value->field_t3195.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.t3101().get_selection()) { single_value->field_t3101 = other_value.t3101(); } else { single_value->field_t3101.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.t3103().get_selection()) { single_value->field_t3103 = other_value.t3103(); } else { single_value->field_t3103.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.t3105().get_selection()) { single_value->field_t3105 = other_value.t3105(); } else { single_value->field_t3105.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.cv__countdown().get_selection()) { single_value->field_cv__countdown = other_value.cv__countdown(); } else { single_value->field_cv__countdown.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.dl__tbf__ext().get_selection()) { single_value->field_dl__tbf__ext = other_value.dl__tbf__ext(); } else { single_value->field_dl__tbf__ext.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.ul__tbf__ext().get_selection()) { single_value->field_ul__tbf__ext = other_value.ul__tbf__ext(); } else { single_value->field_ul__tbf__ext.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.initial__cs().get_selection()) { single_value->field_initial__cs = other_value.initial__cs(); } else { single_value->field_initial__cs.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.initial__mcs().get_selection()) { single_value->field_initial__mcs = other_value.initial__mcs(); } else { single_value->field_initial__mcs.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.nsvci().get_selection()) { single_value->field_nsvci = other_value.nsvci(); } else { single_value->field_nsvci.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.local__pprt().get_selection()) { single_value->field_local__pprt = other_value.local__pprt(); } else { single_value->field_local__pprt.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.remote__port().get_selection()) { single_value->field_remote__port = other_value.remote__port(); } else { single_value->field_remote__port.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.remote__ip().get_selection()) { single_value->field_remote__ip = other_value.remote__ip(); } else { single_value->field_remote__ip.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 PCUIF__info__ind_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 @PCUIF_Types.PCUIF_info_ind."); break; } set_selection(other_value); } PCUIF__info__ind_template::PCUIF__info__ind_template() { } PCUIF__info__ind_template::PCUIF__info__ind_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__info__ind_template::PCUIF__info__ind_template(const PCUIF__info__ind& other_value) { copy_value(other_value); } PCUIF__info__ind_template::PCUIF__info__ind_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__info__ind&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_info_ind from an unbound optional field."); } } PCUIF__info__ind_template::PCUIF__info__ind_template(const PCUIF__info__ind_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__info__ind_template::~PCUIF__info__ind_template() { clean_up(); } PCUIF__info__ind_template& PCUIF__info__ind_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__info__ind_template& PCUIF__info__ind_template::operator=(const PCUIF__info__ind& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__info__ind_template& PCUIF__info__ind_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__info__ind&)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 @PCUIF_Types.PCUIF_info_ind."); } return *this; } PCUIF__info__ind_template& PCUIF__info__ind_template::operator=(const PCUIF__info__ind_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__info__ind_template::match(const PCUIF__info__ind& 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.version().is_bound()) return FALSE; if(!single_value->field_version.match(other_value.version(), 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.trx().is_bound()) return FALSE; if(!single_value->field_trx.match(other_value.trx(), legacy))return FALSE; if(!other_value.bsic().is_bound()) return FALSE; if(!single_value->field_bsic.match(other_value.bsic(), legacy))return FALSE; if(!other_value.mcc().is_bound()) return FALSE; if(!single_value->field_mcc.match(other_value.mcc(), legacy))return FALSE; if(!other_value.mnc().is_bound()) return FALSE; if(!single_value->field_mnc.match(other_value.mnc(), legacy))return FALSE; if(!other_value.mnc__3__digits().is_bound()) return FALSE; if(!single_value->field_mnc__3__digits.match(other_value.mnc__3__digits(), legacy))return FALSE; if(!other_value.lac().is_bound()) return FALSE; if(!single_value->field_lac.match(other_value.lac(), legacy))return FALSE; if(!other_value.rac().is_bound()) return FALSE; if(!single_value->field_rac.match(other_value.rac(), legacy))return FALSE; if(!other_value.nsei().is_bound()) return FALSE; if(!single_value->field_nsei.match(other_value.nsei(), legacy))return FALSE; if(!other_value.nse__timer().is_bound()) return FALSE; if(!single_value->field_nse__timer.match(other_value.nse__timer(), legacy))return FALSE; if(!other_value.cell__timer().is_bound()) return FALSE; if(!single_value->field_cell__timer.match(other_value.cell__timer(), legacy))return FALSE; if(!other_value.cell__id().is_bound()) return FALSE; if(!single_value->field_cell__id.match(other_value.cell__id(), legacy))return FALSE; if(!other_value.repeat__time().is_bound()) return FALSE; if(!single_value->field_repeat__time.match(other_value.repeat__time(), legacy))return FALSE; if(!other_value.repeat__count().is_bound()) return FALSE; if(!single_value->field_repeat__count.match(other_value.repeat__count(), legacy))return FALSE; if(!other_value.bvci().is_bound()) return FALSE; if(!single_value->field_bvci.match(other_value.bvci(), legacy))return FALSE; if(!other_value.t3142().is_bound()) return FALSE; if(!single_value->field_t3142.match(other_value.t3142(), legacy))return FALSE; if(!other_value.t3169().is_bound()) return FALSE; if(!single_value->field_t3169.match(other_value.t3169(), legacy))return FALSE; if(!other_value.t3191().is_bound()) return FALSE; if(!single_value->field_t3191.match(other_value.t3191(), legacy))return FALSE; if(!other_value.t3193__10ms().is_bound()) return FALSE; if(!single_value->field_t3193__10ms.match(other_value.t3193__10ms(), legacy))return FALSE; if(!other_value.t3195().is_bound()) return FALSE; if(!single_value->field_t3195.match(other_value.t3195(), legacy))return FALSE; if(!other_value.t3101().is_bound()) return FALSE; if(!single_value->field_t3101.match(other_value.t3101(), legacy))return FALSE; if(!other_value.t3103().is_bound()) return FALSE; if(!single_value->field_t3103.match(other_value.t3103(), legacy))return FALSE; if(!other_value.t3105().is_bound()) return FALSE; if(!single_value->field_t3105.match(other_value.t3105(), legacy))return FALSE; if(!other_value.cv__countdown().is_bound()) return FALSE; if(!single_value->field_cv__countdown.match(other_value.cv__countdown(), legacy))return FALSE; if(!other_value.dl__tbf__ext().is_bound()) return FALSE; if(!single_value->field_dl__tbf__ext.match(other_value.dl__tbf__ext(), legacy))return FALSE; if(!other_value.ul__tbf__ext().is_bound()) return FALSE; if(!single_value->field_ul__tbf__ext.match(other_value.ul__tbf__ext(), legacy))return FALSE; if(!other_value.initial__cs().is_bound()) return FALSE; if(!single_value->field_initial__cs.match(other_value.initial__cs(), legacy))return FALSE; if(!other_value.initial__mcs().is_bound()) return FALSE; if(!single_value->field_initial__mcs.match(other_value.initial__mcs(), legacy))return FALSE; if(!other_value.nsvci().is_bound()) return FALSE; if(!single_value->field_nsvci.match(other_value.nsvci(), legacy))return FALSE; if(!other_value.local__pprt().is_bound()) return FALSE; if(!single_value->field_local__pprt.match(other_value.local__pprt(), legacy))return FALSE; if(!other_value.remote__port().is_bound()) return FALSE; if(!single_value->field_remote__port.match(other_value.remote__port(), legacy))return FALSE; if(!other_value.remote__ip().is_bound()) return FALSE; if(!single_value->field_remote__ip.match(other_value.remote__ip(), 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 @PCUIF_Types.PCUIF_info_ind."); } return FALSE; } boolean PCUIF__info__ind_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; if (single_value->field_version.is_bound()) return TRUE; if (single_value->field_flags.is_bound()) return TRUE; if (single_value->field_trx.is_bound()) return TRUE; if (single_value->field_bsic.is_bound()) return TRUE; if (single_value->field_mcc.is_bound()) return TRUE; if (single_value->field_mnc.is_bound()) return TRUE; if (single_value->field_mnc__3__digits.is_bound()) return TRUE; if (single_value->field_lac.is_bound()) return TRUE; if (single_value->field_rac.is_bound()) return TRUE; if (single_value->field_nsei.is_bound()) return TRUE; if (single_value->field_nse__timer.is_bound()) return TRUE; if (single_value->field_cell__timer.is_bound()) return TRUE; if (single_value->field_cell__id.is_bound()) return TRUE; if (single_value->field_repeat__time.is_bound()) return TRUE; if (single_value->field_repeat__count.is_bound()) return TRUE; if (single_value->field_bvci.is_bound()) return TRUE; if (single_value->field_t3142.is_bound()) return TRUE; if (single_value->field_t3169.is_bound()) return TRUE; if (single_value->field_t3191.is_bound()) return TRUE; if (single_value->field_t3193__10ms.is_bound()) return TRUE; if (single_value->field_t3195.is_bound()) return TRUE; if (single_value->field_t3101.is_bound()) return TRUE; if (single_value->field_t3103.is_bound()) return TRUE; if (single_value->field_t3105.is_bound()) return TRUE; if (single_value->field_cv__countdown.is_bound()) return TRUE; if (single_value->field_dl__tbf__ext.is_bound()) return TRUE; if (single_value->field_ul__tbf__ext.is_bound()) return TRUE; if (single_value->field_initial__cs.is_bound()) return TRUE; if (single_value->field_initial__mcs.is_bound()) return TRUE; if (single_value->field_nsvci.is_bound()) return TRUE; if (single_value->field_local__pprt.is_bound()) return TRUE; if (single_value->field_remote__port.is_bound()) return TRUE; if (single_value->field_remote__ip.is_bound()) return TRUE; return FALSE; } boolean PCUIF__info__ind_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; if (!single_value->field_version.is_value()) return FALSE; if (!single_value->field_flags.is_value()) return FALSE; if (!single_value->field_trx.is_value()) return FALSE; if (!single_value->field_bsic.is_value()) return FALSE; if (!single_value->field_mcc.is_value()) return FALSE; if (!single_value->field_mnc.is_value()) return FALSE; if (!single_value->field_mnc__3__digits.is_value()) return FALSE; if (!single_value->field_lac.is_value()) return FALSE; if (!single_value->field_rac.is_value()) return FALSE; if (!single_value->field_nsei.is_value()) return FALSE; if (!single_value->field_nse__timer.is_value()) return FALSE; if (!single_value->field_cell__timer.is_value()) return FALSE; if (!single_value->field_cell__id.is_value()) return FALSE; if (!single_value->field_repeat__time.is_value()) return FALSE; if (!single_value->field_repeat__count.is_value()) return FALSE; if (!single_value->field_bvci.is_value()) return FALSE; if (!single_value->field_t3142.is_value()) return FALSE; if (!single_value->field_t3169.is_value()) return FALSE; if (!single_value->field_t3191.is_value()) return FALSE; if (!single_value->field_t3193__10ms.is_value()) return FALSE; if (!single_value->field_t3195.is_value()) return FALSE; if (!single_value->field_t3101.is_value()) return FALSE; if (!single_value->field_t3103.is_value()) return FALSE; if (!single_value->field_t3105.is_value()) return FALSE; if (!single_value->field_cv__countdown.is_value()) return FALSE; if (!single_value->field_dl__tbf__ext.is_value()) return FALSE; if (!single_value->field_ul__tbf__ext.is_value()) return FALSE; if (!single_value->field_initial__cs.is_value()) return FALSE; if (!single_value->field_initial__mcs.is_value()) return FALSE; if (!single_value->field_nsvci.is_value()) return FALSE; if (!single_value->field_local__pprt.is_value()) return FALSE; if (!single_value->field_remote__port.is_value()) return FALSE; if (!single_value->field_remote__ip.is_value()) return FALSE; return TRUE; } void PCUIF__info__ind_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; } PCUIF__info__ind PCUIF__info__ind_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 @PCUIF_Types.PCUIF_info_ind."); PCUIF__info__ind ret_val; if (single_value->field_version.is_bound()) { ret_val.version() = single_value->field_version.valueof(); } if (single_value->field_flags.is_bound()) { ret_val.flags() = single_value->field_flags.valueof(); } if (single_value->field_trx.is_bound()) { ret_val.trx() = single_value->field_trx.valueof(); } if (single_value->field_bsic.is_bound()) { ret_val.bsic() = single_value->field_bsic.valueof(); } if (single_value->field_mcc.is_bound()) { ret_val.mcc() = single_value->field_mcc.valueof(); } if (single_value->field_mnc.is_bound()) { ret_val.mnc() = single_value->field_mnc.valueof(); } if (single_value->field_mnc__3__digits.is_bound()) { ret_val.mnc__3__digits() = single_value->field_mnc__3__digits.valueof(); } if (single_value->field_lac.is_bound()) { ret_val.lac() = single_value->field_lac.valueof(); } if (single_value->field_rac.is_bound()) { ret_val.rac() = single_value->field_rac.valueof(); } if (single_value->field_nsei.is_bound()) { ret_val.nsei() = single_value->field_nsei.valueof(); } if (single_value->field_nse__timer.is_bound()) { ret_val.nse__timer() = single_value->field_nse__timer.valueof(); } if (single_value->field_cell__timer.is_bound()) { ret_val.cell__timer() = single_value->field_cell__timer.valueof(); } if (single_value->field_cell__id.is_bound()) { ret_val.cell__id() = single_value->field_cell__id.valueof(); } if (single_value->field_repeat__time.is_bound()) { ret_val.repeat__time() = single_value->field_repeat__time.valueof(); } if (single_value->field_repeat__count.is_bound()) { ret_val.repeat__count() = single_value->field_repeat__count.valueof(); } if (single_value->field_bvci.is_bound()) { ret_val.bvci() = single_value->field_bvci.valueof(); } if (single_value->field_t3142.is_bound()) { ret_val.t3142() = single_value->field_t3142.valueof(); } if (single_value->field_t3169.is_bound()) { ret_val.t3169() = single_value->field_t3169.valueof(); } if (single_value->field_t3191.is_bound()) { ret_val.t3191() = single_value->field_t3191.valueof(); } if (single_value->field_t3193__10ms.is_bound()) { ret_val.t3193__10ms() = single_value->field_t3193__10ms.valueof(); } if (single_value->field_t3195.is_bound()) { ret_val.t3195() = single_value->field_t3195.valueof(); } if (single_value->field_t3101.is_bound()) { ret_val.t3101() = single_value->field_t3101.valueof(); } if (single_value->field_t3103.is_bound()) { ret_val.t3103() = single_value->field_t3103.valueof(); } if (single_value->field_t3105.is_bound()) { ret_val.t3105() = single_value->field_t3105.valueof(); } if (single_value->field_cv__countdown.is_bound()) { ret_val.cv__countdown() = single_value->field_cv__countdown.valueof(); } if (single_value->field_dl__tbf__ext.is_bound()) { ret_val.dl__tbf__ext() = single_value->field_dl__tbf__ext.valueof(); } if (single_value->field_ul__tbf__ext.is_bound()) { ret_val.ul__tbf__ext() = single_value->field_ul__tbf__ext.valueof(); } if (single_value->field_initial__cs.is_bound()) { ret_val.initial__cs() = single_value->field_initial__cs.valueof(); } if (single_value->field_initial__mcs.is_bound()) { ret_val.initial__mcs() = single_value->field_initial__mcs.valueof(); } if (single_value->field_nsvci.is_bound()) { ret_val.nsvci() = single_value->field_nsvci.valueof(); } if (single_value->field_local__pprt.is_bound()) { ret_val.local__pprt() = single_value->field_local__pprt.valueof(); } if (single_value->field_remote__port.is_bound()) { ret_val.remote__port() = single_value->field_remote__port.valueof(); } if (single_value->field_remote__ip.is_bound()) { ret_val.remote__ip() = single_value->field_remote__ip.valueof(); } return ret_val; } void PCUIF__info__ind_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 @PCUIF_Types.PCUIF_info_ind."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__info__ind_template[list_length]; } PCUIF__info__ind_template& PCUIF__info__ind_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 @PCUIF_Types.PCUIF_info_ind."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @PCUIF_Types.PCUIF_info_ind."); return value_list.list_value[list_index]; } INTEGER_template& PCUIF__info__ind_template::version() { set_specific(); return single_value->field_version; } const INTEGER_template& PCUIF__info__ind_template::version() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field version of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_version; } PCUIF__Flags_template& PCUIF__info__ind_template::flags() { set_specific(); return single_value->field_flags; } const PCUIF__Flags_template& PCUIF__info__ind_template::flags() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field flags of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_flags; } PCUIF__InfoTrxs_template& PCUIF__info__ind_template::trx() { set_specific(); return single_value->field_trx; } const PCUIF__InfoTrxs_template& PCUIF__info__ind_template::trx() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field trx of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_trx; } INTEGER_template& PCUIF__info__ind_template::bsic() { set_specific(); return single_value->field_bsic; } const INTEGER_template& PCUIF__info__ind_template::bsic() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field bsic of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_bsic; } INTEGER_template& PCUIF__info__ind_template::mcc() { set_specific(); return single_value->field_mcc; } const INTEGER_template& PCUIF__info__ind_template::mcc() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mcc of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_mcc; } INTEGER_template& PCUIF__info__ind_template::mnc() { set_specific(); return single_value->field_mnc; } const INTEGER_template& PCUIF__info__ind_template::mnc() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mnc of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_mnc; } INTEGER_template& PCUIF__info__ind_template::mnc__3__digits() { set_specific(); return single_value->field_mnc__3__digits; } const INTEGER_template& PCUIF__info__ind_template::mnc__3__digits() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field mnc_3_digits of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_mnc__3__digits; } INTEGER_template& PCUIF__info__ind_template::lac() { set_specific(); return single_value->field_lac; } const INTEGER_template& PCUIF__info__ind_template::lac() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field lac of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_lac; } INTEGER_template& PCUIF__info__ind_template::rac() { set_specific(); return single_value->field_rac; } const INTEGER_template& PCUIF__info__ind_template::rac() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field rac of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_rac; } INTEGER_template& PCUIF__info__ind_template::nsei() { set_specific(); return single_value->field_nsei; } const INTEGER_template& PCUIF__info__ind_template::nsei() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field nsei of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_nsei; } PCUIF__info__ind_nse__timer_template& PCUIF__info__ind_template::nse__timer() { set_specific(); return single_value->field_nse__timer; } const PCUIF__info__ind_nse__timer_template& PCUIF__info__ind_template::nse__timer() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field nse_timer of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_nse__timer; } PCUIF__info__ind_cell__timer_template& PCUIF__info__ind_template::cell__timer() { set_specific(); return single_value->field_cell__timer; } const PCUIF__info__ind_cell__timer_template& PCUIF__info__ind_template::cell__timer() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field cell_timer of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_cell__timer; } INTEGER_template& PCUIF__info__ind_template::cell__id() { set_specific(); return single_value->field_cell__id; } const INTEGER_template& PCUIF__info__ind_template::cell__id() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field cell_id of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_cell__id; } INTEGER_template& PCUIF__info__ind_template::repeat__time() { set_specific(); return single_value->field_repeat__time; } const INTEGER_template& PCUIF__info__ind_template::repeat__time() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field repeat_time of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_repeat__time; } INTEGER_template& PCUIF__info__ind_template::repeat__count() { set_specific(); return single_value->field_repeat__count; } const INTEGER_template& PCUIF__info__ind_template::repeat__count() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field repeat_count of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_repeat__count; } INTEGER_template& PCUIF__info__ind_template::bvci() { set_specific(); return single_value->field_bvci; } const INTEGER_template& PCUIF__info__ind_template::bvci() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field bvci of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_bvci; } INTEGER_template& PCUIF__info__ind_template::t3142() { set_specific(); return single_value->field_t3142; } const INTEGER_template& PCUIF__info__ind_template::t3142() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field t3142 of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_t3142; } INTEGER_template& PCUIF__info__ind_template::t3169() { set_specific(); return single_value->field_t3169; } const INTEGER_template& PCUIF__info__ind_template::t3169() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field t3169 of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_t3169; } INTEGER_template& PCUIF__info__ind_template::t3191() { set_specific(); return single_value->field_t3191; } const INTEGER_template& PCUIF__info__ind_template::t3191() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field t3191 of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_t3191; } INTEGER_template& PCUIF__info__ind_template::t3193__10ms() { set_specific(); return single_value->field_t3193__10ms; } const INTEGER_template& PCUIF__info__ind_template::t3193__10ms() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field t3193_10ms of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_t3193__10ms; } INTEGER_template& PCUIF__info__ind_template::t3195() { set_specific(); return single_value->field_t3195; } const INTEGER_template& PCUIF__info__ind_template::t3195() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field t3195 of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_t3195; } INTEGER_template& PCUIF__info__ind_template::t3101() { set_specific(); return single_value->field_t3101; } const INTEGER_template& PCUIF__info__ind_template::t3101() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field t3101 of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_t3101; } INTEGER_template& PCUIF__info__ind_template::t3103() { set_specific(); return single_value->field_t3103; } const INTEGER_template& PCUIF__info__ind_template::t3103() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field t3103 of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_t3103; } INTEGER_template& PCUIF__info__ind_template::t3105() { set_specific(); return single_value->field_t3105; } const INTEGER_template& PCUIF__info__ind_template::t3105() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field t3105 of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_t3105; } INTEGER_template& PCUIF__info__ind_template::cv__countdown() { set_specific(); return single_value->field_cv__countdown; } const INTEGER_template& PCUIF__info__ind_template::cv__countdown() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field cv_countdown of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_cv__countdown; } INTEGER_template& PCUIF__info__ind_template::dl__tbf__ext() { set_specific(); return single_value->field_dl__tbf__ext; } const INTEGER_template& PCUIF__info__ind_template::dl__tbf__ext() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field dl_tbf_ext of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_dl__tbf__ext; } INTEGER_template& PCUIF__info__ind_template::ul__tbf__ext() { set_specific(); return single_value->field_ul__tbf__ext; } const INTEGER_template& PCUIF__info__ind_template::ul__tbf__ext() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ul_tbf_ext of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_ul__tbf__ext; } INTEGER_template& PCUIF__info__ind_template::initial__cs() { set_specific(); return single_value->field_initial__cs; } const INTEGER_template& PCUIF__info__ind_template::initial__cs() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field initial_cs of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_initial__cs; } INTEGER_template& PCUIF__info__ind_template::initial__mcs() { set_specific(); return single_value->field_initial__mcs; } const INTEGER_template& PCUIF__info__ind_template::initial__mcs() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field initial_mcs of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_initial__mcs; } PCUIF__info__ind_nsvci_template& PCUIF__info__ind_template::nsvci() { set_specific(); return single_value->field_nsvci; } const PCUIF__info__ind_nsvci_template& PCUIF__info__ind_template::nsvci() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field nsvci of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_nsvci; } PCUIF__info__ind_local__pprt_template& PCUIF__info__ind_template::local__pprt() { set_specific(); return single_value->field_local__pprt; } const PCUIF__info__ind_local__pprt_template& PCUIF__info__ind_template::local__pprt() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field local_pprt of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_local__pprt; } PCUIF__info__ind_remote__port_template& PCUIF__info__ind_template::remote__port() { set_specific(); return single_value->field_remote__port; } const PCUIF__info__ind_remote__port_template& PCUIF__info__ind_template::remote__port() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field remote_port of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_remote__port; } PCUIF__info__ind_remote__ip_template& PCUIF__info__ind_template::remote__ip() { set_specific(); return single_value->field_remote__ip; } const PCUIF__info__ind_remote__ip_template& PCUIF__info__ind_template::remote__ip() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field remote_ip of a non-specific template of type @PCUIF_Types.PCUIF_info_ind."); return single_value->field_remote__ip; } int PCUIF__info__ind_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_info_ind which has an ifpresent attribute."); switch (template_selection) { case SPECIFIC_VALUE: return 33; case VALUE_LIST: { if (value_list.n_values<1) TTCN_error("Internal error: Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_info_ind 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 @PCUIF_Types.PCUIF_info_ind containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_info_ind containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_info_ind containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_info_ind containing complemented list."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_info_ind."); } return 0; } void PCUIF__info__ind_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ version := "); single_value->field_version.log(); TTCN_Logger::log_event_str(", flags := "); single_value->field_flags.log(); TTCN_Logger::log_event_str(", trx := "); single_value->field_trx.log(); TTCN_Logger::log_event_str(", bsic := "); single_value->field_bsic.log(); TTCN_Logger::log_event_str(", mcc := "); single_value->field_mcc.log(); TTCN_Logger::log_event_str(", mnc := "); single_value->field_mnc.log(); TTCN_Logger::log_event_str(", mnc_3_digits := "); single_value->field_mnc__3__digits.log(); TTCN_Logger::log_event_str(", lac := "); single_value->field_lac.log(); TTCN_Logger::log_event_str(", rac := "); single_value->field_rac.log(); TTCN_Logger::log_event_str(", nsei := "); single_value->field_nsei.log(); TTCN_Logger::log_event_str(", nse_timer := "); single_value->field_nse__timer.log(); TTCN_Logger::log_event_str(", cell_timer := "); single_value->field_cell__timer.log(); TTCN_Logger::log_event_str(", cell_id := "); single_value->field_cell__id.log(); TTCN_Logger::log_event_str(", repeat_time := "); single_value->field_repeat__time.log(); TTCN_Logger::log_event_str(", repeat_count := "); single_value->field_repeat__count.log(); TTCN_Logger::log_event_str(", bvci := "); single_value->field_bvci.log(); TTCN_Logger::log_event_str(", t3142 := "); single_value->field_t3142.log(); TTCN_Logger::log_event_str(", t3169 := "); single_value->field_t3169.log(); TTCN_Logger::log_event_str(", t3191 := "); single_value->field_t3191.log(); TTCN_Logger::log_event_str(", t3193_10ms := "); single_value->field_t3193__10ms.log(); TTCN_Logger::log_event_str(", t3195 := "); single_value->field_t3195.log(); TTCN_Logger::log_event_str(", t3101 := "); single_value->field_t3101.log(); TTCN_Logger::log_event_str(", t3103 := "); single_value->field_t3103.log(); TTCN_Logger::log_event_str(", t3105 := "); single_value->field_t3105.log(); TTCN_Logger::log_event_str(", cv_countdown := "); single_value->field_cv__countdown.log(); TTCN_Logger::log_event_str(", dl_tbf_ext := "); single_value->field_dl__tbf__ext.log(); TTCN_Logger::log_event_str(", ul_tbf_ext := "); single_value->field_ul__tbf__ext.log(); TTCN_Logger::log_event_str(", initial_cs := "); single_value->field_initial__cs.log(); TTCN_Logger::log_event_str(", initial_mcs := "); single_value->field_initial__mcs.log(); TTCN_Logger::log_event_str(", nsvci := "); single_value->field_nsvci.log(); TTCN_Logger::log_event_str(", local_pprt := "); single_value->field_local__pprt.log(); TTCN_Logger::log_event_str(", remote_port := "); single_value->field_remote__port.log(); TTCN_Logger::log_event_str(", remote_ip := "); single_value->field_remote__ip.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 PCUIF__info__ind_template::log_match(const PCUIF__info__ind& 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_version.match(match_value.version(), legacy)){ TTCN_Logger::log_logmatch_info(".version"); single_value->field_version.log_match(match_value.version(), 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_trx.match(match_value.trx(), legacy)){ TTCN_Logger::log_logmatch_info(".trx"); single_value->field_trx.log_match(match_value.trx(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_bsic.match(match_value.bsic(), legacy)){ TTCN_Logger::log_logmatch_info(".bsic"); single_value->field_bsic.log_match(match_value.bsic(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mcc.match(match_value.mcc(), legacy)){ TTCN_Logger::log_logmatch_info(".mcc"); single_value->field_mcc.log_match(match_value.mcc(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mnc.match(match_value.mnc(), legacy)){ TTCN_Logger::log_logmatch_info(".mnc"); single_value->field_mnc.log_match(match_value.mnc(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_mnc__3__digits.match(match_value.mnc__3__digits(), legacy)){ TTCN_Logger::log_logmatch_info(".mnc_3_digits"); single_value->field_mnc__3__digits.log_match(match_value.mnc__3__digits(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_lac.match(match_value.lac(), legacy)){ TTCN_Logger::log_logmatch_info(".lac"); single_value->field_lac.log_match(match_value.lac(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_rac.match(match_value.rac(), legacy)){ TTCN_Logger::log_logmatch_info(".rac"); single_value->field_rac.log_match(match_value.rac(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_nsei.match(match_value.nsei(), legacy)){ TTCN_Logger::log_logmatch_info(".nsei"); single_value->field_nsei.log_match(match_value.nsei(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_nse__timer.match(match_value.nse__timer(), legacy)){ TTCN_Logger::log_logmatch_info(".nse_timer"); single_value->field_nse__timer.log_match(match_value.nse__timer(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_cell__timer.match(match_value.cell__timer(), legacy)){ TTCN_Logger::log_logmatch_info(".cell_timer"); single_value->field_cell__timer.log_match(match_value.cell__timer(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_cell__id.match(match_value.cell__id(), legacy)){ TTCN_Logger::log_logmatch_info(".cell_id"); single_value->field_cell__id.log_match(match_value.cell__id(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_repeat__time.match(match_value.repeat__time(), legacy)){ TTCN_Logger::log_logmatch_info(".repeat_time"); single_value->field_repeat__time.log_match(match_value.repeat__time(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_repeat__count.match(match_value.repeat__count(), legacy)){ TTCN_Logger::log_logmatch_info(".repeat_count"); single_value->field_repeat__count.log_match(match_value.repeat__count(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_bvci.match(match_value.bvci(), legacy)){ TTCN_Logger::log_logmatch_info(".bvci"); single_value->field_bvci.log_match(match_value.bvci(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_t3142.match(match_value.t3142(), legacy)){ TTCN_Logger::log_logmatch_info(".t3142"); single_value->field_t3142.log_match(match_value.t3142(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_t3169.match(match_value.t3169(), legacy)){ TTCN_Logger::log_logmatch_info(".t3169"); single_value->field_t3169.log_match(match_value.t3169(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_t3191.match(match_value.t3191(), legacy)){ TTCN_Logger::log_logmatch_info(".t3191"); single_value->field_t3191.log_match(match_value.t3191(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_t3193__10ms.match(match_value.t3193__10ms(), legacy)){ TTCN_Logger::log_logmatch_info(".t3193_10ms"); single_value->field_t3193__10ms.log_match(match_value.t3193__10ms(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_t3195.match(match_value.t3195(), legacy)){ TTCN_Logger::log_logmatch_info(".t3195"); single_value->field_t3195.log_match(match_value.t3195(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_t3101.match(match_value.t3101(), legacy)){ TTCN_Logger::log_logmatch_info(".t3101"); single_value->field_t3101.log_match(match_value.t3101(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_t3103.match(match_value.t3103(), legacy)){ TTCN_Logger::log_logmatch_info(".t3103"); single_value->field_t3103.log_match(match_value.t3103(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_t3105.match(match_value.t3105(), legacy)){ TTCN_Logger::log_logmatch_info(".t3105"); single_value->field_t3105.log_match(match_value.t3105(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_cv__countdown.match(match_value.cv__countdown(), legacy)){ TTCN_Logger::log_logmatch_info(".cv_countdown"); single_value->field_cv__countdown.log_match(match_value.cv__countdown(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_dl__tbf__ext.match(match_value.dl__tbf__ext(), legacy)){ TTCN_Logger::log_logmatch_info(".dl_tbf_ext"); single_value->field_dl__tbf__ext.log_match(match_value.dl__tbf__ext(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_ul__tbf__ext.match(match_value.ul__tbf__ext(), legacy)){ TTCN_Logger::log_logmatch_info(".ul_tbf_ext"); single_value->field_ul__tbf__ext.log_match(match_value.ul__tbf__ext(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_initial__cs.match(match_value.initial__cs(), legacy)){ TTCN_Logger::log_logmatch_info(".initial_cs"); single_value->field_initial__cs.log_match(match_value.initial__cs(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_initial__mcs.match(match_value.initial__mcs(), legacy)){ TTCN_Logger::log_logmatch_info(".initial_mcs"); single_value->field_initial__mcs.log_match(match_value.initial__mcs(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_nsvci.match(match_value.nsvci(), legacy)){ TTCN_Logger::log_logmatch_info(".nsvci"); single_value->field_nsvci.log_match(match_value.nsvci(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_local__pprt.match(match_value.local__pprt(), legacy)){ TTCN_Logger::log_logmatch_info(".local_pprt"); single_value->field_local__pprt.log_match(match_value.local__pprt(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_remote__port.match(match_value.remote__port(), legacy)){ TTCN_Logger::log_logmatch_info(".remote_port"); single_value->field_remote__port.log_match(match_value.remote__port(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_remote__ip.match(match_value.remote__ip(), legacy)){ TTCN_Logger::log_logmatch_info(".remote_ip"); single_value->field_remote__ip.log_match(match_value.remote__ip(), 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("{ version := "); single_value->field_version.log_match(match_value.version(), legacy); TTCN_Logger::log_event_str(", flags := "); single_value->field_flags.log_match(match_value.flags(), legacy); TTCN_Logger::log_event_str(", trx := "); single_value->field_trx.log_match(match_value.trx(), legacy); TTCN_Logger::log_event_str(", bsic := "); single_value->field_bsic.log_match(match_value.bsic(), legacy); TTCN_Logger::log_event_str(", mcc := "); single_value->field_mcc.log_match(match_value.mcc(), legacy); TTCN_Logger::log_event_str(", mnc := "); single_value->field_mnc.log_match(match_value.mnc(), legacy); TTCN_Logger::log_event_str(", mnc_3_digits := "); single_value->field_mnc__3__digits.log_match(match_value.mnc__3__digits(), legacy); TTCN_Logger::log_event_str(", lac := "); single_value->field_lac.log_match(match_value.lac(), legacy); TTCN_Logger::log_event_str(", rac := "); single_value->field_rac.log_match(match_value.rac(), legacy); TTCN_Logger::log_event_str(", nsei := "); single_value->field_nsei.log_match(match_value.nsei(), legacy); TTCN_Logger::log_event_str(", nse_timer := "); single_value->field_nse__timer.log_match(match_value.nse__timer(), legacy); TTCN_Logger::log_event_str(", cell_timer := "); single_value->field_cell__timer.log_match(match_value.cell__timer(), legacy); TTCN_Logger::log_event_str(", cell_id := "); single_value->field_cell__id.log_match(match_value.cell__id(), legacy); TTCN_Logger::log_event_str(", repeat_time := "); single_value->field_repeat__time.log_match(match_value.repeat__time(), legacy); TTCN_Logger::log_event_str(", repeat_count := "); single_value->field_repeat__count.log_match(match_value.repeat__count(), legacy); TTCN_Logger::log_event_str(", bvci := "); single_value->field_bvci.log_match(match_value.bvci(), legacy); TTCN_Logger::log_event_str(", t3142 := "); single_value->field_t3142.log_match(match_value.t3142(), legacy); TTCN_Logger::log_event_str(", t3169 := "); single_value->field_t3169.log_match(match_value.t3169(), legacy); TTCN_Logger::log_event_str(", t3191 := "); single_value->field_t3191.log_match(match_value.t3191(), legacy); TTCN_Logger::log_event_str(", t3193_10ms := "); single_value->field_t3193__10ms.log_match(match_value.t3193__10ms(), legacy); TTCN_Logger::log_event_str(", t3195 := "); single_value->field_t3195.log_match(match_value.t3195(), legacy); TTCN_Logger::log_event_str(", t3101 := "); single_value->field_t3101.log_match(match_value.t3101(), legacy); TTCN_Logger::log_event_str(", t3103 := "); single_value->field_t3103.log_match(match_value.t3103(), legacy); TTCN_Logger::log_event_str(", t3105 := "); single_value->field_t3105.log_match(match_value.t3105(), legacy); TTCN_Logger::log_event_str(", cv_countdown := "); single_value->field_cv__countdown.log_match(match_value.cv__countdown(), legacy); TTCN_Logger::log_event_str(", dl_tbf_ext := "); single_value->field_dl__tbf__ext.log_match(match_value.dl__tbf__ext(), legacy); TTCN_Logger::log_event_str(", ul_tbf_ext := "); single_value->field_ul__tbf__ext.log_match(match_value.ul__tbf__ext(), legacy); TTCN_Logger::log_event_str(", initial_cs := "); single_value->field_initial__cs.log_match(match_value.initial__cs(), legacy); TTCN_Logger::log_event_str(", initial_mcs := "); single_value->field_initial__mcs.log_match(match_value.initial__mcs(), legacy); TTCN_Logger::log_event_str(", nsvci := "); single_value->field_nsvci.log_match(match_value.nsvci(), legacy); TTCN_Logger::log_event_str(", local_pprt := "); single_value->field_local__pprt.log_match(match_value.local__pprt(), legacy); TTCN_Logger::log_event_str(", remote_port := "); single_value->field_remote__port.log_match(match_value.remote__port(), legacy); TTCN_Logger::log_event_str(", remote_ip := "); single_value->field_remote__ip.log_match(match_value.remote__ip(), 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 PCUIF__info__ind_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_version.encode_text(text_buf); single_value->field_flags.encode_text(text_buf); single_value->field_trx.encode_text(text_buf); single_value->field_bsic.encode_text(text_buf); single_value->field_mcc.encode_text(text_buf); single_value->field_mnc.encode_text(text_buf); single_value->field_mnc__3__digits.encode_text(text_buf); single_value->field_lac.encode_text(text_buf); single_value->field_rac.encode_text(text_buf); single_value->field_nsei.encode_text(text_buf); single_value->field_nse__timer.encode_text(text_buf); single_value->field_cell__timer.encode_text(text_buf); single_value->field_cell__id.encode_text(text_buf); single_value->field_repeat__time.encode_text(text_buf); single_value->field_repeat__count.encode_text(text_buf); single_value->field_bvci.encode_text(text_buf); single_value->field_t3142.encode_text(text_buf); single_value->field_t3169.encode_text(text_buf); single_value->field_t3191.encode_text(text_buf); single_value->field_t3193__10ms.encode_text(text_buf); single_value->field_t3195.encode_text(text_buf); single_value->field_t3101.encode_text(text_buf); single_value->field_t3103.encode_text(text_buf); single_value->field_t3105.encode_text(text_buf); single_value->field_cv__countdown.encode_text(text_buf); single_value->field_dl__tbf__ext.encode_text(text_buf); single_value->field_ul__tbf__ext.encode_text(text_buf); single_value->field_initial__cs.encode_text(text_buf); single_value->field_initial__mcs.encode_text(text_buf); single_value->field_nsvci.encode_text(text_buf); single_value->field_local__pprt.encode_text(text_buf); single_value->field_remote__port.encode_text(text_buf); single_value->field_remote__ip.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 @PCUIF_Types.PCUIF_info_ind."); } } void PCUIF__info__ind_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_version.decode_text(text_buf); single_value->field_flags.decode_text(text_buf); single_value->field_trx.decode_text(text_buf); single_value->field_bsic.decode_text(text_buf); single_value->field_mcc.decode_text(text_buf); single_value->field_mnc.decode_text(text_buf); single_value->field_mnc__3__digits.decode_text(text_buf); single_value->field_lac.decode_text(text_buf); single_value->field_rac.decode_text(text_buf); single_value->field_nsei.decode_text(text_buf); single_value->field_nse__timer.decode_text(text_buf); single_value->field_cell__timer.decode_text(text_buf); single_value->field_cell__id.decode_text(text_buf); single_value->field_repeat__time.decode_text(text_buf); single_value->field_repeat__count.decode_text(text_buf); single_value->field_bvci.decode_text(text_buf); single_value->field_t3142.decode_text(text_buf); single_value->field_t3169.decode_text(text_buf); single_value->field_t3191.decode_text(text_buf); single_value->field_t3193__10ms.decode_text(text_buf); single_value->field_t3195.decode_text(text_buf); single_value->field_t3101.decode_text(text_buf); single_value->field_t3103.decode_text(text_buf); single_value->field_t3105.decode_text(text_buf); single_value->field_cv__countdown.decode_text(text_buf); single_value->field_dl__tbf__ext.decode_text(text_buf); single_value->field_ul__tbf__ext.decode_text(text_buf); single_value->field_initial__cs.decode_text(text_buf); single_value->field_initial__mcs.decode_text(text_buf); single_value->field_nsvci.decode_text(text_buf); single_value->field_local__pprt.decode_text(text_buf); single_value->field_remote__port.decode_text(text_buf); single_value->field_remote__ip.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 PCUIF__info__ind_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 @PCUIF_Types.PCUIF_info_ind."); } } void PCUIF__info__ind_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: { PCUIF__info__ind_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_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) version().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) trx().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) bsic().set_param(*param.get_elem(3)); if (param.get_size()>4 && param.get_elem(4)->get_type()!=Module_Param::MP_NotUsed) mcc().set_param(*param.get_elem(4)); if (param.get_size()>5 && param.get_elem(5)->get_type()!=Module_Param::MP_NotUsed) mnc().set_param(*param.get_elem(5)); if (param.get_size()>6 && param.get_elem(6)->get_type()!=Module_Param::MP_NotUsed) mnc__3__digits().set_param(*param.get_elem(6)); if (param.get_size()>7 && param.get_elem(7)->get_type()!=Module_Param::MP_NotUsed) lac().set_param(*param.get_elem(7)); if (param.get_size()>8 && param.get_elem(8)->get_type()!=Module_Param::MP_NotUsed) rac().set_param(*param.get_elem(8)); if (param.get_size()>9 && param.get_elem(9)->get_type()!=Module_Param::MP_NotUsed) nsei().set_param(*param.get_elem(9)); if (param.get_size()>10 && param.get_elem(10)->get_type()!=Module_Param::MP_NotUsed) nse__timer().set_param(*param.get_elem(10)); if (param.get_size()>11 && param.get_elem(11)->get_type()!=Module_Param::MP_NotUsed) cell__timer().set_param(*param.get_elem(11)); if (param.get_size()>12 && param.get_elem(12)->get_type()!=Module_Param::MP_NotUsed) cell__id().set_param(*param.get_elem(12)); if (param.get_size()>13 && param.get_elem(13)->get_type()!=Module_Param::MP_NotUsed) repeat__time().set_param(*param.get_elem(13)); if (param.get_size()>14 && param.get_elem(14)->get_type()!=Module_Param::MP_NotUsed) repeat__count().set_param(*param.get_elem(14)); if (param.get_size()>15 && param.get_elem(15)->get_type()!=Module_Param::MP_NotUsed) bvci().set_param(*param.get_elem(15)); if (param.get_size()>16 && param.get_elem(16)->get_type()!=Module_Param::MP_NotUsed) t3142().set_param(*param.get_elem(16)); if (param.get_size()>17 && param.get_elem(17)->get_type()!=Module_Param::MP_NotUsed) t3169().set_param(*param.get_elem(17)); if (param.get_size()>18 && param.get_elem(18)->get_type()!=Module_Param::MP_NotUsed) t3191().set_param(*param.get_elem(18)); if (param.get_size()>19 && param.get_elem(19)->get_type()!=Module_Param::MP_NotUsed) t3193__10ms().set_param(*param.get_elem(19)); if (param.get_size()>20 && param.get_elem(20)->get_type()!=Module_Param::MP_NotUsed) t3195().set_param(*param.get_elem(20)); if (param.get_size()>21 && param.get_elem(21)->get_type()!=Module_Param::MP_NotUsed) t3101().set_param(*param.get_elem(21)); if (param.get_size()>22 && param.get_elem(22)->get_type()!=Module_Param::MP_NotUsed) t3103().set_param(*param.get_elem(22)); if (param.get_size()>23 && param.get_elem(23)->get_type()!=Module_Param::MP_NotUsed) t3105().set_param(*param.get_elem(23)); if (param.get_size()>24 && param.get_elem(24)->get_type()!=Module_Param::MP_NotUsed) cv__countdown().set_param(*param.get_elem(24)); if (param.get_size()>25 && param.get_elem(25)->get_type()!=Module_Param::MP_NotUsed) dl__tbf__ext().set_param(*param.get_elem(25)); if (param.get_size()>26 && param.get_elem(26)->get_type()!=Module_Param::MP_NotUsed) ul__tbf__ext().set_param(*param.get_elem(26)); if (param.get_size()>27 && param.get_elem(27)->get_type()!=Module_Param::MP_NotUsed) initial__cs().set_param(*param.get_elem(27)); if (param.get_size()>28 && param.get_elem(28)->get_type()!=Module_Param::MP_NotUsed) initial__mcs().set_param(*param.get_elem(28)); if (param.get_size()>29 && param.get_elem(29)->get_type()!=Module_Param::MP_NotUsed) nsvci().set_param(*param.get_elem(29)); if (param.get_size()>30 && param.get_elem(30)->get_type()!=Module_Param::MP_NotUsed) local__pprt().set_param(*param.get_elem(30)); if (param.get_size()>31 && param.get_elem(31)->get_type()!=Module_Param::MP_NotUsed) remote__port().set_param(*param.get_elem(31)); if (param.get_size()>32 && param.get_elem(32)->get_type()!=Module_Param::MP_NotUsed) remote__ip().set_param(*param.get_elem(32)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "version")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { version().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_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_idxget_id()->get_name(), "trx")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { trx().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "bsic")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { bsic().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mcc")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mcc().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mnc")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mnc().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "mnc_3_digits")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { mnc__3__digits().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "lac")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { lac().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "rac")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { rac().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "nsei")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { nsei().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "nse_timer")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { nse__timer().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cell_timer")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cell__timer().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cell_id")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cell__id().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "repeat_time")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { repeat__time().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "repeat_count")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { repeat__count().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "bvci")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { bvci().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3142")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3142().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3169")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3169().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3191")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3191().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3193_10ms")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3193__10ms().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3195")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3195().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3101")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3101().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3103")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3103().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "t3105")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { t3105().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cv_countdown")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cv__countdown().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "dl_tbf_ext")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { dl__tbf__ext().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ul_tbf_ext")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ul__tbf__ext().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "initial_cs")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { initial__cs().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "initial_mcs")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { initial__mcs().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "nsvci")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { nsvci().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "local_pprt")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { local__pprt().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "remote_port")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { remote__port().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "remote_ip")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { remote__ip().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_info_ind: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record template", "@PCUIF_Types.PCUIF_info_ind"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__info__ind_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_version.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_flags.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_trx.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_bsic.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_mcc.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_mnc.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_mnc__3__digits.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_lac.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_rac.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_nsei.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_nse__timer.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_cell__timer.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_cell__id.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_repeat__time.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_repeat__count.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_bvci.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_t3142.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_t3169.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_t3191.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_t3193__10ms.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_t3195.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_t3101.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_t3103.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_t3105.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_cv__countdown.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_dl__tbf__ext.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_ul__tbf__ext.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_initial__cs.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_initial__mcs.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_nsvci.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_local__pprt.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_remote__port.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); single_value->field_remote__ip.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind"); 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 : "@PCUIF_Types.PCUIF_info_ind"); } boolean PCUIF__info__ind_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__info__ind_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_idx0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) is__activate().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) trx__nr().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) ts__nr().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) spare().set_param(*param.get_elem(3)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "is_activate")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { is__activate().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "trx_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { trx__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ts_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ts__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "spare")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { spare().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_act_req: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@PCUIF_Types.PCUIF_act_req"); } } void PCUIF__act__req::set_implicit_omit() { if (is__activate().is_bound()) is__activate().set_implicit_omit(); if (trx__nr().is_bound()) trx__nr().set_implicit_omit(); if (ts__nr().is_bound()) ts__nr().set_implicit_omit(); if (spare().is_bound()) spare().set_implicit_omit(); } void PCUIF__act__req::encode_text(Text_Buf& text_buf) const { field_is__activate.encode_text(text_buf); field_trx__nr.encode_text(text_buf); field_ts__nr.encode_text(text_buf); field_spare.encode_text(text_buf); } void PCUIF__act__req::decode_text(Text_Buf& text_buf) { field_is__activate.decode_text(text_buf); field_trx__nr.decode_text(text_buf); field_ts__nr.decode_text(text_buf); field_spare.decode_text(text_buf); } void PCUIF__act__req::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 PCUIF__act__req::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 PCUIF__act__req::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, PCUIF__act__req_is__activate_descr_.raw->forceomit); decoded_field_length = field_is__activate.RAW_decode(PCUIF__act__req_is__activate_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, PCUIF__act__req_trx__nr_descr_.raw->forceomit); decoded_field_length = field_trx__nr.RAW_decode(PCUIF__act__req_trx__nr_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()); RAW_Force_Omit field_2_force_omit(2, force_omit, PCUIF__act__req_ts__nr_descr_.raw->forceomit); decoded_field_length = field_ts__nr.RAW_decode(PCUIF__act__req_ts__nr_descr_, p_buf, limit, local_top_order, no_err, -1, 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()); RAW_Force_Omit field_3_force_omit(3, force_omit, PCUIF__act__req_spare_descr_.raw->forceomit); decoded_field_length = field_spare.RAW_decode(PCUIF__act__req_spare_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_3_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 PCUIF__act__req::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 = 4; myleaf.body.node.nodes = init_nodes_of_enc_tree(4); myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, PCUIF__act__req_is__activate_descr_.raw); myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, PCUIF__act__req_trx__nr_descr_.raw); myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 2, PCUIF__act__req_ts__nr_descr_.raw); myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 3, PCUIF__act__req_spare_descr_.raw); encoded_length += field_is__activate.RAW_encode(PCUIF__act__req_is__activate_descr_, *myleaf.body.node.nodes[0]); encoded_length += field_trx__nr.RAW_encode(PCUIF__act__req_trx__nr_descr_, *myleaf.body.node.nodes[1]); encoded_length += field_ts__nr.RAW_encode(PCUIF__act__req_ts__nr_descr_, *myleaf.body.node.nodes[2]); encoded_length += field_spare.RAW_encode(PCUIF__act__req_spare_descr_, *myleaf.body.node.nodes[3]); return myleaf.length = encoded_length; } struct PCUIF__act__req_template::single_value_struct { INTEGER_template field_is__activate; INTEGER_template field_trx__nr; INTEGER_template field_ts__nr; OCTETSTRING_template field_spare; }; void PCUIF__act__req_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_is__activate = ANY_VALUE; single_value->field_trx__nr = ANY_VALUE; single_value->field_ts__nr = ANY_VALUE; single_value->field_spare = ANY_VALUE; } } } void PCUIF__act__req_template::copy_value(const PCUIF__act__req& other_value) { single_value = new single_value_struct; if (other_value.is__activate().is_bound()) { single_value->field_is__activate = other_value.is__activate(); } else { single_value->field_is__activate.clean_up(); } if (other_value.trx__nr().is_bound()) { single_value->field_trx__nr = other_value.trx__nr(); } else { single_value->field_trx__nr.clean_up(); } if (other_value.ts__nr().is_bound()) { single_value->field_ts__nr = other_value.ts__nr(); } else { single_value->field_ts__nr.clean_up(); } if (other_value.spare().is_bound()) { single_value->field_spare = other_value.spare(); } else { single_value->field_spare.clean_up(); } set_selection(SPECIFIC_VALUE); } void PCUIF__act__req_template::copy_template(const PCUIF__act__req_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.is__activate().get_selection()) { single_value->field_is__activate = other_value.is__activate(); } else { single_value->field_is__activate.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.trx__nr().get_selection()) { single_value->field_trx__nr = other_value.trx__nr(); } else { single_value->field_trx__nr.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.ts__nr().get_selection()) { single_value->field_ts__nr = other_value.ts__nr(); } else { single_value->field_ts__nr.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.spare().get_selection()) { single_value->field_spare = other_value.spare(); } else { single_value->field_spare.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 PCUIF__act__req_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 @PCUIF_Types.PCUIF_act_req."); break; } set_selection(other_value); } PCUIF__act__req_template::PCUIF__act__req_template() { } PCUIF__act__req_template::PCUIF__act__req_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__act__req_template::PCUIF__act__req_template(const PCUIF__act__req& other_value) { copy_value(other_value); } PCUIF__act__req_template::PCUIF__act__req_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__act__req&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_act_req from an unbound optional field."); } } PCUIF__act__req_template::PCUIF__act__req_template(const PCUIF__act__req_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__act__req_template::~PCUIF__act__req_template() { clean_up(); } PCUIF__act__req_template& PCUIF__act__req_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__act__req_template& PCUIF__act__req_template::operator=(const PCUIF__act__req& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__act__req_template& PCUIF__act__req_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__act__req&)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 @PCUIF_Types.PCUIF_act_req."); } return *this; } PCUIF__act__req_template& PCUIF__act__req_template::operator=(const PCUIF__act__req_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__act__req_template::match(const PCUIF__act__req& 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.is__activate().is_bound()) return FALSE; if(!single_value->field_is__activate.match(other_value.is__activate(), legacy))return FALSE; if(!other_value.trx__nr().is_bound()) return FALSE; if(!single_value->field_trx__nr.match(other_value.trx__nr(), legacy))return FALSE; if(!other_value.ts__nr().is_bound()) return FALSE; if(!single_value->field_ts__nr.match(other_value.ts__nr(), legacy))return FALSE; if(!other_value.spare().is_bound()) return FALSE; if(!single_value->field_spare.match(other_value.spare(), 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 @PCUIF_Types.PCUIF_act_req."); } return FALSE; } boolean PCUIF__act__req_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; if (single_value->field_is__activate.is_bound()) return TRUE; if (single_value->field_trx__nr.is_bound()) return TRUE; if (single_value->field_ts__nr.is_bound()) return TRUE; if (single_value->field_spare.is_bound()) return TRUE; return FALSE; } boolean PCUIF__act__req_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; if (!single_value->field_is__activate.is_value()) return FALSE; if (!single_value->field_trx__nr.is_value()) return FALSE; if (!single_value->field_ts__nr.is_value()) return FALSE; if (!single_value->field_spare.is_value()) return FALSE; return TRUE; } void PCUIF__act__req_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; } PCUIF__act__req PCUIF__act__req_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 @PCUIF_Types.PCUIF_act_req."); PCUIF__act__req ret_val; if (single_value->field_is__activate.is_bound()) { ret_val.is__activate() = single_value->field_is__activate.valueof(); } if (single_value->field_trx__nr.is_bound()) { ret_val.trx__nr() = single_value->field_trx__nr.valueof(); } if (single_value->field_ts__nr.is_bound()) { ret_val.ts__nr() = single_value->field_ts__nr.valueof(); } if (single_value->field_spare.is_bound()) { ret_val.spare() = single_value->field_spare.valueof(); } return ret_val; } void PCUIF__act__req_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 @PCUIF_Types.PCUIF_act_req."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__act__req_template[list_length]; } PCUIF__act__req_template& PCUIF__act__req_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 @PCUIF_Types.PCUIF_act_req."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @PCUIF_Types.PCUIF_act_req."); return value_list.list_value[list_index]; } INTEGER_template& PCUIF__act__req_template::is__activate() { set_specific(); return single_value->field_is__activate; } const INTEGER_template& PCUIF__act__req_template::is__activate() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field is_activate of a non-specific template of type @PCUIF_Types.PCUIF_act_req."); return single_value->field_is__activate; } INTEGER_template& PCUIF__act__req_template::trx__nr() { set_specific(); return single_value->field_trx__nr; } const INTEGER_template& PCUIF__act__req_template::trx__nr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field trx_nr of a non-specific template of type @PCUIF_Types.PCUIF_act_req."); return single_value->field_trx__nr; } INTEGER_template& PCUIF__act__req_template::ts__nr() { set_specific(); return single_value->field_ts__nr; } const INTEGER_template& PCUIF__act__req_template::ts__nr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ts_nr of a non-specific template of type @PCUIF_Types.PCUIF_act_req."); return single_value->field_ts__nr; } OCTETSTRING_template& PCUIF__act__req_template::spare() { set_specific(); return single_value->field_spare; } const OCTETSTRING_template& PCUIF__act__req_template::spare() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field spare of a non-specific template of type @PCUIF_Types.PCUIF_act_req."); return single_value->field_spare; } int PCUIF__act__req_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_act_req which has an ifpresent attribute."); switch (template_selection) { case SPECIFIC_VALUE: return 4; case VALUE_LIST: { if (value_list.n_values<1) TTCN_error("Internal error: Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_act_req 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 @PCUIF_Types.PCUIF_act_req containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_act_req containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_act_req containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_act_req containing complemented list."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_act_req."); } return 0; } void PCUIF__act__req_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ is_activate := "); single_value->field_is__activate.log(); TTCN_Logger::log_event_str(", trx_nr := "); single_value->field_trx__nr.log(); TTCN_Logger::log_event_str(", ts_nr := "); single_value->field_ts__nr.log(); TTCN_Logger::log_event_str(", spare := "); single_value->field_spare.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 PCUIF__act__req_template::log_match(const PCUIF__act__req& 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_is__activate.match(match_value.is__activate(), legacy)){ TTCN_Logger::log_logmatch_info(".is_activate"); single_value->field_is__activate.log_match(match_value.is__activate(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_trx__nr.match(match_value.trx__nr(), legacy)){ TTCN_Logger::log_logmatch_info(".trx_nr"); single_value->field_trx__nr.log_match(match_value.trx__nr(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_ts__nr.match(match_value.ts__nr(), legacy)){ TTCN_Logger::log_logmatch_info(".ts_nr"); single_value->field_ts__nr.log_match(match_value.ts__nr(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_spare.match(match_value.spare(), legacy)){ TTCN_Logger::log_logmatch_info(".spare"); single_value->field_spare.log_match(match_value.spare(), 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("{ is_activate := "); single_value->field_is__activate.log_match(match_value.is__activate(), legacy); TTCN_Logger::log_event_str(", trx_nr := "); single_value->field_trx__nr.log_match(match_value.trx__nr(), legacy); TTCN_Logger::log_event_str(", ts_nr := "); single_value->field_ts__nr.log_match(match_value.ts__nr(), legacy); TTCN_Logger::log_event_str(", spare := "); single_value->field_spare.log_match(match_value.spare(), 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 PCUIF__act__req_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_is__activate.encode_text(text_buf); single_value->field_trx__nr.encode_text(text_buf); single_value->field_ts__nr.encode_text(text_buf); single_value->field_spare.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 @PCUIF_Types.PCUIF_act_req."); } } void PCUIF__act__req_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_is__activate.decode_text(text_buf); single_value->field_trx__nr.decode_text(text_buf); single_value->field_ts__nr.decode_text(text_buf); single_value->field_spare.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 PCUIF__act__req_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 @PCUIF_Types.PCUIF_act_req."); } } void PCUIF__act__req_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: { PCUIF__act__req_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_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) is__activate().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) trx__nr().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) ts__nr().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) spare().set_param(*param.get_elem(3)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "is_activate")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { is__activate().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "trx_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { trx__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ts_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ts__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "spare")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { spare().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_act_req: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record template", "@PCUIF_Types.PCUIF_act_req"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__act__req_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_is__activate.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_act_req"); single_value->field_trx__nr.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_act_req"); single_value->field_ts__nr.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_act_req"); single_value->field_spare.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_act_req"); 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 : "@PCUIF_Types.PCUIF_act_req"); } boolean PCUIF__act__req_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__act__req_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_idx0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) fn().set_param(*param.get_elem(0)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "fn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { fn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_time_ind: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@PCUIF_Types.PCUIF_time_ind"); } } void PCUIF__time__ind::set_implicit_omit() { if (fn().is_bound()) fn().set_implicit_omit(); } void PCUIF__time__ind::encode_text(Text_Buf& text_buf) const { field_fn.encode_text(text_buf); } void PCUIF__time__ind::decode_text(Text_Buf& text_buf) { field_fn.decode_text(text_buf); } void PCUIF__time__ind::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 PCUIF__time__ind::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 PCUIF__time__ind::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, PCUIF__time__ind_fn_descr_.raw->forceomit); decoded_field_length = field_fn.RAW_decode(PCUIF__time__ind_fn_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 PCUIF__time__ind::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, PCUIF__time__ind_fn_descr_.raw); encoded_length += field_fn.RAW_encode(PCUIF__time__ind_fn_descr_, *myleaf.body.node.nodes[0]); return myleaf.length = encoded_length; } struct PCUIF__time__ind_template::single_value_struct { INTEGER_template field_fn; }; void PCUIF__time__ind_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_fn = ANY_VALUE; } } } void PCUIF__time__ind_template::copy_value(const PCUIF__time__ind& other_value) { single_value = new single_value_struct; if (other_value.fn().is_bound()) { single_value->field_fn = other_value.fn(); } else { single_value->field_fn.clean_up(); } set_selection(SPECIFIC_VALUE); } void PCUIF__time__ind_template::copy_template(const PCUIF__time__ind_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.fn().get_selection()) { single_value->field_fn = other_value.fn(); } else { single_value->field_fn.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 PCUIF__time__ind_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 @PCUIF_Types.PCUIF_time_ind."); break; } set_selection(other_value); } PCUIF__time__ind_template::PCUIF__time__ind_template() { } PCUIF__time__ind_template::PCUIF__time__ind_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__time__ind_template::PCUIF__time__ind_template(const PCUIF__time__ind& other_value) { copy_value(other_value); } PCUIF__time__ind_template::PCUIF__time__ind_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__time__ind&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_time_ind from an unbound optional field."); } } PCUIF__time__ind_template::PCUIF__time__ind_template(const PCUIF__time__ind_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__time__ind_template::~PCUIF__time__ind_template() { clean_up(); } PCUIF__time__ind_template& PCUIF__time__ind_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__time__ind_template& PCUIF__time__ind_template::operator=(const PCUIF__time__ind& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__time__ind_template& PCUIF__time__ind_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__time__ind&)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 @PCUIF_Types.PCUIF_time_ind."); } return *this; } PCUIF__time__ind_template& PCUIF__time__ind_template::operator=(const PCUIF__time__ind_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__time__ind_template::match(const PCUIF__time__ind& 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.fn().is_bound()) return FALSE; if(!single_value->field_fn.match(other_value.fn(), 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 @PCUIF_Types.PCUIF_time_ind."); } return FALSE; } boolean PCUIF__time__ind_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; if (single_value->field_fn.is_bound()) return TRUE; return FALSE; } boolean PCUIF__time__ind_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; if (!single_value->field_fn.is_value()) return FALSE; return TRUE; } void PCUIF__time__ind_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; } PCUIF__time__ind PCUIF__time__ind_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 @PCUIF_Types.PCUIF_time_ind."); PCUIF__time__ind ret_val; if (single_value->field_fn.is_bound()) { ret_val.fn() = single_value->field_fn.valueof(); } return ret_val; } void PCUIF__time__ind_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 @PCUIF_Types.PCUIF_time_ind."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__time__ind_template[list_length]; } PCUIF__time__ind_template& PCUIF__time__ind_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 @PCUIF_Types.PCUIF_time_ind."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @PCUIF_Types.PCUIF_time_ind."); return value_list.list_value[list_index]; } INTEGER_template& PCUIF__time__ind_template::fn() { set_specific(); return single_value->field_fn; } const INTEGER_template& PCUIF__time__ind_template::fn() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field fn of a non-specific template of type @PCUIF_Types.PCUIF_time_ind."); return single_value->field_fn; } int PCUIF__time__ind_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_time_ind 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 @PCUIF_Types.PCUIF_time_ind 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 @PCUIF_Types.PCUIF_time_ind containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_time_ind containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_time_ind containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_time_ind containing complemented list."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_time_ind."); } return 0; } void PCUIF__time__ind_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ fn := "); single_value->field_fn.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 PCUIF__time__ind_template::log_match(const PCUIF__time__ind& 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_fn.match(match_value.fn(), legacy)){ TTCN_Logger::log_logmatch_info(".fn"); single_value->field_fn.log_match(match_value.fn(), 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("{ fn := "); single_value->field_fn.log_match(match_value.fn(), 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 PCUIF__time__ind_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_fn.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 @PCUIF_Types.PCUIF_time_ind."); } } void PCUIF__time__ind_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_fn.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 PCUIF__time__ind_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 @PCUIF_Types.PCUIF_time_ind."); } } void PCUIF__time__ind_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: { PCUIF__time__ind_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_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) fn().set_param(*param.get_elem(0)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "fn")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { fn().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_time_ind: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record template", "@PCUIF_Types.PCUIF_time_ind"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__time__ind_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_fn.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_time_ind"); 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 : "@PCUIF_Types.PCUIF_time_ind"); } boolean PCUIF__time__ind_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__time__ind_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_idx0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) sapi().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) chan__needed().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) identity__lv().set_param(*param.get_elem(2)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "sapi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sapi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "chan_needed")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { chan__needed().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "identity_lv")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { identity__lv().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_pag_req: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@PCUIF_Types.PCUIF_pag_req"); } } void PCUIF__pag__req::set_implicit_omit() { if (sapi().is_bound()) sapi().set_implicit_omit(); if (chan__needed().is_bound()) chan__needed().set_implicit_omit(); if (identity__lv().is_bound()) identity__lv().set_implicit_omit(); } void PCUIF__pag__req::encode_text(Text_Buf& text_buf) const { field_sapi.encode_text(text_buf); field_chan__needed.encode_text(text_buf); field_identity__lv.encode_text(text_buf); } void PCUIF__pag__req::decode_text(Text_Buf& text_buf) { field_sapi.decode_text(text_buf); field_chan__needed.decode_text(text_buf); field_identity__lv.decode_text(text_buf); } void PCUIF__pag__req::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 PCUIF__pag__req::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 PCUIF__pag__req::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, PCUIF__pag__req_sapi_descr_.raw->forceomit); decoded_field_length = field_sapi.RAW_decode(PCUIF__pag__req_sapi_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, PCUIF__pag__req_chan__needed_descr_.raw->forceomit); decoded_field_length = field_chan__needed.RAW_decode(PCUIF__pag__req_chan__needed_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()); RAW_Force_Omit field_2_force_omit(2, force_omit, PCUIF__pag__req_identity__lv_descr_.raw->forceomit); decoded_field_length = field_identity__lv.RAW_decode(PCUIF__pag__req_identity__lv_descr_, p_buf, limit, local_top_order, no_err, -1, 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 PCUIF__pag__req::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, PCUIF__pag__req_sapi_descr_.raw); myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, PCUIF__pag__req_chan__needed_descr_.raw); myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 2, PCUIF__pag__req_identity__lv_descr_.raw); encoded_length += field_sapi.RAW_encode(PCUIF__pag__req_sapi_descr_, *myleaf.body.node.nodes[0]); encoded_length += field_chan__needed.RAW_encode(PCUIF__pag__req_chan__needed_descr_, *myleaf.body.node.nodes[1]); encoded_length += field_identity__lv.RAW_encode(PCUIF__pag__req_identity__lv_descr_, *myleaf.body.node.nodes[2]); return myleaf.length = encoded_length; } struct PCUIF__pag__req_template::single_value_struct { PCUIF__Sapi_template field_sapi; INTEGER_template field_chan__needed; OCTETSTRING_template field_identity__lv; }; void PCUIF__pag__req_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_sapi = ANY_VALUE; single_value->field_chan__needed = ANY_VALUE; single_value->field_identity__lv = ANY_VALUE; } } } void PCUIF__pag__req_template::copy_value(const PCUIF__pag__req& other_value) { single_value = new single_value_struct; if (other_value.sapi().is_bound()) { single_value->field_sapi = other_value.sapi(); } else { single_value->field_sapi.clean_up(); } if (other_value.chan__needed().is_bound()) { single_value->field_chan__needed = other_value.chan__needed(); } else { single_value->field_chan__needed.clean_up(); } if (other_value.identity__lv().is_bound()) { single_value->field_identity__lv = other_value.identity__lv(); } else { single_value->field_identity__lv.clean_up(); } set_selection(SPECIFIC_VALUE); } void PCUIF__pag__req_template::copy_template(const PCUIF__pag__req_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.sapi().get_selection()) { single_value->field_sapi = other_value.sapi(); } else { single_value->field_sapi.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.chan__needed().get_selection()) { single_value->field_chan__needed = other_value.chan__needed(); } else { single_value->field_chan__needed.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.identity__lv().get_selection()) { single_value->field_identity__lv = other_value.identity__lv(); } else { single_value->field_identity__lv.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 PCUIF__pag__req_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 @PCUIF_Types.PCUIF_pag_req."); break; } set_selection(other_value); } PCUIF__pag__req_template::PCUIF__pag__req_template() { } PCUIF__pag__req_template::PCUIF__pag__req_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__pag__req_template::PCUIF__pag__req_template(const PCUIF__pag__req& other_value) { copy_value(other_value); } PCUIF__pag__req_template::PCUIF__pag__req_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__pag__req&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_pag_req from an unbound optional field."); } } PCUIF__pag__req_template::PCUIF__pag__req_template(const PCUIF__pag__req_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__pag__req_template::~PCUIF__pag__req_template() { clean_up(); } PCUIF__pag__req_template& PCUIF__pag__req_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__pag__req_template& PCUIF__pag__req_template::operator=(const PCUIF__pag__req& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__pag__req_template& PCUIF__pag__req_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__pag__req&)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 @PCUIF_Types.PCUIF_pag_req."); } return *this; } PCUIF__pag__req_template& PCUIF__pag__req_template::operator=(const PCUIF__pag__req_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__pag__req_template::match(const PCUIF__pag__req& 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.sapi().is_bound()) return FALSE; if(!single_value->field_sapi.match(other_value.sapi(), legacy))return FALSE; if(!other_value.chan__needed().is_bound()) return FALSE; if(!single_value->field_chan__needed.match(other_value.chan__needed(), legacy))return FALSE; if(!other_value.identity__lv().is_bound()) return FALSE; if(!single_value->field_identity__lv.match(other_value.identity__lv(), 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 @PCUIF_Types.PCUIF_pag_req."); } return FALSE; } boolean PCUIF__pag__req_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; if (single_value->field_sapi.is_bound()) return TRUE; if (single_value->field_chan__needed.is_bound()) return TRUE; if (single_value->field_identity__lv.is_bound()) return TRUE; return FALSE; } boolean PCUIF__pag__req_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; if (!single_value->field_sapi.is_value()) return FALSE; if (!single_value->field_chan__needed.is_value()) return FALSE; if (!single_value->field_identity__lv.is_value()) return FALSE; return TRUE; } void PCUIF__pag__req_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; } PCUIF__pag__req PCUIF__pag__req_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 @PCUIF_Types.PCUIF_pag_req."); PCUIF__pag__req ret_val; if (single_value->field_sapi.is_bound()) { ret_val.sapi() = single_value->field_sapi.valueof(); } if (single_value->field_chan__needed.is_bound()) { ret_val.chan__needed() = single_value->field_chan__needed.valueof(); } if (single_value->field_identity__lv.is_bound()) { ret_val.identity__lv() = single_value->field_identity__lv.valueof(); } return ret_val; } void PCUIF__pag__req_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 @PCUIF_Types.PCUIF_pag_req."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__pag__req_template[list_length]; } PCUIF__pag__req_template& PCUIF__pag__req_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 @PCUIF_Types.PCUIF_pag_req."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @PCUIF_Types.PCUIF_pag_req."); return value_list.list_value[list_index]; } PCUIF__Sapi_template& PCUIF__pag__req_template::sapi() { set_specific(); return single_value->field_sapi; } const PCUIF__Sapi_template& PCUIF__pag__req_template::sapi() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field sapi of a non-specific template of type @PCUIF_Types.PCUIF_pag_req."); return single_value->field_sapi; } INTEGER_template& PCUIF__pag__req_template::chan__needed() { set_specific(); return single_value->field_chan__needed; } const INTEGER_template& PCUIF__pag__req_template::chan__needed() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field chan_needed of a non-specific template of type @PCUIF_Types.PCUIF_pag_req."); return single_value->field_chan__needed; } OCTETSTRING_template& PCUIF__pag__req_template::identity__lv() { set_specific(); return single_value->field_identity__lv; } const OCTETSTRING_template& PCUIF__pag__req_template::identity__lv() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field identity_lv of a non-specific template of type @PCUIF_Types.PCUIF_pag_req."); return single_value->field_identity__lv; } int PCUIF__pag__req_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_pag_req which has an ifpresent attribute."); switch (template_selection) { case SPECIFIC_VALUE: return 3; case VALUE_LIST: { if (value_list.n_values<1) TTCN_error("Internal error: Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_pag_req 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 @PCUIF_Types.PCUIF_pag_req containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_pag_req containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_pag_req containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_pag_req containing complemented list."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_pag_req."); } return 0; } void PCUIF__pag__req_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ sapi := "); single_value->field_sapi.log(); TTCN_Logger::log_event_str(", chan_needed := "); single_value->field_chan__needed.log(); TTCN_Logger::log_event_str(", identity_lv := "); single_value->field_identity__lv.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 PCUIF__pag__req_template::log_match(const PCUIF__pag__req& 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_sapi.match(match_value.sapi(), legacy)){ TTCN_Logger::log_logmatch_info(".sapi"); single_value->field_sapi.log_match(match_value.sapi(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_chan__needed.match(match_value.chan__needed(), legacy)){ TTCN_Logger::log_logmatch_info(".chan_needed"); single_value->field_chan__needed.log_match(match_value.chan__needed(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_identity__lv.match(match_value.identity__lv(), legacy)){ TTCN_Logger::log_logmatch_info(".identity_lv"); single_value->field_identity__lv.log_match(match_value.identity__lv(), 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("{ sapi := "); single_value->field_sapi.log_match(match_value.sapi(), legacy); TTCN_Logger::log_event_str(", chan_needed := "); single_value->field_chan__needed.log_match(match_value.chan__needed(), legacy); TTCN_Logger::log_event_str(", identity_lv := "); single_value->field_identity__lv.log_match(match_value.identity__lv(), 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 PCUIF__pag__req_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_sapi.encode_text(text_buf); single_value->field_chan__needed.encode_text(text_buf); single_value->field_identity__lv.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 @PCUIF_Types.PCUIF_pag_req."); } } void PCUIF__pag__req_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_sapi.decode_text(text_buf); single_value->field_chan__needed.decode_text(text_buf); single_value->field_identity__lv.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 PCUIF__pag__req_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 @PCUIF_Types.PCUIF_pag_req."); } } void PCUIF__pag__req_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: { PCUIF__pag__req_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_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) sapi().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) chan__needed().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) identity__lv().set_param(*param.get_elem(2)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "sapi")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { sapi().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "chan_needed")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { chan__needed().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "identity_lv")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { identity__lv().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_pag_req: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record template", "@PCUIF_Types.PCUIF_pag_req"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__pag__req_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_sapi.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_pag_req"); single_value->field_chan__needed.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_pag_req"); single_value->field_identity__lv.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_pag_req"); 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 : "@PCUIF_Types.PCUIF_pag_req"); } boolean PCUIF__pag__req_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__pag__req_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_idx0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) tlli().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) ra__id().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) cause().set_param(*param.get_elem(2)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "tlli")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { tlli().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ra_id")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ra__id().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cause")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cause().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_susp_req: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@PCUIF_Types.PCUIF_susp_req"); } } void PCUIF__susp__req::set_implicit_omit() { if (tlli().is_bound()) tlli().set_implicit_omit(); if (ra__id().is_bound()) ra__id().set_implicit_omit(); if (cause().is_bound()) cause().set_implicit_omit(); } void PCUIF__susp__req::encode_text(Text_Buf& text_buf) const { field_tlli.encode_text(text_buf); field_ra__id.encode_text(text_buf); field_cause.encode_text(text_buf); } void PCUIF__susp__req::decode_text(Text_Buf& text_buf) { field_tlli.decode_text(text_buf); field_ra__id.decode_text(text_buf); field_cause.decode_text(text_buf); } void PCUIF__susp__req::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 PCUIF__susp__req::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 PCUIF__susp__req::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, PCUIF__susp__req_tlli_descr_.raw->forceomit); decoded_field_length = field_tlli.RAW_decode(PCUIF__susp__req_tlli_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, PCUIF__susp__req_ra__id_descr_.raw->forceomit); decoded_field_length = field_ra__id.RAW_decode(PCUIF__susp__req_ra__id_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()); RAW_Force_Omit field_2_force_omit(2, force_omit, PCUIF__susp__req_cause_descr_.raw->forceomit); decoded_field_length = field_cause.RAW_decode(PCUIF__susp__req_cause_descr_, p_buf, limit, local_top_order, no_err, -1, 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 PCUIF__susp__req::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, PCUIF__susp__req_tlli_descr_.raw); myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, PCUIF__susp__req_ra__id_descr_.raw); myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 2, PCUIF__susp__req_cause_descr_.raw); encoded_length += field_tlli.RAW_encode(PCUIF__susp__req_tlli_descr_, *myleaf.body.node.nodes[0]); encoded_length += field_ra__id.RAW_encode(PCUIF__susp__req_ra__id_descr_, *myleaf.body.node.nodes[1]); encoded_length += field_cause.RAW_encode(PCUIF__susp__req_cause_descr_, *myleaf.body.node.nodes[2]); return myleaf.length = encoded_length; } struct PCUIF__susp__req_template::single_value_struct { OCTETSTRING_template field_tlli; OCTETSTRING_template field_ra__id; INTEGER_template field_cause; }; void PCUIF__susp__req_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_tlli = ANY_VALUE; single_value->field_ra__id = ANY_VALUE; single_value->field_cause = ANY_VALUE; } } } void PCUIF__susp__req_template::copy_value(const PCUIF__susp__req& other_value) { single_value = new single_value_struct; if (other_value.tlli().is_bound()) { single_value->field_tlli = other_value.tlli(); } else { single_value->field_tlli.clean_up(); } if (other_value.ra__id().is_bound()) { single_value->field_ra__id = other_value.ra__id(); } else { single_value->field_ra__id.clean_up(); } if (other_value.cause().is_bound()) { single_value->field_cause = other_value.cause(); } else { single_value->field_cause.clean_up(); } set_selection(SPECIFIC_VALUE); } void PCUIF__susp__req_template::copy_template(const PCUIF__susp__req_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.tlli().get_selection()) { single_value->field_tlli = other_value.tlli(); } else { single_value->field_tlli.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.ra__id().get_selection()) { single_value->field_ra__id = other_value.ra__id(); } else { single_value->field_ra__id.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.cause().get_selection()) { single_value->field_cause = other_value.cause(); } else { single_value->field_cause.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 PCUIF__susp__req_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 @PCUIF_Types.PCUIF_susp_req."); break; } set_selection(other_value); } PCUIF__susp__req_template::PCUIF__susp__req_template() { } PCUIF__susp__req_template::PCUIF__susp__req_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__susp__req_template::PCUIF__susp__req_template(const PCUIF__susp__req& other_value) { copy_value(other_value); } PCUIF__susp__req_template::PCUIF__susp__req_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__susp__req&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_susp_req from an unbound optional field."); } } PCUIF__susp__req_template::PCUIF__susp__req_template(const PCUIF__susp__req_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__susp__req_template::~PCUIF__susp__req_template() { clean_up(); } PCUIF__susp__req_template& PCUIF__susp__req_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__susp__req_template& PCUIF__susp__req_template::operator=(const PCUIF__susp__req& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__susp__req_template& PCUIF__susp__req_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__susp__req&)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 @PCUIF_Types.PCUIF_susp_req."); } return *this; } PCUIF__susp__req_template& PCUIF__susp__req_template::operator=(const PCUIF__susp__req_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__susp__req_template::match(const PCUIF__susp__req& 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.tlli().is_bound()) return FALSE; if(!single_value->field_tlli.match(other_value.tlli(), legacy))return FALSE; if(!other_value.ra__id().is_bound()) return FALSE; if(!single_value->field_ra__id.match(other_value.ra__id(), legacy))return FALSE; if(!other_value.cause().is_bound()) return FALSE; if(!single_value->field_cause.match(other_value.cause(), 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 @PCUIF_Types.PCUIF_susp_req."); } return FALSE; } boolean PCUIF__susp__req_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; if (single_value->field_tlli.is_bound()) return TRUE; if (single_value->field_ra__id.is_bound()) return TRUE; if (single_value->field_cause.is_bound()) return TRUE; return FALSE; } boolean PCUIF__susp__req_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; if (!single_value->field_tlli.is_value()) return FALSE; if (!single_value->field_ra__id.is_value()) return FALSE; if (!single_value->field_cause.is_value()) return FALSE; return TRUE; } void PCUIF__susp__req_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; } PCUIF__susp__req PCUIF__susp__req_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 @PCUIF_Types.PCUIF_susp_req."); PCUIF__susp__req ret_val; if (single_value->field_tlli.is_bound()) { ret_val.tlli() = single_value->field_tlli.valueof(); } if (single_value->field_ra__id.is_bound()) { ret_val.ra__id() = single_value->field_ra__id.valueof(); } if (single_value->field_cause.is_bound()) { ret_val.cause() = single_value->field_cause.valueof(); } return ret_val; } void PCUIF__susp__req_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 @PCUIF_Types.PCUIF_susp_req."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__susp__req_template[list_length]; } PCUIF__susp__req_template& PCUIF__susp__req_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 @PCUIF_Types.PCUIF_susp_req."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @PCUIF_Types.PCUIF_susp_req."); return value_list.list_value[list_index]; } OCTETSTRING_template& PCUIF__susp__req_template::tlli() { set_specific(); return single_value->field_tlli; } const OCTETSTRING_template& PCUIF__susp__req_template::tlli() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field tlli of a non-specific template of type @PCUIF_Types.PCUIF_susp_req."); return single_value->field_tlli; } OCTETSTRING_template& PCUIF__susp__req_template::ra__id() { set_specific(); return single_value->field_ra__id; } const OCTETSTRING_template& PCUIF__susp__req_template::ra__id() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ra_id of a non-specific template of type @PCUIF_Types.PCUIF_susp_req."); return single_value->field_ra__id; } INTEGER_template& PCUIF__susp__req_template::cause() { set_specific(); return single_value->field_cause; } const INTEGER_template& PCUIF__susp__req_template::cause() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field cause of a non-specific template of type @PCUIF_Types.PCUIF_susp_req."); return single_value->field_cause; } int PCUIF__susp__req_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_susp_req which has an ifpresent attribute."); switch (template_selection) { case SPECIFIC_VALUE: return 3; case VALUE_LIST: { if (value_list.n_values<1) TTCN_error("Internal error: Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_susp_req 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 @PCUIF_Types.PCUIF_susp_req containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_susp_req containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_susp_req containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_susp_req containing complemented list."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_susp_req."); } return 0; } void PCUIF__susp__req_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ tlli := "); single_value->field_tlli.log(); TTCN_Logger::log_event_str(", ra_id := "); single_value->field_ra__id.log(); TTCN_Logger::log_event_str(", cause := "); single_value->field_cause.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 PCUIF__susp__req_template::log_match(const PCUIF__susp__req& 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_tlli.match(match_value.tlli(), legacy)){ TTCN_Logger::log_logmatch_info(".tlli"); single_value->field_tlli.log_match(match_value.tlli(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_ra__id.match(match_value.ra__id(), legacy)){ TTCN_Logger::log_logmatch_info(".ra_id"); single_value->field_ra__id.log_match(match_value.ra__id(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_cause.match(match_value.cause(), legacy)){ TTCN_Logger::log_logmatch_info(".cause"); single_value->field_cause.log_match(match_value.cause(), 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("{ tlli := "); single_value->field_tlli.log_match(match_value.tlli(), legacy); TTCN_Logger::log_event_str(", ra_id := "); single_value->field_ra__id.log_match(match_value.ra__id(), legacy); TTCN_Logger::log_event_str(", cause := "); single_value->field_cause.log_match(match_value.cause(), 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 PCUIF__susp__req_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_tlli.encode_text(text_buf); single_value->field_ra__id.encode_text(text_buf); single_value->field_cause.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 @PCUIF_Types.PCUIF_susp_req."); } } void PCUIF__susp__req_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_tlli.decode_text(text_buf); single_value->field_ra__id.decode_text(text_buf); single_value->field_cause.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 PCUIF__susp__req_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 @PCUIF_Types.PCUIF_susp_req."); } } void PCUIF__susp__req_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: { PCUIF__susp__req_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_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) tlli().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) ra__id().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) cause().set_param(*param.get_elem(2)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "tlli")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { tlli().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "ra_id")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { ra__id().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "cause")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { cause().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_susp_req: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record template", "@PCUIF_Types.PCUIF_susp_req"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__susp__req_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_tlli.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_susp_req"); single_value->field_ra__id.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_susp_req"); single_value->field_cause.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_susp_req"); 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 : "@PCUIF_Types.PCUIF_susp_req"); } boolean PCUIF__susp__req_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__susp__req_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_idxis_value(); case ALT_data__cnf: return field_data__cnf->is_value(); case ALT_data__cnf__dt: return field_data__cnf__dt->is_value(); case ALT_data__ind: return field_data__ind->is_value(); case ALT_susp__req: return field_susp__req->is_value(); case ALT_rts__req: return field_rts__req->is_value(); case ALT_rach__ind: return field_rach__ind->is_value(); case ALT_txt__ind: return field_txt__ind->is_value(); case ALT_info__ind: return field_info__ind->is_value(); case ALT_act__req: return field_act__req->is_value(); case ALT_time__ind: return field_time__ind->is_value(); case ALT_pag__req: return field_pag__req->is_value(); default: TTCN_error("Invalid selection in union is_bound");} } void PCUIF__MsgUnion::clean_up() { switch (union_selection) { case ALT_data__req: delete field_data__req; break; case ALT_data__cnf: delete field_data__cnf; break; case ALT_data__cnf__dt: delete field_data__cnf__dt; break; case ALT_data__ind: delete field_data__ind; break; case ALT_susp__req: delete field_susp__req; break; case ALT_rts__req: delete field_rts__req; break; case ALT_rach__ind: delete field_rach__ind; break; case ALT_txt__ind: delete field_txt__ind; break; case ALT_info__ind: delete field_info__ind; break; case ALT_act__req: delete field_act__req; break; case ALT_time__ind: delete field_time__ind; break; case ALT_pag__req: delete field_pag__req; break; default: break; } union_selection = UNBOUND_VALUE; } void PCUIF__MsgUnion::log() const { switch (union_selection) { case ALT_data__req: TTCN_Logger::log_event_str("{ data_req := "); field_data__req->log(); TTCN_Logger::log_event_str(" }"); break; case ALT_data__cnf: TTCN_Logger::log_event_str("{ data_cnf := "); field_data__cnf->log(); TTCN_Logger::log_event_str(" }"); break; case ALT_data__cnf__dt: TTCN_Logger::log_event_str("{ data_cnf_dt := "); field_data__cnf__dt->log(); TTCN_Logger::log_event_str(" }"); break; case ALT_data__ind: TTCN_Logger::log_event_str("{ data_ind := "); field_data__ind->log(); TTCN_Logger::log_event_str(" }"); break; case ALT_susp__req: TTCN_Logger::log_event_str("{ susp_req := "); field_susp__req->log(); TTCN_Logger::log_event_str(" }"); break; case ALT_rts__req: TTCN_Logger::log_event_str("{ rts_req := "); field_rts__req->log(); TTCN_Logger::log_event_str(" }"); break; case ALT_rach__ind: TTCN_Logger::log_event_str("{ rach_ind := "); field_rach__ind->log(); TTCN_Logger::log_event_str(" }"); break; case ALT_txt__ind: TTCN_Logger::log_event_str("{ txt_ind := "); field_txt__ind->log(); TTCN_Logger::log_event_str(" }"); break; case ALT_info__ind: TTCN_Logger::log_event_str("{ info_ind := "); field_info__ind->log(); TTCN_Logger::log_event_str(" }"); break; case ALT_act__req: TTCN_Logger::log_event_str("{ act_req := "); field_act__req->log(); TTCN_Logger::log_event_str(" }"); break; case ALT_time__ind: TTCN_Logger::log_event_str("{ time_ind := "); field_time__ind->log(); TTCN_Logger::log_event_str(" }"); break; case ALT_pag__req: TTCN_Logger::log_event_str("{ pag_req := "); field_pag__req->log(); TTCN_Logger::log_event_str(" }"); break; default: TTCN_Logger::log_event_unbound(); } } void PCUIF__MsgUnion::set_param(Module_Param& param) { param.basic_check(Module_Param::BC_VALUE, "union value"); Module_Param_Ptr m_p = ¶m; 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, "data_req")) { data__req().set_param(*mp_last); if (!data__req().is_bound()) clean_up(); return; } if (!strcmp(last_name, "data_cnf")) { data__cnf().set_param(*mp_last); if (!data__cnf().is_bound()) clean_up(); return; } if (!strcmp(last_name, "data_cnf_dt")) { data__cnf__dt().set_param(*mp_last); if (!data__cnf__dt().is_bound()) clean_up(); return; } if (!strcmp(last_name, "data_ind")) { data__ind().set_param(*mp_last); if (!data__ind().is_bound()) clean_up(); return; } if (!strcmp(last_name, "susp_req")) { susp__req().set_param(*mp_last); if (!susp__req().is_bound()) clean_up(); return; } if (!strcmp(last_name, "rts_req")) { rts__req().set_param(*mp_last); if (!rts__req().is_bound()) clean_up(); return; } if (!strcmp(last_name, "rach_ind")) { rach__ind().set_param(*mp_last); if (!rach__ind().is_bound()) clean_up(); return; } if (!strcmp(last_name, "txt_ind")) { txt__ind().set_param(*mp_last); if (!txt__ind().is_bound()) clean_up(); return; } if (!strcmp(last_name, "info_ind")) { info__ind().set_param(*mp_last); if (!info__ind().is_bound()) clean_up(); return; } if (!strcmp(last_name, "act_req")) { act__req().set_param(*mp_last); if (!act__req().is_bound()) clean_up(); return; } if (!strcmp(last_name, "time_ind")) { time__ind().set_param(*mp_last); if (!time__ind().is_bound()) clean_up(); return; } if (!strcmp(last_name, "pag_req")) { pag__req().set_param(*mp_last); if (!pag__req().is_bound()) clean_up(); return; } mp_last->error("Field %s does not exist in type @PCUIF_Types.PCUIF_MsgUnion.", last_name); } void PCUIF__MsgUnion::set_implicit_omit() { switch (union_selection) { case ALT_data__req: field_data__req->set_implicit_omit(); break; case ALT_data__cnf: field_data__cnf->set_implicit_omit(); break; case ALT_data__cnf__dt: field_data__cnf__dt->set_implicit_omit(); break; case ALT_data__ind: field_data__ind->set_implicit_omit(); break; case ALT_susp__req: field_susp__req->set_implicit_omit(); break; case ALT_rts__req: field_rts__req->set_implicit_omit(); break; case ALT_rach__ind: field_rach__ind->set_implicit_omit(); break; case ALT_txt__ind: field_txt__ind->set_implicit_omit(); break; case ALT_info__ind: field_info__ind->set_implicit_omit(); break; case ALT_act__req: field_act__req->set_implicit_omit(); break; case ALT_time__ind: field_time__ind->set_implicit_omit(); break; case ALT_pag__req: field_pag__req->set_implicit_omit(); break; default: break; } } void PCUIF__MsgUnion::encode_text(Text_Buf& text_buf) const { text_buf.push_int(union_selection); switch (union_selection) { case ALT_data__req: field_data__req->encode_text(text_buf); break; case ALT_data__cnf: field_data__cnf->encode_text(text_buf); break; case ALT_data__cnf__dt: field_data__cnf__dt->encode_text(text_buf); break; case ALT_data__ind: field_data__ind->encode_text(text_buf); break; case ALT_susp__req: field_susp__req->encode_text(text_buf); break; case ALT_rts__req: field_rts__req->encode_text(text_buf); break; case ALT_rach__ind: field_rach__ind->encode_text(text_buf); break; case ALT_txt__ind: field_txt__ind->encode_text(text_buf); break; case ALT_info__ind: field_info__ind->encode_text(text_buf); break; case ALT_act__req: field_act__req->encode_text(text_buf); break; case ALT_time__ind: field_time__ind->encode_text(text_buf); break; case ALT_pag__req: field_pag__req->encode_text(text_buf); break; default: TTCN_error("Text encoder: Encoding an unbound value of union type @PCUIF_Types.PCUIF_MsgUnion."); } } void PCUIF__MsgUnion::decode_text(Text_Buf& text_buf) { switch ((union_selection_type)text_buf.pull_int().get_val()) { case ALT_data__req: data__req().decode_text(text_buf); break; case ALT_data__cnf: data__cnf().decode_text(text_buf); break; case ALT_data__cnf__dt: data__cnf__dt().decode_text(text_buf); break; case ALT_data__ind: data__ind().decode_text(text_buf); break; case ALT_susp__req: susp__req().decode_text(text_buf); break; case ALT_rts__req: rts__req().decode_text(text_buf); break; case ALT_rach__ind: rach__ind().decode_text(text_buf); break; case ALT_txt__ind: txt__ind().decode_text(text_buf); break; case ALT_info__ind: info__ind().decode_text(text_buf); break; case ALT_act__req: act__req().decode_text(text_buf); break; case ALT_time__ind: time__ind().decode_text(text_buf); break; case ALT_pag__req: pag__req().decode_text(text_buf); break; default: TTCN_error("Text decoder: Unrecognized union selector was received for type @PCUIF_Types.PCUIF_MsgUnion."); } } void PCUIF__MsgUnion::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 PCUIF__MsgUnion::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 PCUIF__MsgUnion::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, PCUIF__MsgUnion_data__req_descr_.raw->forceomit); decoded_length = data__req().RAW_decode(PCUIF__MsgUnion_data__req_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, PCUIF__MsgUnion_data__cnf_descr_.raw->forceomit); decoded_length = data__cnf().RAW_decode(PCUIF__MsgUnion_data__cnf_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, PCUIF__MsgUnion_data__cnf__dt_descr_.raw->forceomit); decoded_length = data__cnf__dt().RAW_decode(PCUIF__MsgUnion_data__cnf__dt_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, PCUIF__MsgUnion_data__ind_descr_.raw->forceomit); decoded_length = data__ind().RAW_decode(PCUIF__MsgUnion_data__ind_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, PCUIF__MsgUnion_susp__req_descr_.raw->forceomit); decoded_length = susp__req().RAW_decode(PCUIF__MsgUnion_susp__req_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); break; } case 5: { RAW_Force_Omit field_force_omit(5, force_omit, PCUIF__MsgUnion_rts__req_descr_.raw->forceomit); decoded_length = rts__req().RAW_decode(PCUIF__MsgUnion_rts__req_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); break; } case 6: { RAW_Force_Omit field_force_omit(6, force_omit, PCUIF__MsgUnion_rach__ind_descr_.raw->forceomit); decoded_length = rach__ind().RAW_decode(PCUIF__MsgUnion_rach__ind_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); break; } case 7: { RAW_Force_Omit field_force_omit(7, force_omit, PCUIF__MsgUnion_txt__ind_descr_.raw->forceomit); decoded_length = txt__ind().RAW_decode(PCUIF__MsgUnion_txt__ind_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); break; } case 8: { RAW_Force_Omit field_force_omit(8, force_omit, PCUIF__MsgUnion_info__ind_descr_.raw->forceomit); decoded_length = info__ind().RAW_decode(PCUIF__MsgUnion_info__ind_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); break; } case 9: { RAW_Force_Omit field_force_omit(9, force_omit, PCUIF__MsgUnion_act__req_descr_.raw->forceomit); decoded_length = act__req().RAW_decode(PCUIF__MsgUnion_act__req_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); break; } case 10: { RAW_Force_Omit field_force_omit(10, force_omit, PCUIF__MsgUnion_time__ind_descr_.raw->forceomit); decoded_length = time__ind().RAW_decode(PCUIF__MsgUnion_time__ind_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); break; } case 11: { RAW_Force_Omit field_force_omit(11, force_omit, PCUIF__MsgUnion_pag__req_descr_.raw->forceomit); decoded_length = pag__req().RAW_decode(PCUIF__MsgUnion_pag__req_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, PCUIF__MsgUnion_data__req_descr_.raw->forceomit); decoded_length = data__req().RAW_decode(PCUIF__MsgUnion_data__req_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, PCUIF__MsgUnion_data__cnf_descr_.raw->forceomit); decoded_length = data__cnf().RAW_decode(PCUIF__MsgUnion_data__cnf_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, PCUIF__MsgUnion_data__cnf__dt_descr_.raw->forceomit); decoded_length = data__cnf__dt().RAW_decode(PCUIF__MsgUnion_data__cnf__dt_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, PCUIF__MsgUnion_data__ind_descr_.raw->forceomit); decoded_length = data__ind().RAW_decode(PCUIF__MsgUnion_data__ind_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, PCUIF__MsgUnion_susp__req_descr_.raw->forceomit); decoded_length = susp__req().RAW_decode(PCUIF__MsgUnion_susp__req_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; } p_buf.set_pos_bit(starting_pos); RAW_Force_Omit field_5_force_omit(5, force_omit, PCUIF__MsgUnion_rts__req_descr_.raw->forceomit); decoded_length = rts__req().RAW_decode(PCUIF__MsgUnion_rts__req_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_5_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_6_force_omit(6, force_omit, PCUIF__MsgUnion_rach__ind_descr_.raw->forceomit); decoded_length = rach__ind().RAW_decode(PCUIF__MsgUnion_rach__ind_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_6_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_7_force_omit(7, force_omit, PCUIF__MsgUnion_txt__ind_descr_.raw->forceomit); decoded_length = txt__ind().RAW_decode(PCUIF__MsgUnion_txt__ind_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_7_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_8_force_omit(8, force_omit, PCUIF__MsgUnion_info__ind_descr_.raw->forceomit); decoded_length = info__ind().RAW_decode(PCUIF__MsgUnion_info__ind_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_8_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_9_force_omit(9, force_omit, PCUIF__MsgUnion_act__req_descr_.raw->forceomit); decoded_length = act__req().RAW_decode(PCUIF__MsgUnion_act__req_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_9_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_10_force_omit(10, force_omit, PCUIF__MsgUnion_time__ind_descr_.raw->forceomit); decoded_length = time__ind().RAW_decode(PCUIF__MsgUnion_time__ind_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_10_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_11_force_omit(11, force_omit, PCUIF__MsgUnion_pag__req_descr_.raw->forceomit); decoded_length = pag__req().RAW_decode(PCUIF__MsgUnion_pag__req_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_11_force_omit); if (decoded_length >= 0) { return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; } } clean_up(); return -1; } int PCUIF__MsgUnion::RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree& myleaf) const { int encoded_length = 0; myleaf.isleaf = FALSE; myleaf.body.node.num_of_nodes = 12; myleaf.body.node.nodes = init_nodes_of_enc_tree(12); memset(myleaf.body.node.nodes, 0, 12 * sizeof(RAW_enc_tree *)); switch (union_selection) { case ALT_data__req: myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 0, PCUIF__MsgUnion_data__req_descr_.raw); encoded_length = field_data__req->RAW_encode(PCUIF__MsgUnion_data__req_descr_, *myleaf.body.node.nodes[0]); myleaf.body.node.nodes[0]->coding_descr = &PCUIF__MsgUnion_data__req_descr_; break; case ALT_data__cnf: myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 1, PCUIF__MsgUnion_data__cnf_descr_.raw); encoded_length = field_data__cnf->RAW_encode(PCUIF__MsgUnion_data__cnf_descr_, *myleaf.body.node.nodes[1]); myleaf.body.node.nodes[1]->coding_descr = &PCUIF__MsgUnion_data__cnf_descr_; break; case ALT_data__cnf__dt: myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 2, PCUIF__MsgUnion_data__cnf__dt_descr_.raw); encoded_length = field_data__cnf__dt->RAW_encode(PCUIF__MsgUnion_data__cnf__dt_descr_, *myleaf.body.node.nodes[2]); myleaf.body.node.nodes[2]->coding_descr = &PCUIF__MsgUnion_data__cnf__dt_descr_; break; case ALT_data__ind: myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 3, PCUIF__MsgUnion_data__ind_descr_.raw); encoded_length = field_data__ind->RAW_encode(PCUIF__MsgUnion_data__ind_descr_, *myleaf.body.node.nodes[3]); myleaf.body.node.nodes[3]->coding_descr = &PCUIF__MsgUnion_data__ind_descr_; break; case ALT_susp__req: myleaf.body.node.nodes[4] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 4, PCUIF__MsgUnion_susp__req_descr_.raw); encoded_length = field_susp__req->RAW_encode(PCUIF__MsgUnion_susp__req_descr_, *myleaf.body.node.nodes[4]); myleaf.body.node.nodes[4]->coding_descr = &PCUIF__MsgUnion_susp__req_descr_; break; case ALT_rts__req: myleaf.body.node.nodes[5] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 5, PCUIF__MsgUnion_rts__req_descr_.raw); encoded_length = field_rts__req->RAW_encode(PCUIF__MsgUnion_rts__req_descr_, *myleaf.body.node.nodes[5]); myleaf.body.node.nodes[5]->coding_descr = &PCUIF__MsgUnion_rts__req_descr_; break; case ALT_rach__ind: myleaf.body.node.nodes[6] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 6, PCUIF__MsgUnion_rach__ind_descr_.raw); encoded_length = field_rach__ind->RAW_encode(PCUIF__MsgUnion_rach__ind_descr_, *myleaf.body.node.nodes[6]); myleaf.body.node.nodes[6]->coding_descr = &PCUIF__MsgUnion_rach__ind_descr_; break; case ALT_txt__ind: myleaf.body.node.nodes[7] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 7, PCUIF__MsgUnion_txt__ind_descr_.raw); encoded_length = field_txt__ind->RAW_encode(PCUIF__MsgUnion_txt__ind_descr_, *myleaf.body.node.nodes[7]); myleaf.body.node.nodes[7]->coding_descr = &PCUIF__MsgUnion_txt__ind_descr_; break; case ALT_info__ind: myleaf.body.node.nodes[8] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 8, PCUIF__MsgUnion_info__ind_descr_.raw); encoded_length = field_info__ind->RAW_encode(PCUIF__MsgUnion_info__ind_descr_, *myleaf.body.node.nodes[8]); myleaf.body.node.nodes[8]->coding_descr = &PCUIF__MsgUnion_info__ind_descr_; break; case ALT_act__req: myleaf.body.node.nodes[9] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 9, PCUIF__MsgUnion_act__req_descr_.raw); encoded_length = field_act__req->RAW_encode(PCUIF__MsgUnion_act__req_descr_, *myleaf.body.node.nodes[9]); myleaf.body.node.nodes[9]->coding_descr = &PCUIF__MsgUnion_act__req_descr_; break; case ALT_time__ind: myleaf.body.node.nodes[10] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 10, PCUIF__MsgUnion_time__ind_descr_.raw); encoded_length = field_time__ind->RAW_encode(PCUIF__MsgUnion_time__ind_descr_, *myleaf.body.node.nodes[10]); myleaf.body.node.nodes[10]->coding_descr = &PCUIF__MsgUnion_time__ind_descr_; break; case ALT_pag__req: myleaf.body.node.nodes[11] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 11, PCUIF__MsgUnion_pag__req_descr_.raw); encoded_length = field_pag__req->RAW_encode(PCUIF__MsgUnion_pag__req_descr_, *myleaf.body.node.nodes[11]); myleaf.body.node.nodes[11]->coding_descr = &PCUIF__MsgUnion_pag__req_descr_; break; default: TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND, "Encoding an unbound value."); } return encoded_length; } void PCUIF__MsgUnion_template::copy_value(const PCUIF__MsgUnion& other_value) { single_value.union_selection = other_value.get_selection(); switch (single_value.union_selection) { case PCUIF__MsgUnion::ALT_data__req: single_value.field_data__req = new PCUIF__data_template(other_value.data__req()); break; case PCUIF__MsgUnion::ALT_data__cnf: single_value.field_data__cnf = new PCUIF__data_template(other_value.data__cnf()); break; case PCUIF__MsgUnion::ALT_data__cnf__dt: single_value.field_data__cnf__dt = new PCUIF__data__cnf__dt_template(other_value.data__cnf__dt()); break; case PCUIF__MsgUnion::ALT_data__ind: single_value.field_data__ind = new PCUIF__data_template(other_value.data__ind()); break; case PCUIF__MsgUnion::ALT_susp__req: single_value.field_susp__req = new PCUIF__susp__req_template(other_value.susp__req()); break; case PCUIF__MsgUnion::ALT_rts__req: single_value.field_rts__req = new PCUIF__rts__req_template(other_value.rts__req()); break; case PCUIF__MsgUnion::ALT_rach__ind: single_value.field_rach__ind = new PCUIF__rach__ind_template(other_value.rach__ind()); break; case PCUIF__MsgUnion::ALT_txt__ind: single_value.field_txt__ind = new PCUIF__txt__ind_template(other_value.txt__ind()); break; case PCUIF__MsgUnion::ALT_info__ind: single_value.field_info__ind = new PCUIF__info__ind_template(other_value.info__ind()); break; case PCUIF__MsgUnion::ALT_act__req: single_value.field_act__req = new PCUIF__act__req_template(other_value.act__req()); break; case PCUIF__MsgUnion::ALT_time__ind: single_value.field_time__ind = new PCUIF__time__ind_template(other_value.time__ind()); break; case PCUIF__MsgUnion::ALT_pag__req: single_value.field_pag__req = new PCUIF__pag__req_template(other_value.pag__req()); break; default: TTCN_error("Initializing a template with an unbound value of type @PCUIF_Types.PCUIF_MsgUnion."); } set_selection(SPECIFIC_VALUE); } void PCUIF__MsgUnion_template::copy_template(const PCUIF__MsgUnion_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 PCUIF__MsgUnion::ALT_data__req: single_value.field_data__req = new PCUIF__data_template(*other_value.single_value.field_data__req); break; case PCUIF__MsgUnion::ALT_data__cnf: single_value.field_data__cnf = new PCUIF__data_template(*other_value.single_value.field_data__cnf); break; case PCUIF__MsgUnion::ALT_data__cnf__dt: single_value.field_data__cnf__dt = new PCUIF__data__cnf__dt_template(*other_value.single_value.field_data__cnf__dt); break; case PCUIF__MsgUnion::ALT_data__ind: single_value.field_data__ind = new PCUIF__data_template(*other_value.single_value.field_data__ind); break; case PCUIF__MsgUnion::ALT_susp__req: single_value.field_susp__req = new PCUIF__susp__req_template(*other_value.single_value.field_susp__req); break; case PCUIF__MsgUnion::ALT_rts__req: single_value.field_rts__req = new PCUIF__rts__req_template(*other_value.single_value.field_rts__req); break; case PCUIF__MsgUnion::ALT_rach__ind: single_value.field_rach__ind = new PCUIF__rach__ind_template(*other_value.single_value.field_rach__ind); break; case PCUIF__MsgUnion::ALT_txt__ind: single_value.field_txt__ind = new PCUIF__txt__ind_template(*other_value.single_value.field_txt__ind); break; case PCUIF__MsgUnion::ALT_info__ind: single_value.field_info__ind = new PCUIF__info__ind_template(*other_value.single_value.field_info__ind); break; case PCUIF__MsgUnion::ALT_act__req: single_value.field_act__req = new PCUIF__act__req_template(*other_value.single_value.field_act__req); break; case PCUIF__MsgUnion::ALT_time__ind: single_value.field_time__ind = new PCUIF__time__ind_template(*other_value.single_value.field_time__ind); break; case PCUIF__MsgUnion::ALT_pag__req: single_value.field_pag__req = new PCUIF__pag__req_template(*other_value.single_value.field_pag__req); break; default: TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @PCUIF_Types.PCUIF_MsgUnion."); } 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 PCUIF__MsgUnion_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 @PCUIF_Types.PCUIF_MsgUnion."); } set_selection(other_value); } PCUIF__MsgUnion_template::PCUIF__MsgUnion_template() { } PCUIF__MsgUnion_template::PCUIF__MsgUnion_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__MsgUnion_template::PCUIF__MsgUnion_template(const PCUIF__MsgUnion& other_value) { copy_value(other_value); } PCUIF__MsgUnion_template::PCUIF__MsgUnion_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__MsgUnion&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of union type @PCUIF_Types.PCUIF_MsgUnion from an unbound optional field."); } } PCUIF__MsgUnion_template::PCUIF__MsgUnion_template(const PCUIF__MsgUnion_template& other_value) : Base_Template(){ copy_template(other_value); } PCUIF__MsgUnion_template::~PCUIF__MsgUnion_template() { clean_up(); } void PCUIF__MsgUnion_template::clean_up() { switch (template_selection) { case SPECIFIC_VALUE: switch (single_value.union_selection) { case PCUIF__MsgUnion::ALT_data__req: delete single_value.field_data__req; break; case PCUIF__MsgUnion::ALT_data__cnf: delete single_value.field_data__cnf; break; case PCUIF__MsgUnion::ALT_data__cnf__dt: delete single_value.field_data__cnf__dt; break; case PCUIF__MsgUnion::ALT_data__ind: delete single_value.field_data__ind; break; case PCUIF__MsgUnion::ALT_susp__req: delete single_value.field_susp__req; break; case PCUIF__MsgUnion::ALT_rts__req: delete single_value.field_rts__req; break; case PCUIF__MsgUnion::ALT_rach__ind: delete single_value.field_rach__ind; break; case PCUIF__MsgUnion::ALT_txt__ind: delete single_value.field_txt__ind; break; case PCUIF__MsgUnion::ALT_info__ind: delete single_value.field_info__ind; break; case PCUIF__MsgUnion::ALT_act__req: delete single_value.field_act__req; break; case PCUIF__MsgUnion::ALT_time__ind: delete single_value.field_time__ind; break; case PCUIF__MsgUnion::ALT_pag__req: delete single_value.field_pag__req; default: break; } break; case VALUE_LIST: case COMPLEMENTED_LIST: delete [] value_list.list_value; default: break; } template_selection = UNINITIALIZED_TEMPLATE; } PCUIF__MsgUnion_template& PCUIF__MsgUnion_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__MsgUnion_template& PCUIF__MsgUnion_template::operator=(const PCUIF__MsgUnion& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__MsgUnion_template& PCUIF__MsgUnion_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__MsgUnion&)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 @PCUIF_Types.PCUIF_MsgUnion."); } return *this; } PCUIF__MsgUnion_template& PCUIF__MsgUnion_template::operator=(const PCUIF__MsgUnion_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__MsgUnion_template::match(const PCUIF__MsgUnion& 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: { PCUIF__MsgUnion::union_selection_type value_selection = other_value.get_selection(); if (value_selection == PCUIF__MsgUnion::UNBOUND_VALUE) return FALSE; if (value_selection != single_value.union_selection) return FALSE; switch (value_selection) { case PCUIF__MsgUnion::ALT_data__req: return single_value.field_data__req->match(other_value.data__req(), legacy); case PCUIF__MsgUnion::ALT_data__cnf: return single_value.field_data__cnf->match(other_value.data__cnf(), legacy); case PCUIF__MsgUnion::ALT_data__cnf__dt: return single_value.field_data__cnf__dt->match(other_value.data__cnf__dt(), legacy); case PCUIF__MsgUnion::ALT_data__ind: return single_value.field_data__ind->match(other_value.data__ind(), legacy); case PCUIF__MsgUnion::ALT_susp__req: return single_value.field_susp__req->match(other_value.susp__req(), legacy); case PCUIF__MsgUnion::ALT_rts__req: return single_value.field_rts__req->match(other_value.rts__req(), legacy); case PCUIF__MsgUnion::ALT_rach__ind: return single_value.field_rach__ind->match(other_value.rach__ind(), legacy); case PCUIF__MsgUnion::ALT_txt__ind: return single_value.field_txt__ind->match(other_value.txt__ind(), legacy); case PCUIF__MsgUnion::ALT_info__ind: return single_value.field_info__ind->match(other_value.info__ind(), legacy); case PCUIF__MsgUnion::ALT_act__req: return single_value.field_act__req->match(other_value.act__req(), legacy); case PCUIF__MsgUnion::ALT_time__ind: return single_value.field_time__ind->match(other_value.time__ind(), legacy); case PCUIF__MsgUnion::ALT_pag__req: return single_value.field_pag__req->match(other_value.pag__req(), legacy); default: TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @PCUIF_Types.PCUIF_MsgUnion."); } } 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 @PCUIF_Types.PCUIF_MsgUnion."); } return FALSE; } boolean PCUIF__MsgUnion_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; switch (single_value.union_selection) { case PCUIF__MsgUnion::ALT_data__req: return single_value.field_data__req->is_value(); case PCUIF__MsgUnion::ALT_data__cnf: return single_value.field_data__cnf->is_value(); case PCUIF__MsgUnion::ALT_data__cnf__dt: return single_value.field_data__cnf__dt->is_value(); case PCUIF__MsgUnion::ALT_data__ind: return single_value.field_data__ind->is_value(); case PCUIF__MsgUnion::ALT_susp__req: return single_value.field_susp__req->is_value(); case PCUIF__MsgUnion::ALT_rts__req: return single_value.field_rts__req->is_value(); case PCUIF__MsgUnion::ALT_rach__ind: return single_value.field_rach__ind->is_value(); case PCUIF__MsgUnion::ALT_txt__ind: return single_value.field_txt__ind->is_value(); case PCUIF__MsgUnion::ALT_info__ind: return single_value.field_info__ind->is_value(); case PCUIF__MsgUnion::ALT_act__req: return single_value.field_act__req->is_value(); case PCUIF__MsgUnion::ALT_time__ind: return single_value.field_time__ind->is_value(); case PCUIF__MsgUnion::ALT_pag__req: return single_value.field_pag__req->is_value(); default: TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @PCUIF_Types.PCUIF_MsgUnion."); } } PCUIF__MsgUnion PCUIF__MsgUnion_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 @PCUIF_Types.PCUIF_MsgUnion."); PCUIF__MsgUnion ret_val; switch (single_value.union_selection) { case PCUIF__MsgUnion::ALT_data__req: ret_val.data__req() = single_value.field_data__req->valueof(); break; case PCUIF__MsgUnion::ALT_data__cnf: ret_val.data__cnf() = single_value.field_data__cnf->valueof(); break; case PCUIF__MsgUnion::ALT_data__cnf__dt: ret_val.data__cnf__dt() = single_value.field_data__cnf__dt->valueof(); break; case PCUIF__MsgUnion::ALT_data__ind: ret_val.data__ind() = single_value.field_data__ind->valueof(); break; case PCUIF__MsgUnion::ALT_susp__req: ret_val.susp__req() = single_value.field_susp__req->valueof(); break; case PCUIF__MsgUnion::ALT_rts__req: ret_val.rts__req() = single_value.field_rts__req->valueof(); break; case PCUIF__MsgUnion::ALT_rach__ind: ret_val.rach__ind() = single_value.field_rach__ind->valueof(); break; case PCUIF__MsgUnion::ALT_txt__ind: ret_val.txt__ind() = single_value.field_txt__ind->valueof(); break; case PCUIF__MsgUnion::ALT_info__ind: ret_val.info__ind() = single_value.field_info__ind->valueof(); break; case PCUIF__MsgUnion::ALT_act__req: ret_val.act__req() = single_value.field_act__req->valueof(); break; case PCUIF__MsgUnion::ALT_time__ind: ret_val.time__ind() = single_value.field_time__ind->valueof(); break; case PCUIF__MsgUnion::ALT_pag__req: ret_val.pag__req() = single_value.field_pag__req->valueof(); break; default: TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @PCUIF_Types.PCUIF_MsgUnion."); } return ret_val; } PCUIF__MsgUnion_template& PCUIF__MsgUnion_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 @PCUIF_Types.PCUIF_MsgUnion."); if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @PCUIF_Types.PCUIF_MsgUnion."); return value_list.list_value[list_index]; } void PCUIF__MsgUnion_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 @PCUIF_Types.PCUIF_MsgUnion."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__MsgUnion_template[list_length]; } PCUIF__data_template& PCUIF__MsgUnion_template::data__req() { if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PCUIF__MsgUnion::ALT_data__req) { template_sel old_selection = template_selection; clean_up(); if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_data__req = new PCUIF__data_template(ANY_VALUE); else single_value.field_data__req = new PCUIF__data_template; single_value.union_selection = PCUIF__MsgUnion::ALT_data__req; set_selection(SPECIFIC_VALUE); } return *single_value.field_data__req; } const PCUIF__data_template& PCUIF__MsgUnion_template::data__req() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field data_req in a non-specific template of union type @PCUIF_Types.PCUIF_MsgUnion."); if (single_value.union_selection != PCUIF__MsgUnion::ALT_data__req) TTCN_error("Accessing non-selected field data_req in a template of union type @PCUIF_Types.PCUIF_MsgUnion."); return *single_value.field_data__req; } PCUIF__data_template& PCUIF__MsgUnion_template::data__cnf() { if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PCUIF__MsgUnion::ALT_data__cnf) { template_sel old_selection = template_selection; clean_up(); if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_data__cnf = new PCUIF__data_template(ANY_VALUE); else single_value.field_data__cnf = new PCUIF__data_template; single_value.union_selection = PCUIF__MsgUnion::ALT_data__cnf; set_selection(SPECIFIC_VALUE); } return *single_value.field_data__cnf; } const PCUIF__data_template& PCUIF__MsgUnion_template::data__cnf() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field data_cnf in a non-specific template of union type @PCUIF_Types.PCUIF_MsgUnion."); if (single_value.union_selection != PCUIF__MsgUnion::ALT_data__cnf) TTCN_error("Accessing non-selected field data_cnf in a template of union type @PCUIF_Types.PCUIF_MsgUnion."); return *single_value.field_data__cnf; } PCUIF__data__cnf__dt_template& PCUIF__MsgUnion_template::data__cnf__dt() { if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PCUIF__MsgUnion::ALT_data__cnf__dt) { template_sel old_selection = template_selection; clean_up(); if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_data__cnf__dt = new PCUIF__data__cnf__dt_template(ANY_VALUE); else single_value.field_data__cnf__dt = new PCUIF__data__cnf__dt_template; single_value.union_selection = PCUIF__MsgUnion::ALT_data__cnf__dt; set_selection(SPECIFIC_VALUE); } return *single_value.field_data__cnf__dt; } const PCUIF__data__cnf__dt_template& PCUIF__MsgUnion_template::data__cnf__dt() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field data_cnf_dt in a non-specific template of union type @PCUIF_Types.PCUIF_MsgUnion."); if (single_value.union_selection != PCUIF__MsgUnion::ALT_data__cnf__dt) TTCN_error("Accessing non-selected field data_cnf_dt in a template of union type @PCUIF_Types.PCUIF_MsgUnion."); return *single_value.field_data__cnf__dt; } PCUIF__data_template& PCUIF__MsgUnion_template::data__ind() { if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PCUIF__MsgUnion::ALT_data__ind) { template_sel old_selection = template_selection; clean_up(); if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_data__ind = new PCUIF__data_template(ANY_VALUE); else single_value.field_data__ind = new PCUIF__data_template; single_value.union_selection = PCUIF__MsgUnion::ALT_data__ind; set_selection(SPECIFIC_VALUE); } return *single_value.field_data__ind; } const PCUIF__data_template& PCUIF__MsgUnion_template::data__ind() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field data_ind in a non-specific template of union type @PCUIF_Types.PCUIF_MsgUnion."); if (single_value.union_selection != PCUIF__MsgUnion::ALT_data__ind) TTCN_error("Accessing non-selected field data_ind in a template of union type @PCUIF_Types.PCUIF_MsgUnion."); return *single_value.field_data__ind; } PCUIF__susp__req_template& PCUIF__MsgUnion_template::susp__req() { if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PCUIF__MsgUnion::ALT_susp__req) { template_sel old_selection = template_selection; clean_up(); if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_susp__req = new PCUIF__susp__req_template(ANY_VALUE); else single_value.field_susp__req = new PCUIF__susp__req_template; single_value.union_selection = PCUIF__MsgUnion::ALT_susp__req; set_selection(SPECIFIC_VALUE); } return *single_value.field_susp__req; } const PCUIF__susp__req_template& PCUIF__MsgUnion_template::susp__req() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field susp_req in a non-specific template of union type @PCUIF_Types.PCUIF_MsgUnion."); if (single_value.union_selection != PCUIF__MsgUnion::ALT_susp__req) TTCN_error("Accessing non-selected field susp_req in a template of union type @PCUIF_Types.PCUIF_MsgUnion."); return *single_value.field_susp__req; } PCUIF__rts__req_template& PCUIF__MsgUnion_template::rts__req() { if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PCUIF__MsgUnion::ALT_rts__req) { template_sel old_selection = template_selection; clean_up(); if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_rts__req = new PCUIF__rts__req_template(ANY_VALUE); else single_value.field_rts__req = new PCUIF__rts__req_template; single_value.union_selection = PCUIF__MsgUnion::ALT_rts__req; set_selection(SPECIFIC_VALUE); } return *single_value.field_rts__req; } const PCUIF__rts__req_template& PCUIF__MsgUnion_template::rts__req() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field rts_req in a non-specific template of union type @PCUIF_Types.PCUIF_MsgUnion."); if (single_value.union_selection != PCUIF__MsgUnion::ALT_rts__req) TTCN_error("Accessing non-selected field rts_req in a template of union type @PCUIF_Types.PCUIF_MsgUnion."); return *single_value.field_rts__req; } PCUIF__rach__ind_template& PCUIF__MsgUnion_template::rach__ind() { if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PCUIF__MsgUnion::ALT_rach__ind) { template_sel old_selection = template_selection; clean_up(); if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_rach__ind = new PCUIF__rach__ind_template(ANY_VALUE); else single_value.field_rach__ind = new PCUIF__rach__ind_template; single_value.union_selection = PCUIF__MsgUnion::ALT_rach__ind; set_selection(SPECIFIC_VALUE); } return *single_value.field_rach__ind; } const PCUIF__rach__ind_template& PCUIF__MsgUnion_template::rach__ind() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field rach_ind in a non-specific template of union type @PCUIF_Types.PCUIF_MsgUnion."); if (single_value.union_selection != PCUIF__MsgUnion::ALT_rach__ind) TTCN_error("Accessing non-selected field rach_ind in a template of union type @PCUIF_Types.PCUIF_MsgUnion."); return *single_value.field_rach__ind; } PCUIF__txt__ind_template& PCUIF__MsgUnion_template::txt__ind() { if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PCUIF__MsgUnion::ALT_txt__ind) { template_sel old_selection = template_selection; clean_up(); if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_txt__ind = new PCUIF__txt__ind_template(ANY_VALUE); else single_value.field_txt__ind = new PCUIF__txt__ind_template; single_value.union_selection = PCUIF__MsgUnion::ALT_txt__ind; set_selection(SPECIFIC_VALUE); } return *single_value.field_txt__ind; } const PCUIF__txt__ind_template& PCUIF__MsgUnion_template::txt__ind() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field txt_ind in a non-specific template of union type @PCUIF_Types.PCUIF_MsgUnion."); if (single_value.union_selection != PCUIF__MsgUnion::ALT_txt__ind) TTCN_error("Accessing non-selected field txt_ind in a template of union type @PCUIF_Types.PCUIF_MsgUnion."); return *single_value.field_txt__ind; } PCUIF__info__ind_template& PCUIF__MsgUnion_template::info__ind() { if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PCUIF__MsgUnion::ALT_info__ind) { template_sel old_selection = template_selection; clean_up(); if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_info__ind = new PCUIF__info__ind_template(ANY_VALUE); else single_value.field_info__ind = new PCUIF__info__ind_template; single_value.union_selection = PCUIF__MsgUnion::ALT_info__ind; set_selection(SPECIFIC_VALUE); } return *single_value.field_info__ind; } const PCUIF__info__ind_template& PCUIF__MsgUnion_template::info__ind() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field info_ind in a non-specific template of union type @PCUIF_Types.PCUIF_MsgUnion."); if (single_value.union_selection != PCUIF__MsgUnion::ALT_info__ind) TTCN_error("Accessing non-selected field info_ind in a template of union type @PCUIF_Types.PCUIF_MsgUnion."); return *single_value.field_info__ind; } PCUIF__act__req_template& PCUIF__MsgUnion_template::act__req() { if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PCUIF__MsgUnion::ALT_act__req) { template_sel old_selection = template_selection; clean_up(); if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_act__req = new PCUIF__act__req_template(ANY_VALUE); else single_value.field_act__req = new PCUIF__act__req_template; single_value.union_selection = PCUIF__MsgUnion::ALT_act__req; set_selection(SPECIFIC_VALUE); } return *single_value.field_act__req; } const PCUIF__act__req_template& PCUIF__MsgUnion_template::act__req() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field act_req in a non-specific template of union type @PCUIF_Types.PCUIF_MsgUnion."); if (single_value.union_selection != PCUIF__MsgUnion::ALT_act__req) TTCN_error("Accessing non-selected field act_req in a template of union type @PCUIF_Types.PCUIF_MsgUnion."); return *single_value.field_act__req; } PCUIF__time__ind_template& PCUIF__MsgUnion_template::time__ind() { if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PCUIF__MsgUnion::ALT_time__ind) { template_sel old_selection = template_selection; clean_up(); if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_time__ind = new PCUIF__time__ind_template(ANY_VALUE); else single_value.field_time__ind = new PCUIF__time__ind_template; single_value.union_selection = PCUIF__MsgUnion::ALT_time__ind; set_selection(SPECIFIC_VALUE); } return *single_value.field_time__ind; } const PCUIF__time__ind_template& PCUIF__MsgUnion_template::time__ind() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field time_ind in a non-specific template of union type @PCUIF_Types.PCUIF_MsgUnion."); if (single_value.union_selection != PCUIF__MsgUnion::ALT_time__ind) TTCN_error("Accessing non-selected field time_ind in a template of union type @PCUIF_Types.PCUIF_MsgUnion."); return *single_value.field_time__ind; } PCUIF__pag__req_template& PCUIF__MsgUnion_template::pag__req() { if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PCUIF__MsgUnion::ALT_pag__req) { template_sel old_selection = template_selection; clean_up(); if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pag__req = new PCUIF__pag__req_template(ANY_VALUE); else single_value.field_pag__req = new PCUIF__pag__req_template; single_value.union_selection = PCUIF__MsgUnion::ALT_pag__req; set_selection(SPECIFIC_VALUE); } return *single_value.field_pag__req; } const PCUIF__pag__req_template& PCUIF__MsgUnion_template::pag__req() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pag_req in a non-specific template of union type @PCUIF_Types.PCUIF_MsgUnion."); if (single_value.union_selection != PCUIF__MsgUnion::ALT_pag__req) TTCN_error("Accessing non-selected field pag_req in a template of union type @PCUIF_Types.PCUIF_MsgUnion."); return *single_value.field_pag__req; } boolean PCUIF__MsgUnion_template::ischosen(PCUIF__MsgUnion::union_selection_type checked_selection) const { if (checked_selection == PCUIF__MsgUnion::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @PCUIF_Types.PCUIF_MsgUnion."); switch (template_selection) { case SPECIFIC_VALUE: if (single_value.union_selection == PCUIF__MsgUnion::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @PCUIF_Types.PCUIF_MsgUnion."); 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 @PCUIF_Types.PCUIF_MsgUnion 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 PCUIF__MsgUnion_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: switch (single_value.union_selection) { case PCUIF__MsgUnion::ALT_data__req: TTCN_Logger::log_event_str("{ data_req := "); single_value.field_data__req->log(); TTCN_Logger::log_event_str(" }"); break; case PCUIF__MsgUnion::ALT_data__cnf: TTCN_Logger::log_event_str("{ data_cnf := "); single_value.field_data__cnf->log(); TTCN_Logger::log_event_str(" }"); break; case PCUIF__MsgUnion::ALT_data__cnf__dt: TTCN_Logger::log_event_str("{ data_cnf_dt := "); single_value.field_data__cnf__dt->log(); TTCN_Logger::log_event_str(" }"); break; case PCUIF__MsgUnion::ALT_data__ind: TTCN_Logger::log_event_str("{ data_ind := "); single_value.field_data__ind->log(); TTCN_Logger::log_event_str(" }"); break; case PCUIF__MsgUnion::ALT_susp__req: TTCN_Logger::log_event_str("{ susp_req := "); single_value.field_susp__req->log(); TTCN_Logger::log_event_str(" }"); break; case PCUIF__MsgUnion::ALT_rts__req: TTCN_Logger::log_event_str("{ rts_req := "); single_value.field_rts__req->log(); TTCN_Logger::log_event_str(" }"); break; case PCUIF__MsgUnion::ALT_rach__ind: TTCN_Logger::log_event_str("{ rach_ind := "); single_value.field_rach__ind->log(); TTCN_Logger::log_event_str(" }"); break; case PCUIF__MsgUnion::ALT_txt__ind: TTCN_Logger::log_event_str("{ txt_ind := "); single_value.field_txt__ind->log(); TTCN_Logger::log_event_str(" }"); break; case PCUIF__MsgUnion::ALT_info__ind: TTCN_Logger::log_event_str("{ info_ind := "); single_value.field_info__ind->log(); TTCN_Logger::log_event_str(" }"); break; case PCUIF__MsgUnion::ALT_act__req: TTCN_Logger::log_event_str("{ act_req := "); single_value.field_act__req->log(); TTCN_Logger::log_event_str(" }"); break; case PCUIF__MsgUnion::ALT_time__ind: TTCN_Logger::log_event_str("{ time_ind := "); single_value.field_time__ind->log(); TTCN_Logger::log_event_str(" }"); break; case PCUIF__MsgUnion::ALT_pag__req: TTCN_Logger::log_event_str("{ pag_req := "); single_value.field_pag__req->log(); TTCN_Logger::log_event_str(" }"); break; default: 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 PCUIF__MsgUnion_template::log_match(const PCUIF__MsgUnion& 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 PCUIF__MsgUnion::ALT_data__req: if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ TTCN_Logger::log_logmatch_info(".data_req"); single_value.field_data__req->log_match(match_value.data__req(), legacy); } else { TTCN_Logger::log_event_str("{ data_req := "); single_value.field_data__req->log_match(match_value.data__req(), legacy); TTCN_Logger::log_event_str(" }"); } break; case PCUIF__MsgUnion::ALT_data__cnf: if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ TTCN_Logger::log_logmatch_info(".data_cnf"); single_value.field_data__cnf->log_match(match_value.data__cnf(), legacy); } else { TTCN_Logger::log_event_str("{ data_cnf := "); single_value.field_data__cnf->log_match(match_value.data__cnf(), legacy); TTCN_Logger::log_event_str(" }"); } break; case PCUIF__MsgUnion::ALT_data__cnf__dt: if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ TTCN_Logger::log_logmatch_info(".data_cnf_dt"); single_value.field_data__cnf__dt->log_match(match_value.data__cnf__dt(), legacy); } else { TTCN_Logger::log_event_str("{ data_cnf_dt := "); single_value.field_data__cnf__dt->log_match(match_value.data__cnf__dt(), legacy); TTCN_Logger::log_event_str(" }"); } break; case PCUIF__MsgUnion::ALT_data__ind: if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ TTCN_Logger::log_logmatch_info(".data_ind"); single_value.field_data__ind->log_match(match_value.data__ind(), legacy); } else { TTCN_Logger::log_event_str("{ data_ind := "); single_value.field_data__ind->log_match(match_value.data__ind(), legacy); TTCN_Logger::log_event_str(" }"); } break; case PCUIF__MsgUnion::ALT_susp__req: if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ TTCN_Logger::log_logmatch_info(".susp_req"); single_value.field_susp__req->log_match(match_value.susp__req(), legacy); } else { TTCN_Logger::log_event_str("{ susp_req := "); single_value.field_susp__req->log_match(match_value.susp__req(), legacy); TTCN_Logger::log_event_str(" }"); } break; case PCUIF__MsgUnion::ALT_rts__req: if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ TTCN_Logger::log_logmatch_info(".rts_req"); single_value.field_rts__req->log_match(match_value.rts__req(), legacy); } else { TTCN_Logger::log_event_str("{ rts_req := "); single_value.field_rts__req->log_match(match_value.rts__req(), legacy); TTCN_Logger::log_event_str(" }"); } break; case PCUIF__MsgUnion::ALT_rach__ind: if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ TTCN_Logger::log_logmatch_info(".rach_ind"); single_value.field_rach__ind->log_match(match_value.rach__ind(), legacy); } else { TTCN_Logger::log_event_str("{ rach_ind := "); single_value.field_rach__ind->log_match(match_value.rach__ind(), legacy); TTCN_Logger::log_event_str(" }"); } break; case PCUIF__MsgUnion::ALT_txt__ind: if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ TTCN_Logger::log_logmatch_info(".txt_ind"); single_value.field_txt__ind->log_match(match_value.txt__ind(), legacy); } else { TTCN_Logger::log_event_str("{ txt_ind := "); single_value.field_txt__ind->log_match(match_value.txt__ind(), legacy); TTCN_Logger::log_event_str(" }"); } break; case PCUIF__MsgUnion::ALT_info__ind: if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ TTCN_Logger::log_logmatch_info(".info_ind"); single_value.field_info__ind->log_match(match_value.info__ind(), legacy); } else { TTCN_Logger::log_event_str("{ info_ind := "); single_value.field_info__ind->log_match(match_value.info__ind(), legacy); TTCN_Logger::log_event_str(" }"); } break; case PCUIF__MsgUnion::ALT_act__req: if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ TTCN_Logger::log_logmatch_info(".act_req"); single_value.field_act__req->log_match(match_value.act__req(), legacy); } else { TTCN_Logger::log_event_str("{ act_req := "); single_value.field_act__req->log_match(match_value.act__req(), legacy); TTCN_Logger::log_event_str(" }"); } break; case PCUIF__MsgUnion::ALT_time__ind: if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ TTCN_Logger::log_logmatch_info(".time_ind"); single_value.field_time__ind->log_match(match_value.time__ind(), legacy); } else { TTCN_Logger::log_event_str("{ time_ind := "); single_value.field_time__ind->log_match(match_value.time__ind(), legacy); TTCN_Logger::log_event_str(" }"); } break; case PCUIF__MsgUnion::ALT_pag__req: if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ TTCN_Logger::log_logmatch_info(".pag_req"); single_value.field_pag__req->log_match(match_value.pag__req(), legacy); } else { TTCN_Logger::log_event_str("{ pag_req := "); single_value.field_pag__req->log_match(match_value.pag__req(), legacy); TTCN_Logger::log_event_str(" }"); } break; default: TTCN_Logger::print_logmatch_buffer(); TTCN_Logger::log_event_str(""); } } 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 PCUIF__MsgUnion_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 PCUIF__MsgUnion::ALT_data__req: single_value.field_data__req->encode_text(text_buf); break; case PCUIF__MsgUnion::ALT_data__cnf: single_value.field_data__cnf->encode_text(text_buf); break; case PCUIF__MsgUnion::ALT_data__cnf__dt: single_value.field_data__cnf__dt->encode_text(text_buf); break; case PCUIF__MsgUnion::ALT_data__ind: single_value.field_data__ind->encode_text(text_buf); break; case PCUIF__MsgUnion::ALT_susp__req: single_value.field_susp__req->encode_text(text_buf); break; case PCUIF__MsgUnion::ALT_rts__req: single_value.field_rts__req->encode_text(text_buf); break; case PCUIF__MsgUnion::ALT_rach__ind: single_value.field_rach__ind->encode_text(text_buf); break; case PCUIF__MsgUnion::ALT_txt__ind: single_value.field_txt__ind->encode_text(text_buf); break; case PCUIF__MsgUnion::ALT_info__ind: single_value.field_info__ind->encode_text(text_buf); break; case PCUIF__MsgUnion::ALT_act__req: single_value.field_act__req->encode_text(text_buf); break; case PCUIF__MsgUnion::ALT_time__ind: single_value.field_time__ind->encode_text(text_buf); break; case PCUIF__MsgUnion::ALT_pag__req: single_value.field_pag__req->encode_text(text_buf); break; default: TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @PCUIF_Types.PCUIF_MsgUnion."); } 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 @PCUIF_Types.PCUIF_MsgUnion."); } } void PCUIF__MsgUnion_template::decode_text(Text_Buf& text_buf) { clean_up(); decode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: { single_value.union_selection = PCUIF__MsgUnion::UNBOUND_VALUE; PCUIF__MsgUnion::union_selection_type new_selection = (PCUIF__MsgUnion::union_selection_type)text_buf.pull_int().get_val(); switch (new_selection) { case PCUIF__MsgUnion::ALT_data__req: single_value.field_data__req = new PCUIF__data_template; single_value.field_data__req->decode_text(text_buf); break; case PCUIF__MsgUnion::ALT_data__cnf: single_value.field_data__cnf = new PCUIF__data_template; single_value.field_data__cnf->decode_text(text_buf); break; case PCUIF__MsgUnion::ALT_data__cnf__dt: single_value.field_data__cnf__dt = new PCUIF__data__cnf__dt_template; single_value.field_data__cnf__dt->decode_text(text_buf); break; case PCUIF__MsgUnion::ALT_data__ind: single_value.field_data__ind = new PCUIF__data_template; single_value.field_data__ind->decode_text(text_buf); break; case PCUIF__MsgUnion::ALT_susp__req: single_value.field_susp__req = new PCUIF__susp__req_template; single_value.field_susp__req->decode_text(text_buf); break; case PCUIF__MsgUnion::ALT_rts__req: single_value.field_rts__req = new PCUIF__rts__req_template; single_value.field_rts__req->decode_text(text_buf); break; case PCUIF__MsgUnion::ALT_rach__ind: single_value.field_rach__ind = new PCUIF__rach__ind_template; single_value.field_rach__ind->decode_text(text_buf); break; case PCUIF__MsgUnion::ALT_txt__ind: single_value.field_txt__ind = new PCUIF__txt__ind_template; single_value.field_txt__ind->decode_text(text_buf); break; case PCUIF__MsgUnion::ALT_info__ind: single_value.field_info__ind = new PCUIF__info__ind_template; single_value.field_info__ind->decode_text(text_buf); break; case PCUIF__MsgUnion::ALT_act__req: single_value.field_act__req = new PCUIF__act__req_template; single_value.field_act__req->decode_text(text_buf); break; case PCUIF__MsgUnion::ALT_time__ind: single_value.field_time__ind = new PCUIF__time__ind_template; single_value.field_time__ind->decode_text(text_buf); break; case PCUIF__MsgUnion::ALT_pag__req: single_value.field_pag__req = new PCUIF__pag__req_template; single_value.field_pag__req->decode_text(text_buf); break; default: TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @PCUIF_Types.PCUIF_MsgUnion."); } 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 PCUIF__MsgUnion_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 @PCUIF_Types.PCUIF_MsgUnion."); } } boolean PCUIF__MsgUnion_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__MsgUnion_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(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 `@PCUIF_Types.PCUIF_MsgUnion'"); } if (strcmp("data_req", param_field) == 0) { data__req().set_param(param); return; } else if (strcmp("data_cnf", param_field) == 0) { data__cnf().set_param(param); return; } else if (strcmp("data_cnf_dt", param_field) == 0) { data__cnf__dt().set_param(param); return; } else if (strcmp("data_ind", param_field) == 0) { data__ind().set_param(param); return; } else if (strcmp("susp_req", param_field) == 0) { susp__req().set_param(param); return; } else if (strcmp("rts_req", param_field) == 0) { rts__req().set_param(param); return; } else if (strcmp("rach_ind", param_field) == 0) { rach__ind().set_param(param); return; } else if (strcmp("txt_ind", param_field) == 0) { txt__ind().set_param(param); return; } else if (strcmp("info_ind", param_field) == 0) { info__ind().set_param(param); return; } else if (strcmp("act_req", param_field) == 0) { act__req().set_param(param); return; } else if (strcmp("time_ind", param_field) == 0) { time__ind().set_param(param); return; } else if (strcmp("pag_req", param_field) == 0) { pag__req().set_param(param); return; } else param.error("Field `%s' not found in union template type `@PCUIF_Types.PCUIF_MsgUnion'", param_field); } param.basic_check(Module_Param::BC_TEMPLATE, "union template"); Module_Param_Ptr m_p = ¶m; 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: { PCUIF__MsgUnion_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_iget_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", "@PCUIF_Types.PCUIF_MsgUnion"); 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, "data_req")) { data__req().set_param(*mp_last); break; } if (!strcmp(last_name, "data_cnf")) { data__cnf().set_param(*mp_last); break; } if (!strcmp(last_name, "data_cnf_dt")) { data__cnf__dt().set_param(*mp_last); break; } if (!strcmp(last_name, "data_ind")) { data__ind().set_param(*mp_last); break; } if (!strcmp(last_name, "susp_req")) { susp__req().set_param(*mp_last); break; } if (!strcmp(last_name, "rts_req")) { rts__req().set_param(*mp_last); break; } if (!strcmp(last_name, "rach_ind")) { rach__ind().set_param(*mp_last); break; } if (!strcmp(last_name, "txt_ind")) { txt__ind().set_param(*mp_last); break; } if (!strcmp(last_name, "info_ind")) { info__ind().set_param(*mp_last); break; } if (!strcmp(last_name, "act_req")) { act__req().set_param(*mp_last); break; } if (!strcmp(last_name, "time_ind")) { time__ind().set_param(*mp_last); break; } if (!strcmp(last_name, "pag_req")) { pag__req().set_param(*mp_last); break; } mp_last->error("Field %s does not exist in type @PCUIF_Types.PCUIF_MsgUnion.", last_name); } break; default: param.type_error("union template", "@PCUIF_Types.PCUIF_MsgUnion"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__MsgUnion_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 PCUIF__MsgUnion::ALT_data__req: single_value.field_data__req->check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_MsgUnion"); return; case PCUIF__MsgUnion::ALT_data__cnf: single_value.field_data__cnf->check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_MsgUnion"); return; case PCUIF__MsgUnion::ALT_data__cnf__dt: single_value.field_data__cnf__dt->check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_MsgUnion"); return; case PCUIF__MsgUnion::ALT_data__ind: single_value.field_data__ind->check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_MsgUnion"); return; case PCUIF__MsgUnion::ALT_susp__req: single_value.field_susp__req->check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_MsgUnion"); return; case PCUIF__MsgUnion::ALT_rts__req: single_value.field_rts__req->check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_MsgUnion"); return; case PCUIF__MsgUnion::ALT_rach__ind: single_value.field_rach__ind->check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_MsgUnion"); return; case PCUIF__MsgUnion::ALT_txt__ind: single_value.field_txt__ind->check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_MsgUnion"); return; case PCUIF__MsgUnion::ALT_info__ind: single_value.field_info__ind->check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_MsgUnion"); return; case PCUIF__MsgUnion::ALT_act__req: single_value.field_act__req->check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_MsgUnion"); return; case PCUIF__MsgUnion::ALT_time__ind: single_value.field_time__ind->check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_MsgUnion"); return; case PCUIF__MsgUnion::ALT_pag__req: single_value.field_pag__req->check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_MsgUnion"); return; default: TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @PCUIF_Types.PCUIF_MsgUnion."); } 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 : "@PCUIF_Types.PCUIF_MsgUnion"); } PCUIF__Message::PCUIF__Message() { } PCUIF__Message::PCUIF__Message(const PCUIF__MsgType& par_msg__type, const INTEGER& par_bts__nr, const OCTETSTRING& par_spare, const PCUIF__MsgUnion& par_u) : field_msg__type(par_msg__type), field_bts__nr(par_bts__nr), field_spare(par_spare), field_u(par_u) { } PCUIF__Message::PCUIF__Message(const PCUIF__Message& other_value) { if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_Message."); if (other_value.msg__type().is_bound()) field_msg__type = other_value.msg__type(); else field_msg__type.clean_up(); if (other_value.bts__nr().is_bound()) field_bts__nr = other_value.bts__nr(); else field_bts__nr.clean_up(); if (other_value.spare().is_bound()) field_spare = other_value.spare(); else field_spare.clean_up(); if (other_value.u().is_bound()) field_u = other_value.u(); else field_u.clean_up(); } void PCUIF__Message::clean_up() { field_msg__type.clean_up(); field_bts__nr.clean_up(); field_spare.clean_up(); field_u.clean_up(); } const TTCN_Typedescriptor_t* PCUIF__Message::get_descriptor() const { return &PCUIF__Message_descr_; } PCUIF__Message& PCUIF__Message::operator=(const PCUIF__Message& other_value) { if (this != &other_value) { if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @PCUIF_Types.PCUIF_Message."); if (other_value.msg__type().is_bound()) field_msg__type = other_value.msg__type(); else field_msg__type.clean_up(); if (other_value.bts__nr().is_bound()) field_bts__nr = other_value.bts__nr(); else field_bts__nr.clean_up(); if (other_value.spare().is_bound()) field_spare = other_value.spare(); else field_spare.clean_up(); if (other_value.u().is_bound()) field_u = other_value.u(); else field_u.clean_up(); } return *this; } boolean PCUIF__Message::operator==(const PCUIF__Message& other_value) const { return field_msg__type==other_value.field_msg__type && field_bts__nr==other_value.field_bts__nr && field_spare==other_value.field_spare && field_u==other_value.field_u; } boolean PCUIF__Message::is_bound() const { if(field_msg__type.is_bound()) return TRUE; if(field_bts__nr.is_bound()) return TRUE; if(field_spare.is_bound()) return TRUE; if(field_u.is_bound()) return TRUE; return FALSE; } boolean PCUIF__Message::is_value() const { if(!field_msg__type.is_value()) return FALSE; if(!field_bts__nr.is_value()) return FALSE; if(!field_spare.is_value()) return FALSE; if(!field_u.is_value()) return FALSE; return TRUE; } void PCUIF__Message::log() const { if (!is_bound()) { TTCN_Logger::log_event_unbound(); return; } TTCN_Logger::log_event_str("{ msg_type := "); field_msg__type.log(); TTCN_Logger::log_event_str(", bts_nr := "); field_bts__nr.log(); TTCN_Logger::log_event_str(", spare := "); field_spare.log(); TTCN_Logger::log_event_str(", u := "); field_u.log(); TTCN_Logger::log_event_str(" }"); } void PCUIF__Message::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 (40 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) msg__type().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) bts__nr().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) spare().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) u().set_param(*param.get_elem(3)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "msg_type")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { msg__type().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "bts_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { bts__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "spare")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { spare().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "u")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { u().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_Message: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record value", "@PCUIF_Types.PCUIF_Message"); } } void PCUIF__Message::set_implicit_omit() { if (msg__type().is_bound()) msg__type().set_implicit_omit(); if (bts__nr().is_bound()) bts__nr().set_implicit_omit(); if (spare().is_bound()) spare().set_implicit_omit(); if (u().is_bound()) u().set_implicit_omit(); } void PCUIF__Message::encode_text(Text_Buf& text_buf) const { field_msg__type.encode_text(text_buf); field_bts__nr.encode_text(text_buf); field_spare.encode_text(text_buf); field_u.encode_text(text_buf); } void PCUIF__Message::decode_text(Text_Buf& text_buf) { field_msg__type.decode_text(text_buf); field_bts__nr.decode_text(text_buf); field_spare.decode_text(text_buf); field_u.decode_text(text_buf); } void PCUIF__Message::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 PCUIF__Message::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 PCUIF__Message::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, PCUIF__Message_msg__type_descr_.raw->forceomit); decoded_field_length = field_msg__type.RAW_decode(PCUIF__Message_msg__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, PCUIF__Message_bts__nr_descr_.raw->forceomit); decoded_field_length = field_bts__nr.RAW_decode(PCUIF__Message_bts__nr_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()); RAW_Force_Omit field_2_force_omit(2, force_omit, PCUIF__Message_spare_descr_.raw->forceomit); decoded_field_length = field_spare.RAW_decode(PCUIF__Message_spare_descr_, p_buf, limit, local_top_order, no_err, -1, 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()); if (field_msg__type == PCUIF__MsgType::PCU__IF__MSG__DATA__REQ) selected_field = 0; else if (field_msg__type == PCUIF__MsgType::PCU__IF__MSG__DATA__CNF) selected_field = 1; else if (field_msg__type == PCUIF__MsgType::PCU__IF__MSG__DATA__CNF__DT) selected_field = 2; else if (field_msg__type == PCUIF__MsgType::PCU__IF__MSG__DATA__IND) selected_field = 3; else if (field_msg__type == PCUIF__MsgType::PCU__IF__MSG__SUSP__REQ) selected_field = 4; else if (field_msg__type == PCUIF__MsgType::PCU__IF__MSG__RTS__REQ) selected_field = 5; else if (field_msg__type == PCUIF__MsgType::PCU__IF__MSG__RACH__IND) selected_field = 6; else if (field_msg__type == PCUIF__MsgType::PCU__IF__MSG__TXT__IND) selected_field = 7; else if (field_msg__type == PCUIF__MsgType::PCU__IF__MSG__INFO__IND) selected_field = 8; else if (field_msg__type == PCUIF__MsgType::PCU__IF__MSG__ACT__REQ) selected_field = 9; else if (field_msg__type == PCUIF__MsgType::PCU__IF__MSG__TIME__IND) selected_field = 10; else if (field_msg__type == PCUIF__MsgType::PCU__IF__MSG__PAG__REQ) selected_field = 11; else selected_field = -1; RAW_Force_Omit field_3_force_omit(3, force_omit, PCUIF__Message_u_descr_.raw->forceomit); decoded_field_length = field_u.RAW_decode(PCUIF__Message_u_descr_, p_buf, limit, local_top_order, no_err, selected_field, TRUE, &field_3_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 PCUIF__Message::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 = 4; myleaf.body.node.nodes = init_nodes_of_enc_tree(4); myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, PCUIF__Message_msg__type_descr_.raw); myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, PCUIF__Message_bts__nr_descr_.raw); myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 2, PCUIF__Message_spare_descr_.raw); myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 3, PCUIF__Message_u_descr_.raw); encoded_length += field_msg__type.RAW_encode(PCUIF__Message_msg__type_descr_, *myleaf.body.node.nodes[0]); encoded_length += field_bts__nr.RAW_encode(PCUIF__Message_bts__nr_descr_, *myleaf.body.node.nodes[1]); encoded_length += field_spare.RAW_encode(PCUIF__Message_spare_descr_, *myleaf.body.node.nodes[2]); encoded_length += field_u.RAW_encode(PCUIF__Message_u_descr_, *myleaf.body.node.nodes[3]); switch (field_u.get_selection()) { case PCUIF__MsgUnion::ALT_data__req: if (field_msg__type != PCUIF__MsgType::PCU__IF__MSG__DATA__REQ) { 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); PCUIF__MsgType new_val(PCUIF__MsgType::PCU__IF__MSG__DATA__REQ); RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos); if (temp_leaf != NULL) new_val.RAW_encode(PCUIF__Message_msg__type_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 PCUIF__MsgUnion::ALT_data__cnf: if (field_msg__type != PCUIF__MsgType::PCU__IF__MSG__DATA__CNF) { 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); PCUIF__MsgType new_val(PCUIF__MsgType::PCU__IF__MSG__DATA__CNF); RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos); if (temp_leaf != NULL) new_val.RAW_encode(PCUIF__Message_msg__type_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 PCUIF__MsgUnion::ALT_data__cnf__dt: if (field_msg__type != PCUIF__MsgType::PCU__IF__MSG__DATA__CNF__DT) { 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); PCUIF__MsgType new_val(PCUIF__MsgType::PCU__IF__MSG__DATA__CNF__DT); RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos); if (temp_leaf != NULL) new_val.RAW_encode(PCUIF__Message_msg__type_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 PCUIF__MsgUnion::ALT_data__ind: if (field_msg__type != PCUIF__MsgType::PCU__IF__MSG__DATA__IND) { 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); PCUIF__MsgType new_val(PCUIF__MsgType::PCU__IF__MSG__DATA__IND); RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos); if (temp_leaf != NULL) new_val.RAW_encode(PCUIF__Message_msg__type_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 PCUIF__MsgUnion::ALT_susp__req: if (field_msg__type != PCUIF__MsgType::PCU__IF__MSG__SUSP__REQ) { 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); PCUIF__MsgType new_val(PCUIF__MsgType::PCU__IF__MSG__SUSP__REQ); RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos); if (temp_leaf != NULL) new_val.RAW_encode(PCUIF__Message_msg__type_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 PCUIF__MsgUnion::ALT_rts__req: if (field_msg__type != PCUIF__MsgType::PCU__IF__MSG__RTS__REQ) { 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); PCUIF__MsgType new_val(PCUIF__MsgType::PCU__IF__MSG__RTS__REQ); RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos); if (temp_leaf != NULL) new_val.RAW_encode(PCUIF__Message_msg__type_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 PCUIF__MsgUnion::ALT_rach__ind: if (field_msg__type != PCUIF__MsgType::PCU__IF__MSG__RACH__IND) { 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); PCUIF__MsgType new_val(PCUIF__MsgType::PCU__IF__MSG__RACH__IND); RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos); if (temp_leaf != NULL) new_val.RAW_encode(PCUIF__Message_msg__type_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 PCUIF__MsgUnion::ALT_txt__ind: if (field_msg__type != PCUIF__MsgType::PCU__IF__MSG__TXT__IND) { 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); PCUIF__MsgType new_val(PCUIF__MsgType::PCU__IF__MSG__TXT__IND); RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos); if (temp_leaf != NULL) new_val.RAW_encode(PCUIF__Message_msg__type_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 PCUIF__MsgUnion::ALT_info__ind: if (field_msg__type != PCUIF__MsgType::PCU__IF__MSG__INFO__IND) { 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); PCUIF__MsgType new_val(PCUIF__MsgType::PCU__IF__MSG__INFO__IND); RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos); if (temp_leaf != NULL) new_val.RAW_encode(PCUIF__Message_msg__type_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 PCUIF__MsgUnion::ALT_act__req: if (field_msg__type != PCUIF__MsgType::PCU__IF__MSG__ACT__REQ) { 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); PCUIF__MsgType new_val(PCUIF__MsgType::PCU__IF__MSG__ACT__REQ); RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos); if (temp_leaf != NULL) new_val.RAW_encode(PCUIF__Message_msg__type_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 PCUIF__MsgUnion::ALT_time__ind: if (field_msg__type != PCUIF__MsgType::PCU__IF__MSG__TIME__IND) { 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); PCUIF__MsgType new_val(PCUIF__MsgType::PCU__IF__MSG__TIME__IND); RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos); if (temp_leaf != NULL) new_val.RAW_encode(PCUIF__Message_msg__type_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 PCUIF__MsgUnion::ALT_pag__req: if (field_msg__type != PCUIF__MsgType::PCU__IF__MSG__PAG__REQ) { 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); PCUIF__MsgType new_val(PCUIF__MsgType::PCU__IF__MSG__PAG__REQ); RAW_enc_tree* temp_leaf = myleaf.get_node(pr_pos); if (temp_leaf != NULL) new_val.RAW_encode(PCUIF__Message_msg__type_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 PCUIF__Message_template::single_value_struct { PCUIF__MsgType_template field_msg__type; INTEGER_template field_bts__nr; OCTETSTRING_template field_spare; PCUIF__MsgUnion_template field_u; }; void PCUIF__Message_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_msg__type = ANY_VALUE; single_value->field_bts__nr = ANY_VALUE; single_value->field_spare = ANY_VALUE; single_value->field_u = ANY_VALUE; } } } void PCUIF__Message_template::copy_value(const PCUIF__Message& other_value) { single_value = new single_value_struct; if (other_value.msg__type().is_bound()) { single_value->field_msg__type = other_value.msg__type(); } else { single_value->field_msg__type.clean_up(); } if (other_value.bts__nr().is_bound()) { single_value->field_bts__nr = other_value.bts__nr(); } else { single_value->field_bts__nr.clean_up(); } if (other_value.spare().is_bound()) { single_value->field_spare = other_value.spare(); } else { single_value->field_spare.clean_up(); } if (other_value.u().is_bound()) { single_value->field_u = other_value.u(); } else { single_value->field_u.clean_up(); } set_selection(SPECIFIC_VALUE); } void PCUIF__Message_template::copy_template(const PCUIF__Message_template& other_value) { switch (other_value.template_selection) { case SPECIFIC_VALUE: single_value = new single_value_struct; if (UNINITIALIZED_TEMPLATE != other_value.msg__type().get_selection()) { single_value->field_msg__type = other_value.msg__type(); } else { single_value->field_msg__type.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.bts__nr().get_selection()) { single_value->field_bts__nr = other_value.bts__nr(); } else { single_value->field_bts__nr.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.spare().get_selection()) { single_value->field_spare = other_value.spare(); } else { single_value->field_spare.clean_up(); } if (UNINITIALIZED_TEMPLATE != other_value.u().get_selection()) { single_value->field_u = other_value.u(); } else { single_value->field_u.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 PCUIF__Message_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 @PCUIF_Types.PCUIF_Message."); break; } set_selection(other_value); } PCUIF__Message_template::PCUIF__Message_template() { } PCUIF__Message_template::PCUIF__Message_template(template_sel other_value) : Base_Template(other_value) { check_single_selection(other_value); } PCUIF__Message_template::PCUIF__Message_template(const PCUIF__Message& other_value) { copy_value(other_value); } PCUIF__Message_template::PCUIF__Message_template(const OPTIONAL& other_value) { switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__Message&)other_value); break; case OPTIONAL_OMIT: set_selection(OMIT_VALUE); break; default: TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_Message from an unbound optional field."); } } PCUIF__Message_template::PCUIF__Message_template(const PCUIF__Message_template& other_value) : Base_Template() { copy_template(other_value); } PCUIF__Message_template::~PCUIF__Message_template() { clean_up(); } PCUIF__Message_template& PCUIF__Message_template::operator=(template_sel other_value) { check_single_selection(other_value); clean_up(); set_selection(other_value); return *this; } PCUIF__Message_template& PCUIF__Message_template::operator=(const PCUIF__Message& other_value) { clean_up(); copy_value(other_value); return *this; } PCUIF__Message_template& PCUIF__Message_template::operator=(const OPTIONAL& other_value) { clean_up(); switch (other_value.get_selection()) { case OPTIONAL_PRESENT: copy_value((const PCUIF__Message&)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 @PCUIF_Types.PCUIF_Message."); } return *this; } PCUIF__Message_template& PCUIF__Message_template::operator=(const PCUIF__Message_template& other_value) { if (&other_value != this) { clean_up(); copy_template(other_value); } return *this; } boolean PCUIF__Message_template::match(const PCUIF__Message& 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.msg__type().is_bound()) return FALSE; if(!single_value->field_msg__type.match(other_value.msg__type(), legacy))return FALSE; if(!other_value.bts__nr().is_bound()) return FALSE; if(!single_value->field_bts__nr.match(other_value.bts__nr(), legacy))return FALSE; if(!other_value.spare().is_bound()) return FALSE; if(!single_value->field_spare.match(other_value.spare(), legacy))return FALSE; if(!other_value.u().is_bound()) return FALSE; if(!single_value->field_u.match(other_value.u(), 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 @PCUIF_Types.PCUIF_Message."); } return FALSE; } boolean PCUIF__Message_template::is_bound() const { if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; if (template_selection != SPECIFIC_VALUE) return TRUE; if (single_value->field_msg__type.is_bound()) return TRUE; if (single_value->field_bts__nr.is_bound()) return TRUE; if (single_value->field_spare.is_bound()) return TRUE; if (single_value->field_u.is_bound()) return TRUE; return FALSE; } boolean PCUIF__Message_template::is_value() const { if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; if (!single_value->field_msg__type.is_value()) return FALSE; if (!single_value->field_bts__nr.is_value()) return FALSE; if (!single_value->field_spare.is_value()) return FALSE; if (!single_value->field_u.is_value()) return FALSE; return TRUE; } void PCUIF__Message_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; } PCUIF__Message PCUIF__Message_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 @PCUIF_Types.PCUIF_Message."); PCUIF__Message ret_val; if (single_value->field_msg__type.is_bound()) { ret_val.msg__type() = single_value->field_msg__type.valueof(); } if (single_value->field_bts__nr.is_bound()) { ret_val.bts__nr() = single_value->field_bts__nr.valueof(); } if (single_value->field_spare.is_bound()) { ret_val.spare() = single_value->field_spare.valueof(); } if (single_value->field_u.is_bound()) { ret_val.u() = single_value->field_u.valueof(); } return ret_val; } void PCUIF__Message_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 @PCUIF_Types.PCUIF_Message."); clean_up(); set_selection(template_type); value_list.n_values = list_length; value_list.list_value = new PCUIF__Message_template[list_length]; } PCUIF__Message_template& PCUIF__Message_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 @PCUIF_Types.PCUIF_Message."); if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of type @PCUIF_Types.PCUIF_Message."); return value_list.list_value[list_index]; } PCUIF__MsgType_template& PCUIF__Message_template::msg__type() { set_specific(); return single_value->field_msg__type; } const PCUIF__MsgType_template& PCUIF__Message_template::msg__type() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field msg_type of a non-specific template of type @PCUIF_Types.PCUIF_Message."); return single_value->field_msg__type; } INTEGER_template& PCUIF__Message_template::bts__nr() { set_specific(); return single_value->field_bts__nr; } const INTEGER_template& PCUIF__Message_template::bts__nr() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field bts_nr of a non-specific template of type @PCUIF_Types.PCUIF_Message."); return single_value->field_bts__nr; } OCTETSTRING_template& PCUIF__Message_template::spare() { set_specific(); return single_value->field_spare; } const OCTETSTRING_template& PCUIF__Message_template::spare() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field spare of a non-specific template of type @PCUIF_Types.PCUIF_Message."); return single_value->field_spare; } PCUIF__MsgUnion_template& PCUIF__Message_template::u() { set_specific(); return single_value->field_u; } const PCUIF__MsgUnion_template& PCUIF__Message_template::u() const { if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field u of a non-specific template of type @PCUIF_Types.PCUIF_Message."); return single_value->field_u; } int PCUIF__Message_template::size_of() const { if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_Message which has an ifpresent attribute."); switch (template_selection) { case SPECIFIC_VALUE: return 4; case VALUE_LIST: { if (value_list.n_values<1) TTCN_error("Internal error: Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_Message 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 @PCUIF_Types.PCUIF_Message containing a value list with different sizes."); } return item_size; } case OMIT_VALUE: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_Message containing omit value."); case ANY_VALUE: case ANY_OR_OMIT: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_Message containing */? value."); case COMPLEMENTED_LIST: TTCN_error("Performing sizeof() operation on a template of type @PCUIF_Types.PCUIF_Message containing complemented list."); default: TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_Message."); } return 0; } void PCUIF__Message_template::log() const { switch (template_selection) { case SPECIFIC_VALUE: TTCN_Logger::log_event_str("{ msg_type := "); single_value->field_msg__type.log(); TTCN_Logger::log_event_str(", bts_nr := "); single_value->field_bts__nr.log(); TTCN_Logger::log_event_str(", spare := "); single_value->field_spare.log(); TTCN_Logger::log_event_str(", u := "); single_value->field_u.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 PCUIF__Message_template::log_match(const PCUIF__Message& 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_msg__type.match(match_value.msg__type(), legacy)){ TTCN_Logger::log_logmatch_info(".msg_type"); single_value->field_msg__type.log_match(match_value.msg__type(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_bts__nr.match(match_value.bts__nr(), legacy)){ TTCN_Logger::log_logmatch_info(".bts_nr"); single_value->field_bts__nr.log_match(match_value.bts__nr(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_spare.match(match_value.spare(), legacy)){ TTCN_Logger::log_logmatch_info(".spare"); single_value->field_spare.log_match(match_value.spare(), legacy); TTCN_Logger::set_logmatch_buffer_len(previous_size); } if(!single_value->field_u.match(match_value.u(), legacy)){ TTCN_Logger::log_logmatch_info(".u"); single_value->field_u.log_match(match_value.u(), 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("{ msg_type := "); single_value->field_msg__type.log_match(match_value.msg__type(), legacy); TTCN_Logger::log_event_str(", bts_nr := "); single_value->field_bts__nr.log_match(match_value.bts__nr(), legacy); TTCN_Logger::log_event_str(", spare := "); single_value->field_spare.log_match(match_value.spare(), legacy); TTCN_Logger::log_event_str(", u := "); single_value->field_u.log_match(match_value.u(), 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 PCUIF__Message_template::encode_text(Text_Buf& text_buf) const { encode_text_base(text_buf); switch (template_selection) { case SPECIFIC_VALUE: single_value->field_msg__type.encode_text(text_buf); single_value->field_bts__nr.encode_text(text_buf); single_value->field_spare.encode_text(text_buf); single_value->field_u.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 @PCUIF_Types.PCUIF_Message."); } } void PCUIF__Message_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_msg__type.decode_text(text_buf); single_value->field_bts__nr.decode_text(text_buf); single_value->field_spare.decode_text(text_buf); single_value->field_u.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 PCUIF__Message_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 @PCUIF_Types.PCUIF_Message."); } } void PCUIF__Message_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: { PCUIF__Message_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_i0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) msg__type().set_param(*param.get_elem(0)); if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) bts__nr().set_param(*param.get_elem(1)); if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) spare().set_param(*param.get_elem(2)); if (param.get_size()>3 && param.get_elem(3)->get_type()!=Module_Param::MP_NotUsed) u().set_param(*param.get_elem(3)); break; case Module_Param::MP_Assignment_List: { Vector value_used(param.get_size()); value_used.resize(param.get_size(), FALSE); for (size_t val_idx=0; val_idxget_id()->get_name(), "msg_type")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { msg__type().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "bts_nr")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { bts__nr().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "spare")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { spare().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxget_id()->get_name(), "u")) { if (curr_param->get_type()!=Module_Param::MP_NotUsed) { u().set_param(*curr_param); } value_used[val_idx]=TRUE; } } for (size_t val_idx=0; val_idxerror("Non existent field name in type @PCUIF_Types.PCUIF_Message: %s", curr_param->get_id()->get_name()); break; } } break; default: param.type_error("record template", "@PCUIF_Types.PCUIF_Message"); } is_ifpresent = param.get_ifpresent(); } void PCUIF__Message_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_msg__type.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Message"); single_value->field_bts__nr.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Message"); single_value->field_spare.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Message"); single_value->field_u.check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_Message"); 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 : "@PCUIF_Types.PCUIF_Message"); } boolean PCUIF__Message_template::is_present(boolean legacy) const { if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; return !match_omit(legacy); } boolean PCUIF__Message_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_idxn_elements == 0; } void PCUIF__InfoTrxs_0_encoder(const PCUIF__InfoTrx& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_InfoTrx' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__InfoTrxs_0_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__InfoTrxs_0_decoder(OCTETSTRING& input_stream, PCUIF__InfoTrx& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_InfoTrx' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__InfoTrxs_0_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__InfoTrxs_encoder(const PCUIF__InfoTrxs& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_InfoTrxs' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__InfoTrxs_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__InfoTrxs_decoder(OCTETSTRING& input_stream, PCUIF__InfoTrxs& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_InfoTrxs' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__InfoTrxs_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_version_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_version_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_version_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_version_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_flags_encoder(const PCUIF__Flags& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_Flags' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_flags_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_flags_decoder(OCTETSTRING& input_stream, PCUIF__Flags& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_Flags' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_flags_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_trx_encoder(const PCUIF__InfoTrxs& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_InfoTrxs' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_trx_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_trx_decoder(OCTETSTRING& input_stream, PCUIF__InfoTrxs& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_InfoTrxs' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_trx_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_bsic_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_bsic_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_bsic_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_bsic_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_mcc_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_mcc_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_mcc_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_mcc_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_mnc_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_mnc_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_mnc_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_mnc_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_mnc__3__digits_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_mnc__3__digits_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_mnc__3__digits_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_mnc__3__digits_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_lac_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_lac_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_lac_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_lac_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_rac_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_rac_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_rac_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_rac_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_nsei_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_nsei_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_nsei_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_nsei_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_nse__timer_0_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_nse__timer_0_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_nse__timer_0_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_nse__timer_0_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_nse__timer_encoder(const PCUIF__info__ind_nse__timer& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind.nse_timer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_nse__timer_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_nse__timer_decoder(OCTETSTRING& input_stream, PCUIF__info__ind_nse__timer& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind.nse_timer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_nse__timer_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_cell__timer_0_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_cell__timer_0_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_cell__timer_0_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_cell__timer_0_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_cell__timer_encoder(const PCUIF__info__ind_cell__timer& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind.cell_timer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_cell__timer_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_cell__timer_decoder(OCTETSTRING& input_stream, PCUIF__info__ind_cell__timer& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind.cell_timer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_cell__timer_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_cell__id_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_cell__id_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_cell__id_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_cell__id_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_repeat__time_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_repeat__time_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_repeat__time_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_repeat__time_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_repeat__count_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_repeat__count_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_repeat__count_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_repeat__count_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_bvci_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_bvci_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_bvci_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_bvci_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_t3142_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_t3142_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_t3142_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_t3142_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_t3169_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_t3169_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_t3169_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_t3169_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_t3191_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_t3191_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_t3191_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_t3191_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_t3193__10ms_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_t3193__10ms_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_t3193__10ms_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_t3193__10ms_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_t3195_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_t3195_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_t3195_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_t3195_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_t3101_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_t3101_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_t3101_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_t3101_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_t3103_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_t3103_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_t3103_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_t3103_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_t3105_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_t3105_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_t3105_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_t3105_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_cv__countdown_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_cv__countdown_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_cv__countdown_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_cv__countdown_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_dl__tbf__ext_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_dl__tbf__ext_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_dl__tbf__ext_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_dl__tbf__ext_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_ul__tbf__ext_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_ul__tbf__ext_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_ul__tbf__ext_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_ul__tbf__ext_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_initial__cs_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_initial__cs_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_initial__cs_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_initial__cs_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_initial__mcs_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_initial__mcs_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_initial__mcs_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_initial__mcs_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_nsvci_0_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_nsvci_0_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_nsvci_0_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_nsvci_0_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_nsvci_encoder(const PCUIF__info__ind_nsvci& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind.nsvci' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_nsvci_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_nsvci_decoder(OCTETSTRING& input_stream, PCUIF__info__ind_nsvci& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind.nsvci' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_nsvci_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_local__pprt_0_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_local__pprt_0_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_local__pprt_0_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_local__pprt_0_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_local__pprt_encoder(const PCUIF__info__ind_local__pprt& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind.local_pprt' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_local__pprt_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_local__pprt_decoder(OCTETSTRING& input_stream, PCUIF__info__ind_local__pprt& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind.local_pprt' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_local__pprt_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_remote__port_0_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_remote__port_0_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_remote__port_0_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_remote__port_0_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_remote__port_encoder(const PCUIF__info__ind_remote__port& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind.remote_port' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_remote__port_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_remote__port_decoder(OCTETSTRING& input_stream, PCUIF__info__ind_remote__port& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind.remote_port' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_remote__port_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_remote__ip_0_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_remote__ip_0_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_remote__ip_0_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_remote__ip_0_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_remote__ip_encoder(const PCUIF__info__ind_remote__ip& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind.remote_ip' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_remote__ip_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_remote__ip_decoder(OCTETSTRING& input_stream, PCUIF__info__ind_remote__ip& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind.remote_ip' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_remote__ip_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__info__ind_encoder(const PCUIF__info__ind& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__info__ind_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__info__ind_decoder(OCTETSTRING& input_stream, PCUIF__info__ind& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__info__ind_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__act__req_is__activate_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__act__req_is__activate_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__act__req_is__activate_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__act__req_is__activate_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__act__req_trx__nr_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__act__req_trx__nr_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__act__req_trx__nr_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__act__req_trx__nr_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__act__req_ts__nr_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__act__req_ts__nr_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__act__req_ts__nr_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__act__req_ts__nr_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__act__req_spare_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__act__req_spare_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__act__req_spare_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__act__req_spare_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__act__req_encoder(const PCUIF__act__req& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_act_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__act__req_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__act__req_decoder(OCTETSTRING& input_stream, PCUIF__act__req& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_act_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__act__req_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__time__ind_fn_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__time__ind_fn_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__time__ind_fn_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__time__ind_fn_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__time__ind_encoder(const PCUIF__time__ind& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_time_ind' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__time__ind_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__time__ind_decoder(OCTETSTRING& input_stream, PCUIF__time__ind& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_time_ind' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__time__ind_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__pag__req_sapi_encoder(const PCUIF__Sapi& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_Sapi' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__pag__req_sapi_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__pag__req_sapi_decoder(OCTETSTRING& input_stream, PCUIF__Sapi& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_Sapi' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__pag__req_sapi_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__pag__req_chan__needed_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__pag__req_chan__needed_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__pag__req_chan__needed_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__pag__req_chan__needed_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__pag__req_identity__lv_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__pag__req_identity__lv_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__pag__req_identity__lv_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__pag__req_identity__lv_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__pag__req_encoder(const PCUIF__pag__req& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_pag_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__pag__req_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__pag__req_decoder(OCTETSTRING& input_stream, PCUIF__pag__req& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_pag_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__pag__req_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__susp__req_tlli_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__susp__req_tlli_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__susp__req_tlli_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__susp__req_tlli_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__susp__req_ra__id_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__susp__req_ra__id_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__susp__req_ra__id_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__susp__req_ra__id_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__susp__req_cause_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__susp__req_cause_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__susp__req_cause_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__susp__req_cause_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__susp__req_encoder(const PCUIF__susp__req& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_susp_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__susp__req_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__susp__req_decoder(OCTETSTRING& input_stream, PCUIF__susp__req& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_susp_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__susp__req_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__MsgUnion_data__req_encoder(const PCUIF__data& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_data' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__MsgUnion_data__req_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__MsgUnion_data__req_decoder(OCTETSTRING& input_stream, PCUIF__data& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_data' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__MsgUnion_data__req_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__MsgUnion_data__cnf_encoder(const PCUIF__data& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_data' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__MsgUnion_data__cnf_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__MsgUnion_data__cnf_decoder(OCTETSTRING& input_stream, PCUIF__data& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_data' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__MsgUnion_data__cnf_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__MsgUnion_data__cnf__dt_encoder(const PCUIF__data__cnf__dt& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_data_cnf_dt' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__MsgUnion_data__cnf__dt_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__MsgUnion_data__cnf__dt_decoder(OCTETSTRING& input_stream, PCUIF__data__cnf__dt& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_data_cnf_dt' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__MsgUnion_data__cnf__dt_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__MsgUnion_data__ind_encoder(const PCUIF__data& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_data' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__MsgUnion_data__ind_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__MsgUnion_data__ind_decoder(OCTETSTRING& input_stream, PCUIF__data& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_data' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__MsgUnion_data__ind_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__MsgUnion_susp__req_encoder(const PCUIF__susp__req& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_susp_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__MsgUnion_susp__req_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__MsgUnion_susp__req_decoder(OCTETSTRING& input_stream, PCUIF__susp__req& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_susp_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__MsgUnion_susp__req_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__MsgUnion_rts__req_encoder(const PCUIF__rts__req& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_rts_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__MsgUnion_rts__req_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__MsgUnion_rts__req_decoder(OCTETSTRING& input_stream, PCUIF__rts__req& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_rts_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__MsgUnion_rts__req_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__MsgUnion_rach__ind_encoder(const PCUIF__rach__ind& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_rach_ind' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__MsgUnion_rach__ind_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__MsgUnion_rach__ind_decoder(OCTETSTRING& input_stream, PCUIF__rach__ind& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_rach_ind' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__MsgUnion_rach__ind_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__MsgUnion_txt__ind_encoder(const PCUIF__txt__ind& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_txt_ind' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__MsgUnion_txt__ind_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__MsgUnion_txt__ind_decoder(OCTETSTRING& input_stream, PCUIF__txt__ind& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_txt_ind' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__MsgUnion_txt__ind_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__MsgUnion_info__ind_encoder(const PCUIF__info__ind& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__MsgUnion_info__ind_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__MsgUnion_info__ind_decoder(OCTETSTRING& input_stream, PCUIF__info__ind& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_info_ind' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__MsgUnion_info__ind_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__MsgUnion_act__req_encoder(const PCUIF__act__req& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_act_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__MsgUnion_act__req_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__MsgUnion_act__req_decoder(OCTETSTRING& input_stream, PCUIF__act__req& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_act_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__MsgUnion_act__req_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__MsgUnion_time__ind_encoder(const PCUIF__time__ind& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_time_ind' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__MsgUnion_time__ind_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__MsgUnion_time__ind_decoder(OCTETSTRING& input_stream, PCUIF__time__ind& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_time_ind' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__MsgUnion_time__ind_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__MsgUnion_pag__req_encoder(const PCUIF__pag__req& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_pag_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__MsgUnion_pag__req_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__MsgUnion_pag__req_decoder(OCTETSTRING& input_stream, PCUIF__pag__req& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_pag_req' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__MsgUnion_pag__req_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__MsgUnion_encoder(const PCUIF__MsgUnion& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_MsgUnion' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__MsgUnion_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__MsgUnion_decoder(OCTETSTRING& input_stream, PCUIF__MsgUnion& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_MsgUnion' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__MsgUnion_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__Message_msg__type_encoder(const PCUIF__MsgType& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_MsgType' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__Message_msg__type_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__Message_msg__type_decoder(OCTETSTRING& input_stream, PCUIF__MsgType& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_MsgType' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__Message_msg__type_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__Message_bts__nr_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__Message_bts__nr_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__Message_bts__nr_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__Message_bts__nr_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__Message_spare_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__Message_spare_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__Message_spare_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__Message_spare_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__Message_u_encoder(const PCUIF__MsgUnion& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_MsgUnion' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__Message_u_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__Message_u_decoder(OCTETSTRING& input_stream, PCUIF__MsgUnion& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_MsgUnion' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__Message_u_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } void PCUIF__Message_encoder(const PCUIF__Message& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_Message' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf; input_value.encode(PCUIF__Message_descr_, ttcn_buf, coding_type, extra_options); ttcn_buf.get_string(output_stream); } INTEGER PCUIF__Message_decoder(OCTETSTRING& input_stream, PCUIF__Message& output_value, const UNIVERSAL_CHARSTRING& coding_name) { TTCN_EncDec::coding_t coding_type; unsigned int extra_options = 0; TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE); if (coding_type != TTCN_EncDec::CT_RAW) { TTCN_Logger::begin_event_log2str(); coding_name.log(); TTCN_error("Type `@PCUIF_Types.PCUIF_Message' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); } TTCN_Buffer ttcn_buf(input_stream); output_value.decode(PCUIF__Message_descr_, ttcn_buf, coding_type, extra_options); switch (TTCN_EncDec::get_last_error_type()) { case TTCN_EncDec::ET_NONE: ttcn_buf.cut(); ttcn_buf.get_string(input_stream); return 0; case TTCN_EncDec::ET_INCOMPL_MSG: case TTCN_EncDec::ET_LEN_ERR: return 2; default: return 1; } } OCTETSTRING enc__PCUIF__Message(const PCUIF__Message& pdu) { if (TTCN_Logger::log_this_event(TTCN_Logger::DEBUG_ENCDEC)) { TTCN_Logger::begin_event(TTCN_Logger::DEBUG_ENCDEC); TTCN_Logger::log_event_str("enc_PCUIF_Message(): Encoding @PCUIF_Types.PCUIF_Message: "); pdu.log(); TTCN_Logger::end_event(); } TTCN_EncDec::set_error_behavior(TTCN_EncDec::ET_ALL, TTCN_EncDec::EB_DEFAULT); TTCN_Buffer ttcn_buffer; pdu.encode(PCUIF__Message_descr_, ttcn_buffer, TTCN_EncDec::CT_RAW, 0); OCTETSTRING ret_val; ttcn_buffer.get_string(ret_val); if (TTCN_Logger::log_this_event(TTCN_Logger::DEBUG_ENCDEC)) { TTCN_Logger::begin_event(TTCN_Logger::DEBUG_ENCDEC); TTCN_Logger::log_event_str("enc_PCUIF_Message(): Stream after encoding: "); ret_val.log(); TTCN_Logger::end_event(); } return ret_val; } PCUIF__Message dec__PCUIF__Message(const OCTETSTRING& stream) { if (TTCN_Logger::log_this_event(TTCN_Logger::DEBUG_ENCDEC)) { TTCN_Logger::begin_event(TTCN_Logger::DEBUG_ENCDEC); TTCN_Logger::log_event_str("dec_PCUIF_Message(): Stream before decoding: "); stream.log(); TTCN_Logger::end_event(); } TTCN_EncDec::set_error_behavior(TTCN_EncDec::ET_ALL, TTCN_EncDec::EB_DEFAULT); TTCN_EncDec::clear_error(); TTCN_Buffer ttcn_buffer(stream); PCUIF__Message ret_val; ret_val.decode(PCUIF__Message_descr_, ttcn_buffer, TTCN_EncDec::CT_RAW); if (TTCN_Logger::log_this_event(TTCN_Logger::DEBUG_ENCDEC)) { TTCN_Logger::begin_event(TTCN_Logger::DEBUG_ENCDEC); TTCN_Logger::log_event_str("dec_PCUIF_Message(): Decoded @PCUIF_Types.PCUIF_Message: "); ret_val.log(); TTCN_Logger::end_event(); } if (TTCN_EncDec::get_last_error_type() == TTCN_EncDec::ET_NONE) { if (ttcn_buffer.get_pos() < ttcn_buffer.get_len() && TTCN_Logger::log_this_event(TTCN_WARNING)) { ttcn_buffer.cut(); OCTETSTRING remaining_stream; ttcn_buffer.get_string(remaining_stream); TTCN_Logger::begin_event(TTCN_WARNING); TTCN_Logger::log_event_str("dec_PCUIF_Message(): Warning: Data remained at the end of the stream after successful decoding: "); remaining_stream.log(); TTCN_Logger::end_event(); } } return ret_val; } PCUIF__Message_template ts__PCUIF__RTS__REQ(const INTEGER_template& bts__nr, const INTEGER_template& trx__nr, const INTEGER_template& ts__nr, const PCUIF__Sapi_template& sapi, const INTEGER_template& fn, const INTEGER_template& arfcn, const INTEGER_template& block__nr) { TTCN_Location current_location("PCUIF_Types.ttcn", 243, TTCN_Location::LOCATION_TEMPLATE, "ts_PCUIF_RTS_REQ"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__RTS__REQ; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__rts__req_template& tmp_0 = ret_val.u().rts__req(); tmp_0.sapi() = sapi; tmp_0.spare() = os_1; tmp_0.fn() = fn; tmp_0.arfcn() = arfcn; tmp_0.trx__nr() = trx__nr; tmp_0.ts__nr() = ts__nr; tmp_0.block__nr() = block__nr; } return ret_val; } PCUIF__Message_template tr__PCUIF__RTS__REQ(const INTEGER_template& bts__nr, const INTEGER_template& trx__nr, const INTEGER_template& ts__nr, const PCUIF__Sapi_template& sapi, const INTEGER_template& fn, const INTEGER_template& block__nr) { TTCN_Location current_location("PCUIF_Types.ttcn", 266, TTCN_Location::LOCATION_TEMPLATE, "tr_PCUIF_RTS_REQ"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__RTS__REQ; ret_val.bts__nr() = bts__nr; ret_val.spare() = ANY_VALUE; { PCUIF__rts__req_template& tmp_1 = ret_val.u().rts__req(); tmp_1.sapi() = sapi; tmp_1.spare() = ANY_VALUE; tmp_1.fn() = fn; tmp_1.arfcn() = ANY_VALUE; tmp_1.trx__nr() = trx__nr; tmp_1.ts__nr() = ts__nr; tmp_1.block__nr() = block__nr; } return ret_val; } PCUIF__Message_template ts__PCUIF__TXT__IND(const INTEGER& bts__nr, const PCUIF__TextType& tt, const CHARSTRING& text) { TTCN_Location current_location("PCUIF_Types.ttcn", 289, TTCN_Location::LOCATION_TEMPLATE, "ts_PCUIF_TXT_IND"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__TXT__IND; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__txt__ind_template& tmp_2 = ret_val.u().txt__ind(); tmp_2.txt__type() = tt; tmp_2.text() = text; } return ret_val; } PCUIF__Message_template tr__PCUIF__TXT__IND(const INTEGER_template& bts__nr, const PCUIF__TextType_template& tt, const CHARSTRING_template& text) { TTCN_Location current_location("PCUIF_Types.ttcn", 300, TTCN_Location::LOCATION_TEMPLATE, "tr_PCUIF_TXT_IND"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__TXT__IND; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__txt__ind_template& tmp_3 = ret_val.u().txt__ind(); tmp_3.txt__type() = tt; tmp_3.text() = text; } return ret_val; } PCUIF__Message_template ts__PCUIF__ACT__REQ(const INTEGER& bts__nr, const INTEGER& trx__nr, const INTEGER& ts__nr) { TTCN_Location current_location("PCUIF_Types.ttcn", 315, TTCN_Location::LOCATION_TEMPLATE, "ts_PCUIF_ACT_REQ"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__ACT__REQ; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__act__req_template& tmp_4 = ret_val.u().act__req(); tmp_4.is__activate() = 1; tmp_4.trx__nr() = trx__nr; tmp_4.ts__nr() = ts__nr; tmp_4.spare() = os_2; } return ret_val; } PCUIF__Message_template tr__PCUIF__ACT__REQ(const INTEGER_template& bts__nr, const INTEGER_template& trx__nr, const INTEGER_template& ts__nr) { TTCN_Location current_location("PCUIF_Types.ttcn", 328, TTCN_Location::LOCATION_TEMPLATE, "tr_PCUIF_ACT_REQ"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__ACT__REQ; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__act__req_template& tmp_5 = ret_val.u().act__req(); tmp_5.is__activate() = 1; tmp_5.trx__nr() = trx__nr; tmp_5.ts__nr() = ts__nr; tmp_5.spare() = os_2; } return ret_val; } PCUIF__Message_template ts__PCUIF__DEACT__REQ(const INTEGER& bts__nr, const INTEGER& trx__nr, const INTEGER& ts__nr) { TTCN_Location current_location("PCUIF_Types.ttcn", 343, TTCN_Location::LOCATION_TEMPLATE, "ts_PCUIF_DEACT_REQ"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__ACT__REQ; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__act__req_template& tmp_6 = ret_val.u().act__req(); tmp_6.is__activate() = 0; tmp_6.trx__nr() = trx__nr; tmp_6.ts__nr() = ts__nr; tmp_6.spare() = os_2; } return ret_val; } PCUIF__Message_template tr__PCUIF__DEACT__REQ(const INTEGER_template& bts__nr, const INTEGER_template& trx__nr, const INTEGER_template& ts__nr) { TTCN_Location current_location("PCUIF_Types.ttcn", 356, TTCN_Location::LOCATION_TEMPLATE, "tr_PCUIF_DEACT_REQ"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__ACT__REQ; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__act__req_template& tmp_7 = ret_val.u().act__req(); tmp_7.is__activate() = 0; tmp_7.trx__nr() = trx__nr; tmp_7.ts__nr() = ts__nr; tmp_7.spare() = os_2; } return ret_val; } PCUIF__Message_template ts__PCUIF__DATA__IND(const INTEGER_template& bts__nr, const INTEGER_template& trx__nr, const INTEGER_template& ts__nr, const INTEGER_template& block__nr, const PCUIF__Sapi_template& sapi, const OCTETSTRING_template& data, const INTEGER_template& fn, const INTEGER_template& arfcn, const INTEGER_template& rssi, const INTEGER_template& ber10k, const INTEGER_template& ta__offs__qbits, const INTEGER_template& lqual__cb) { TTCN_Location current_location("PCUIF_Types.ttcn", 371, TTCN_Location::LOCATION_TEMPLATE, "ts_PCUIF_DATA_IND"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__DATA__IND; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__data_template& tmp_8 = ret_val.u().data__ind(); tmp_8.sapi() = sapi; tmp_8.len() = data.valueof().lengthof(); tmp_8.data() = data; tmp_8.fn() = fn; tmp_8.arfcn() = arfcn; tmp_8.trx__nr() = trx__nr; tmp_8.ts__nr() = ts__nr; tmp_8.block__nr() = block__nr; tmp_8.rssi() = rssi; tmp_8.ber10k() = ber10k; tmp_8.ta__offs__qbits() = ta__offs__qbits; tmp_8.lqual__cb() = lqual__cb; } return ret_val; } PCUIF__Message_template tr__PCUIF__DATA__IND(const INTEGER_template& bts__nr, const INTEGER_template& trx__nr, const INTEGER_template& ts__nr, const INTEGER_template& block__nr, const PCUIF__Sapi_template& sapi, const OCTETSTRING_template& data) { TTCN_Location current_location("PCUIF_Types.ttcn", 403, TTCN_Location::LOCATION_TEMPLATE, "tr_PCUIF_DATA_IND"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__DATA__IND; ret_val.bts__nr() = bts__nr; ret_val.spare() = ANY_VALUE; { PCUIF__data_template& tmp_9 = ret_val.u().data__ind(); tmp_9.sapi() = sapi; tmp_9.len() = ANY_VALUE; tmp_9.data() = data; tmp_9.fn() = ANY_VALUE; tmp_9.arfcn() = ANY_VALUE; tmp_9.trx__nr() = trx__nr; tmp_9.ts__nr() = ts__nr; tmp_9.block__nr() = block__nr; tmp_9.rssi() = ANY_VALUE; tmp_9.ber10k() = ANY_VALUE; tmp_9.ta__offs__qbits() = ANY_VALUE; tmp_9.lqual__cb() = ANY_VALUE; } return ret_val; } PCUIF__Message_template ts__PCUIF__DATA__REQ(const INTEGER& bts__nr, const INTEGER& trx__nr, const INTEGER& ts__nr, const INTEGER& block__nr, const INTEGER& fn, const PCUIF__Sapi& sapi, const OCTETSTRING& data) { TTCN_Location current_location("PCUIF_Types.ttcn", 430, TTCN_Location::LOCATION_TEMPLATE, "ts_PCUIF_DATA_REQ"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__DATA__REQ; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__data_template& tmp_10 = ret_val.u().data__req(); tmp_10.sapi() = sapi; tmp_10.len() = data.lengthof(); tmp_10.data() = data; tmp_10.fn() = fn; tmp_10.arfcn() = 0; tmp_10.trx__nr() = trx__nr; tmp_10.ts__nr() = ts__nr; tmp_10.block__nr() = block__nr; tmp_10.rssi() = 0; tmp_10.ber10k() = 0; tmp_10.ta__offs__qbits() = 0; tmp_10.lqual__cb() = 0; } return ret_val; } PCUIF__Message_template tr__PCUIF__DATA__REQ(const INTEGER_template& bts__nr, const INTEGER_template& trx__nr, const INTEGER_template& ts__nr, const INTEGER_template& block__nr, const INTEGER_template& fn, const PCUIF__Sapi_template& sapi, const OCTETSTRING_template& data) { TTCN_Location current_location("PCUIF_Types.ttcn", 455, TTCN_Location::LOCATION_TEMPLATE, "tr_PCUIF_DATA_REQ"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__DATA__REQ; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__data_template& tmp_11 = ret_val.u().data__req(); tmp_11.sapi() = sapi; tmp_11.len() = ANY_VALUE; tmp_11.data() = data; tmp_11.fn() = fn; tmp_11.arfcn() = ANY_VALUE; tmp_11.trx__nr() = trx__nr; tmp_11.ts__nr() = ts__nr; tmp_11.block__nr() = block__nr; tmp_11.rssi() = 0; tmp_11.ber10k() = 0; tmp_11.ta__offs__qbits() = 0; tmp_11.lqual__cb() = 0; } return ret_val; } PCUIF__Message_template ts__PCUIF__DATA__CNF(const INTEGER_template& bts__nr, const INTEGER_template& trx__nr, const INTEGER_template& ts__nr, const INTEGER_template& block__nr, const INTEGER_template& fn, const INTEGER_template& arfcn, const PCUIF__Sapi_template& sapi, const OCTETSTRING_template& data) { TTCN_Location current_location("PCUIF_Types.ttcn", 484, TTCN_Location::LOCATION_TEMPLATE, "ts_PCUIF_DATA_CNF"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__DATA__CNF; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__data_template& tmp_12 = ret_val.u().data__cnf(); tmp_12.sapi() = sapi; tmp_12.len() = 0; tmp_12.data() = data; tmp_12.fn() = fn; tmp_12.arfcn() = arfcn; tmp_12.trx__nr() = trx__nr; tmp_12.ts__nr() = ts__nr; tmp_12.block__nr() = block__nr; tmp_12.rssi() = 0; tmp_12.ber10k() = 0; tmp_12.ta__offs__qbits() = 0; tmp_12.lqual__cb() = 0; } return ret_val; } PCUIF__Message_template tr__PCUIF__DATA__CNF(const INTEGER_template& bts__nr, const INTEGER_template& trx__nr, const INTEGER_template& ts__nr, const PCUIF__Sapi_template& sapi, const OCTETSTRING_template& data) { TTCN_Location current_location("PCUIF_Types.ttcn", 512, TTCN_Location::LOCATION_TEMPLATE, "tr_PCUIF_DATA_CNF"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__DATA__CNF; ret_val.bts__nr() = bts__nr; ret_val.spare() = ANY_VALUE; { PCUIF__data_template& tmp_13 = ret_val.u().data__cnf(); tmp_13.sapi() = sapi; tmp_13.len() = ANY_VALUE; tmp_13.data() = data; tmp_13.fn() = ANY_VALUE; tmp_13.arfcn() = ANY_VALUE; tmp_13.trx__nr() = trx__nr; tmp_13.ts__nr() = ts__nr; tmp_13.block__nr() = ANY_VALUE; tmp_13.rssi() = ANY_VALUE; tmp_13.ber10k() = ANY_VALUE; tmp_13.ta__offs__qbits() = ANY_VALUE; tmp_13.lqual__cb() = ANY_VALUE; } return ret_val; } PCUIF__Message_template ts__PCUIF__RACH__IND(const INTEGER_template& bts__nr, const INTEGER_template& ra, const INTEGER_template& is__11bit, const PCUIF__BurstType_template& burst__type, const INTEGER_template& fn, const INTEGER_template& arfcn, const INTEGER_template& qta) { TTCN_Location current_location("PCUIF_Types.ttcn", 538, TTCN_Location::LOCATION_TEMPLATE, "ts_PCUIF_RACH_IND"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__RACH__IND; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__rach__ind_template& tmp_14 = ret_val.u().rach__ind(); tmp_14.sapi() = PCUIF__Sapi::PCU__IF__SAPI__RACH; tmp_14.ra() = ra; tmp_14.qta() = qta; tmp_14.fn() = fn; tmp_14.arfcn() = arfcn; tmp_14.is__11bit() = is__11bit; tmp_14.burst__type() = burst__type; } return ret_val; } PCUIF__Message_template tr__PCUIF__RACH__IND(const INTEGER_template& bts__nr, const INTEGER_template& ra, const INTEGER_template& is__11bit, const PCUIF__BurstType_template& burst__type, const INTEGER_template& fn) { TTCN_Location current_location("PCUIF_Types.ttcn", 561, TTCN_Location::LOCATION_TEMPLATE, "tr_PCUIF_RACH_IND"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__RACH__IND; ret_val.bts__nr() = bts__nr; ret_val.spare() = ANY_VALUE; { PCUIF__rach__ind_template& tmp_15 = ret_val.u().rach__ind(); tmp_15.sapi() = PCUIF__Sapi::PCU__IF__SAPI__RACH; tmp_15.ra() = ra; tmp_15.qta() = ANY_VALUE; tmp_15.fn() = fn; tmp_15.arfcn() = ANY_VALUE; tmp_15.is__11bit() = is__11bit; tmp_15.burst__type() = burst__type; } return ret_val; } PCUIF__Message_template ts__PCUIF__PAG__REQ(const INTEGER_template& bts__nr, const OCTETSTRING_template& id__lv, const INTEGER_template& chan__needed, const PCUIF__Sapi_template& sapi) { TTCN_Location current_location("PCUIF_Types.ttcn", 582, TTCN_Location::LOCATION_TEMPLATE, "ts_PCUIF_PAG_REQ"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__PAG__REQ; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__pag__req_template& tmp_16 = ret_val.u().pag__req(); tmp_16.sapi() = sapi; tmp_16.chan__needed() = chan__needed; tmp_16.identity__lv() = id__lv; } return ret_val; } PCUIF__Message_template tr__PCUIF__PAG__REQ(const INTEGER_template& bts__nr, const OCTETSTRING_template& id__lv, const INTEGER_template& chan__needed, const PCUIF__Sapi_template& ) { TTCN_Location current_location("PCUIF_Types.ttcn", 597, TTCN_Location::LOCATION_TEMPLATE, "tr_PCUIF_PAG_REQ"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__PAG__REQ; ret_val.bts__nr() = bts__nr; ret_val.spare() = ANY_VALUE; { PCUIF__pag__req_template& tmp_17 = ret_val.u().pag__req(); tmp_17.sapi() = ANY_VALUE; tmp_17.chan__needed() = chan__needed; tmp_17.identity__lv() = id__lv; } return ret_val; } PCUIF__InfoTrx_template ts__PCUIF__InfoTrx(const INTEGER_template& arfcn, const BITSTRING_template& pdch__mask, const OCTETSTRING& tsc) { TTCN_Location current_location("PCUIF_Types.ttcn", 633, TTCN_Location::LOCATION_TEMPLATE, "ts_PCUIF_InfoTrx"); PCUIF__InfoTrx_template ret_val; ret_val.arfcn() = arfcn; ret_val.pdch__mask() = pdch__mask; ret_val.spare() = os_2; ret_val.tsc() = (((((((tsc + tsc) + tsc) + tsc) + tsc) + tsc) + tsc) + tsc); ret_val.hLayer1() = 0; return ret_val; } PCUIF__Message_template ts__PCUIF__INFO__IND(const INTEGER_template& bts__nr, const INTEGER_template& nsei, const INTEGER_template& nsvci, const INTEGER_template& bvci, const INTEGER_template& local__port, const INTEGER_template& remote__port, const OCTETSTRING_template& remote__ip, const PCUIF__Flags_template& flags, const INTEGER_template& mcc, const INTEGER_template& mnc, const INTEGER_template& lac, const INTEGER_template& rac, const INTEGER_template& cell__id, const INTEGER_template& bsic, const PCUIF__InfoTrxs_template& trx, const INTEGER_template& version) { TTCN_Location current_location("PCUIF_Types.ttcn", 650, TTCN_Location::LOCATION_TEMPLATE, "ts_PCUIF_INFO_IND"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__INFO__IND; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__info__ind_template& tmp_18 = ret_val.u().info__ind(); tmp_18.version() = version; tmp_18.flags() = flags; tmp_18.trx() = trx; tmp_18.bsic() = bsic; tmp_18.mcc() = mcc; tmp_18.mnc() = mnc; tmp_18.mnc__3__digits() = 0; tmp_18.lac() = lac; tmp_18.rac() = rac; tmp_18.nsei() = nsei; { PCUIF__info__ind_nse__timer_template& tmp_19 = tmp_18.nse__timer(); tmp_19.set_size(7); tmp_19[0] = 3; tmp_19[1] = 3; tmp_19[2] = 3; tmp_19[3] = 3; tmp_19[4] = 30; tmp_19[5] = 3; tmp_19[6] = 10; } { PCUIF__info__ind_cell__timer_template& tmp_20 = tmp_18.cell__timer(); tmp_20.set_size(11); tmp_20[0] = 3; tmp_20[1] = 3; tmp_20[2] = 3; tmp_20[3] = 3; tmp_20[4] = 3; tmp_20[5] = 10; tmp_20[6] = 3; tmp_20[7] = 10; tmp_20[8] = 3; tmp_20[9] = 10; tmp_20[10] = 3; } tmp_18.cell__id() = cell__id; tmp_18.repeat__time() = 250; tmp_18.repeat__count() = 3; tmp_18.bvci() = bvci; tmp_18.t3142() = 20; tmp_18.t3169() = 5; tmp_18.t3191() = 5; tmp_18.t3193__10ms() = 160; tmp_18.t3195() = 5; tmp_18.t3101() = 10; tmp_18.t3103() = 4; tmp_18.t3105() = 8; tmp_18.cv__countdown() = 15; tmp_18.dl__tbf__ext() = 2500; tmp_18.ul__tbf__ext() = 2500; tmp_18.initial__cs() = 2; tmp_18.initial__mcs() = 6; { PCUIF__info__ind_nsvci_template& tmp_21 = tmp_18.nsvci(); tmp_21.set_size(2); tmp_21[0] = nsvci; tmp_21[1] = 0; } { PCUIF__info__ind_local__pprt_template& tmp_22 = tmp_18.local__pprt(); tmp_22.set_size(2); tmp_22[0] = local__port; tmp_22[1] = 0; } { PCUIF__info__ind_remote__port_template& tmp_23 = tmp_18.remote__port(); tmp_23.set_size(2); tmp_23[0] = remote__port; tmp_23[1] = 0; } { PCUIF__info__ind_remote__ip_template& tmp_24 = tmp_18.remote__ip(); tmp_24.set_size(2); tmp_24[0] = remote__ip; tmp_24[1] = os_4; } } return ret_val; } PCUIF__Message_template tr__PCUIF__INFO__IND(const INTEGER_template& bts__nr, const PCUIF__Flags_template& flags, const INTEGER_template& version) { TTCN_Location current_location("PCUIF_Types.ttcn", 707, TTCN_Location::LOCATION_TEMPLATE, "tr_PCUIF_INFO_IND"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__INFO__IND; ret_val.bts__nr() = bts__nr; ret_val.spare() = ANY_VALUE; { PCUIF__info__ind_template& tmp_25 = ret_val.u().info__ind(); tmp_25.version() = version; tmp_25.flags() = flags; tmp_25.trx() = ANY_VALUE; tmp_25.bsic() = ANY_VALUE; tmp_25.mcc() = ANY_VALUE; tmp_25.mnc() = ANY_VALUE; tmp_25.mnc__3__digits() = ANY_VALUE; tmp_25.lac() = ANY_VALUE; tmp_25.rac() = ANY_VALUE; tmp_25.nsei() = ANY_VALUE; tmp_25.nse__timer() = ANY_VALUE; tmp_25.cell__timer() = ANY_VALUE; tmp_25.cell__id() = ANY_VALUE; tmp_25.repeat__time() = ANY_VALUE; tmp_25.repeat__count() = ANY_VALUE; tmp_25.bvci() = ANY_VALUE; tmp_25.t3142() = ANY_VALUE; tmp_25.t3169() = ANY_VALUE; tmp_25.t3191() = ANY_VALUE; tmp_25.t3193__10ms() = ANY_VALUE; tmp_25.t3195() = ANY_VALUE; tmp_25.t3101() = ANY_VALUE; tmp_25.t3103() = ANY_VALUE; tmp_25.t3105() = ANY_VALUE; tmp_25.cv__countdown() = ANY_VALUE; tmp_25.dl__tbf__ext() = ANY_VALUE; tmp_25.ul__tbf__ext() = ANY_VALUE; tmp_25.initial__cs() = ANY_VALUE; tmp_25.initial__mcs() = ANY_VALUE; tmp_25.nsvci() = ANY_VALUE; tmp_25.local__pprt() = ANY_VALUE; tmp_25.remote__port() = ANY_VALUE; tmp_25.remote__ip() = ANY_VALUE; } return ret_val; } PCUIF__Message_template ts__PCUIF__TIME__IND(const INTEGER_template& bts__nr, const INTEGER_template& fn) { TTCN_Location current_location("PCUIF_Types.ttcn", 752, TTCN_Location::LOCATION_TEMPLATE, "ts_PCUIF_TIME_IND"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__TIME__IND; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; ret_val.u().time__ind().fn() = fn; return ret_val; } PCUIF__Message_template tr__PCUIF__TIME__IND(const INTEGER_template& bts__nr, const INTEGER_template& fn) { TTCN_Location current_location("PCUIF_Types.ttcn", 763, TTCN_Location::LOCATION_TEMPLATE, "tr_PCUIF_TIME_IND"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__TIME__IND; ret_val.bts__nr() = bts__nr; ret_val.spare() = ANY_VALUE; ret_val.u().time__ind().fn() = fn; return ret_val; } PCUIF__Message_template ts__PCUIF__SUSP__REQ(const INTEGER_template& bts__nr, const OCTETSTRING_template& tlli, const OCTETSTRING_template& ra__id, const INTEGER_template& cause) { TTCN_Location current_location("PCUIF_Types.ttcn", 775, TTCN_Location::LOCATION_TEMPLATE, "ts_PCUIF_SUSP_REQ"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__SUSP__REQ; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__susp__req_template& tmp_26 = ret_val.u().susp__req(); tmp_26.tlli() = tlli; tmp_26.ra__id() = ra__id; tmp_26.cause() = cause; } return ret_val; } PCUIF__Message_template tr__PCUIF__SUSP__REQ(const INTEGER_template& bts__nr, const OCTETSTRING_template& tlli, const OCTETSTRING_template& ra__id, const INTEGER_template& cause) { TTCN_Location current_location("PCUIF_Types.ttcn", 790, TTCN_Location::LOCATION_TEMPLATE, "tr_PCUIF_SUSP_REQ"); PCUIF__Message_template ret_val; ret_val.msg__type() = PCUIF__MsgType::PCU__IF__MSG__SUSP__REQ; ret_val.bts__nr() = bts__nr; ret_val.spare() = os_0; { PCUIF__susp__req_template& tmp_27 = ret_val.u().susp__req(); tmp_27.tlli() = tlli; tmp_27.ra__id() = ra__id; tmp_27.cause() = cause; } return ret_val; } /* Bodies of static functions */ static void pre_init_module() { TTCN_Location current_location("PCUIF_Types.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "PCUIF_Types"); Osmocom__Types::module_object.pre_init_module(); current_location.update_lineno(8); /* PCUIF_Types.ttcn, line 8 */ const_PCU__SOCK__DEFAULT = cs_0; current_location.update_lineno(9); /* PCUIF_Types.ttcn, line 9 */ const_PCU__IF__VERSION = 9; module_object.add_function("enc_PCUIF_Message", (genericfunc_t)&enc__PCUIF__Message, NULL); module_object.add_function("dec_PCUIF_Message", (genericfunc_t)&dec__PCUIF__Message, NULL); current_location.update_lineno(613); /* PCUIF_Types.ttcn, line 613 */ const_c__PCUIF__Flags__default.bts__active() = TRUE; const_c__PCUIF__Flags__default.sysmo__direct__dsp() = FALSE; const_c__PCUIF__Flags__default.spare() = bs_0; const_c__PCUIF__Flags__default.cs1() = TRUE; const_c__PCUIF__Flags__default.cs2() = TRUE; const_c__PCUIF__Flags__default.cs3() = TRUE; const_c__PCUIF__Flags__default.cs4() = TRUE; const_c__PCUIF__Flags__default.mcs1() = TRUE; const_c__PCUIF__Flags__default.mcs2() = TRUE; const_c__PCUIF__Flags__default.mcs3() = TRUE; const_c__PCUIF__Flags__default.mcs4() = TRUE; const_c__PCUIF__Flags__default.mcs5() = TRUE; const_c__PCUIF__Flags__default.mcs6() = TRUE; const_c__PCUIF__Flags__default.mcs7() = TRUE; const_c__PCUIF__Flags__default.mcs8() = TRUE; const_c__PCUIF__Flags__default.mcs9() = TRUE; const_c__PCUIF__Flags__default.spare2() = bs_1; } static void post_init_module() { TTCN_Location current_location("PCUIF_Types.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "PCUIF_Types"); Osmocom__Types::module_object.post_init_module(); template_tr__PCUIF__RTS__REQ_bts__nr_defval = ANY_VALUE; template_tr__PCUIF__RTS__REQ_trx__nr_defval = ANY_VALUE; template_tr__PCUIF__RTS__REQ_ts__nr_defval = ANY_VALUE; template_tr__PCUIF__RTS__REQ_sapi_defval = ANY_VALUE; template_tr__PCUIF__RTS__REQ_fn_defval = ANY_VALUE; template_tr__PCUIF__RTS__REQ_block__nr_defval = ANY_VALUE; template_tr__PCUIF__TXT__IND_text_defval = ANY_VALUE; template_ts__PCUIF__DATA__IND_rssi_defval = -80; template_ts__PCUIF__DATA__IND_ber10k_defval = 0; template_ts__PCUIF__DATA__IND_ta__offs__qbits_defval = 0; template_ts__PCUIF__DATA__IND_lqual__cb_defval = 10; template_tr__PCUIF__DATA__IND_bts__nr_defval = ANY_VALUE; template_tr__PCUIF__DATA__IND_trx__nr_defval = ANY_VALUE; template_tr__PCUIF__DATA__IND_ts__nr_defval = ANY_VALUE; template_tr__PCUIF__DATA__IND_block__nr_defval = ANY_VALUE; template_tr__PCUIF__DATA__IND_sapi_defval = ANY_VALUE; template_tr__PCUIF__DATA__IND_data_defval = ANY_VALUE; template_tr__PCUIF__DATA__REQ_block__nr_defval = ANY_VALUE; template_tr__PCUIF__DATA__REQ_fn_defval = ANY_VALUE; template_tr__PCUIF__DATA__REQ_sapi_defval = ANY_VALUE; template_tr__PCUIF__DATA__REQ_data_defval = ANY_VALUE; template_tr__PCUIF__DATA__CNF_bts__nr_defval = ANY_VALUE; template_tr__PCUIF__DATA__CNF_trx__nr_defval = ANY_VALUE; template_tr__PCUIF__DATA__CNF_ts__nr_defval = ANY_VALUE; template_tr__PCUIF__DATA__CNF_sapi_defval = ANY_VALUE; template_tr__PCUIF__DATA__CNF_data_defval = ANY_VALUE; template_ts__PCUIF__RACH__IND_qta_defval = 0; template_tr__PCUIF__RACH__IND_bts__nr_defval = ANY_VALUE; template_tr__PCUIF__RACH__IND_ra_defval = ANY_VALUE; template_tr__PCUIF__RACH__IND_is__11bit_defval = ANY_VALUE; template_tr__PCUIF__RACH__IND_burst__type_defval = ANY_VALUE; template_tr__PCUIF__RACH__IND_fn_defval = ANY_VALUE; template_tr__PCUIF__PAG__REQ_bts__nr_defval = ANY_VALUE; template_tr__PCUIF__PAG__REQ_id__lv_defval = ANY_VALUE; template_tr__PCUIF__PAG__REQ_chan__needed_defval = ANY_VALUE; template_tr__PCUIF__PAG__REQ_sapi_defval = ANY_VALUE; template_ts__PCUIF__InfoTrx_arfcn_defval = 871; template_ts__PCUIF__InfoTrx_pdch__mask_defval = bs_2; const_ts__PCUIF__InfoTrx_tsc_defval = os_3; current_location.update_lineno(643); /* PCUIF_Types.ttcn, line 643 */ template_ts__PCUIF__InfoTrxNULL = ts__PCUIF__InfoTrx(INTEGER_template(0), BITSTRING_template(bs_3), os_2); current_location.update_lineno(645); /* PCUIF_Types.ttcn, line 645 */ template_ts__PCUIF__InfoTrxs__def.set_size(8); template_ts__PCUIF__InfoTrxs__def[0] = ts__PCUIF__InfoTrx(ts__PCUIF__InfoTrx_arfcn_defval, ts__PCUIF__InfoTrx_pdch__mask_defval, ts__PCUIF__InfoTrx_tsc_defval); template_ts__PCUIF__InfoTrxs__def[1] = ts__PCUIF__InfoTrxNULL; template_ts__PCUIF__InfoTrxs__def[2] = ts__PCUIF__InfoTrxNULL; template_ts__PCUIF__InfoTrxs__def[3] = ts__PCUIF__InfoTrxNULL; template_ts__PCUIF__InfoTrxs__def[4] = ts__PCUIF__InfoTrxNULL; template_ts__PCUIF__InfoTrxs__def[5] = ts__PCUIF__InfoTrxNULL; template_ts__PCUIF__InfoTrxs__def[6] = ts__PCUIF__InfoTrxNULL; template_ts__PCUIF__InfoTrxs__def[7] = ts__PCUIF__InfoTrxNULL; template_ts__PCUIF__INFO__IND_flags_defval = c__PCUIF__Flags__default; template_ts__PCUIF__INFO__IND_mcc_defval = 262; template_ts__PCUIF__INFO__IND_mnc_defval = 42; template_ts__PCUIF__INFO__IND_lac_defval = 13135; template_ts__PCUIF__INFO__IND_rac_defval = 0; template_ts__PCUIF__INFO__IND_cell__id_defval = 20960; template_ts__PCUIF__INFO__IND_bsic_defval = 7; template_ts__PCUIF__INFO__IND_trx_defval = ts__PCUIF__InfoTrxs__def; template_ts__PCUIF__INFO__IND_version_defval = 9; template_tr__PCUIF__INFO__IND_bts__nr_defval = ANY_VALUE; template_tr__PCUIF__INFO__IND_flags_defval = ANY_VALUE; template_tr__PCUIF__INFO__IND_version_defval = 9; } } /* end of namespace */