diff options
Diffstat (limited to 'titan/PCUIF_Types.cc')
-rw-r--r-- | titan/PCUIF_Types.cc | 31065 |
1 files changed, 31065 insertions, 0 deletions
diff --git a/titan/PCUIF_Types.cc b/titan/PCUIF_Types.cc new file mode 100644 index 0000000..ab3609c --- /dev/null +++ b/titan/PCUIF_Types.cc @@ -0,0 +1,31065 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version CRL 113 200/6 R3B +// for Harald Welte (laforge@nataraja) on Thu Mar 22 22:09:15 2018 + +// Copyright (c) 2000-2017 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 os_1_octets[] = { 0 }, +os_0_octets[] = { 0, 0 }; +static const OCTETSTRING os_1(1, os_1_octets), +os_0(2, os_0_octets); +static const CHARSTRING cs_0(12, "/tmp/pcu_bts"); +static const unsigned char module_checksum[] = { 0xe9, 0x69, 0x0e, 0xeb, 0x82, 0x96, 0x8e, 0xec, 0x18, 0x37, 0x9a, 0x28, 0xe4, 0x6d, 0xcf, 0x52 }; + +/* 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}; +// 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}; +// 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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_bts__active_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_bts__active_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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_sysmo__direct__dsp_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_sysmo__direct__dsp_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}; +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_JSONdescriptor_t PCUIF__Flags_spare_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +const TTCN_OERdescriptor_t PCUIF__Flags_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PCUIF__Flags_spare_descr_ = { "@PCUIF_Types.PCUIF_Flags.spare", &BITSTRING_ber_, &PCUIF__Flags_spare_raw_, NULL, &PCUIF__Flags_spare_xer_, &PCUIF__Flags_spare_json_, &PCUIF__Flags_spare_oer_, 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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_cs1_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_cs1_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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_cs2_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_cs2_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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_cs3_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_cs3_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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_cs4_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_cs4_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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_mcs1_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_mcs1_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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_mcs2_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_mcs2_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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_mcs3_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_mcs3_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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_mcs4_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_mcs4_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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_mcs5_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_mcs5_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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_mcs6_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_mcs6_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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_mcs7_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_mcs7_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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_mcs8_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_mcs8_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}; +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 TTCN_JSONdescriptor_t PCUIF__Flags_mcs9_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Flags_mcs9_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}; +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_JSONdescriptor_t PCUIF__Flags_spare2_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +const TTCN_OERdescriptor_t PCUIF__Flags_spare2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PCUIF__Flags_spare2_descr_ = { "@PCUIF_Types.PCUIF_Flags.spare2", &BITSTRING_ber_, &PCUIF__Flags_spare2_raw_, NULL, &PCUIF__Flags_spare2_xer_, &PCUIF__Flags_spare2_json_, &PCUIF__Flags_spare2_oer_, 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}; +// 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}; +// 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}; +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_JSONdescriptor_t PCUIF__Text_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +const TTCN_Typedescriptor_t PCUIF__Text_descr_ = { "@PCUIF_Types.PCUIF_Text", NULL, &PCUIF__Text_raw_, &CHARSTRING_text_, &PCUIF__Text_xer_, &PCUIF__Text_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}; +// 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}; +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_JSONdescriptor_t PCUIF__txt__ind_text_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__txt__ind_text_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}; +// 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}; +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 TTCN_JSONdescriptor_t OCT162_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +const int OCT162_oer_ext_arr_[0] = {}; +const int OCT162_oer_p_[0] = {}; +const TTCN_OERdescriptor_t OCT162_oer_ = { -1, FALSE, -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_, &OCT162_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}; +// 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}; +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_JSONdescriptor_t PCUIF__data_len_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data_len_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}; +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 TTCN_JSONdescriptor_t PCUIF__data_data_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__data_data_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}; +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_JSONdescriptor_t PCUIF__data_fn_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data_fn_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}; +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_JSONdescriptor_t PCUIF__data_arfcn_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data_arfcn_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}; +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_JSONdescriptor_t PCUIF__data_trx__nr_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data_trx__nr_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}; +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_JSONdescriptor_t PCUIF__data_ts__nr_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data_ts__nr_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}; +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_JSONdescriptor_t PCUIF__data_block__nr_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data_block__nr_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}; +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_JSONdescriptor_t PCUIF__data_rssi_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data_rssi_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}; +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_JSONdescriptor_t PCUIF__data_ber10k_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data_ber10k_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}; +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_JSONdescriptor_t PCUIF__data_ta__offs__qbits_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data_ta__offs__qbits_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}; +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_JSONdescriptor_t PCUIF__data_lqual__cb_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data_lqual__cb_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}; +// 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}; +// 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}; +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 TTCN_JSONdescriptor_t PCUIF__data__cnf__dt_tlli_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__data__cnf__dt_tlli_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}; +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_JSONdescriptor_t PCUIF__data__cnf__dt_fn_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data__cnf__dt_fn_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}; +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_JSONdescriptor_t PCUIF__data__cnf__dt_arfcn_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data__cnf__dt_arfcn_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}; +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_JSONdescriptor_t PCUIF__data__cnf__dt_trx__nr_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data__cnf__dt_trx__nr_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}; +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_JSONdescriptor_t PCUIF__data__cnf__dt_ts__nr_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data__cnf__dt_ts__nr_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}; +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_JSONdescriptor_t PCUIF__data__cnf__dt_block__nr_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data__cnf__dt_block__nr_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}; +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_JSONdescriptor_t PCUIF__data__cnf__dt_rssi_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data__cnf__dt_rssi_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}; +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_JSONdescriptor_t PCUIF__data__cnf__dt_ber10k_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data__cnf__dt_ber10k_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}; +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_JSONdescriptor_t PCUIF__data__cnf__dt_ta__offs__qbits_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data__cnf__dt_ta__offs__qbits_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}; +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_JSONdescriptor_t PCUIF__data__cnf__dt_lqual__cb_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__data__cnf__dt_lqual__cb_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}; +// 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}; +// 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}; +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 TTCN_JSONdescriptor_t PCUIF__rts__req_spare_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__rts__req_spare_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}; +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_JSONdescriptor_t PCUIF__rts__req_fn_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__rts__req_fn_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}; +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_JSONdescriptor_t PCUIF__rts__req_arfcn_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__rts__req_arfcn_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}; +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_JSONdescriptor_t PCUIF__rts__req_trx__nr_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__rts__req_trx__nr_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}; +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_JSONdescriptor_t PCUIF__rts__req_ts__nr_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__rts__req_ts__nr_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}; +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_JSONdescriptor_t PCUIF__rts__req_block__nr_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__rts__req_block__nr_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}; +// 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__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}; +// 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}; +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_JSONdescriptor_t PCUIF__rach__ind_ra_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__rach__ind_ra_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}; +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_JSONdescriptor_t PCUIF__rach__ind_qta_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__rach__ind_qta_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}; +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_JSONdescriptor_t PCUIF__rach__ind_fn_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__rach__ind_fn_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}; +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_JSONdescriptor_t PCUIF__rach__ind_arfcn_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__rach__ind_arfcn_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}; +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_JSONdescriptor_t PCUIF__rach__ind_is__11bit_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__rach__ind_is__11bit_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_MSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN}; +const XERdescriptor_t PCUIF__rach__ind_burst__type_xer_ = { {"burst_type>\n", "burst_type>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_JSONdescriptor_t PCUIF__rach__ind_burst__type_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +const TTCN_OERdescriptor_t PCUIF__rach__ind_burst__type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PCUIF__rach__ind_burst__type_descr_ = { "@PCUIF_Types.PCUIF_rach_ind.burst_type", &INTEGER_ber_, &PCUIF__rach__ind_burst__type_raw_, &INTEGER_text_, &PCUIF__rach__ind_burst__type_xer_, &PCUIF__rach__ind_burst__type_json_, &PCUIF__rach__ind_burst__type_oer_, 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}; +// 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}; +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_JSONdescriptor_t PCUIF__InfoTrx_arfcn_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__InfoTrx_arfcn_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_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,8,CharCoding::UNKNOWN}; +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_JSONdescriptor_t PCUIF__InfoTrx_pdch__mask_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +const TTCN_OERdescriptor_t PCUIF__InfoTrx_pdch__mask_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +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_, &PCUIF__InfoTrx_pdch__mask_json_, &PCUIF__InfoTrx_pdch__mask_oer_, 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}; +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 TTCN_JSONdescriptor_t PCUIF__InfoTrx_spare_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__InfoTrx_spare_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}; +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 TTCN_JSONdescriptor_t PCUIF__InfoTrx_tsc_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__InfoTrx_tsc_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}; +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_JSONdescriptor_t PCUIF__InfoTrx_hLayer1_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__InfoTrx_hLayer1_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}; +// 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__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}; +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_JSONdescriptor_t PCUIF__info__ind_version_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_version_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}; +// 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}; +// 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__info__ind_trx_0_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t PCUIF__info__ind_trx_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}; +// No XER for PCUIF__info__ind_trx_0 +const TTCN_Typedescriptor_t PCUIF__info__ind_trx_0_descr_ = { "@PCUIF_Types.PCUIF_info_ind.trx.<oftype>", NULL, &PCUIF__info__ind_trx_0_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +UNIVERSAL_CHARSTRING PCUIF__info__ind_trx_0_default_coding("RAW"); +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}; +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_JSONdescriptor_t PCUIF__info__ind_bsic_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_bsic_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}; +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_JSONdescriptor_t PCUIF__info__ind_mcc_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_mcc_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}; +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_JSONdescriptor_t PCUIF__info__ind_mnc_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_mnc_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}; +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_JSONdescriptor_t PCUIF__info__ind_mnc__3__digits_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_mnc__3__digits_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}; +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_JSONdescriptor_t PCUIF__info__ind_lac_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_lac_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}; +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_JSONdescriptor_t PCUIF__info__ind_rac_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_rac_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}; +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_JSONdescriptor_t PCUIF__info__ind_nsei_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_nsei_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}; +// 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}; +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_JSONdescriptor_t PCUIF__info__ind_nse__timer_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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.<oftype>", &INTEGER_ber_, &PCUIF__info__ind_nse__timer_0_raw_, &INTEGER_text_, &PCUIF__info__ind_nse__timer_0_xer_, &PCUIF__info__ind_nse__timer_0_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}; +// 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}; +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_JSONdescriptor_t PCUIF__info__ind_cell__timer_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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.<oftype>", &INTEGER_ber_, &PCUIF__info__ind_cell__timer_0_raw_, &INTEGER_text_, &PCUIF__info__ind_cell__timer_0_xer_, &PCUIF__info__ind_cell__timer_0_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}; +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_JSONdescriptor_t PCUIF__info__ind_cell__id_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_cell__id_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}; +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_JSONdescriptor_t PCUIF__info__ind_repeat__time_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_repeat__time_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}; +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_JSONdescriptor_t PCUIF__info__ind_repeat__count_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_repeat__count_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}; +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_JSONdescriptor_t PCUIF__info__ind_bvci_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_bvci_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}; +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_JSONdescriptor_t PCUIF__info__ind_t3142_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_t3142_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}; +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_JSONdescriptor_t PCUIF__info__ind_t3169_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_t3169_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}; +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_JSONdescriptor_t PCUIF__info__ind_t3191_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_t3191_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}; +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_JSONdescriptor_t PCUIF__info__ind_t3193__10ms_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_t3193__10ms_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}; +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_JSONdescriptor_t PCUIF__info__ind_t3195_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_t3195_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}; +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_JSONdescriptor_t PCUIF__info__ind_t3101_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_t3101_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}; +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_JSONdescriptor_t PCUIF__info__ind_t3103_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_t3103_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}; +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_JSONdescriptor_t PCUIF__info__ind_t3105_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_t3105_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}; +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_JSONdescriptor_t PCUIF__info__ind_cv__countdown_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_cv__countdown_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}; +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_JSONdescriptor_t PCUIF__info__ind_dl__tbf__ext_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_dl__tbf__ext_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}; +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_JSONdescriptor_t PCUIF__info__ind_ul__tbf__ext_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_ul__tbf__ext_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}; +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_JSONdescriptor_t PCUIF__info__ind_initial__cs_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_initial__cs_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}; +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_JSONdescriptor_t PCUIF__info__ind_initial__mcs_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__info__ind_initial__mcs_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}; +// 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}; +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_JSONdescriptor_t PCUIF__info__ind_nsvci_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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.<oftype>", &INTEGER_ber_, &PCUIF__info__ind_nsvci_0_raw_, &INTEGER_text_, &PCUIF__info__ind_nsvci_0_xer_, &PCUIF__info__ind_nsvci_0_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}; +// 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}; +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_JSONdescriptor_t PCUIF__info__ind_local__pprt_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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.<oftype>", &INTEGER_ber_, &PCUIF__info__ind_local__pprt_0_raw_, &INTEGER_text_, &PCUIF__info__ind_local__pprt_0_xer_, &PCUIF__info__ind_local__pprt_0_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}; +// 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}; +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_JSONdescriptor_t PCUIF__info__ind_remote__port_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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.<oftype>", &INTEGER_ber_, &PCUIF__info__ind_remote__port_0_raw_, &INTEGER_text_, &PCUIF__info__ind_remote__port_0_xer_, &PCUIF__info__ind_remote__port_0_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}; +// 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_MSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN}; +const XERdescriptor_t PCUIF__info__ind_remote__ip_0_xer_ = { {"uint32_t>\n", "uint32_t>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_JSONdescriptor_t PCUIF__info__ind_remote__ip_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +const TTCN_OERdescriptor_t PCUIF__info__ind_remote__ip_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PCUIF__info__ind_remote__ip_0_descr_ = { "@PCUIF_Types.PCUIF_info_ind.remote_ip.<oftype>", &INTEGER_ber_, &PCUIF__info__ind_remote__ip_0_raw_, &INTEGER_text_, &PCUIF__info__ind_remote__ip_0_xer_, &PCUIF__info__ind_remote__ip_0_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}; +// 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}; +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_JSONdescriptor_t PCUIF__act__req_is__activate_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__act__req_is__activate_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}; +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_JSONdescriptor_t PCUIF__act__req_trx__nr_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__act__req_trx__nr_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}; +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_JSONdescriptor_t PCUIF__act__req_ts__nr_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__act__req_ts__nr_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}; +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 TTCN_JSONdescriptor_t PCUIF__act__req_spare_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__act__req_spare_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}; +// 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}; +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_JSONdescriptor_t PCUIF__time__ind_fn_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__time__ind_fn_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}; +// 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}; +// 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}; +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_JSONdescriptor_t PCUIF__pag__req_chan__needed_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__pag__req_chan__needed_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}; +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 TTCN_JSONdescriptor_t PCUIF__pag__req_identity__lv_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__pag__req_identity__lv_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}; +// 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}; +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 TTCN_JSONdescriptor_t PCUIF__susp__req_tlli_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__susp__req_tlli_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}; +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 TTCN_JSONdescriptor_t PCUIF__susp__req_ra__id_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__susp__req_ra__id_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}; +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_JSONdescriptor_t PCUIF__susp__req_cause_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__susp__req_cause_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}; +// 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}; +// 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}; +// 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}; +// 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}; +// 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}; +// 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}; +// 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}; +// 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}; +// 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}; +// 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}; +// 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}; +// 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}; +// 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}; +// 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}; +// 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}; +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_JSONdescriptor_t PCUIF__Message_bts__nr_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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_, &PCUIF__Message_bts__nr_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}; +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 TTCN_JSONdescriptor_t PCUIF__Message_spare_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE }; +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, FALSE, -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_, &PCUIF__Message_spare_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}; +// 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}; +// 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 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__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_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 INTEGER_template template_tr__PCUIF__RACH__IND_burst__type_defval; +const INTEGER_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 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); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_6, + current_runtime_version.requires_minor_version_3, + current_runtime_version.requires_patch_level_1, 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 "<unknown>"; +} +} + +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) +{ + 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<PCUIF__MsgType>& 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<PCUIF__MsgType>& 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; i<value_list.n_values; i++) +if (value_list.list_value[i].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +void PCUIF__MsgType_template::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_TEMPLATE, "enumerated 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__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_i<m_p->get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + 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 "<unknown>"; +} +} + +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) +{ + 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<PCUIF__Sapi>& 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<PCUIF__Sapi>& 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; i<value_list.n_values; i++) +if (value_list.list_value[i].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +void PCUIF__Sapi_template::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_TEMPLATE, "enumerated 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__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_i<m_p->get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + 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(); +} + +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 (17<param.get_size()) { + param.error("record value of type @PCUIF_Types.PCUIF_Flags has 17 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_Flags: %s", param.get_elem(val_idx)->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) +{ (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; + decoded_field_length = field_bts__active.RAW_decode(PCUIF__Flags_bts__active_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_sysmo__direct__dsp.RAW_decode(PCUIF__Flags_sysmo__direct__dsp_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_spare.RAW_decode(PCUIF__Flags_spare_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_cs1.RAW_decode(PCUIF__Flags_cs1_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_cs2.RAW_decode(PCUIF__Flags_cs2_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_cs3.RAW_decode(PCUIF__Flags_cs3_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_cs4.RAW_decode(PCUIF__Flags_cs4_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_mcs1.RAW_decode(PCUIF__Flags_mcs1_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_mcs2.RAW_decode(PCUIF__Flags_mcs2_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_mcs3.RAW_decode(PCUIF__Flags_mcs3_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_mcs4.RAW_decode(PCUIF__Flags_mcs4_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_mcs5.RAW_decode(PCUIF__Flags_mcs5_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_mcs6.RAW_decode(PCUIF__Flags_mcs6_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_mcs7.RAW_decode(PCUIF__Flags_mcs7_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_mcs8.RAW_decode(PCUIF__Flags_mcs8_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_mcs9.RAW_decode(PCUIF__Flags_mcs9_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_spare2.RAW_decode(PCUIF__Flags_spare2_descr_, p_buf, limit, local_top_order, no_err); + 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<PCUIF__Flags>& 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<PCUIF__Flags>& 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_i<param.get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (17<param.get_size()) { + param.error("record template of type @PCUIF_Types.PCUIF_Flags has 17 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_Flags: %s", param.get_elem(val_idx)->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<value_list.n_values; l_idx++) +if (value_list.list_value[l_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +PCUIF__TextType::PCUIF__TextType() +{ +enum_value = UNBOUND_VALUE; +} + +PCUIF__TextType::PCUIF__TextType(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @PCUIF_Types.PCUIF_TextType with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +PCUIF__TextType::PCUIF__TextType(enum_type other_value) +{ +enum_value = other_value; +} + +PCUIF__TextType::PCUIF__TextType(const PCUIF__TextType& other_value) +: Base_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @PCUIF_Types.PCUIF_TextType."); +enum_value = other_value.enum_value; +} + +PCUIF__TextType& PCUIF__TextType::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_TextType.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +PCUIF__TextType& PCUIF__TextType::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +PCUIF__TextType& PCUIF__TextType::operator=(const PCUIF__TextType& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @PCUIF_Types.PCUIF_TextType."); +enum_value = other_value.enum_value; +return *this; +} + +boolean PCUIF__TextType::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_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; +} + +boolean PCUIF__TextType::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_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; +} + +boolean PCUIF__TextType::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_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 "<unknown>"; +} +} + +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) +{ + 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<PCUIF__TextType>& 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<PCUIF__TextType>& 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; i<value_list.n_values; i++) +if (value_list.list_value[i].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +void PCUIF__TextType_template::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_TEMPLATE, "enumerated 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__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_i<m_p->get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + 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(); +} + +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 (2<param.get_size()) { + param.error("record value of type @PCUIF_Types.PCUIF_txt_ind has 2 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_txt_ind: %s", param.get_elem(val_idx)->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) +{ (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; + decoded_field_length = field_txt__type.RAW_decode(PCUIF__txt__ind_txt__type_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_text.RAW_decode(PCUIF__txt__ind_text_descr_, p_buf, limit, local_top_order, no_err); + 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<PCUIF__txt__ind>& 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<PCUIF__txt__ind>& 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_i<param.get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (2<param.get_size()) { + param.error("record template of type @PCUIF_Types.PCUIF_txt_ind has 2 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_txt_ind: %s", param.get_elem(val_idx)->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_idx<value_list.n_values; l_idx++) +if (value_list.list_value[l_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +PCUIF__data::PCUIF__data() +{ +} + +PCUIF__data::PCUIF__data(const PCUIF__Sapi& par_sapi, + const INTEGER& par_len, + const OCTETSTRING& par_data, + const INTEGER& par_fn, + const INTEGER& par_arfcn, + const INTEGER& par_trx__nr, + const INTEGER& par_ts__nr, + const INTEGER& par_block__nr, + const INTEGER& par_rssi, + const INTEGER& par_ber10k, + const INTEGER& par_ta__offs__qbits, + const INTEGER& par_lqual__cb) + : field_sapi(par_sapi), + field_len(par_len), + field_data(par_data), + field_fn(par_fn), + field_arfcn(par_arfcn), + field_trx__nr(par_trx__nr), + field_ts__nr(par_ts__nr), + field_block__nr(par_block__nr), + field_rssi(par_rssi), + field_ber10k(par_ber10k), + field_ta__offs__qbits(par_ta__offs__qbits), + field_lqual__cb(par_lqual__cb) +{ +} + +PCUIF__data::PCUIF__data(const PCUIF__data& other_value) +{ +if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_data."); +if (other_value.sapi().is_bound()) field_sapi = other_value.sapi(); +else field_sapi.clean_up(); +if (other_value.len().is_bound()) field_len = other_value.len(); +else field_len.clean_up(); +if (other_value.data().is_bound()) field_data = other_value.data(); +else field_data.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.trx__nr().is_bound()) field_trx__nr = other_value.trx__nr(); +else field_trx__nr.clean_up(); +if (other_value.ts__nr().is_bound()) field_ts__nr = other_value.ts__nr(); +else field_ts__nr.clean_up(); +if (other_value.block__nr().is_bound()) field_block__nr = other_value.block__nr(); +else field_block__nr.clean_up(); +if (other_value.rssi().is_bound()) field_rssi = other_value.rssi(); +else field_rssi.clean_up(); +if (other_value.ber10k().is_bound()) field_ber10k = other_value.ber10k(); +else field_ber10k.clean_up(); +if (other_value.ta__offs__qbits().is_bound()) field_ta__offs__qbits = other_value.ta__offs__qbits(); +else field_ta__offs__qbits.clean_up(); +if (other_value.lqual__cb().is_bound()) field_lqual__cb = other_value.lqual__cb(); +else field_lqual__cb.clean_up(); +} + +void PCUIF__data::clean_up() +{ +field_sapi.clean_up(); +field_len.clean_up(); +field_data.clean_up(); +field_fn.clean_up(); +field_arfcn.clean_up(); +field_trx__nr.clean_up(); +field_ts__nr.clean_up(); +field_block__nr.clean_up(); +field_rssi.clean_up(); +field_ber10k.clean_up(); +field_ta__offs__qbits.clean_up(); +field_lqual__cb.clean_up(); +} + +PCUIF__data& PCUIF__data::operator=(const PCUIF__data& other_value) +{ +if (this != &other_value) { + if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @PCUIF_Types.PCUIF_data."); + if (other_value.sapi().is_bound()) field_sapi = other_value.sapi(); + else field_sapi.clean_up(); + if (other_value.len().is_bound()) field_len = other_value.len(); + else field_len.clean_up(); + if (other_value.data().is_bound()) field_data = other_value.data(); + else field_data.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.trx__nr().is_bound()) field_trx__nr = other_value.trx__nr(); + else field_trx__nr.clean_up(); + if (other_value.ts__nr().is_bound()) field_ts__nr = other_value.ts__nr(); + else field_ts__nr.clean_up(); + if (other_value.block__nr().is_bound()) field_block__nr = other_value.block__nr(); + else field_block__nr.clean_up(); + if (other_value.rssi().is_bound()) field_rssi = other_value.rssi(); + else field_rssi.clean_up(); + if (other_value.ber10k().is_bound()) field_ber10k = other_value.ber10k(); + else field_ber10k.clean_up(); + if (other_value.ta__offs__qbits().is_bound()) field_ta__offs__qbits = other_value.ta__offs__qbits(); + else field_ta__offs__qbits.clean_up(); + if (other_value.lqual__cb().is_bound()) field_lqual__cb = other_value.lqual__cb(); + else field_lqual__cb.clean_up(); +} +return *this; +} + +boolean PCUIF__data::operator==(const PCUIF__data& other_value) const +{ +return field_sapi==other_value.field_sapi + && field_len==other_value.field_len + && field_data==other_value.field_data + && field_fn==other_value.field_fn + && field_arfcn==other_value.field_arfcn + && field_trx__nr==other_value.field_trx__nr + && field_ts__nr==other_value.field_ts__nr + && field_block__nr==other_value.field_block__nr + && field_rssi==other_value.field_rssi + && field_ber10k==other_value.field_ber10k + && field_ta__offs__qbits==other_value.field_ta__offs__qbits + && field_lqual__cb==other_value.field_lqual__cb; +} + +boolean PCUIF__data::is_bound() const +{ +if(field_sapi.is_bound()) return TRUE; +if(field_len.is_bound()) return TRUE; +if(field_data.is_bound()) return TRUE; +if(field_fn.is_bound()) return TRUE; +if(field_arfcn.is_bound()) return TRUE; +if(field_trx__nr.is_bound()) return TRUE; +if(field_ts__nr.is_bound()) return TRUE; +if(field_block__nr.is_bound()) return TRUE; +if(field_rssi.is_bound()) return TRUE; +if(field_ber10k.is_bound()) return TRUE; +if(field_ta__offs__qbits.is_bound()) return TRUE; +if(field_lqual__cb.is_bound()) return TRUE; +return FALSE; +} +boolean PCUIF__data::is_value() const +{ +if(!field_sapi.is_value()) return FALSE; +if(!field_len.is_value()) return FALSE; +if(!field_data.is_value()) return FALSE; +if(!field_fn.is_value()) return FALSE; +if(!field_arfcn.is_value()) return FALSE; +if(!field_trx__nr.is_value()) return FALSE; +if(!field_ts__nr.is_value()) return FALSE; +if(!field_block__nr.is_value()) return FALSE; +if(!field_rssi.is_value()) return FALSE; +if(!field_ber10k.is_value()) return FALSE; +if(!field_ta__offs__qbits.is_value()) return FALSE; +if(!field_lqual__cb.is_value()) return FALSE; +return TRUE; +} +void PCUIF__data::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(", len := "); +field_len.log(); +TTCN_Logger::log_event_str(", data := "); +field_data.log(); +TTCN_Logger::log_event_str(", fn := "); +field_fn.log(); +TTCN_Logger::log_event_str(", arfcn := "); +field_arfcn.log(); +TTCN_Logger::log_event_str(", trx_nr := "); +field_trx__nr.log(); +TTCN_Logger::log_event_str(", ts_nr := "); +field_ts__nr.log(); +TTCN_Logger::log_event_str(", block_nr := "); +field_block__nr.log(); +TTCN_Logger::log_event_str(", rssi := "); +field_rssi.log(); +TTCN_Logger::log_event_str(", ber10k := "); +field_ber10k.log(); +TTCN_Logger::log_event_str(", ta_offs_qbits := "); +field_ta__offs__qbits.log(); +TTCN_Logger::log_event_str(", lqual_cb := "); +field_lqual__cb.log(); +TTCN_Logger::log_event_str(" }"); +} + +void PCUIF__data::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 (12<param.get_size()) { + param.error("record value of type @PCUIF_Types.PCUIF_data has 12 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_data: %s", param.get_elem(val_idx)->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) +{ (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; + decoded_field_length = field_sapi.RAW_decode(PCUIF__data_sapi_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_len.RAW_decode(PCUIF__data_len_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_data.RAW_decode(PCUIF__data_data_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_fn.RAW_decode(PCUIF__data_fn_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_arfcn.RAW_decode(PCUIF__data_arfcn_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_trx__nr.RAW_decode(PCUIF__data_trx__nr_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_ts__nr.RAW_decode(PCUIF__data_ts__nr_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_block__nr.RAW_decode(PCUIF__data_block__nr_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_rssi.RAW_decode(PCUIF__data_rssi_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_ber10k.RAW_decode(PCUIF__data_ber10k_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_ta__offs__qbits.RAW_decode(PCUIF__data_ta__offs__qbits_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_lqual__cb.RAW_decode(PCUIF__data_lqual__cb_descr_, p_buf, limit, local_top_order, no_err); + 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<PCUIF__data>& 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<PCUIF__data>& 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_i<param.get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (12<param.get_size()) { + param.error("record template of type @PCUIF_Types.PCUIF_data has 12 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_data: %s", param.get_elem(val_idx)->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_idx<value_list.n_values; l_idx++) +if (value_list.list_value[l_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +PCUIF__data__cnf__dt::PCUIF__data__cnf__dt() +{ +} + +PCUIF__data__cnf__dt::PCUIF__data__cnf__dt(const PCUIF__Sapi& par_sapi, + const OCTETSTRING& par_tlli, + const INTEGER& par_fn, + const INTEGER& par_arfcn, + const INTEGER& par_trx__nr, + const INTEGER& par_ts__nr, + const INTEGER& par_block__nr, + const INTEGER& par_rssi, + const INTEGER& par_ber10k, + const INTEGER& par_ta__offs__qbits, + const INTEGER& par_lqual__cb) + : field_sapi(par_sapi), + field_tlli(par_tlli), + field_fn(par_fn), + field_arfcn(par_arfcn), + field_trx__nr(par_trx__nr), + field_ts__nr(par_ts__nr), + field_block__nr(par_block__nr), + field_rssi(par_rssi), + field_ber10k(par_ber10k), + field_ta__offs__qbits(par_ta__offs__qbits), + field_lqual__cb(par_lqual__cb) +{ +} + +PCUIF__data__cnf__dt::PCUIF__data__cnf__dt(const PCUIF__data__cnf__dt& other_value) +{ +if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_data_cnf_dt."); +if (other_value.sapi().is_bound()) field_sapi = other_value.sapi(); +else field_sapi.clean_up(); +if (other_value.tlli().is_bound()) field_tlli = other_value.tlli(); +else field_tlli.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.trx__nr().is_bound()) field_trx__nr = other_value.trx__nr(); +else field_trx__nr.clean_up(); +if (other_value.ts__nr().is_bound()) field_ts__nr = other_value.ts__nr(); +else field_ts__nr.clean_up(); +if (other_value.block__nr().is_bound()) field_block__nr = other_value.block__nr(); +else field_block__nr.clean_up(); +if (other_value.rssi().is_bound()) field_rssi = other_value.rssi(); +else field_rssi.clean_up(); +if (other_value.ber10k().is_bound()) field_ber10k = other_value.ber10k(); +else field_ber10k.clean_up(); +if (other_value.ta__offs__qbits().is_bound()) field_ta__offs__qbits = other_value.ta__offs__qbits(); +else field_ta__offs__qbits.clean_up(); +if (other_value.lqual__cb().is_bound()) field_lqual__cb = other_value.lqual__cb(); +else field_lqual__cb.clean_up(); +} + +void PCUIF__data__cnf__dt::clean_up() +{ +field_sapi.clean_up(); +field_tlli.clean_up(); +field_fn.clean_up(); +field_arfcn.clean_up(); +field_trx__nr.clean_up(); +field_ts__nr.clean_up(); +field_block__nr.clean_up(); +field_rssi.clean_up(); +field_ber10k.clean_up(); +field_ta__offs__qbits.clean_up(); +field_lqual__cb.clean_up(); +} + +PCUIF__data__cnf__dt& PCUIF__data__cnf__dt::operator=(const PCUIF__data__cnf__dt& other_value) +{ +if (this != &other_value) { + if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @PCUIF_Types.PCUIF_data_cnf_dt."); + if (other_value.sapi().is_bound()) field_sapi = other_value.sapi(); + else field_sapi.clean_up(); + if (other_value.tlli().is_bound()) field_tlli = other_value.tlli(); + else field_tlli.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.trx__nr().is_bound()) field_trx__nr = other_value.trx__nr(); + else field_trx__nr.clean_up(); + if (other_value.ts__nr().is_bound()) field_ts__nr = other_value.ts__nr(); + else field_ts__nr.clean_up(); + if (other_value.block__nr().is_bound()) field_block__nr = other_value.block__nr(); + else field_block__nr.clean_up(); + if (other_value.rssi().is_bound()) field_rssi = other_value.rssi(); + else field_rssi.clean_up(); + if (other_value.ber10k().is_bound()) field_ber10k = other_value.ber10k(); + else field_ber10k.clean_up(); + if (other_value.ta__offs__qbits().is_bound()) field_ta__offs__qbits = other_value.ta__offs__qbits(); + else field_ta__offs__qbits.clean_up(); + if (other_value.lqual__cb().is_bound()) field_lqual__cb = other_value.lqual__cb(); + else field_lqual__cb.clean_up(); +} +return *this; +} + +boolean PCUIF__data__cnf__dt::operator==(const PCUIF__data__cnf__dt& other_value) const +{ +return field_sapi==other_value.field_sapi + && field_tlli==other_value.field_tlli + && field_fn==other_value.field_fn + && field_arfcn==other_value.field_arfcn + && field_trx__nr==other_value.field_trx__nr + && field_ts__nr==other_value.field_ts__nr + && field_block__nr==other_value.field_block__nr + && field_rssi==other_value.field_rssi + && field_ber10k==other_value.field_ber10k + && field_ta__offs__qbits==other_value.field_ta__offs__qbits + && field_lqual__cb==other_value.field_lqual__cb; +} + +boolean PCUIF__data__cnf__dt::is_bound() const +{ +if(field_sapi.is_bound()) return TRUE; +if(field_tlli.is_bound()) return TRUE; +if(field_fn.is_bound()) return TRUE; +if(field_arfcn.is_bound()) return TRUE; +if(field_trx__nr.is_bound()) return TRUE; +if(field_ts__nr.is_bound()) return TRUE; +if(field_block__nr.is_bound()) return TRUE; +if(field_rssi.is_bound()) return TRUE; +if(field_ber10k.is_bound()) return TRUE; +if(field_ta__offs__qbits.is_bound()) return TRUE; +if(field_lqual__cb.is_bound()) return TRUE; +return FALSE; +} +boolean PCUIF__data__cnf__dt::is_value() const +{ +if(!field_sapi.is_value()) return FALSE; +if(!field_tlli.is_value()) return FALSE; +if(!field_fn.is_value()) return FALSE; +if(!field_arfcn.is_value()) return FALSE; +if(!field_trx__nr.is_value()) return FALSE; +if(!field_ts__nr.is_value()) return FALSE; +if(!field_block__nr.is_value()) return FALSE; +if(!field_rssi.is_value()) return FALSE; +if(!field_ber10k.is_value()) return FALSE; +if(!field_ta__offs__qbits.is_value()) return FALSE; +if(!field_lqual__cb.is_value()) return FALSE; +return TRUE; +} +void PCUIF__data__cnf__dt::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(", tlli := "); +field_tlli.log(); +TTCN_Logger::log_event_str(", fn := "); +field_fn.log(); +TTCN_Logger::log_event_str(", arfcn := "); +field_arfcn.log(); +TTCN_Logger::log_event_str(", trx_nr := "); +field_trx__nr.log(); +TTCN_Logger::log_event_str(", ts_nr := "); +field_ts__nr.log(); +TTCN_Logger::log_event_str(", block_nr := "); +field_block__nr.log(); +TTCN_Logger::log_event_str(", rssi := "); +field_rssi.log(); +TTCN_Logger::log_event_str(", ber10k := "); +field_ber10k.log(); +TTCN_Logger::log_event_str(", ta_offs_qbits := "); +field_ta__offs__qbits.log(); +TTCN_Logger::log_event_str(", lqual_cb := "); +field_lqual__cb.log(); +TTCN_Logger::log_event_str(" }"); +} + +void PCUIF__data__cnf__dt::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 (11<param.get_size()) { + param.error("record value of type @PCUIF_Types.PCUIF_data_cnf_dt has 11 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_data_cnf_dt: %s", param.get_elem(val_idx)->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) +{ (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; + decoded_field_length = field_sapi.RAW_decode(PCUIF__data__cnf__dt_sapi_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_tlli.RAW_decode(PCUIF__data__cnf__dt_tlli_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_fn.RAW_decode(PCUIF__data__cnf__dt_fn_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_arfcn.RAW_decode(PCUIF__data__cnf__dt_arfcn_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_trx__nr.RAW_decode(PCUIF__data__cnf__dt_trx__nr_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_ts__nr.RAW_decode(PCUIF__data__cnf__dt_ts__nr_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_block__nr.RAW_decode(PCUIF__data__cnf__dt_block__nr_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_rssi.RAW_decode(PCUIF__data__cnf__dt_rssi_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_ber10k.RAW_decode(PCUIF__data__cnf__dt_ber10k_descr_, p_buf, limit, local_top_order, no_err); + 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()); + 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); + 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()); + decoded_field_length = field_lqual__cb.RAW_decode(PCUIF__data__cnf__dt_lqual__cb_descr_, p_buf, limit, local_top_order, no_err); + 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<PCUIF__data__cnf__dt>& 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<PCUIF__data__cnf__dt>& 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_i<param.get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (11<param.get_size()) { + param.error("record template of type @PCUIF_Types.PCUIF_data_cnf_dt has 11 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_data_cnf_dt: %s", param.get_elem(val_idx)->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_idx<value_list.n_values; l_idx++) +if (value_list.list_value[l_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +PCUIF__rts__req::PCUIF__rts__req() +{ +} + +PCUIF__rts__req::PCUIF__rts__req(const PCUIF__Sapi& par_sapi, + const OCTETSTRING& par_spare, + const INTEGER& par_fn, + const INTEGER& par_arfcn, + const INTEGER& par_trx__nr, + const INTEGER& par_ts__nr, + const INTEGER& par_block__nr) + : field_sapi(par_sapi), + field_spare(par_spare), + field_fn(par_fn), + field_arfcn(par_arfcn), + field_trx__nr(par_trx__nr), + field_ts__nr(par_ts__nr), + field_block__nr(par_block__nr) +{ +} + +PCUIF__rts__req::PCUIF__rts__req(const PCUIF__rts__req& other_value) +{ +if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_rts_req."); +if (other_value.sapi().is_bound()) field_sapi = other_value.sapi(); +else field_sapi.clean_up(); +if (other_value.spare().is_bound()) field_spare = other_value.spare(); +else field_spare.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.trx__nr().is_bound()) field_trx__nr = other_value.trx__nr(); +else field_trx__nr.clean_up(); +if (other_value.ts__nr().is_bound()) field_ts__nr = other_value.ts__nr(); +else field_ts__nr.clean_up(); +if (other_value.block__nr().is_bound()) field_block__nr = other_value.block__nr(); +else field_block__nr.clean_up(); +} + +void PCUIF__rts__req::clean_up() +{ +field_sapi.clean_up(); +field_spare.clean_up(); +field_fn.clean_up(); +field_arfcn.clean_up(); +field_trx__nr.clean_up(); +field_ts__nr.clean_up(); +field_block__nr.clean_up(); +} + +PCUIF__rts__req& PCUIF__rts__req::operator=(const PCUIF__rts__req& other_value) +{ +if (this != &other_value) { + if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @PCUIF_Types.PCUIF_rts_req."); + if (other_value.sapi().is_bound()) field_sapi = other_value.sapi(); + else field_sapi.clean_up(); + if (other_value.spare().is_bound()) field_spare = other_value.spare(); + else field_spare.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.trx__nr().is_bound()) field_trx__nr = other_value.trx__nr(); + else field_trx__nr.clean_up(); + if (other_value.ts__nr().is_bound()) field_ts__nr = other_value.ts__nr(); + else field_ts__nr.clean_up(); + if (other_value.block__nr().is_bound()) field_block__nr = other_value.block__nr(); + else field_block__nr.clean_up(); +} +return *this; +} + +boolean PCUIF__rts__req::operator==(const PCUIF__rts__req& other_value) const +{ +return field_sapi==other_value.field_sapi + && field_spare==other_value.field_spare + && field_fn==other_value.field_fn + && field_arfcn==other_value.field_arfcn + && field_trx__nr==other_value.field_trx__nr + && field_ts__nr==other_value.field_ts__nr + && field_block__nr==other_value.field_block__nr; +} + +boolean PCUIF__rts__req::is_bound() const +{ +if(field_sapi.is_bound()) return TRUE; +if(field_spare.is_bound()) return TRUE; +if(field_fn.is_bound()) return TRUE; +if(field_arfcn.is_bound()) return TRUE; +if(field_trx__nr.is_bound()) return TRUE; +if(field_ts__nr.is_bound()) return TRUE; +if(field_block__nr.is_bound()) return TRUE; +return FALSE; +} +boolean PCUIF__rts__req::is_value() const +{ +if(!field_sapi.is_value()) return FALSE; +if(!field_spare.is_value()) return FALSE; +if(!field_fn.is_value()) return FALSE; +if(!field_arfcn.is_value()) return FALSE; +if(!field_trx__nr.is_value()) return FALSE; +if(!field_ts__nr.is_value()) return FALSE; +if(!field_block__nr.is_value()) return FALSE; +return TRUE; +} +void PCUIF__rts__req::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(", spare := "); +field_spare.log(); +TTCN_Logger::log_event_str(", fn := "); +field_fn.log(); +TTCN_Logger::log_event_str(", arfcn := "); +field_arfcn.log(); +TTCN_Logger::log_event_str(", trx_nr := "); +field_trx__nr.log(); +TTCN_Logger::log_event_str(", ts_nr := "); +field_ts__nr.log(); +TTCN_Logger::log_event_str(", block_nr := "); +field_block__nr.log(); +TTCN_Logger::log_event_str(" }"); +} + +void PCUIF__rts__req::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "record value"); + switch (param.get_type()) { + case Module_Param::MP_Value_List: + if (7<param.get_size()) { + param.error("record value of type @PCUIF_Types.PCUIF_rts_req has 7 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_rts_req: %s", param.get_elem(val_idx)->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) +{ (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; + decoded_field_length = field_sapi.RAW_decode(PCUIF__rts__req_sapi_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_spare.RAW_decode(PCUIF__rts__req_spare_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_fn.RAW_decode(PCUIF__rts__req_fn_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_arfcn.RAW_decode(PCUIF__rts__req_arfcn_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_trx__nr.RAW_decode(PCUIF__rts__req_trx__nr_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_ts__nr.RAW_decode(PCUIF__rts__req_ts__nr_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_block__nr.RAW_decode(PCUIF__rts__req_block__nr_descr_, p_buf, limit, local_top_order, no_err); + 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<PCUIF__rts__req>& 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<PCUIF__rts__req>& 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_i<param.get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (7<param.get_size()) { + param.error("record template of type @PCUIF_Types.PCUIF_rts_req has 7 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_rts_req: %s", param.get_elem(val_idx)->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<value_list.n_values; l_idx++) +if (value_list.list_value[l_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +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 INTEGER& 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(); +} + +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 (7<param.get_size()) { + param.error("record value of type @PCUIF_Types.PCUIF_rach_ind has 7 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_rach_ind: %s", param.get_elem(val_idx)->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) +{ (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; + decoded_field_length = field_sapi.RAW_decode(PCUIF__rach__ind_sapi_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_ra.RAW_decode(PCUIF__rach__ind_ra_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_qta.RAW_decode(PCUIF__rach__ind_qta_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_fn.RAW_decode(PCUIF__rach__ind_fn_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_arfcn.RAW_decode(PCUIF__rach__ind_arfcn_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_is__11bit.RAW_decode(PCUIF__rach__ind_is__11bit_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_burst__type.RAW_decode(PCUIF__rach__ind_burst__type_descr_, p_buf, limit, local_top_order, no_err); + 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; +INTEGER_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<PCUIF__rach__ind>& 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<PCUIF__rach__ind>& 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; +} + +INTEGER_template& PCUIF__rach__ind_template::burst__type() +{ +set_specific(); +return single_value->field_burst__type; +} + +const INTEGER_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_i<param.get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (7<param.get_size()) { + param.error("record template of type @PCUIF_Types.PCUIF_rach_ind has 7 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_rach_ind: %s", param.get_elem(val_idx)->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_idx<value_list.n_values; l_idx++) +if (value_list.list_value[l_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +PCUIF__InfoTrx::PCUIF__InfoTrx() +{ +} + +PCUIF__InfoTrx::PCUIF__InfoTrx(const INTEGER& par_arfcn, + const BITSTRING& par_pdch__mask, + const OCTETSTRING& par_spare, + const OCTETSTRING& par_tsc, + const INTEGER& par_hLayer1) + : field_arfcn(par_arfcn), + field_pdch__mask(par_pdch__mask), + field_spare(par_spare), + field_tsc(par_tsc), + field_hLayer1(par_hLayer1) +{ +} + +PCUIF__InfoTrx::PCUIF__InfoTrx(const PCUIF__InfoTrx& other_value) +{ +if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_InfoTrx."); +if (other_value.arfcn().is_bound()) field_arfcn = other_value.arfcn(); +else field_arfcn.clean_up(); +if (other_value.pdch__mask().is_bound()) field_pdch__mask = other_value.pdch__mask(); +else field_pdch__mask.clean_up(); +if (other_value.spare().is_bound()) field_spare = other_value.spare(); +else field_spare.clean_up(); +if (other_value.tsc().is_bound()) field_tsc = other_value.tsc(); +else field_tsc.clean_up(); +if (other_value.hLayer1().is_bound()) field_hLayer1 = other_value.hLayer1(); +else field_hLayer1.clean_up(); +} + +void PCUIF__InfoTrx::clean_up() +{ +field_arfcn.clean_up(); +field_pdch__mask.clean_up(); +field_spare.clean_up(); +field_tsc.clean_up(); +field_hLayer1.clean_up(); +} + +PCUIF__InfoTrx& PCUIF__InfoTrx::operator=(const PCUIF__InfoTrx& other_value) +{ +if (this != &other_value) { + if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @PCUIF_Types.PCUIF_InfoTrx."); + if (other_value.arfcn().is_bound()) field_arfcn = other_value.arfcn(); + else field_arfcn.clean_up(); + if (other_value.pdch__mask().is_bound()) field_pdch__mask = other_value.pdch__mask(); + else field_pdch__mask.clean_up(); + if (other_value.spare().is_bound()) field_spare = other_value.spare(); + else field_spare.clean_up(); + if (other_value.tsc().is_bound()) field_tsc = other_value.tsc(); + else field_tsc.clean_up(); + if (other_value.hLayer1().is_bound()) field_hLayer1 = other_value.hLayer1(); + else field_hLayer1.clean_up(); +} +return *this; +} + +boolean PCUIF__InfoTrx::operator==(const PCUIF__InfoTrx& other_value) const +{ +return field_arfcn==other_value.field_arfcn + && field_pdch__mask==other_value.field_pdch__mask + && field_spare==other_value.field_spare + && field_tsc==other_value.field_tsc + && field_hLayer1==other_value.field_hLayer1; +} + +boolean PCUIF__InfoTrx::is_bound() const +{ +if(field_arfcn.is_bound()) return TRUE; +if(field_pdch__mask.is_bound()) return TRUE; +if(field_spare.is_bound()) return TRUE; +if(field_tsc.is_bound()) return TRUE; +if(field_hLayer1.is_bound()) return TRUE; +return FALSE; +} +boolean PCUIF__InfoTrx::is_value() const +{ +if(!field_arfcn.is_value()) return FALSE; +if(!field_pdch__mask.is_value()) return FALSE; +if(!field_spare.is_value()) return FALSE; +if(!field_tsc.is_value()) return FALSE; +if(!field_hLayer1.is_value()) return FALSE; +return TRUE; +} +void PCUIF__InfoTrx::log() const +{ +if (!is_bound()) { +TTCN_Logger::log_event_unbound(); +return; +} +TTCN_Logger::log_event_str("{ arfcn := "); +field_arfcn.log(); +TTCN_Logger::log_event_str(", pdch_mask := "); +field_pdch__mask.log(); +TTCN_Logger::log_event_str(", spare := "); +field_spare.log(); +TTCN_Logger::log_event_str(", tsc := "); +field_tsc.log(); +TTCN_Logger::log_event_str(", hLayer1 := "); +field_hLayer1.log(); +TTCN_Logger::log_event_str(" }"); +} + +void PCUIF__InfoTrx::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 (5<param.get_size()) { + param.error("record value of type @PCUIF_Types.PCUIF_InfoTrx has 5 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_InfoTrx: %s", param.get_elem(val_idx)->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) +{ (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; + decoded_field_length = field_arfcn.RAW_decode(PCUIF__InfoTrx_arfcn_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_pdch__mask.RAW_decode(PCUIF__InfoTrx_pdch__mask_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_spare.RAW_decode(PCUIF__InfoTrx_spare_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_tsc.RAW_decode(PCUIF__InfoTrx_tsc_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_hLayer1.RAW_decode(PCUIF__InfoTrx_hLayer1_descr_, p_buf, limit, local_top_order, no_err); + 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<PCUIF__InfoTrx>& 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<PCUIF__InfoTrx>& 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_i<param.get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (5<param.get_size()) { + param.error("record template of type @PCUIF_Types.PCUIF_InfoTrx has 5 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_InfoTrx: %s", param.get_elem(val_idx)->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_idx<value_list.n_values; l_idx++) +if (value_list.list_value[l_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + + +const PCUIF__InfoTrx PCUIF__info__ind_trx::UNBOUND_ELEM; +PCUIF__info__ind_trx::PCUIF__info__ind_trx() +{ +val_ptr = NULL; +} + +PCUIF__info__ind_trx::PCUIF__info__ind_trx(null_type) +{ +val_ptr = new recordof_setof_struct; +val_ptr->ref_count = 1; +val_ptr->n_elements = 0; +val_ptr->value_elements = NULL; +} + +PCUIF__info__ind_trx::PCUIF__info__ind_trx(const PCUIF__info__ind_trx& other_value) +{ +if (!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_info_ind.trx."); +val_ptr = other_value.val_ptr; +val_ptr->ref_count++; +} + +PCUIF__info__ind_trx::~PCUIF__info__ind_trx() +{ +clean_up(); +if (val_ptr != NULL) val_ptr = NULL; +} + +void PCUIF__info__ind_trx::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__info__ind_trx& PCUIF__info__ind_trx::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__info__ind_trx& PCUIF__info__ind_trx::operator=(const PCUIF__info__ind_trx& other_value) +{ +if (other_value.val_ptr == NULL) TTCN_error("Assigning an unbound value of type @PCUIF_Types.PCUIF_info_ind.trx."); +if (this != &other_value) { +clean_up(); +val_ptr = other_value.val_ptr; +val_ptr->ref_count++; +} +return *this; +} + +boolean PCUIF__info__ind_trx::operator==(null_type) const +{ +if (val_ptr == NULL) +TTCN_error("The left operand of comparison is an unbound value of type @PCUIF_Types.PCUIF_info_ind.trx."); +return val_ptr->n_elements == 0 ; +} + +boolean PCUIF__info__ind_trx::operator==(const PCUIF__info__ind_trx& other_value) const +{ +if (val_ptr == NULL) TTCN_error("The left operand of comparison is an unbound value of type @PCUIF_Types.PCUIF_info_ind.trx."); +if (other_value.val_ptr == NULL) TTCN_error("The right operand of comparison is an unbound value of type @PCUIF_Types.PCUIF_info_ind.trx."); +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__info__ind_trx::operator[](int index_value) +{ +if (index_value < 0) TTCN_error("Accessing an element of type @PCUIF_Types.PCUIF_info_ind.trx 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__info__ind_trx::operator[](const INTEGER& index_value) +{ +index_value.must_bound("Using an unbound integer value for indexing a value of type @PCUIF_Types.PCUIF_info_ind.trx."); +return (*this)[(int)index_value]; +} + +const PCUIF__InfoTrx& PCUIF__info__ind_trx::operator[](int index_value) const +{ +if (val_ptr == NULL) +TTCN_error("Accessing an element in an unbound value of type @PCUIF_Types.PCUIF_info_ind.trx."); +if (index_value < 0) TTCN_error("Accessing an element of type @PCUIF_Types.PCUIF_info_ind.trx 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_info_ind.trx: 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) ? +*val_ptr->value_elements[index_value] : UNBOUND_ELEM; +} + +const PCUIF__InfoTrx& PCUIF__info__ind_trx::operator[](const INTEGER& index_value) const +{ +index_value.must_bound("Using an unbound integer value for indexing a value of type @PCUIF_Types.PCUIF_info_ind.trx."); +return (*this)[(int)index_value]; +} + +PCUIF__info__ind_trx PCUIF__info__ind_trx::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +PCUIF__info__ind_trx PCUIF__info__ind_trx::operator<<=(const INTEGER& rotate_count) const +{ +rotate_count.must_bound("Unbound integer operand of rotate left operator."); +return *this >>= (int)(-rotate_count); +} + +PCUIF__info__ind_trx PCUIF__info__ind_trx::operator>>=(const INTEGER& rotate_count) const +{ +rotate_count.must_bound("Unbound integer operand of rotate right operator."); +return *this >>= (int)rotate_count; +} + +PCUIF__info__ind_trx PCUIF__info__ind_trx::operator>>=(int rotate_count) const +{ +if (val_ptr == NULL) TTCN_error("Performing rotation operation on an unbound value of type @PCUIF_Types.PCUIF_info_ind.trx."); +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__info__ind_trx ret_val; +ret_val.set_size(val_ptr->n_elements); +for (int i=0; i<val_ptr->n_elements; i++) { +if (val_ptr->value_elements[i] != NULL) { +ret_val.val_ptr->value_elements[(i+rc)%val_ptr->n_elements] =new PCUIF__InfoTrx(*val_ptr->value_elements[i]); +} +} +return ret_val; +} + +PCUIF__info__ind_trx PCUIF__info__ind_trx::operator+(const PCUIF__info__ind_trx& other_value) const +{ +if (val_ptr == NULL || other_value.val_ptr == NULL) TTCN_error("Unbound operand of @PCUIF_Types.PCUIF_info_ind.trx concatenation."); +if (val_ptr->n_elements == 0) return other_value; +if (other_value.val_ptr->n_elements == 0) return *this; +PCUIF__info__ind_trx ret_val; +ret_val.set_size(val_ptr->n_elements+other_value.val_ptr->n_elements); +for (int i=0; i<val_ptr->n_elements; i++) { +if (val_ptr->value_elements[i] != NULL) { +ret_val.val_ptr->value_elements[i] = new PCUIF__InfoTrx(*val_ptr->value_elements[i]); +} +} +for (int i=0; i<other_value.val_ptr->n_elements; i++) { +if (other_value.val_ptr->value_elements[i] != NULL) { +ret_val.val_ptr->value_elements[i+val_ptr->n_elements] = new PCUIF__InfoTrx(*other_value.val_ptr->value_elements[i]); +} +} +return ret_val; +} + +PCUIF__info__ind_trx PCUIF__info__ind_trx::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_info_ind.trx."); +check_substr_arguments(val_ptr->n_elements, index, returncount, "@PCUIF_Types.PCUIF_info_ind.trx","element"); +PCUIF__info__ind_trx ret_val; +ret_val.set_size(returncount); +for (int i=0; i<returncount; i++) { +if (val_ptr->value_elements[i+index] != NULL) { +ret_val.val_ptr->value_elements[i] = new PCUIF__InfoTrx(*val_ptr->value_elements[i+index]); +} +} +return ret_val; +} + +PCUIF__info__ind_trx PCUIF__info__ind_trx::replace(int index, int len, const PCUIF__info__ind_trx& repl) const +{ +if (val_ptr == NULL) TTCN_error("The first argument of replace() is an unbound value of type @PCUIF_Types.PCUIF_info_ind.trx."); +if (repl.val_ptr == NULL) TTCN_error("The fourth argument of replace() is an unbound value of type @PCUIF_Types.PCUIF_info_ind.trx."); +check_replace_arguments(val_ptr->n_elements, index, len, "@PCUIF_Types.PCUIF_info_ind.trx","element"); +PCUIF__info__ind_trx 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__info__ind_trx PCUIF__info__ind_trx::replace(int index, int len, const PCUIF__info__ind_trx_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__info__ind_trx::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_info_ind.trx."); +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_info_ind.trx: %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__info__ind_trx::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__info__ind_trx::size_of() const +{ +if (val_ptr == NULL) TTCN_error("Performing sizeof operation on an unbound value of type @PCUIF_Types.PCUIF_info_ind.trx."); +return val_ptr->n_elements; +} + +int PCUIF__info__ind_trx::lengthof() const +{ +if (val_ptr == NULL) TTCN_error("Performing lengthof operation on an unbound value of type @PCUIF_Types.PCUIF_info_ind.trx."); +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__info__ind_trx::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__info__ind_trx::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, "record of value"); + switch (param.get_operation_type()) { + case Module_Param::OT_ASSIGN: + if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) { + *this = NULL_VALUE; + return; + } + switch (param.get_type()) { + case Module_Param::MP_Value_List: + set_size(param.get_size()); + for (size_t i=0; i<param.get_size(); ++i) { + Module_Param* const curr = param.get_elem(i); + if (curr->get_type()!=Module_Param::MP_NotUsed) { + (*this)[i].set_param(*curr); + if (!(*this)[i].is_bound()) { + delete val_ptr->value_elements[i]; + val_ptr->value_elements[i] = NULL; + } + } + } + break; + case Module_Param::MP_Indexed_List: + for (size_t i=0; i<param.get_size(); ++i) { + Module_Param* const curr = param.get_elem(i); + (*this)[curr->get_id()->get_index()].set_param(*curr); + if (!(*this)[curr->get_id()->get_index()].is_bound()) { + delete val_ptr->value_elements[curr->get_id()->get_index()]; + val_ptr->value_elements[curr->get_id()->get_index()] = NULL; + } + } + break; + default: + param.type_error("record of value", "@PCUIF_Types.PCUIF_info_ind.trx"); + } + break; + case Module_Param::OT_CONCAT: + switch (param.get_type()) { + case Module_Param::MP_Value_List: { + if (!is_bound()) *this = NULL_VALUE; + int start_idx = lengthof(); + for (size_t i=0; i<param.get_size(); ++i) { + Module_Param* const curr = param.get_elem(i); + if ((curr->get_type()!=Module_Param::MP_NotUsed)) { + (*this)[start_idx+(int)i].set_param(*curr); + } + } + } break; + case Module_Param::MP_Indexed_List: + param.error("Cannot concatenate an indexed value list"); + break; + default: + param.type_error("record of value", "@PCUIF_Types.PCUIF_info_ind.trx"); + } + break; + default: + TTCN_error("Internal error: Unknown operation type."); + } +} + +void PCUIF__info__ind_trx::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__info__ind_trx::encode_text(Text_Buf& text_buf) const +{ +if (val_ptr == NULL) TTCN_error("Text encoder: Encoding an unbound value of type @PCUIF_Types.PCUIF_info_ind.trx."); +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__info__ind_trx::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_info_ind.trx."); +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__info__ind_trx::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_trx::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_trx::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){ + 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;a<sel_field;a++){ + decoded_field_length=(*this)[a+start_field].RAW_decode(*p_td.oftype_descr,p_buf,limit,top_bit_ord,TRUE); + if(decoded_field_length < 0) return decoded_field_length; + decoded_length+=decoded_field_length; + limit-=decoded_field_length; + } + if(a==0) val_ptr->n_elements=0; + } else { + int a=start_field; + 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; + } + 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__info__ind_trx::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;a<encoded_num_of_records;a++){ + myleaf.body.node.nodes[a]=new RAW_enc_tree(TRUE,&myleaf,&(myleaf.curr_pos),a,p_td.oftype_descr->raw); + encoded_length+=(*this)[a].RAW_encode(*p_td.oftype_descr,*myleaf.body.node.nodes[a]); + } + return myleaf.length=encoded_length; +} + +void PCUIF__info__ind_trx_template::copy_value(const PCUIF__info__ind_trx& other_value) +{ +if (!other_value.is_bound()) TTCN_error("Initialization of a template of type @PCUIF_Types.PCUIF_info_ind.trx 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__info__ind_trx_template::copy_template(const PCUIF__info__ind_trx_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__info__ind_trx_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.trx."); +break; +} +set_selection(other_value); +} + +boolean PCUIF__info__ind_trx_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__info__ind_trx_template*)template_ptr)->single_value.value_elements[template_index]->match((*(const PCUIF__info__ind_trx*)value_ptr)[value_index], legacy); +else return ((const PCUIF__info__ind_trx_template*)template_ptr)->single_value.value_elements[template_index]->is_any_or_omit(); +} + +PCUIF__info__ind_trx_template::PCUIF__info__ind_trx_template() +{ +} + +PCUIF__info__ind_trx_template::PCUIF__info__ind_trx_template(template_sel other_value) + : Record_Of_Template(other_value) +{ +check_single_selection(other_value); +} + +PCUIF__info__ind_trx_template::PCUIF__info__ind_trx_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +PCUIF__info__ind_trx_template::PCUIF__info__ind_trx_template(const PCUIF__info__ind_trx& other_value) +{ +copy_value(other_value); +} + +PCUIF__info__ind_trx_template::PCUIF__info__ind_trx_template(const OPTIONAL<PCUIF__info__ind_trx>& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const PCUIF__info__ind_trx&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of type @PCUIF_Types.PCUIF_info_ind.trx from an unbound optional field."); +} +} + +PCUIF__info__ind_trx_template::PCUIF__info__ind_trx_template(const PCUIF__info__ind_trx_template& other_value) + : Record_Of_Template() +{ +copy_template(other_value); +} + +PCUIF__info__ind_trx_template::~PCUIF__info__ind_trx_template() +{ +clean_up(); +} + +void PCUIF__info__ind_trx_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__info__ind_trx_template& PCUIF__info__ind_trx_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PCUIF__info__ind_trx_template& PCUIF__info__ind_trx_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +PCUIF__info__ind_trx_template& PCUIF__info__ind_trx_template::operator=(const PCUIF__info__ind_trx& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +PCUIF__info__ind_trx_template& PCUIF__info__ind_trx_template::operator=(const OPTIONAL<PCUIF__info__ind_trx>& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const PCUIF__info__ind_trx&)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.trx."); +} +return *this; +} + +PCUIF__info__ind_trx_template& PCUIF__info__ind_trx_template::operator=(const PCUIF__info__ind_trx_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PCUIF__InfoTrx_template& PCUIF__info__ind_trx_template::operator[](int index_value) +{ +if (index_value < 0) TTCN_error("Accessing an element of a template for type @PCUIF_Types.PCUIF_info_ind.trx 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_info_ind.trx."); + break; +} +return *single_value.value_elements[index_value]; +} + +PCUIF__InfoTrx_template& PCUIF__info__ind_trx_template::operator[](const INTEGER& index_value) +{ +index_value.must_bound("Using an unbound integer value for indexing a template of type @PCUIF_Types.PCUIF_info_ind.trx."); +return (*this)[(int)index_value]; +} + +const PCUIF__InfoTrx_template& PCUIF__info__ind_trx_template::operator[](int index_value) const +{ +if (index_value < 0) TTCN_error("Accessing an element of a template for type @PCUIF_Types.PCUIF_info_ind.trx 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_info_ind.trx."); +if (index_value >= single_value.n_elements) TTCN_error("Index overflow in a template of type @PCUIF_Types.PCUIF_info_ind.trx: 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__info__ind_trx_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_info_ind.trx."); +return (*this)[(int)index_value]; +} + +void PCUIF__info__ind_trx_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_info_ind.trx."); +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__info__ind_trx_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__info__ind_trx_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_info_ind.trx which has an ifpresent attribute.", op_name); +switch (template_selection) +{ +case SPECIFIC_VALUE: { + min_size = 0; + has_any_or_none = FALSE; + int elem_count = single_value.n_elements; + if (!is_size) { while (elem_count>0 && !single_value.value_elements[elem_count-1]->is_bound()) elem_count--; } + for (int i=0; i<elem_count; i++) { + switch (single_value.value_elements[i]->get_selection()) { + case OMIT_VALUE: + TTCN_error("Performing %sof() operation on a template of type @PCUIF_Types.PCUIF_info_ind.trx 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_info_ind.trx 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_info_ind.trx 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_info_ind.trx 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_info_ind.trx containing complemented list.", op_name); +default: + TTCN_error("Performing %sof() operation on an uninitialized/unsupported template of type @PCUIF_Types.PCUIF_info_ind.trx.", op_name); +} +return check_section_is_single(min_size, has_any_or_none, op_name, "a", "template of type @PCUIF_Types.PCUIF_info_ind.trx"); +} + +boolean PCUIF__info__ind_trx_template::match(const PCUIF__info__ind_trx& 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_info_ind.trx."); +} +return FALSE; +} + +boolean PCUIF__info__ind_trx_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__info__ind_trx PCUIF__info__ind_trx_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.trx."); +PCUIF__info__ind_trx 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__info__ind_trx PCUIF__info__ind_trx_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__info__ind_trx PCUIF__info__ind_trx_template::replace(int index, int len, const PCUIF__info__ind_trx_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__info__ind_trx PCUIF__info__ind_trx_template::replace(int index, int len, const PCUIF__info__ind_trx& 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__info__ind_trx_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__info__ind_trx_template[list_length]; +break; +default: +TTCN_error("Internal error: Setting an invalid type for a template of type @PCUIF_Types.PCUIF_info_ind.trx."); +} +set_selection(template_type); +} + +PCUIF__info__ind_trx_template& PCUIF__info__ind_trx_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_info_ind.trx."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of type @PCUIF_Types.PCUIF_info_ind.trx."); +return value_list.list_value[list_index]; +} + +void PCUIF__info__ind_trx_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__info__ind_trx_template::log_match(const PCUIF__info__ind_trx& 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__info__ind_trx_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_info_ind.trx."); +} +} + +void PCUIF__info__ind_trx_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_info_ind.trx."); +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__info__ind_trx_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_info_ind.trx."); +} +} + +boolean PCUIF__info__ind_trx_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean PCUIF__info__ind_trx_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; i<value_list.n_values; i++) +if (value_list.list_value[i].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +void PCUIF__info__ind_trx_template::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "record of template"); + switch (param.get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: { + PCUIF__info__ind_trx_template temp; + temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size()); + for (size_t p_i=0; p_i<param.get_size(); p_i++) { + temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = temp; + break; } + case Module_Param::MP_Indexed_List: + if (template_selection!=SPECIFIC_VALUE) set_size(0); + for (size_t p_i=0; p_i<param.get_size(); ++p_i) { + (*this)[(int)(param.get_elem(p_i)->get_id()->get_index())].set_param(*param.get_elem(p_i)); + } + break; + case Module_Param::MP_Value_List: { + set_size(param.get_size()); + int curr_idx = 0; + for (size_t p_i=0; p_i<param.get_size(); ++p_i) { + switch (param.get_elem(p_i)->get_type()) { + case Module_Param::MP_NotUsed: + curr_idx++; + break; + case Module_Param::MP_Permutation_Template: { + int perm_start_idx = curr_idx; + for (size_t perm_i=0; perm_i<param.get_elem(p_i)->get_size(); perm_i++) { + (*this)[curr_idx].set_param(*(param.get_elem(p_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_info_ind.trx"); + } + is_ifpresent = param.get_ifpresent(); + set_length_range(param); +} + +void PCUIF__info__ind_trx_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +for (int i=0; i<single_value.n_elements; i++) single_value.value_elements[i]->check_restriction(t_res, t_name ? t_name : "@PCUIF_Types.PCUIF_info_ind.trx"); +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.trx"); +} + +boolean PCUIF__info__ind_trx_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__info__ind_trx& 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(); +} + +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 (33<param.get_size()) { + param.error("record value of type @PCUIF_Types.PCUIF_info_ind has 33 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "flags")) { + if (curr_param->get_type()!=Module_Param::MP_NotUsed) { + flags().set_param(*curr_param); + } + value_used[val_idx]=TRUE; + } + } + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_info_ind: %s", param.get_elem(val_idx)->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) +{ (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; + decoded_field_length = field_version.RAW_decode(PCUIF__info__ind_version_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_flags.RAW_decode(PCUIF__info__ind_flags_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_trx.RAW_decode(PCUIF__info__ind_trx_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_bsic.RAW_decode(PCUIF__info__ind_bsic_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_mcc.RAW_decode(PCUIF__info__ind_mcc_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_mnc.RAW_decode(PCUIF__info__ind_mnc_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_mnc__3__digits.RAW_decode(PCUIF__info__ind_mnc__3__digits_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_lac.RAW_decode(PCUIF__info__ind_lac_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_rac.RAW_decode(PCUIF__info__ind_rac_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_nsei.RAW_decode(PCUIF__info__ind_nsei_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_nse__timer.RAW_decode(PCUIF__info__ind_nse__timer_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_cell__timer.RAW_decode(PCUIF__info__ind_cell__timer_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_cell__id.RAW_decode(PCUIF__info__ind_cell__id_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_repeat__time.RAW_decode(PCUIF__info__ind_repeat__time_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_repeat__count.RAW_decode(PCUIF__info__ind_repeat__count_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_bvci.RAW_decode(PCUIF__info__ind_bvci_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_t3142.RAW_decode(PCUIF__info__ind_t3142_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_t3169.RAW_decode(PCUIF__info__ind_t3169_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_t3191.RAW_decode(PCUIF__info__ind_t3191_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_t3193__10ms.RAW_decode(PCUIF__info__ind_t3193__10ms_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_t3195.RAW_decode(PCUIF__info__ind_t3195_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_t3101.RAW_decode(PCUIF__info__ind_t3101_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_t3103.RAW_decode(PCUIF__info__ind_t3103_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_t3105.RAW_decode(PCUIF__info__ind_t3105_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_cv__countdown.RAW_decode(PCUIF__info__ind_cv__countdown_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_dl__tbf__ext.RAW_decode(PCUIF__info__ind_dl__tbf__ext_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_ul__tbf__ext.RAW_decode(PCUIF__info__ind_ul__tbf__ext_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_initial__cs.RAW_decode(PCUIF__info__ind_initial__cs_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_initial__mcs.RAW_decode(PCUIF__info__ind_initial__mcs_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_nsvci.RAW_decode(PCUIF__info__ind_nsvci_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_local__pprt.RAW_decode(PCUIF__info__ind_local__pprt_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_remote__port.RAW_decode(PCUIF__info__ind_remote__port_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_remote__ip.RAW_decode(PCUIF__info__ind_remote__ip_descr_, p_buf, limit, local_top_order, no_err); + 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__info__ind_trx_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<PCUIF__info__ind>& 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<PCUIF__info__ind>& 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__info__ind_trx_template& PCUIF__info__ind_template::trx() +{ +set_specific(); +return single_value->field_trx; +} + +const PCUIF__info__ind_trx_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_i<param.get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (33<param.get_size()) { + param.error("record template of type @PCUIF_Types.PCUIF_info_ind has 33 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "flags")) { + if (curr_param->get_type()!=Module_Param::MP_NotUsed) { + flags().set_param(*curr_param); + } + value_used[val_idx]=TRUE; + } + } + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_info_ind: %s", param.get_elem(val_idx)->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_idx<value_list.n_values; l_idx++) +if (value_list.list_value[l_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +PCUIF__act__req::PCUIF__act__req() +{ +} + +PCUIF__act__req::PCUIF__act__req(const INTEGER& par_is__activate, + const INTEGER& par_trx__nr, + const INTEGER& par_ts__nr, + const OCTETSTRING& par_spare) + : field_is__activate(par_is__activate), + field_trx__nr(par_trx__nr), + field_ts__nr(par_ts__nr), + field_spare(par_spare) +{ +} + +PCUIF__act__req::PCUIF__act__req(const PCUIF__act__req& other_value) +{ +if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_act_req."); +if (other_value.is__activate().is_bound()) field_is__activate = other_value.is__activate(); +else field_is__activate.clean_up(); +if (other_value.trx__nr().is_bound()) field_trx__nr = other_value.trx__nr(); +else field_trx__nr.clean_up(); +if (other_value.ts__nr().is_bound()) field_ts__nr = other_value.ts__nr(); +else field_ts__nr.clean_up(); +if (other_value.spare().is_bound()) field_spare = other_value.spare(); +else field_spare.clean_up(); +} + +void PCUIF__act__req::clean_up() +{ +field_is__activate.clean_up(); +field_trx__nr.clean_up(); +field_ts__nr.clean_up(); +field_spare.clean_up(); +} + +PCUIF__act__req& PCUIF__act__req::operator=(const PCUIF__act__req& other_value) +{ +if (this != &other_value) { + if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @PCUIF_Types.PCUIF_act_req."); + if (other_value.is__activate().is_bound()) field_is__activate = other_value.is__activate(); + else field_is__activate.clean_up(); + if (other_value.trx__nr().is_bound()) field_trx__nr = other_value.trx__nr(); + else field_trx__nr.clean_up(); + if (other_value.ts__nr().is_bound()) field_ts__nr = other_value.ts__nr(); + else field_ts__nr.clean_up(); + if (other_value.spare().is_bound()) field_spare = other_value.spare(); + else field_spare.clean_up(); +} +return *this; +} + +boolean PCUIF__act__req::operator==(const PCUIF__act__req& other_value) const +{ +return field_is__activate==other_value.field_is__activate + && field_trx__nr==other_value.field_trx__nr + && field_ts__nr==other_value.field_ts__nr + && field_spare==other_value.field_spare; +} + +boolean PCUIF__act__req::is_bound() const +{ +if(field_is__activate.is_bound()) return TRUE; +if(field_trx__nr.is_bound()) return TRUE; +if(field_ts__nr.is_bound()) return TRUE; +if(field_spare.is_bound()) return TRUE; +return FALSE; +} +boolean PCUIF__act__req::is_value() const +{ +if(!field_is__activate.is_value()) return FALSE; +if(!field_trx__nr.is_value()) return FALSE; +if(!field_ts__nr.is_value()) return FALSE; +if(!field_spare.is_value()) return FALSE; +return TRUE; +} +void PCUIF__act__req::log() const +{ +if (!is_bound()) { +TTCN_Logger::log_event_unbound(); +return; +} +TTCN_Logger::log_event_str("{ is_activate := "); +field_is__activate.log(); +TTCN_Logger::log_event_str(", trx_nr := "); +field_trx__nr.log(); +TTCN_Logger::log_event_str(", ts_nr := "); +field_ts__nr.log(); +TTCN_Logger::log_event_str(", spare := "); +field_spare.log(); +TTCN_Logger::log_event_str(" }"); +} + +void PCUIF__act__req::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 (4<param.get_size()) { + param.error("record value of type @PCUIF_Types.PCUIF_act_req has 4 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_act_req: %s", param.get_elem(val_idx)->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) +{ (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; + decoded_field_length = field_is__activate.RAW_decode(PCUIF__act__req_is__activate_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_trx__nr.RAW_decode(PCUIF__act__req_trx__nr_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_ts__nr.RAW_decode(PCUIF__act__req_ts__nr_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_spare.RAW_decode(PCUIF__act__req_spare_descr_, p_buf, limit, local_top_order, no_err); + 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<PCUIF__act__req>& 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<PCUIF__act__req>& 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_i<param.get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (4<param.get_size()) { + param.error("record template of type @PCUIF_Types.PCUIF_act_req has 4 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_act_req: %s", param.get_elem(val_idx)->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_idx<value_list.n_values; l_idx++) +if (value_list.list_value[l_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +PCUIF__time__ind::PCUIF__time__ind() +{ +} + +PCUIF__time__ind::PCUIF__time__ind(const INTEGER& par_fn) + : field_fn(par_fn) +{ +} + +PCUIF__time__ind::PCUIF__time__ind(const PCUIF__time__ind& other_value) +{ +if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_time_ind."); +if (other_value.fn().is_bound()) field_fn = other_value.fn(); +else field_fn.clean_up(); +} + +void PCUIF__time__ind::clean_up() +{ +field_fn.clean_up(); +} + +PCUIF__time__ind& PCUIF__time__ind::operator=(const PCUIF__time__ind& other_value) +{ +if (this != &other_value) { + if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @PCUIF_Types.PCUIF_time_ind."); + if (other_value.fn().is_bound()) field_fn = other_value.fn(); + else field_fn.clean_up(); +} +return *this; +} + +boolean PCUIF__time__ind::operator==(const PCUIF__time__ind& other_value) const +{ +return field_fn==other_value.field_fn; +} + +boolean PCUIF__time__ind::is_bound() const +{ +if(field_fn.is_bound()) return TRUE; +return FALSE; +} +boolean PCUIF__time__ind::is_value() const +{ +if(!field_fn.is_value()) return FALSE; +return TRUE; +} +void PCUIF__time__ind::log() const +{ +if (!is_bound()) { +TTCN_Logger::log_event_unbound(); +return; +} +TTCN_Logger::log_event_str("{ fn := "); +field_fn.log(); +TTCN_Logger::log_event_str(" }"); +} + +void PCUIF__time__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 (1<param.get_size()) { + param.error("record value of type @PCUIF_Types.PCUIF_time_ind has 1 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) fn().set_param(*param.get_elem(0)); + break; + case Module_Param::MP_Assignment_List: { + Vector<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_time_ind: %s", param.get_elem(val_idx)->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) +{ (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; + decoded_field_length = field_fn.RAW_decode(PCUIF__time__ind_fn_descr_, p_buf, limit, local_top_order, no_err); + 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<PCUIF__time__ind>& 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<PCUIF__time__ind>& 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_i<param.get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (1<param.get_size()) { + param.error("record template of type @PCUIF_Types.PCUIF_time_ind has 1 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) fn().set_param(*param.get_elem(0)); + break; + case Module_Param::MP_Assignment_List: { + Vector<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_time_ind: %s", param.get_elem(val_idx)->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_idx<value_list.n_values; l_idx++) +if (value_list.list_value[l_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +PCUIF__pag__req::PCUIF__pag__req() +{ +} + +PCUIF__pag__req::PCUIF__pag__req(const PCUIF__Sapi& par_sapi, + const INTEGER& par_chan__needed, + const OCTETSTRING& par_identity__lv) + : field_sapi(par_sapi), + field_chan__needed(par_chan__needed), + field_identity__lv(par_identity__lv) +{ +} + +PCUIF__pag__req::PCUIF__pag__req(const PCUIF__pag__req& other_value) +{ +if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_pag_req."); +if (other_value.sapi().is_bound()) field_sapi = other_value.sapi(); +else field_sapi.clean_up(); +if (other_value.chan__needed().is_bound()) field_chan__needed = other_value.chan__needed(); +else field_chan__needed.clean_up(); +if (other_value.identity__lv().is_bound()) field_identity__lv = other_value.identity__lv(); +else field_identity__lv.clean_up(); +} + +void PCUIF__pag__req::clean_up() +{ +field_sapi.clean_up(); +field_chan__needed.clean_up(); +field_identity__lv.clean_up(); +} + +PCUIF__pag__req& PCUIF__pag__req::operator=(const PCUIF__pag__req& other_value) +{ +if (this != &other_value) { + if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @PCUIF_Types.PCUIF_pag_req."); + if (other_value.sapi().is_bound()) field_sapi = other_value.sapi(); + else field_sapi.clean_up(); + if (other_value.chan__needed().is_bound()) field_chan__needed = other_value.chan__needed(); + else field_chan__needed.clean_up(); + if (other_value.identity__lv().is_bound()) field_identity__lv = other_value.identity__lv(); + else field_identity__lv.clean_up(); +} +return *this; +} + +boolean PCUIF__pag__req::operator==(const PCUIF__pag__req& other_value) const +{ +return field_sapi==other_value.field_sapi + && field_chan__needed==other_value.field_chan__needed + && field_identity__lv==other_value.field_identity__lv; +} + +boolean PCUIF__pag__req::is_bound() const +{ +if(field_sapi.is_bound()) return TRUE; +if(field_chan__needed.is_bound()) return TRUE; +if(field_identity__lv.is_bound()) return TRUE; +return FALSE; +} +boolean PCUIF__pag__req::is_value() const +{ +if(!field_sapi.is_value()) return FALSE; +if(!field_chan__needed.is_value()) return FALSE; +if(!field_identity__lv.is_value()) return FALSE; +return TRUE; +} +void PCUIF__pag__req::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(", chan_needed := "); +field_chan__needed.log(); +TTCN_Logger::log_event_str(", identity_lv := "); +field_identity__lv.log(); +TTCN_Logger::log_event_str(" }"); +} + +void PCUIF__pag__req::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "record value"); + switch (param.get_type()) { + case Module_Param::MP_Value_List: + if (3<param.get_size()) { + param.error("record value of type @PCUIF_Types.PCUIF_pag_req has 3 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_pag_req: %s", param.get_elem(val_idx)->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) +{ (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; + decoded_field_length = field_sapi.RAW_decode(PCUIF__pag__req_sapi_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_chan__needed.RAW_decode(PCUIF__pag__req_chan__needed_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_identity__lv.RAW_decode(PCUIF__pag__req_identity__lv_descr_, p_buf, limit, local_top_order, no_err); + 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<PCUIF__pag__req>& 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<PCUIF__pag__req>& 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_i<param.get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (3<param.get_size()) { + param.error("record template of type @PCUIF_Types.PCUIF_pag_req has 3 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_pag_req: %s", param.get_elem(val_idx)->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_idx<value_list.n_values; l_idx++) +if (value_list.list_value[l_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +PCUIF__susp__req::PCUIF__susp__req() +{ +} + +PCUIF__susp__req::PCUIF__susp__req(const OCTETSTRING& par_tlli, + const OCTETSTRING& par_ra__id, + const INTEGER& par_cause) + : field_tlli(par_tlli), + field_ra__id(par_ra__id), + field_cause(par_cause) +{ +} + +PCUIF__susp__req::PCUIF__susp__req(const PCUIF__susp__req& other_value) +{ +if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @PCUIF_Types.PCUIF_susp_req."); +if (other_value.tlli().is_bound()) field_tlli = other_value.tlli(); +else field_tlli.clean_up(); +if (other_value.ra__id().is_bound()) field_ra__id = other_value.ra__id(); +else field_ra__id.clean_up(); +if (other_value.cause().is_bound()) field_cause = other_value.cause(); +else field_cause.clean_up(); +} + +void PCUIF__susp__req::clean_up() +{ +field_tlli.clean_up(); +field_ra__id.clean_up(); +field_cause.clean_up(); +} + +PCUIF__susp__req& PCUIF__susp__req::operator=(const PCUIF__susp__req& other_value) +{ +if (this != &other_value) { + if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @PCUIF_Types.PCUIF_susp_req."); + if (other_value.tlli().is_bound()) field_tlli = other_value.tlli(); + else field_tlli.clean_up(); + if (other_value.ra__id().is_bound()) field_ra__id = other_value.ra__id(); + else field_ra__id.clean_up(); + if (other_value.cause().is_bound()) field_cause = other_value.cause(); + else field_cause.clean_up(); +} +return *this; +} + +boolean PCUIF__susp__req::operator==(const PCUIF__susp__req& other_value) const +{ +return field_tlli==other_value.field_tlli + && field_ra__id==other_value.field_ra__id + && field_cause==other_value.field_cause; +} + +boolean PCUIF__susp__req::is_bound() const +{ +if(field_tlli.is_bound()) return TRUE; +if(field_ra__id.is_bound()) return TRUE; +if(field_cause.is_bound()) return TRUE; +return FALSE; +} +boolean PCUIF__susp__req::is_value() const +{ +if(!field_tlli.is_value()) return FALSE; +if(!field_ra__id.is_value()) return FALSE; +if(!field_cause.is_value()) return FALSE; +return TRUE; +} +void PCUIF__susp__req::log() const +{ +if (!is_bound()) { +TTCN_Logger::log_event_unbound(); +return; +} +TTCN_Logger::log_event_str("{ tlli := "); +field_tlli.log(); +TTCN_Logger::log_event_str(", ra_id := "); +field_ra__id.log(); +TTCN_Logger::log_event_str(", cause := "); +field_cause.log(); +TTCN_Logger::log_event_str(" }"); +} + +void PCUIF__susp__req::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "record value"); + switch (param.get_type()) { + case Module_Param::MP_Value_List: + if (3<param.get_size()) { + param.error("record value of type @PCUIF_Types.PCUIF_susp_req has 3 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_susp_req: %s", param.get_elem(val_idx)->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) +{ (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; + decoded_field_length = field_tlli.RAW_decode(PCUIF__susp__req_tlli_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_ra__id.RAW_decode(PCUIF__susp__req_ra__id_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_cause.RAW_decode(PCUIF__susp__req_cause_descr_, p_buf, limit, local_top_order, no_err); + 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<PCUIF__susp__req>& 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<PCUIF__susp__req>& 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_i<param.get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (3<param.get_size()) { + param.error("record template of type @PCUIF_Types.PCUIF_susp_req has 3 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_susp_req: %s", param.get_elem(val_idx)->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_idx<value_list.n_values; l_idx++) +if (value_list.list_value[l_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +void PCUIF__MsgUnion::copy_value(const PCUIF__MsgUnion& other_value) +{ +switch (other_value.union_selection) { +case ALT_data__req: +field_data__req = new PCUIF__data(*other_value.field_data__req); +break; +case ALT_data__cnf: +field_data__cnf = new PCUIF__data(*other_value.field_data__cnf); +break; +case ALT_data__cnf__dt: +field_data__cnf__dt = new PCUIF__data__cnf__dt(*other_value.field_data__cnf__dt); +break; +case ALT_data__ind: +field_data__ind = new PCUIF__data(*other_value.field_data__ind); +break; +case ALT_susp__req: +field_susp__req = new PCUIF__susp__req(*other_value.field_susp__req); +break; +case ALT_rts__req: +field_rts__req = new PCUIF__rts__req(*other_value.field_rts__req); +break; +case ALT_rach__ind: +field_rach__ind = new PCUIF__rach__ind(*other_value.field_rach__ind); +break; +case ALT_txt__ind: +field_txt__ind = new PCUIF__txt__ind(*other_value.field_txt__ind); +break; +case ALT_info__ind: +field_info__ind = new PCUIF__info__ind(*other_value.field_info__ind); +break; +case ALT_act__req: +field_act__req = new PCUIF__act__req(*other_value.field_act__req); +break; +case ALT_time__ind: +field_time__ind = new PCUIF__time__ind(*other_value.field_time__ind); +break; +case ALT_pag__req: +field_pag__req = new PCUIF__pag__req(*other_value.field_pag__req); +break; +default: +TTCN_error("Assignment of an unbound union value of type @PCUIF_Types.PCUIF_MsgUnion."); +} +union_selection = other_value.union_selection; +} + +PCUIF__MsgUnion::PCUIF__MsgUnion() +{ +union_selection = UNBOUND_VALUE; +} + +PCUIF__MsgUnion::PCUIF__MsgUnion(const PCUIF__MsgUnion& other_value) +: Base_Type(){ +copy_value(other_value); +} + +PCUIF__MsgUnion::~PCUIF__MsgUnion() +{ +clean_up(); +} + +PCUIF__MsgUnion& PCUIF__MsgUnion::operator=(const PCUIF__MsgUnion& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean PCUIF__MsgUnion::operator==(const PCUIF__MsgUnion& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @PCUIF_Types.PCUIF_MsgUnion."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @PCUIF_Types.PCUIF_MsgUnion."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_data__req: +return *field_data__req == *other_value.field_data__req; +case ALT_data__cnf: +return *field_data__cnf == *other_value.field_data__cnf; +case ALT_data__cnf__dt: +return *field_data__cnf__dt == *other_value.field_data__cnf__dt; +case ALT_data__ind: +return *field_data__ind == *other_value.field_data__ind; +case ALT_susp__req: +return *field_susp__req == *other_value.field_susp__req; +case ALT_rts__req: +return *field_rts__req == *other_value.field_rts__req; +case ALT_rach__ind: +return *field_rach__ind == *other_value.field_rach__ind; +case ALT_txt__ind: +return *field_txt__ind == *other_value.field_txt__ind; +case ALT_info__ind: +return *field_info__ind == *other_value.field_info__ind; +case ALT_act__req: +return *field_act__req == *other_value.field_act__req; +case ALT_time__ind: +return *field_time__ind == *other_value.field_time__ind; +case ALT_pag__req: +return *field_pag__req == *other_value.field_pag__req; +default: +return FALSE; +} +} + +PCUIF__data& PCUIF__MsgUnion::data__req() +{ +if (union_selection != ALT_data__req) { +clean_up(); +field_data__req = new PCUIF__data; +union_selection = ALT_data__req; +} +return *field_data__req; +} + +const PCUIF__data& PCUIF__MsgUnion::data__req() const +{ +if (union_selection != ALT_data__req) TTCN_error("Using non-selected field data_req in a value of union type @PCUIF_Types.PCUIF_MsgUnion."); +return *field_data__req; +} + +PCUIF__data& PCUIF__MsgUnion::data__cnf() +{ +if (union_selection != ALT_data__cnf) { +clean_up(); +field_data__cnf = new PCUIF__data; +union_selection = ALT_data__cnf; +} +return *field_data__cnf; +} + +const PCUIF__data& PCUIF__MsgUnion::data__cnf() const +{ +if (union_selection != ALT_data__cnf) TTCN_error("Using non-selected field data_cnf in a value of union type @PCUIF_Types.PCUIF_MsgUnion."); +return *field_data__cnf; +} + +PCUIF__data__cnf__dt& PCUIF__MsgUnion::data__cnf__dt() +{ +if (union_selection != ALT_data__cnf__dt) { +clean_up(); +field_data__cnf__dt = new PCUIF__data__cnf__dt; +union_selection = ALT_data__cnf__dt; +} +return *field_data__cnf__dt; +} + +const PCUIF__data__cnf__dt& PCUIF__MsgUnion::data__cnf__dt() const +{ +if (union_selection != ALT_data__cnf__dt) TTCN_error("Using non-selected field data_cnf_dt in a value of union type @PCUIF_Types.PCUIF_MsgUnion."); +return *field_data__cnf__dt; +} + +PCUIF__data& PCUIF__MsgUnion::data__ind() +{ +if (union_selection != ALT_data__ind) { +clean_up(); +field_data__ind = new PCUIF__data; +union_selection = ALT_data__ind; +} +return *field_data__ind; +} + +const PCUIF__data& PCUIF__MsgUnion::data__ind() const +{ +if (union_selection != ALT_data__ind) TTCN_error("Using non-selected field data_ind in a value of union type @PCUIF_Types.PCUIF_MsgUnion."); +return *field_data__ind; +} + +PCUIF__susp__req& PCUIF__MsgUnion::susp__req() +{ +if (union_selection != ALT_susp__req) { +clean_up(); +field_susp__req = new PCUIF__susp__req; +union_selection = ALT_susp__req; +} +return *field_susp__req; +} + +const PCUIF__susp__req& PCUIF__MsgUnion::susp__req() const +{ +if (union_selection != ALT_susp__req) TTCN_error("Using non-selected field susp_req in a value of union type @PCUIF_Types.PCUIF_MsgUnion."); +return *field_susp__req; +} + +PCUIF__rts__req& PCUIF__MsgUnion::rts__req() +{ +if (union_selection != ALT_rts__req) { +clean_up(); +field_rts__req = new PCUIF__rts__req; +union_selection = ALT_rts__req; +} +return *field_rts__req; +} + +const PCUIF__rts__req& PCUIF__MsgUnion::rts__req() const +{ +if (union_selection != ALT_rts__req) TTCN_error("Using non-selected field rts_req in a value of union type @PCUIF_Types.PCUIF_MsgUnion."); +return *field_rts__req; +} + +PCUIF__rach__ind& PCUIF__MsgUnion::rach__ind() +{ +if (union_selection != ALT_rach__ind) { +clean_up(); +field_rach__ind = new PCUIF__rach__ind; +union_selection = ALT_rach__ind; +} +return *field_rach__ind; +} + +const PCUIF__rach__ind& PCUIF__MsgUnion::rach__ind() const +{ +if (union_selection != ALT_rach__ind) TTCN_error("Using non-selected field rach_ind in a value of union type @PCUIF_Types.PCUIF_MsgUnion."); +return *field_rach__ind; +} + +PCUIF__txt__ind& PCUIF__MsgUnion::txt__ind() +{ +if (union_selection != ALT_txt__ind) { +clean_up(); +field_txt__ind = new PCUIF__txt__ind; +union_selection = ALT_txt__ind; +} +return *field_txt__ind; +} + +const PCUIF__txt__ind& PCUIF__MsgUnion::txt__ind() const +{ +if (union_selection != ALT_txt__ind) TTCN_error("Using non-selected field txt_ind in a value of union type @PCUIF_Types.PCUIF_MsgUnion."); +return *field_txt__ind; +} + +PCUIF__info__ind& PCUIF__MsgUnion::info__ind() +{ +if (union_selection != ALT_info__ind) { +clean_up(); +field_info__ind = new PCUIF__info__ind; +union_selection = ALT_info__ind; +} +return *field_info__ind; +} + +const PCUIF__info__ind& PCUIF__MsgUnion::info__ind() const +{ +if (union_selection != ALT_info__ind) TTCN_error("Using non-selected field info_ind in a value of union type @PCUIF_Types.PCUIF_MsgUnion."); +return *field_info__ind; +} + +PCUIF__act__req& PCUIF__MsgUnion::act__req() +{ +if (union_selection != ALT_act__req) { +clean_up(); +field_act__req = new PCUIF__act__req; +union_selection = ALT_act__req; +} +return *field_act__req; +} + +const PCUIF__act__req& PCUIF__MsgUnion::act__req() const +{ +if (union_selection != ALT_act__req) TTCN_error("Using non-selected field act_req in a value of union type @PCUIF_Types.PCUIF_MsgUnion."); +return *field_act__req; +} + +PCUIF__time__ind& PCUIF__MsgUnion::time__ind() +{ +if (union_selection != ALT_time__ind) { +clean_up(); +field_time__ind = new PCUIF__time__ind; +union_selection = ALT_time__ind; +} +return *field_time__ind; +} + +const PCUIF__time__ind& PCUIF__MsgUnion::time__ind() const +{ +if (union_selection != ALT_time__ind) TTCN_error("Using non-selected field time_ind in a value of union type @PCUIF_Types.PCUIF_MsgUnion."); +return *field_time__ind; +} + +PCUIF__pag__req& PCUIF__MsgUnion::pag__req() +{ +if (union_selection != ALT_pag__req) { +clean_up(); +field_pag__req = new PCUIF__pag__req; +union_selection = ALT_pag__req; +} +return *field_pag__req; +} + +const PCUIF__pag__req& PCUIF__MsgUnion::pag__req() const +{ +if (union_selection != ALT_pag__req) TTCN_error("Using non-selected field pag_req in a value of union type @PCUIF_Types.PCUIF_MsgUnion."); +return *field_pag__req; +} + +boolean PCUIF__MsgUnion::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @PCUIF_Types.PCUIF_MsgUnion."); +return union_selection == checked_selection; +} + +boolean PCUIF__MsgUnion::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean PCUIF__MsgUnion::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_data__req: return field_data__req->is_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); + if (!strcmp(mp_last->get_id()->get_name(), "data_req")) { + data__req().set_param(*mp_last); + if (!data__req().is_bound()) clean_up(); + return; + } + if (!strcmp(mp_last->get_id()->get_name(), "data_cnf")) { + data__cnf().set_param(*mp_last); + if (!data__cnf().is_bound()) clean_up(); + return; + } + if (!strcmp(mp_last->get_id()->get_name(), "data_cnf_dt")) { + data__cnf__dt().set_param(*mp_last); + if (!data__cnf__dt().is_bound()) clean_up(); + return; + } + if (!strcmp(mp_last->get_id()->get_name(), "data_ind")) { + data__ind().set_param(*mp_last); + if (!data__ind().is_bound()) clean_up(); + return; + } + if (!strcmp(mp_last->get_id()->get_name(), "susp_req")) { + susp__req().set_param(*mp_last); + if (!susp__req().is_bound()) clean_up(); + return; + } + if (!strcmp(mp_last->get_id()->get_name(), "rts_req")) { + rts__req().set_param(*mp_last); + if (!rts__req().is_bound()) clean_up(); + return; + } + if (!strcmp(mp_last->get_id()->get_name(), "rach_ind")) { + rach__ind().set_param(*mp_last); + if (!rach__ind().is_bound()) clean_up(); + return; + } + if (!strcmp(mp_last->get_id()->get_name(), "txt_ind")) { + txt__ind().set_param(*mp_last); + if (!txt__ind().is_bound()) clean_up(); + return; + } + if (!strcmp(mp_last->get_id()->get_name(), "info_ind")) { + info__ind().set_param(*mp_last); + if (!info__ind().is_bound()) clean_up(); + return; + } + if (!strcmp(mp_last->get_id()->get_name(), "act_req")) { + act__req().set_param(*mp_last); + if (!act__req().is_bound()) clean_up(); + return; + } + if (!strcmp(mp_last->get_id()->get_name(), "time_ind")) { + time__ind().set_param(*mp_last); + if (!time__ind().is_bound()) clean_up(); + return; + } + if (!strcmp(mp_last->get_id()->get_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.", mp_last->get_id()->get_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) +{ + 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: + decoded_length = data__req().RAW_decode(PCUIF__MsgUnion_data__req_descr_, p_buf, limit, top_bit_ord, no_err); + break; + case 1: + decoded_length = data__cnf().RAW_decode(PCUIF__MsgUnion_data__cnf_descr_, p_buf, limit, top_bit_ord, no_err); + break; + case 2: + decoded_length = data__cnf__dt().RAW_decode(PCUIF__MsgUnion_data__cnf__dt_descr_, p_buf, limit, top_bit_ord, no_err); + break; + case 3: + decoded_length = data__ind().RAW_decode(PCUIF__MsgUnion_data__ind_descr_, p_buf, limit, top_bit_ord, no_err); + break; + case 4: + decoded_length = susp__req().RAW_decode(PCUIF__MsgUnion_susp__req_descr_, p_buf, limit, top_bit_ord, no_err); + break; + case 5: + decoded_length = rts__req().RAW_decode(PCUIF__MsgUnion_rts__req_descr_, p_buf, limit, top_bit_ord, no_err); + break; + case 6: + decoded_length = rach__ind().RAW_decode(PCUIF__MsgUnion_rach__ind_descr_, p_buf, limit, top_bit_ord, no_err); + break; + case 7: + decoded_length = txt__ind().RAW_decode(PCUIF__MsgUnion_txt__ind_descr_, p_buf, limit, top_bit_ord, no_err); + break; + case 8: + decoded_length = info__ind().RAW_decode(PCUIF__MsgUnion_info__ind_descr_, p_buf, limit, top_bit_ord, no_err); + break; + case 9: + decoded_length = act__req().RAW_decode(PCUIF__MsgUnion_act__req_descr_, p_buf, limit, top_bit_ord, no_err); + break; + case 10: + decoded_length = time__ind().RAW_decode(PCUIF__MsgUnion_time__ind_descr_, p_buf, limit, top_bit_ord, no_err); + break; + case 11: + decoded_length = pag__req().RAW_decode(PCUIF__MsgUnion_pag__req_descr_, p_buf, limit, top_bit_ord, no_err); + break; + default: break; + } + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } else { + p_buf.set_pos_bit(starting_pos); + decoded_length = data__req().RAW_decode(PCUIF__MsgUnion_data__req_descr_, p_buf, limit, top_bit_ord, TRUE); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + decoded_length = data__cnf().RAW_decode(PCUIF__MsgUnion_data__cnf_descr_, p_buf, limit, top_bit_ord, TRUE); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + decoded_length = data__cnf__dt().RAW_decode(PCUIF__MsgUnion_data__cnf__dt_descr_, p_buf, limit, top_bit_ord, TRUE); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + decoded_length = data__ind().RAW_decode(PCUIF__MsgUnion_data__ind_descr_, p_buf, limit, top_bit_ord, TRUE); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + decoded_length = susp__req().RAW_decode(PCUIF__MsgUnion_susp__req_descr_, p_buf, limit, top_bit_ord, TRUE); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + decoded_length = rts__req().RAW_decode(PCUIF__MsgUnion_rts__req_descr_, p_buf, limit, top_bit_ord, TRUE); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + decoded_length = rach__ind().RAW_decode(PCUIF__MsgUnion_rach__ind_descr_, p_buf, limit, top_bit_ord, TRUE); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + decoded_length = txt__ind().RAW_decode(PCUIF__MsgUnion_txt__ind_descr_, p_buf, limit, top_bit_ord, TRUE); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + decoded_length = info__ind().RAW_decode(PCUIF__MsgUnion_info__ind_descr_, p_buf, limit, top_bit_ord, TRUE); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + decoded_length = act__req().RAW_decode(PCUIF__MsgUnion_act__req_descr_, p_buf, limit, top_bit_ord, TRUE); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + decoded_length = time__ind().RAW_decode(PCUIF__MsgUnion_time__ind_descr_, p_buf, limit, top_bit_ord, TRUE); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + decoded_length = pag__req().RAW_decode(PCUIF__MsgUnion_pag__req_descr_, p_buf, limit, top_bit_ord, TRUE); + 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<PCUIF__MsgUnion>& 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<PCUIF__MsgUnion>& 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("<invalid selector>"); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void 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("<invalid selector>"); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void 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<value_list.n_values; v_idx++) +if (value_list.list_value[v_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + +void PCUIF__MsgUnion_template::set_param(Module_Param& param) +{ + if (dynamic_cast<Module_Param_Name*>(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@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_i<m_p->get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@PCUIF_Types.PCUIF_MsgUnion"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + if (!strcmp(mp_last->get_id()->get_name(), "data_req")) { + data__req().set_param(*mp_last); + break; + } + if (!strcmp(mp_last->get_id()->get_name(), "data_cnf")) { + data__cnf().set_param(*mp_last); + break; + } + if (!strcmp(mp_last->get_id()->get_name(), "data_cnf_dt")) { + data__cnf__dt().set_param(*mp_last); + break; + } + if (!strcmp(mp_last->get_id()->get_name(), "data_ind")) { + data__ind().set_param(*mp_last); + break; + } + if (!strcmp(mp_last->get_id()->get_name(), "susp_req")) { + susp__req().set_param(*mp_last); + break; + } + if (!strcmp(mp_last->get_id()->get_name(), "rts_req")) { + rts__req().set_param(*mp_last); + break; + } + if (!strcmp(mp_last->get_id()->get_name(), "rach_ind")) { + rach__ind().set_param(*mp_last); + break; + } + if (!strcmp(mp_last->get_id()->get_name(), "txt_ind")) { + txt__ind().set_param(*mp_last); + break; + } + if (!strcmp(mp_last->get_id()->get_name(), "info_ind")) { + info__ind().set_param(*mp_last); + break; + } + if (!strcmp(mp_last->get_id()->get_name(), "act_req")) { + act__req().set_param(*mp_last); + break; + } + if (!strcmp(mp_last->get_id()->get_name(), "time_ind")) { + time__ind().set_param(*mp_last); + break; + } + if (!strcmp(mp_last->get_id()->get_name(), "pag_req")) { + pag__req().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @PCUIF_Types.PCUIF_MsgUnion.", mp_last->get_id()->get_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(); +} + +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 (4<param.get_size()) { + param.error("record value of type @PCUIF_Types.PCUIF_Message has 4 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_Message: %s", param.get_elem(val_idx)->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) +{ (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; + decoded_field_length = field_msg__type.RAW_decode(PCUIF__Message_msg__type_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_bts__nr.RAW_decode(PCUIF__Message_bts__nr_descr_, p_buf, limit, local_top_order, no_err); + 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()); + decoded_field_length = field_spare.RAW_decode(PCUIF__Message_spare_descr_, p_buf, limit, local_top_order, no_err); + 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; + decoded_field_length = field_u.RAW_decode(PCUIF__Message_u_descr_, p_buf, limit, local_top_order, no_err, selected_field); + 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<PCUIF__Message>& 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<PCUIF__Message>& 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_i<param.get_size(); p_i++) { + new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (4<param.get_size()) { + param.error("record template of type @PCUIF_Types.PCUIF_Message has 4 fields but list value has %d fields", (int)param.get_size()); + } + if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) 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<bool> value_used(param.get_size()); + value_used.resize(param.get_size(), FALSE); + for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_id()->get_name(), "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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) { + Module_Param* const curr_param = param.get_elem(val_idx); + if (!strcmp(curr_param->get_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_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { + param.get_elem(val_idx)->error("Non existent field name in type @PCUIF_Types.PCUIF_Message: %s", param.get_elem(val_idx)->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_idx<value_list.n_values; l_idx++) +if (value_list.list_value[l_idx].match_omit()) +return template_selection==VALUE_LIST; +return template_selection==COMPLEMENTED_LIST; +} // else fall through +default: +return FALSE; +} +return FALSE; +} + + +/* Bodies of functions, altsteps and testcases */ + +void PCUIF__MsgType_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__MsgType_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__MsgType_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__MsgType_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__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__Sapi_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__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__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__Flags_bts__active_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_bts__active_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_bts__active_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_bts__active_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__Flags_sysmo__direct__dsp_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_sysmo__direct__dsp_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_sysmo__direct__dsp_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_sysmo__direct__dsp_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__Flags_spare_encoder(const BITSTRING& 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 `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_spare_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_spare_decoder(OCTETSTRING& input_stream, BITSTRING& 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 `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_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__Flags_cs1_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_cs1_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_cs1_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_cs1_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__Flags_cs2_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_cs2_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_cs2_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_cs2_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__Flags_cs3_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_cs3_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_cs3_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_cs3_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__Flags_cs4_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_cs4_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_cs4_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_cs4_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__Flags_mcs1_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_mcs1_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_mcs1_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_mcs1_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__Flags_mcs2_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_mcs2_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_mcs2_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_mcs2_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__Flags_mcs3_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_mcs3_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_mcs3_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_mcs3_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__Flags_mcs4_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_mcs4_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_mcs4_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_mcs4_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__Flags_mcs5_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_mcs5_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_mcs5_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_mcs5_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__Flags_mcs6_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_mcs6_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_mcs6_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_mcs6_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__Flags_mcs7_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_mcs7_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_mcs7_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_mcs7_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__Flags_mcs8_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_mcs8_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_mcs8_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_mcs8_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__Flags_mcs9_encoder(const BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_mcs9_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_mcs9_decoder(OCTETSTRING& input_stream, BOOLEAN& 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 `boolean' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_mcs9_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__Flags_spare2_encoder(const BITSTRING& 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 `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Flags_spare2_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Flags_spare2_decoder(OCTETSTRING& input_stream, BITSTRING& 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 `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Flags_spare2_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__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__Flags_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__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__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__TextType_encoder(const PCUIF__TextType& 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_TextType' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__TextType_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__TextType_decoder(OCTETSTRING& input_stream, PCUIF__TextType& 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_TextType' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__TextType_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__Text_encoder(const CHARSTRING& 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 `charstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__Text_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__Text_decoder(OCTETSTRING& input_stream, CHARSTRING& 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 `charstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__Text_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__txt__ind_txt__type_encoder(const PCUIF__TextType& 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_TextType' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__txt__ind_txt__type_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__txt__ind_txt__type_decoder(OCTETSTRING& input_stream, PCUIF__TextType& 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_TextType' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__txt__ind_txt__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__txt__ind_text_encoder(const CHARSTRING& 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 `charstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__txt__ind_text_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__txt__ind_text_decoder(OCTETSTRING& input_stream, CHARSTRING& 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 `charstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__txt__ind_text_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__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__txt__ind_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__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__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 OCT162_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(OCT162_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER OCT162_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(OCT162_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__data_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__data_sapi_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data_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__data_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__data_len_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__data_len_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data_len_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__data_len_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__data_data_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__data_data_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data_data_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__data_data_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__data_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__data_fn_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data_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__data_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__data_arfcn_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__data_arfcn_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data_arfcn_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__data_arfcn_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__data_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__data_trx__nr_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data_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__data_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__data_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__data_ts__nr_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data_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__data_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__data_block__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__data_block__nr_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data_block__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__data_block__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__data_rssi_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__data_rssi_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data_rssi_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__data_rssi_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__data_ber10k_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__data_ber10k_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data_ber10k_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__data_ber10k_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__data_ta__offs__qbits_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__data_ta__offs__qbits_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data_ta__offs__qbits_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__data_ta__offs__qbits_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__data_lqual__cb_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__data_lqual__cb_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data_lqual__cb_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__data_lqual__cb_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__data_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__data_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data_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__data_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__data__cnf__dt_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__data__cnf__dt_sapi_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data__cnf__dt_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__data__cnf__dt_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__data__cnf__dt_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__data__cnf__dt_tlli_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data__cnf__dt_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__data__cnf__dt_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__data__cnf__dt_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__data__cnf__dt_fn_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data__cnf__dt_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__data__cnf__dt_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__data__cnf__dt_arfcn_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__data__cnf__dt_arfcn_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data__cnf__dt_arfcn_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__data__cnf__dt_arfcn_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__data__cnf__dt_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__data__cnf__dt_trx__nr_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data__cnf__dt_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__data__cnf__dt_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__data__cnf__dt_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__data__cnf__dt_ts__nr_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data__cnf__dt_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__data__cnf__dt_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__data__cnf__dt_block__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__data__cnf__dt_block__nr_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data__cnf__dt_block__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__data__cnf__dt_block__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__data__cnf__dt_rssi_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__data__cnf__dt_rssi_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data__cnf__dt_rssi_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__data__cnf__dt_rssi_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__data__cnf__dt_ber10k_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__data__cnf__dt_ber10k_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data__cnf__dt_ber10k_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__data__cnf__dt_ber10k_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__data__cnf__dt_ta__offs__qbits_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__data__cnf__dt_ta__offs__qbits_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data__cnf__dt_ta__offs__qbits_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__data__cnf__dt_ta__offs__qbits_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__data__cnf__dt_lqual__cb_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__data__cnf__dt_lqual__cb_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__data__cnf__dt_lqual__cb_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__data__cnf__dt_lqual__cb_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__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__data__cnf__dt_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__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__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__rts__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__rts__req_sapi_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rts__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__rts__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__rts__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__rts__req_spare_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rts__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__rts__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__rts__req_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__rts__req_fn_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rts__req_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__rts__req_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__rts__req_arfcn_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__rts__req_arfcn_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rts__req_arfcn_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__rts__req_arfcn_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__rts__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__rts__req_trx__nr_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rts__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__rts__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__rts__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__rts__req_ts__nr_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rts__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__rts__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__rts__req_block__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__rts__req_block__nr_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rts__req_block__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__rts__req_block__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__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__rts__req_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__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__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__rach__ind_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__rach__ind_sapi_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rach__ind_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__rach__ind_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__rach__ind_ra_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__rach__ind_ra_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rach__ind_ra_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__rach__ind_ra_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__rach__ind_qta_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__rach__ind_qta_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rach__ind_qta_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__rach__ind_qta_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__rach__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__rach__ind_fn_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rach__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__rach__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__rach__ind_arfcn_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__rach__ind_arfcn_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rach__ind_arfcn_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__rach__ind_arfcn_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__rach__ind_is__11bit_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__rach__ind_is__11bit_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rach__ind_is__11bit_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__rach__ind_is__11bit_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__rach__ind_burst__type_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__rach__ind_burst__type_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__rach__ind_burst__type_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__rach__ind_burst__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__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__rach__ind_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__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__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__InfoTrx_arfcn_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__InfoTrx_arfcn_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__InfoTrx_arfcn_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__InfoTrx_arfcn_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__InfoTrx_pdch__mask_encoder(const BITSTRING& 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 `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf; +input_value.encode(PCUIF__InfoTrx_pdch__mask_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__InfoTrx_pdch__mask_decoder(OCTETSTRING& input_stream, BITSTRING& 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 `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str()); +} +TTCN_Buffer ttcn_buf(input_stream); +output_value.decode(PCUIF__InfoTrx_pdch__mask_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__InfoTrx_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__InfoTrx_spare_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__InfoTrx_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__InfoTrx_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__InfoTrx_tsc_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__InfoTrx_tsc_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__InfoTrx_tsc_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__InfoTrx_tsc_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__InfoTrx_hLayer1_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__InfoTrx_hLayer1_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__InfoTrx_hLayer1_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__InfoTrx_hLayer1_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__InfoTrx_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__InfoTrx_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__InfoTrx_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__InfoTrx_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; +} +} + +boolean operator==(null_type, const PCUIF__info__ind_trx& other_value) +{ +if (other_value.val_ptr == NULL) +TTCN_error("The right operand of comparison is an unbound value of type @PCUIF_Types.PCUIF_info_ind.trx."); +return other_value.val_ptr->n_elements == 0; +} + +void PCUIF__info__ind_trx_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__info__ind_trx_0_descr_, ttcn_buf, coding_type, extra_options); +ttcn_buf.get_string(output_stream); +} + +INTEGER PCUIF__info__ind_trx_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__info__ind_trx_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_trx_encoder(const PCUIF__info__ind_trx& 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.trx' 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__info__ind_trx& 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.trx' 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 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__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, 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__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()-1 && 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 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", 235, 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_0 = ret_val.u().rts__req(); +tmp_0.sapi() = sapi; +tmp_0.spare() = ANY_VALUE; +tmp_0.fn() = fn; +tmp_0.arfcn() = ANY_VALUE; +tmp_0.trx__nr() = trx__nr; +tmp_0.ts__nr() = ts__nr; +tmp_0.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", 258, 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_1 = ret_val.u().txt__ind(); +tmp_1.txt__type() = tt; +tmp_1.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", 270, 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_2 = ret_val.u().act__req(); +tmp_2.is__activate() = 1; +tmp_2.trx__nr() = trx__nr; +tmp_2.ts__nr() = ts__nr; +tmp_2.spare() = os_1; +} +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", 284, 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_3 = ret_val.u().act__req(); +tmp_3.is__activate() = 0; +tmp_3.trx__nr() = trx__nr; +tmp_3.ts__nr() = ts__nr; +tmp_3.spare() = os_1; +} +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", 298, 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_4 = ret_val.u().data__ind(); +tmp_4.sapi() = sapi; +tmp_4.len() = ANY_VALUE; +tmp_4.data() = data; +tmp_4.fn() = ANY_VALUE; +tmp_4.arfcn() = ANY_VALUE; +tmp_4.trx__nr() = trx__nr; +tmp_4.ts__nr() = ts__nr; +tmp_4.block__nr() = block__nr; +tmp_4.rssi() = ANY_VALUE; +tmp_4.ber10k() = ANY_VALUE; +tmp_4.ta__offs__qbits() = ANY_VALUE; +tmp_4.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", 325, 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_5 = ret_val.u().data__req(); +tmp_5.sapi() = sapi; +tmp_5.len() = data.lengthof(); +tmp_5.data() = data; +tmp_5.fn() = fn; +tmp_5.arfcn() = 0; +tmp_5.trx__nr() = trx__nr; +tmp_5.ts__nr() = ts__nr; +tmp_5.block__nr() = block__nr; +tmp_5.rssi() = 0; +tmp_5.ber10k() = 0; +tmp_5.ta__offs__qbits() = 0; +tmp_5.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", 351, 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_6 = ret_val.u().data__cnf(); +tmp_6.sapi() = sapi; +tmp_6.len() = ANY_VALUE; +tmp_6.data() = data; +tmp_6.fn() = ANY_VALUE; +tmp_6.arfcn() = ANY_VALUE; +tmp_6.trx__nr() = trx__nr; +tmp_6.ts__nr() = ts__nr; +tmp_6.block__nr() = ANY_VALUE; +tmp_6.rssi() = ANY_VALUE; +tmp_6.ber10k() = ANY_VALUE; +tmp_6.ta__offs__qbits() = ANY_VALUE; +tmp_6.lqual__cb() = ANY_VALUE; +} +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 INTEGER_template& burst__type, const INTEGER_template& fn) +{ +TTCN_Location current_location("PCUIF_Types.ttcn", 377, 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_7 = ret_val.u().rach__ind(); +tmp_7.sapi() = PCUIF__Sapi::PCU__IF__SAPI__RACH; +tmp_7.ra() = ra; +tmp_7.qta() = ANY_VALUE; +tmp_7.fn() = fn; +tmp_7.arfcn() = ANY_VALUE; +tmp_7.is__11bit() = is__11bit; +tmp_7.burst__type() = burst__type; +} +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", 398, 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_8 = ret_val.u().pag__req(); +tmp_8.sapi() = ANY_VALUE; +tmp_8.chan__needed() = chan__needed; +tmp_8.identity__lv() = id__lv; +} +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", 414, 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_9 = ret_val.u().info__ind(); +tmp_9.version() = version; +tmp_9.flags() = flags; +tmp_9.trx() = ANY_VALUE; +tmp_9.bsic() = ANY_VALUE; +tmp_9.mcc() = ANY_VALUE; +tmp_9.mnc() = ANY_VALUE; +tmp_9.mnc__3__digits() = ANY_VALUE; +tmp_9.lac() = ANY_VALUE; +tmp_9.rac() = ANY_VALUE; +tmp_9.nsei() = ANY_VALUE; +tmp_9.nse__timer() = ANY_VALUE; +tmp_9.cell__timer() = ANY_VALUE; +tmp_9.cell__id() = ANY_VALUE; +tmp_9.repeat__time() = ANY_VALUE; +tmp_9.repeat__count() = ANY_VALUE; +tmp_9.bvci() = ANY_VALUE; +tmp_9.t3142() = ANY_VALUE; +tmp_9.t3169() = ANY_VALUE; +tmp_9.t3191() = ANY_VALUE; +tmp_9.t3193__10ms() = ANY_VALUE; +tmp_9.t3195() = ANY_VALUE; +tmp_9.t3101() = ANY_VALUE; +tmp_9.t3103() = ANY_VALUE; +tmp_9.t3105() = ANY_VALUE; +tmp_9.cv__countdown() = ANY_VALUE; +tmp_9.dl__tbf__ext() = ANY_VALUE; +tmp_9.ul__tbf__ext() = ANY_VALUE; +tmp_9.initial__cs() = ANY_VALUE; +tmp_9.initial__mcs() = ANY_VALUE; +tmp_9.nsvci() = ANY_VALUE; +tmp_9.local__pprt() = ANY_VALUE; +tmp_9.remote__port() = ANY_VALUE; +tmp_9.remote__ip() = ANY_VALUE; +} +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); +} + +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__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__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_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_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 */ |