| // This C++ source file was generated by the TTCN-3 compiler |
| // of the TTCN-3 Test Executor version CRL 113 200/6 R6A |
| // for Lénárd Nagy (elnrnag@elx78355y6x) on Thu Oct 24 10:29:40 2019 |
| |
| // Copyright (c) 2000-2019 Ericsson Telecom AB |
| |
| // Do not edit this file unless you know what you are doing. |
| |
| /* Including header files */ |
| |
| #include "Can.hh" |
| |
| namespace Can { |
| |
| /* Prototypes of static functions */ |
| |
| static void pre_init_module(); |
| static void post_init_module(); |
| |
| /* Literal string constants */ |
| |
| static const unsigned char os_3_octets[] = { 0, 0, 7, 255 }, |
| os_4_octets[] = { 31, 255, 255, 255 }, |
| os_2_octets[] = { 32, 0, 0, 0 }, |
| os_1_octets[] = { 64, 0, 0, 0 }, |
| os_0_octets[] = { 128, 0, 0, 0 }; |
| static const OCTETSTRING os_3(4, os_3_octets), |
| os_4(4, os_4_octets), |
| os_2(4, os_2_octets), |
| os_1(4, os_1_octets), |
| os_0(4, os_0_octets); |
| static const unsigned short op_128_elements[] = { 0, 256, 256, 256 }, |
| op_129_elements[] = { 1, 256, 256, 256 }, |
| op_130_elements[] = { 2, 256, 256, 256 }, |
| op_131_elements[] = { 3, 256, 256, 256 }, |
| op_132_elements[] = { 4, 256, 256, 256 }, |
| op_133_elements[] = { 5, 256, 256, 256 }, |
| op_134_elements[] = { 6, 256, 256, 256 }, |
| op_135_elements[] = { 7, 256, 256, 256 }, |
| op_136_elements[] = { 8, 256, 256, 256 }, |
| op_137_elements[] = { 9, 256, 256, 256 }, |
| op_138_elements[] = { 10, 256, 256, 256 }, |
| op_139_elements[] = { 11, 256, 256, 256 }, |
| op_140_elements[] = { 12, 256, 256, 256 }, |
| op_141_elements[] = { 13, 256, 256, 256 }, |
| op_142_elements[] = { 14, 256, 256, 256 }, |
| op_143_elements[] = { 15, 256, 256, 256 }, |
| op_144_elements[] = { 16, 256, 256, 256 }, |
| op_145_elements[] = { 17, 256, 256, 256 }, |
| op_146_elements[] = { 18, 256, 256, 256 }, |
| op_147_elements[] = { 19, 256, 256, 256 }, |
| op_148_elements[] = { 20, 256, 256, 256 }, |
| op_149_elements[] = { 21, 256, 256, 256 }, |
| op_150_elements[] = { 22, 256, 256, 256 }, |
| op_151_elements[] = { 23, 256, 256, 256 }, |
| op_152_elements[] = { 24, 256, 256, 256 }, |
| op_153_elements[] = { 25, 256, 256, 256 }, |
| op_154_elements[] = { 26, 256, 256, 256 }, |
| op_155_elements[] = { 27, 256, 256, 256 }, |
| op_156_elements[] = { 28, 256, 256, 256 }, |
| op_157_elements[] = { 29, 256, 256, 256 }, |
| op_158_elements[] = { 30, 256, 256, 256 }, |
| op_159_elements[] = { 31, 256, 256, 256 }, |
| op_160_elements[] = { 32, 256, 256, 256 }, |
| op_161_elements[] = { 33, 256, 256, 256 }, |
| op_162_elements[] = { 34, 256, 256, 256 }, |
| op_163_elements[] = { 35, 256, 256, 256 }, |
| op_164_elements[] = { 36, 256, 256, 256 }, |
| op_165_elements[] = { 37, 256, 256, 256 }, |
| op_166_elements[] = { 38, 256, 256, 256 }, |
| op_167_elements[] = { 39, 256, 256, 256 }, |
| op_168_elements[] = { 40, 256, 256, 256 }, |
| op_169_elements[] = { 41, 256, 256, 256 }, |
| op_170_elements[] = { 42, 256, 256, 256 }, |
| op_171_elements[] = { 43, 256, 256, 256 }, |
| op_172_elements[] = { 44, 256, 256, 256 }, |
| op_173_elements[] = { 45, 256, 256, 256 }, |
| op_174_elements[] = { 46, 256, 256, 256 }, |
| op_175_elements[] = { 47, 256, 256, 256 }, |
| op_176_elements[] = { 48, 256, 256, 256 }, |
| op_177_elements[] = { 49, 256, 256, 256 }, |
| op_178_elements[] = { 50, 256, 256, 256 }, |
| op_179_elements[] = { 51, 256, 256, 256 }, |
| op_180_elements[] = { 52, 256, 256, 256 }, |
| op_181_elements[] = { 53, 256, 256, 256 }, |
| op_182_elements[] = { 54, 256, 256, 256 }, |
| op_183_elements[] = { 55, 256, 256, 256 }, |
| op_184_elements[] = { 56, 256, 256, 256 }, |
| op_185_elements[] = { 57, 256, 256, 256 }, |
| op_186_elements[] = { 58, 256, 256, 256 }, |
| op_187_elements[] = { 59, 256, 256, 256 }, |
| op_188_elements[] = { 60, 256, 256, 256 }, |
| op_189_elements[] = { 61, 256, 256, 256 }, |
| op_190_elements[] = { 62, 256, 256, 256 }, |
| op_191_elements[] = { 63, 256, 256, 256 }, |
| op_192_elements[] = { 64, 256, 256, 256 }, |
| op_193_elements[] = { 65, 256, 256, 256 }, |
| op_194_elements[] = { 66, 256, 256, 256 }, |
| op_195_elements[] = { 67, 256, 256, 256 }, |
| op_196_elements[] = { 68, 256, 256, 256 }, |
| op_197_elements[] = { 69, 256, 256, 256 }, |
| op_198_elements[] = { 70, 256, 256, 256 }, |
| op_199_elements[] = { 71, 256, 256, 256 }, |
| op_200_elements[] = { 72, 256, 256, 256 }, |
| op_201_elements[] = { 73, 256, 256, 256 }, |
| op_202_elements[] = { 74, 256, 256, 256 }, |
| op_203_elements[] = { 75, 256, 256, 256 }, |
| op_204_elements[] = { 76, 256, 256, 256 }, |
| op_205_elements[] = { 77, 256, 256, 256 }, |
| op_206_elements[] = { 78, 256, 256, 256 }, |
| op_207_elements[] = { 79, 256, 256, 256 }, |
| op_208_elements[] = { 80, 256, 256, 256 }, |
| op_209_elements[] = { 81, 256, 256, 256 }, |
| op_210_elements[] = { 82, 256, 256, 256 }, |
| op_211_elements[] = { 83, 256, 256, 256 }, |
| op_212_elements[] = { 84, 256, 256, 256 }, |
| op_213_elements[] = { 85, 256, 256, 256 }, |
| op_214_elements[] = { 86, 256, 256, 256 }, |
| op_215_elements[] = { 87, 256, 256, 256 }, |
| op_216_elements[] = { 88, 256, 256, 256 }, |
| op_217_elements[] = { 89, 256, 256, 256 }, |
| op_218_elements[] = { 90, 256, 256, 256 }, |
| op_219_elements[] = { 91, 256, 256, 256 }, |
| op_220_elements[] = { 92, 256, 256, 256 }, |
| op_221_elements[] = { 93, 256, 256, 256 }, |
| op_222_elements[] = { 94, 256, 256, 256 }, |
| op_223_elements[] = { 95, 256, 256, 256 }, |
| op_224_elements[] = { 96, 256, 256, 256 }, |
| op_225_elements[] = { 97, 256, 256, 256 }, |
| op_226_elements[] = { 98, 256, 256, 256 }, |
| op_227_elements[] = { 99, 256, 256, 256 }, |
| op_228_elements[] = { 100, 256, 256, 256 }, |
| op_229_elements[] = { 101, 256, 256, 256 }, |
| op_230_elements[] = { 102, 256, 256, 256 }, |
| op_231_elements[] = { 103, 256, 256, 256 }, |
| op_232_elements[] = { 104, 256, 256, 256 }, |
| op_233_elements[] = { 105, 256, 256, 256 }, |
| op_234_elements[] = { 106, 256, 256, 256 }, |
| op_235_elements[] = { 107, 256, 256, 256 }, |
| op_236_elements[] = { 108, 256, 256, 256 }, |
| op_237_elements[] = { 109, 256, 256, 256 }, |
| op_238_elements[] = { 110, 256, 256, 256 }, |
| op_239_elements[] = { 111, 256, 256, 256 }, |
| op_240_elements[] = { 112, 256, 256, 256 }, |
| op_241_elements[] = { 113, 256, 256, 256 }, |
| op_242_elements[] = { 114, 256, 256, 256 }, |
| op_243_elements[] = { 115, 256, 256, 256 }, |
| op_244_elements[] = { 116, 256, 256, 256 }, |
| op_245_elements[] = { 117, 256, 256, 256 }, |
| op_246_elements[] = { 118, 256, 256, 256 }, |
| op_247_elements[] = { 119, 256, 256, 256 }, |
| op_248_elements[] = { 120, 256, 256, 256 }, |
| op_249_elements[] = { 121, 256, 256, 256 }, |
| op_250_elements[] = { 122, 256, 256, 256 }, |
| op_251_elements[] = { 123, 256, 256, 256 }, |
| op_252_elements[] = { 124, 256, 256, 256 }, |
| op_253_elements[] = { 125, 256, 256, 256 }, |
| op_254_elements[] = { 126, 256, 256, 256 }, |
| op_255_elements[] = { 127, 256, 256, 256 }, |
| op_0_elements[] = { 128, 256, 256, 256 }, |
| op_1_elements[] = { 129, 256, 256, 256 }, |
| op_2_elements[] = { 130, 256, 256, 256 }, |
| op_3_elements[] = { 131, 256, 256, 256 }, |
| op_4_elements[] = { 132, 256, 256, 256 }, |
| op_5_elements[] = { 133, 256, 256, 256 }, |
| op_6_elements[] = { 134, 256, 256, 256 }, |
| op_7_elements[] = { 135, 256, 256, 256 }, |
| op_8_elements[] = { 136, 256, 256, 256 }, |
| op_9_elements[] = { 137, 256, 256, 256 }, |
| op_10_elements[] = { 138, 256, 256, 256 }, |
| op_11_elements[] = { 139, 256, 256, 256 }, |
| op_12_elements[] = { 140, 256, 256, 256 }, |
| op_13_elements[] = { 141, 256, 256, 256 }, |
| op_14_elements[] = { 142, 256, 256, 256 }, |
| op_15_elements[] = { 143, 256, 256, 256 }, |
| op_16_elements[] = { 144, 256, 256, 256 }, |
| op_17_elements[] = { 145, 256, 256, 256 }, |
| op_18_elements[] = { 146, 256, 256, 256 }, |
| op_19_elements[] = { 147, 256, 256, 256 }, |
| op_20_elements[] = { 148, 256, 256, 256 }, |
| op_21_elements[] = { 149, 256, 256, 256 }, |
| op_22_elements[] = { 150, 256, 256, 256 }, |
| op_23_elements[] = { 151, 256, 256, 256 }, |
| op_24_elements[] = { 152, 256, 256, 256 }, |
| op_25_elements[] = { 153, 256, 256, 256 }, |
| op_26_elements[] = { 154, 256, 256, 256 }, |
| op_27_elements[] = { 155, 256, 256, 256 }, |
| op_28_elements[] = { 156, 256, 256, 256 }, |
| op_29_elements[] = { 157, 256, 256, 256 }, |
| op_30_elements[] = { 158, 256, 256, 256 }, |
| op_31_elements[] = { 159, 256, 256, 256 }, |
| op_32_elements[] = { 160, 256, 256, 256 }, |
| op_33_elements[] = { 161, 256, 256, 256 }, |
| op_34_elements[] = { 162, 256, 256, 256 }, |
| op_35_elements[] = { 163, 256, 256, 256 }, |
| op_36_elements[] = { 164, 256, 256, 256 }, |
| op_37_elements[] = { 165, 256, 256, 256 }, |
| op_38_elements[] = { 166, 256, 256, 256 }, |
| op_39_elements[] = { 167, 256, 256, 256 }, |
| op_40_elements[] = { 168, 256, 256, 256 }, |
| op_41_elements[] = { 169, 256, 256, 256 }, |
| op_42_elements[] = { 170, 256, 256, 256 }, |
| op_43_elements[] = { 171, 256, 256, 256 }, |
| op_44_elements[] = { 172, 256, 256, 256 }, |
| op_45_elements[] = { 173, 256, 256, 256 }, |
| op_46_elements[] = { 174, 256, 256, 256 }, |
| op_47_elements[] = { 175, 256, 256, 256 }, |
| op_48_elements[] = { 176, 256, 256, 256 }, |
| op_49_elements[] = { 177, 256, 256, 256 }, |
| op_50_elements[] = { 178, 256, 256, 256 }, |
| op_51_elements[] = { 179, 256, 256, 256 }, |
| op_52_elements[] = { 180, 256, 256, 256 }, |
| op_53_elements[] = { 181, 256, 256, 256 }, |
| op_54_elements[] = { 182, 256, 256, 256 }, |
| op_55_elements[] = { 183, 256, 256, 256 }, |
| op_56_elements[] = { 184, 256, 256, 256 }, |
| op_57_elements[] = { 185, 256, 256, 256 }, |
| op_58_elements[] = { 186, 256, 256, 256 }, |
| op_59_elements[] = { 187, 256, 256, 256 }, |
| op_60_elements[] = { 188, 256, 256, 256 }, |
| op_61_elements[] = { 189, 256, 256, 256 }, |
| op_62_elements[] = { 190, 256, 256, 256 }, |
| op_63_elements[] = { 191, 256, 256, 256 }, |
| op_64_elements[] = { 192, 256, 256, 256 }, |
| op_65_elements[] = { 193, 256, 256, 256 }, |
| op_66_elements[] = { 194, 256, 256, 256 }, |
| op_67_elements[] = { 195, 256, 256, 256 }, |
| op_68_elements[] = { 196, 256, 256, 256 }, |
| op_69_elements[] = { 197, 256, 256, 256 }, |
| op_70_elements[] = { 198, 256, 256, 256 }, |
| op_71_elements[] = { 199, 256, 256, 256 }, |
| op_72_elements[] = { 200, 256, 256, 256 }, |
| op_73_elements[] = { 201, 256, 256, 256 }, |
| op_74_elements[] = { 202, 256, 256, 256 }, |
| op_75_elements[] = { 203, 256, 256, 256 }, |
| op_76_elements[] = { 204, 256, 256, 256 }, |
| op_77_elements[] = { 205, 256, 256, 256 }, |
| op_78_elements[] = { 206, 256, 256, 256 }, |
| op_79_elements[] = { 207, 256, 256, 256 }, |
| op_80_elements[] = { 208, 256, 256, 256 }, |
| op_81_elements[] = { 209, 256, 256, 256 }, |
| op_82_elements[] = { 210, 256, 256, 256 }, |
| op_83_elements[] = { 211, 256, 256, 256 }, |
| op_84_elements[] = { 212, 256, 256, 256 }, |
| op_85_elements[] = { 213, 256, 256, 256 }, |
| op_86_elements[] = { 214, 256, 256, 256 }, |
| op_87_elements[] = { 215, 256, 256, 256 }, |
| op_88_elements[] = { 216, 256, 256, 256 }, |
| op_89_elements[] = { 217, 256, 256, 256 }, |
| op_90_elements[] = { 218, 256, 256, 256 }, |
| op_91_elements[] = { 219, 256, 256, 256 }, |
| op_92_elements[] = { 220, 256, 256, 256 }, |
| op_93_elements[] = { 221, 256, 256, 256 }, |
| op_94_elements[] = { 222, 256, 256, 256 }, |
| op_95_elements[] = { 223, 256, 256, 256 }, |
| op_96_elements[] = { 224, 256, 256, 256 }, |
| op_97_elements[] = { 225, 256, 256, 256 }, |
| op_98_elements[] = { 226, 256, 256, 256 }, |
| op_99_elements[] = { 227, 256, 256, 256 }, |
| op_100_elements[] = { 228, 256, 256, 256 }, |
| op_101_elements[] = { 229, 256, 256, 256 }, |
| op_102_elements[] = { 230, 256, 256, 256 }, |
| op_103_elements[] = { 231, 256, 256, 256 }, |
| op_104_elements[] = { 232, 256, 256, 256 }, |
| op_105_elements[] = { 233, 256, 256, 256 }, |
| op_106_elements[] = { 234, 256, 256, 256 }, |
| op_107_elements[] = { 235, 256, 256, 256 }, |
| op_108_elements[] = { 236, 256, 256, 256 }, |
| op_109_elements[] = { 237, 256, 256, 256 }, |
| op_110_elements[] = { 238, 256, 256, 256 }, |
| op_111_elements[] = { 239, 256, 256, 256 }, |
| op_112_elements[] = { 240, 256, 256, 256 }, |
| op_113_elements[] = { 241, 256, 256, 256 }, |
| op_114_elements[] = { 242, 256, 256, 256 }, |
| op_115_elements[] = { 243, 256, 256, 256 }, |
| op_116_elements[] = { 244, 256, 256, 256 }, |
| op_117_elements[] = { 245, 256, 256, 256 }, |
| op_118_elements[] = { 246, 256, 256, 256 }, |
| op_119_elements[] = { 247, 256, 256, 256 }, |
| op_120_elements[] = { 248, 256, 256, 256 }, |
| op_121_elements[] = { 249, 256, 256, 256 }, |
| op_122_elements[] = { 250, 256, 256, 256 }, |
| op_123_elements[] = { 251, 256, 256, 256 }, |
| op_124_elements[] = { 252, 256, 256, 256 }, |
| op_125_elements[] = { 253, 256, 256, 256 }, |
| op_126_elements[] = { 254, 256, 256, 256 }, |
| op_127_elements[] = { 255, 256, 256, 256 }; |
| static const OCTETSTRING_template op_128(4, op_128_elements), |
| op_129(4, op_129_elements), |
| op_130(4, op_130_elements), |
| op_131(4, op_131_elements), |
| op_132(4, op_132_elements), |
| op_133(4, op_133_elements), |
| op_134(4, op_134_elements), |
| op_135(4, op_135_elements), |
| op_136(4, op_136_elements), |
| op_137(4, op_137_elements), |
| op_138(4, op_138_elements), |
| op_139(4, op_139_elements), |
| op_140(4, op_140_elements), |
| op_141(4, op_141_elements), |
| op_142(4, op_142_elements), |
| op_143(4, op_143_elements), |
| op_144(4, op_144_elements), |
| op_145(4, op_145_elements), |
| op_146(4, op_146_elements), |
| op_147(4, op_147_elements), |
| op_148(4, op_148_elements), |
| op_149(4, op_149_elements), |
| op_150(4, op_150_elements), |
| op_151(4, op_151_elements), |
| op_152(4, op_152_elements), |
| op_153(4, op_153_elements), |
| op_154(4, op_154_elements), |
| op_155(4, op_155_elements), |
| op_156(4, op_156_elements), |
| op_157(4, op_157_elements), |
| op_158(4, op_158_elements), |
| op_159(4, op_159_elements), |
| op_160(4, op_160_elements), |
| op_161(4, op_161_elements), |
| op_162(4, op_162_elements), |
| op_163(4, op_163_elements), |
| op_164(4, op_164_elements), |
| op_165(4, op_165_elements), |
| op_166(4, op_166_elements), |
| op_167(4, op_167_elements), |
| op_168(4, op_168_elements), |
| op_169(4, op_169_elements), |
| op_170(4, op_170_elements), |
| op_171(4, op_171_elements), |
| op_172(4, op_172_elements), |
| op_173(4, op_173_elements), |
| op_174(4, op_174_elements), |
| op_175(4, op_175_elements), |
| op_176(4, op_176_elements), |
| op_177(4, op_177_elements), |
| op_178(4, op_178_elements), |
| op_179(4, op_179_elements), |
| op_180(4, op_180_elements), |
| op_181(4, op_181_elements), |
| op_182(4, op_182_elements), |
| op_183(4, op_183_elements), |
| op_184(4, op_184_elements), |
| op_185(4, op_185_elements), |
| op_186(4, op_186_elements), |
| op_187(4, op_187_elements), |
| op_188(4, op_188_elements), |
| op_189(4, op_189_elements), |
| op_190(4, op_190_elements), |
| op_191(4, op_191_elements), |
| op_192(4, op_192_elements), |
| op_193(4, op_193_elements), |
| op_194(4, op_194_elements), |
| op_195(4, op_195_elements), |
| op_196(4, op_196_elements), |
| op_197(4, op_197_elements), |
| op_198(4, op_198_elements), |
| op_199(4, op_199_elements), |
| op_200(4, op_200_elements), |
| op_201(4, op_201_elements), |
| op_202(4, op_202_elements), |
| op_203(4, op_203_elements), |
| op_204(4, op_204_elements), |
| op_205(4, op_205_elements), |
| op_206(4, op_206_elements), |
| op_207(4, op_207_elements), |
| op_208(4, op_208_elements), |
| op_209(4, op_209_elements), |
| op_210(4, op_210_elements), |
| op_211(4, op_211_elements), |
| op_212(4, op_212_elements), |
| op_213(4, op_213_elements), |
| op_214(4, op_214_elements), |
| op_215(4, op_215_elements), |
| op_216(4, op_216_elements), |
| op_217(4, op_217_elements), |
| op_218(4, op_218_elements), |
| op_219(4, op_219_elements), |
| op_220(4, op_220_elements), |
| op_221(4, op_221_elements), |
| op_222(4, op_222_elements), |
| op_223(4, op_223_elements), |
| op_224(4, op_224_elements), |
| op_225(4, op_225_elements), |
| op_226(4, op_226_elements), |
| op_227(4, op_227_elements), |
| op_228(4, op_228_elements), |
| op_229(4, op_229_elements), |
| op_230(4, op_230_elements), |
| op_231(4, op_231_elements), |
| op_232(4, op_232_elements), |
| op_233(4, op_233_elements), |
| op_234(4, op_234_elements), |
| op_235(4, op_235_elements), |
| op_236(4, op_236_elements), |
| op_237(4, op_237_elements), |
| op_238(4, op_238_elements), |
| op_239(4, op_239_elements), |
| op_240(4, op_240_elements), |
| op_241(4, op_241_elements), |
| op_242(4, op_242_elements), |
| op_243(4, op_243_elements), |
| op_244(4, op_244_elements), |
| op_245(4, op_245_elements), |
| op_246(4, op_246_elements), |
| op_247(4, op_247_elements), |
| op_248(4, op_248_elements), |
| op_249(4, op_249_elements), |
| op_250(4, op_250_elements), |
| op_251(4, op_251_elements), |
| op_252(4, op_252_elements), |
| op_253(4, op_253_elements), |
| op_254(4, op_254_elements), |
| op_255(4, op_255_elements), |
| op_0(4, op_0_elements), |
| op_1(4, op_1_elements), |
| op_2(4, op_2_elements), |
| op_3(4, op_3_elements), |
| op_4(4, op_4_elements), |
| op_5(4, op_5_elements), |
| op_6(4, op_6_elements), |
| op_7(4, op_7_elements), |
| op_8(4, op_8_elements), |
| op_9(4, op_9_elements), |
| op_10(4, op_10_elements), |
| op_11(4, op_11_elements), |
| op_12(4, op_12_elements), |
| op_13(4, op_13_elements), |
| op_14(4, op_14_elements), |
| op_15(4, op_15_elements), |
| op_16(4, op_16_elements), |
| op_17(4, op_17_elements), |
| op_18(4, op_18_elements), |
| op_19(4, op_19_elements), |
| op_20(4, op_20_elements), |
| op_21(4, op_21_elements), |
| op_22(4, op_22_elements), |
| op_23(4, op_23_elements), |
| op_24(4, op_24_elements), |
| op_25(4, op_25_elements), |
| op_26(4, op_26_elements), |
| op_27(4, op_27_elements), |
| op_28(4, op_28_elements), |
| op_29(4, op_29_elements), |
| op_30(4, op_30_elements), |
| op_31(4, op_31_elements), |
| op_32(4, op_32_elements), |
| op_33(4, op_33_elements), |
| op_34(4, op_34_elements), |
| op_35(4, op_35_elements), |
| op_36(4, op_36_elements), |
| op_37(4, op_37_elements), |
| op_38(4, op_38_elements), |
| op_39(4, op_39_elements), |
| op_40(4, op_40_elements), |
| op_41(4, op_41_elements), |
| op_42(4, op_42_elements), |
| op_43(4, op_43_elements), |
| op_44(4, op_44_elements), |
| op_45(4, op_45_elements), |
| op_46(4, op_46_elements), |
| op_47(4, op_47_elements), |
| op_48(4, op_48_elements), |
| op_49(4, op_49_elements), |
| op_50(4, op_50_elements), |
| op_51(4, op_51_elements), |
| op_52(4, op_52_elements), |
| op_53(4, op_53_elements), |
| op_54(4, op_54_elements), |
| op_55(4, op_55_elements), |
| op_56(4, op_56_elements), |
| op_57(4, op_57_elements), |
| op_58(4, op_58_elements), |
| op_59(4, op_59_elements), |
| op_60(4, op_60_elements), |
| op_61(4, op_61_elements), |
| op_62(4, op_62_elements), |
| op_63(4, op_63_elements), |
| op_64(4, op_64_elements), |
| op_65(4, op_65_elements), |
| op_66(4, op_66_elements), |
| op_67(4, op_67_elements), |
| op_68(4, op_68_elements), |
| op_69(4, op_69_elements), |
| op_70(4, op_70_elements), |
| op_71(4, op_71_elements), |
| op_72(4, op_72_elements), |
| op_73(4, op_73_elements), |
| op_74(4, op_74_elements), |
| op_75(4, op_75_elements), |
| op_76(4, op_76_elements), |
| op_77(4, op_77_elements), |
| op_78(4, op_78_elements), |
| op_79(4, op_79_elements), |
| op_80(4, op_80_elements), |
| op_81(4, op_81_elements), |
| op_82(4, op_82_elements), |
| op_83(4, op_83_elements), |
| op_84(4, op_84_elements), |
| op_85(4, op_85_elements), |
| op_86(4, op_86_elements), |
| op_87(4, op_87_elements), |
| op_88(4, op_88_elements), |
| op_89(4, op_89_elements), |
| op_90(4, op_90_elements), |
| op_91(4, op_91_elements), |
| op_92(4, op_92_elements), |
| op_93(4, op_93_elements), |
| op_94(4, op_94_elements), |
| op_95(4, op_95_elements), |
| op_96(4, op_96_elements), |
| op_97(4, op_97_elements), |
| op_98(4, op_98_elements), |
| op_99(4, op_99_elements), |
| op_100(4, op_100_elements), |
| op_101(4, op_101_elements), |
| op_102(4, op_102_elements), |
| op_103(4, op_103_elements), |
| op_104(4, op_104_elements), |
| op_105(4, op_105_elements), |
| op_106(4, op_106_elements), |
| op_107(4, op_107_elements), |
| op_108(4, op_108_elements), |
| op_109(4, op_109_elements), |
| op_110(4, op_110_elements), |
| op_111(4, op_111_elements), |
| op_112(4, op_112_elements), |
| op_113(4, op_113_elements), |
| op_114(4, op_114_elements), |
| op_115(4, op_115_elements), |
| op_116(4, op_116_elements), |
| op_117(4, op_117_elements), |
| op_118(4, op_118_elements), |
| op_119(4, op_119_elements), |
| op_120(4, op_120_elements), |
| op_121(4, op_121_elements), |
| op_122(4, op_122_elements), |
| op_123(4, op_123_elements), |
| op_124(4, op_124_elements), |
| op_125(4, op_125_elements), |
| op_126(4, op_126_elements), |
| op_127(4, op_127_elements); |
| static const unsigned char module_checksum[] = { 0x53, 0x65, 0xa1, 0xba, 0x1c, 0x6d, 0x2a, 0xa6, 0xcc, 0xb6, 0x37, 0x4b, 0xb9, 0x1b, 0xae, 0xe1 }; |
| |
| /* Global variable definitions */ |
| |
| static OCTETSTRING const_CAN__EFF__FLAG; |
| const OCTETSTRING& CAN__EFF__FLAG = const_CAN__EFF__FLAG; |
| static OCTETSTRING const_CAN__RTR__FLAG; |
| const OCTETSTRING& CAN__RTR__FLAG = const_CAN__RTR__FLAG; |
| static OCTETSTRING const_CAN__ERR__FLAG; |
| const OCTETSTRING& CAN__ERR__FLAG = const_CAN__ERR__FLAG; |
| static OCTETSTRING const_CAN__SFF__MASK; |
| const OCTETSTRING& CAN__SFF__MASK = const_CAN__SFF__MASK; |
| static OCTETSTRING const_CAN__EFF__MASK; |
| const OCTETSTRING& CAN__EFF__MASK = const_CAN__EFF__MASK; |
| static OCTETSTRING const_CAN__ERR__MASK; |
| const OCTETSTRING& CAN__ERR__MASK = const_CAN__ERR__MASK; |
| static OCTETSTRING_template template_t__CAN__EFF__FLAG; |
| const OCTETSTRING_template& t__CAN__EFF__FLAG = template_t__CAN__EFF__FLAG; |
| static OCTETSTRING_template template_t__CAN__SFF__FLAG; |
| const OCTETSTRING_template& t__CAN__SFF__FLAG = template_t__CAN__SFF__FLAG; |
| static OCTETSTRING_template template_t__CAN__RTR__FLAG; |
| const OCTETSTRING_template& t__CAN__RTR__FLAG = template_t__CAN__RTR__FLAG; |
| static OCTETSTRING_template template_t__CAN__ERR__FLAG; |
| const OCTETSTRING_template& t__CAN__ERR__FLAG = template_t__CAN__ERR__FLAG; |
| // No XER for AdresseFamily__enum |
| const TTCN_Typedescriptor_t AdresseFamily__enum_descr_ = { "@Can.AdresseFamily_enum", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; |
| static INTEGER const_AF__CAN; |
| const INTEGER& AF__CAN = const_AF__CAN; |
| // No XER for ProtocolFamily__enum |
| const TTCN_Typedescriptor_t ProtocolFamily__enum_descr_ = { "@Can.ProtocolFamily_enum", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; |
| // No XER for PF__CAN__protocols__enum |
| const TTCN_Typedescriptor_t PF__CAN__protocols__enum_descr_ = { "@Can.PF_CAN_protocols_enum", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; |
| static INTEGER const_CAN__MAX__DLEN; |
| const INTEGER& CAN__MAX__DLEN = const_CAN__MAX__DLEN; |
| static INTEGER const_CANFD__MAX__DLEN; |
| const INTEGER& CANFD__MAX__DLEN = const_CANFD__MAX__DLEN; |
| const TTCN_RAWdescriptor_t CAN__id_raw_ = {32,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false}; |
| const XERdescriptor_t CAN__id_xer_ = { {"CAN_id>\n", "CAN_id>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; |
| const int CAN__id_oer_ext_arr_[0] = {}; |
| const int CAN__id_oer_p_[0] = {}; |
| const TTCN_OERdescriptor_t CAN__id_oer_ = { -1, TRUE, 4, FALSE, 0, 0, CAN__id_oer_ext_arr_, 0, CAN__id_oer_p_}; |
| const TTCN_Typedescriptor_t CAN__id_descr_ = { "@Can.CAN_id", &OCTETSTRING_ber_, &CAN__id_raw_, &OCTETSTRING_text_, &CAN__id_xer_, &OCTETSTRING_json_, &CAN__id_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; |
| const TTCN_RAWdescriptor_t CAN__flags_raw_ = {8,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN,NULL,false}; |
| const XERdescriptor_t CAN__flags_xer_ = { {"CAN_flags>\n", "CAN_flags>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; |
| const TTCN_OERdescriptor_t CAN__flags_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; |
| const TTCN_Typedescriptor_t CAN__flags_descr_ = { "@Can.CAN_flags", &BITSTRING_ber_, &CAN__flags_raw_, NULL, &CAN__flags_xer_, &BITSTRING_json_, &CAN__flags_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; |
| const XERdescriptor_t CAN__PDU_xer_ = { {"CAN_PDU>\n", "CAN_PDU>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; |
| const int CAN__PDU_oer_ext_arr_[0] = {}; |
| const int CAN__PDU_oer_p_[0] = {}; |
| const TTCN_OERdescriptor_t CAN__PDU_oer_ = { -1, TRUE, -1, FALSE, 0, 0, CAN__PDU_oer_ext_arr_, 0, CAN__PDU_oer_p_}; |
| const TTCN_Typedescriptor_t CAN__PDU_descr_ = { "@Can.CAN_PDU", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &CAN__PDU_xer_, &OCTETSTRING_json_, &CAN__PDU_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; |
| const XERdescriptor_t CAN__frame_can__id_xer_ = { {"can_id>\n", "can_id>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; |
| const int CAN__frame_can__id_oer_ext_arr_[0] = {}; |
| const int CAN__frame_can__id_oer_p_[0] = {}; |
| const TTCN_OERdescriptor_t CAN__frame_can__id_oer_ = { -1, TRUE, 4, FALSE, 0, 0, CAN__frame_can__id_oer_ext_arr_, 0, CAN__frame_can__id_oer_p_}; |
| const TTCN_Typedescriptor_t CAN__frame_can__id_descr_ = { "@Can.CAN_frame.can_id", &OCTETSTRING_ber_, &CAN__id_raw_, &OCTETSTRING_text_, &CAN__frame_can__id_xer_, &OCTETSTRING_json_, &CAN__frame_can__id_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; |
| const XERdescriptor_t CAN__frame_can__pdu_xer_ = { {"can_pdu>\n", "can_pdu>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; |
| const int CAN__frame_can__pdu_oer_ext_arr_[0] = {}; |
| const int CAN__frame_can__pdu_oer_p_[0] = {}; |
| const TTCN_OERdescriptor_t CAN__frame_can__pdu_oer_ = { -1, TRUE, -1, FALSE, 0, 0, CAN__frame_can__pdu_oer_ext_arr_, 0, CAN__frame_can__pdu_oer_p_}; |
| const TTCN_Typedescriptor_t CAN__frame_can__pdu_descr_ = { "@Can.CAN_frame.can_pdu", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &CAN__frame_can__pdu_xer_, &OCTETSTRING_json_, &CAN__frame_can__pdu_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; |
| // No XER for CAN__frame |
| const TTCN_Typedescriptor_t CAN__frame_descr_ = { "@Can.CAN_frame", NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; |
| const XERdescriptor_t CANFD__frame_can__id_xer_ = { {"can_id>\n", "can_id>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; |
| const int CANFD__frame_can__id_oer_ext_arr_[0] = {}; |
| const int CANFD__frame_can__id_oer_p_[0] = {}; |
| const TTCN_OERdescriptor_t CANFD__frame_can__id_oer_ = { -1, TRUE, 4, FALSE, 0, 0, CANFD__frame_can__id_oer_ext_arr_, 0, CANFD__frame_can__id_oer_p_}; |
| const TTCN_Typedescriptor_t CANFD__frame_can__id_descr_ = { "@Can.CANFD_frame.can_id", &OCTETSTRING_ber_, &CAN__id_raw_, &OCTETSTRING_text_, &CANFD__frame_can__id_xer_, &OCTETSTRING_json_, &CANFD__frame_can__id_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; |
| const XERdescriptor_t CANFD__frame_can__flags_xer_ = { {"can_flags>\n", "can_flags>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; |
| const TTCN_OERdescriptor_t CANFD__frame_can__flags_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; |
| const TTCN_Typedescriptor_t CANFD__frame_can__flags_descr_ = { "@Can.CANFD_frame.can_flags", &BITSTRING_ber_, &CAN__flags_raw_, NULL, &CANFD__frame_can__flags_xer_, &BITSTRING_json_, &CANFD__frame_can__flags_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; |
| const XERdescriptor_t CANFD__frame_can__pdu_xer_ = { {"can_pdu>\n", "can_pdu>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; |
| const int CANFD__frame_can__pdu_oer_ext_arr_[0] = {}; |
| const int CANFD__frame_can__pdu_oer_p_[0] = {}; |
| const TTCN_OERdescriptor_t CANFD__frame_can__pdu_oer_ = { -1, TRUE, -1, FALSE, 0, 0, CANFD__frame_can__pdu_oer_ext_arr_, 0, CANFD__frame_can__pdu_oer_p_}; |
| const TTCN_Typedescriptor_t CANFD__frame_can__pdu_descr_ = { "@Can.CANFD_frame.can_pdu", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &CANFD__frame_can__pdu_xer_, &OCTETSTRING_json_, &CANFD__frame_can__pdu_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE }; |
| // No XER for CANFD__frame |
| const TTCN_Typedescriptor_t CANFD__frame_descr_ = { "@Can.CANFD_frame", NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; |
| TTCN_Module module_object("Can", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); |
| |
| static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_6, |
| current_runtime_version.requires_minor_version_6, |
| current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_1); |
| |
| /* Member functions of C++ classes */ |
| |
| AdresseFamily__enum::AdresseFamily__enum() |
| { |
| enum_value = UNBOUND_VALUE; |
| } |
| |
| AdresseFamily__enum::AdresseFamily__enum(int other_value) |
| { |
| if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Can.AdresseFamily_enum with invalid numeric value %d.", other_value); |
| enum_value = (enum_type)other_value; |
| } |
| |
| AdresseFamily__enum::AdresseFamily__enum(enum_type other_value) |
| { |
| enum_value = other_value; |
| } |
| |
| AdresseFamily__enum::AdresseFamily__enum(const AdresseFamily__enum& other_value) |
| : Base_Type() |
| { |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Can.AdresseFamily_enum."); |
| enum_value = other_value.enum_value; |
| } |
| |
| AdresseFamily__enum& AdresseFamily__enum::operator=(int other_value) |
| { |
| if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Can.AdresseFamily_enum.", other_value); |
| enum_value = (enum_type)other_value; |
| return *this; |
| } |
| |
| AdresseFamily__enum& AdresseFamily__enum::operator=(enum_type other_value) |
| { |
| enum_value = other_value; |
| return *this; |
| } |
| |
| AdresseFamily__enum& AdresseFamily__enum::operator=(const AdresseFamily__enum& other_value) |
| { |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Can.AdresseFamily_enum."); |
| enum_value = other_value.enum_value; |
| return *this; |
| } |
| |
| boolean AdresseFamily__enum::operator==(enum_type other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.AdresseFamily_enum."); |
| return enum_value == other_value; |
| } |
| |
| boolean AdresseFamily__enum::operator==(const AdresseFamily__enum& other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.AdresseFamily_enum."); |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Can.AdresseFamily_enum."); |
| return enum_value == other_value.enum_value; |
| } |
| |
| boolean AdresseFamily__enum::operator<(enum_type other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.AdresseFamily_enum."); |
| return enum_value < other_value; |
| } |
| |
| boolean AdresseFamily__enum::operator<(const AdresseFamily__enum& other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.AdresseFamily_enum."); |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Can.AdresseFamily_enum."); |
| return enum_value < other_value.enum_value; |
| } |
| |
| boolean AdresseFamily__enum::operator>(enum_type other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.AdresseFamily_enum."); |
| return enum_value > other_value; |
| } |
| |
| boolean AdresseFamily__enum::operator>(const AdresseFamily__enum& other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.AdresseFamily_enum."); |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Can.AdresseFamily_enum."); |
| return enum_value > other_value.enum_value; |
| } |
| |
| const char *AdresseFamily__enum::enum_to_str(enum_type enum_par) |
| { |
| switch (enum_par) { |
| case PF__CAN: return "PF_CAN"; |
| default: return "<unknown>"; |
| } |
| } |
| |
| AdresseFamily__enum::enum_type AdresseFamily__enum::str_to_enum(const char *str_par) |
| { |
| if (!strcmp(str_par, "PF_CAN")) return PF__CAN; |
| else return UNKNOWN_VALUE; |
| } |
| |
| boolean AdresseFamily__enum::is_valid_enum(int int_par) |
| { |
| switch (int_par) { |
| case 29: |
| return TRUE; |
| default: |
| return FALSE; |
| } |
| } |
| |
| int AdresseFamily__enum::enum2int(enum_type enum_par) |
| { |
| if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Can.AdresseFamily_enum.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); |
| return enum_par; |
| } |
| |
| int AdresseFamily__enum::enum2int(const AdresseFamily__enum& enum_par) |
| { |
| if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Can.AdresseFamily_enum.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); |
| return enum_par.enum_value; |
| } |
| |
| void AdresseFamily__enum::int2enum(int int_val) |
| { |
| if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Can.AdresseFamily_enum.", int_val); |
| enum_value = (enum_type)int_val; |
| } |
| |
| AdresseFamily__enum::operator AdresseFamily__enum::enum_type() const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Can.AdresseFamily_enum."); |
| return enum_value; |
| } |
| |
| void AdresseFamily__enum::log() const |
| { |
| if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); |
| else TTCN_Logger::log_event_unbound(); |
| } |
| |
| void AdresseFamily__enum::set_param(Module_Param& param) |
| { |
| param.basic_check(Module_Param::BC_VALUE, "enumerated value"); |
| if (param.get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Can.AdresseFamily_enum"); |
| enum_value = str_to_enum(param.get_enumerated()); |
| if (!is_valid_enum(enum_value)) { |
| param.error("Invalid enumerated value for type @Can.AdresseFamily_enum."); |
| } |
| } |
| |
| void AdresseFamily__enum::encode_text(Text_Buf& text_buf) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Can.AdresseFamily_enum."); |
| text_buf.push_int(enum_value); |
| } |
| |
| void AdresseFamily__enum::decode_text(Text_Buf& text_buf) |
| { |
| enum_value = (enum_type)text_buf.pull_int().get_val(); |
| if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Can.AdresseFamily_enum.", enum_value); |
| } |
| |
| void AdresseFamily__enum_template::copy_template(const AdresseFamily__enum_template& other_value) |
| { |
| set_selection(other_value); |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| single_value = other_value.single_value; |
| break; |
| case OMIT_VALUE: |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| break; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| value_list.n_values = other_value.value_list.n_values; |
| value_list.list_value = new AdresseFamily__enum_template[value_list.n_values]; |
| for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) |
| value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); |
| break; |
| default: |
| TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Can.AdresseFamily_enum."); |
| } |
| } |
| |
| AdresseFamily__enum_template::AdresseFamily__enum_template() |
| { |
| } |
| |
| AdresseFamily__enum_template::AdresseFamily__enum_template(template_sel other_value) |
| : Base_Template(other_value) |
| { |
| check_single_selection(other_value); |
| } |
| |
| AdresseFamily__enum_template::AdresseFamily__enum_template(int other_value) |
| : Base_Template(SPECIFIC_VALUE) |
| { |
| if (!AdresseFamily__enum::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Can.AdresseFamily_enum with unknown numeric value %d.", other_value); |
| single_value = (AdresseFamily__enum::enum_type)other_value; |
| } |
| |
| AdresseFamily__enum_template::AdresseFamily__enum_template(AdresseFamily__enum::enum_type other_value) |
| : Base_Template(SPECIFIC_VALUE) |
| { |
| single_value = other_value; |
| } |
| |
| AdresseFamily__enum_template::AdresseFamily__enum_template(const AdresseFamily__enum& other_value) |
| : Base_Template(SPECIFIC_VALUE) |
| { |
| if (other_value.enum_value == AdresseFamily__enum::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Can.AdresseFamily_enum."); |
| single_value = other_value.enum_value; |
| } |
| |
| AdresseFamily__enum_template::AdresseFamily__enum_template(const OPTIONAL<AdresseFamily__enum>& other_value) |
| { |
| switch (other_value.get_selection()) { |
| case OPTIONAL_PRESENT: |
| set_selection(SPECIFIC_VALUE); |
| single_value = (AdresseFamily__enum::enum_type)(const AdresseFamily__enum&)other_value; |
| break; |
| case OPTIONAL_OMIT: |
| set_selection(OMIT_VALUE); |
| break; |
| default: |
| TTCN_error("Creating a template of enumerated type @Can.AdresseFamily_enum from an unbound optional field."); |
| } |
| } |
| |
| AdresseFamily__enum_template::AdresseFamily__enum_template(const AdresseFamily__enum_template& other_value) |
| : Base_Template() |
| { |
| copy_template(other_value); |
| } |
| |
| AdresseFamily__enum_template::~AdresseFamily__enum_template() |
| { |
| clean_up(); |
| } |
| |
| boolean AdresseFamily__enum_template::is_bound() const |
| { |
| if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; |
| return TRUE; |
| } |
| |
| boolean AdresseFamily__enum_template::is_value() const |
| { |
| if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; |
| return single_value != AdresseFamily__enum::UNBOUND_VALUE; |
| } |
| |
| void AdresseFamily__enum_template::clean_up() |
| { |
| if (template_selection == VALUE_LIST || template_selection == COMPLEMENTED_LIST) delete [] value_list.list_value; |
| template_selection = UNINITIALIZED_TEMPLATE; |
| } |
| |
| AdresseFamily__enum_template& AdresseFamily__enum_template::operator=(template_sel other_value) |
| { |
| check_single_selection(other_value); |
| clean_up(); |
| set_selection(other_value); |
| return *this; |
| } |
| |
| AdresseFamily__enum_template& AdresseFamily__enum_template::operator=(int other_value) |
| { |
| if (!AdresseFamily__enum::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Can.AdresseFamily_enum.", other_value); |
| clean_up(); |
| set_selection(SPECIFIC_VALUE); |
| single_value = (AdresseFamily__enum::enum_type)other_value; |
| return *this; |
| } |
| |
| AdresseFamily__enum_template& AdresseFamily__enum_template::operator=(AdresseFamily__enum::enum_type other_value) |
| { |
| clean_up(); |
| set_selection(SPECIFIC_VALUE); |
| single_value = other_value; |
| return *this; |
| } |
| |
| AdresseFamily__enum_template& AdresseFamily__enum_template::operator=(const AdresseFamily__enum& other_value) |
| { |
| if (other_value.enum_value == AdresseFamily__enum::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Can.AdresseFamily_enum to a template."); |
| clean_up(); |
| set_selection(SPECIFIC_VALUE); |
| single_value = other_value.enum_value; |
| return *this; |
| } |
| |
| AdresseFamily__enum_template& AdresseFamily__enum_template::operator=(const OPTIONAL<AdresseFamily__enum>& other_value) |
| { |
| clean_up(); |
| switch (other_value.get_selection()) { |
| case OPTIONAL_PRESENT: |
| set_selection(SPECIFIC_VALUE); |
| single_value = (AdresseFamily__enum::enum_type)(const AdresseFamily__enum&)other_value; |
| break; |
| case OPTIONAL_OMIT: |
| set_selection(OMIT_VALUE); |
| break; |
| default: |
| TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Can.AdresseFamily_enum."); |
| } |
| return *this; |
| } |
| |
| AdresseFamily__enum_template& AdresseFamily__enum_template::operator=(const AdresseFamily__enum_template& other_value) |
| { |
| if (&other_value != this) { |
| clean_up(); |
| copy_template(other_value); |
| } |
| return *this; |
| } |
| |
| boolean AdresseFamily__enum_template::match(AdresseFamily__enum::enum_type other_value, boolean) const |
| { |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| return single_value == other_value; |
| case OMIT_VALUE: |
| return FALSE; |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| return TRUE; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) |
| if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; |
| return template_selection == COMPLEMENTED_LIST; |
| default: |
| TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Can.AdresseFamily_enum."); |
| } |
| return FALSE; |
| } |
| |
| boolean AdresseFamily__enum_template::match(const AdresseFamily__enum& other_value, boolean) const |
| { |
| if (other_value.enum_value == AdresseFamily__enum::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Can.AdresseFamily_enum with an unbound value."); |
| return match(other_value.enum_value); |
| } |
| |
| AdresseFamily__enum::enum_type AdresseFamily__enum_template::valueof() const |
| { |
| if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Can.AdresseFamily_enum."); |
| return single_value; |
| } |
| |
| void AdresseFamily__enum_template::set_type(template_sel template_type, unsigned int list_length) |
| { |
| if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST) TTCN_error("Setting an invalid list type for a template of enumerated type @Can.AdresseFamily_enum."); |
| clean_up(); |
| set_selection(template_type); |
| value_list.n_values = list_length; |
| value_list.list_value = new AdresseFamily__enum_template[list_length]; |
| } |
| |
| AdresseFamily__enum_template& AdresseFamily__enum_template::list_item(unsigned int list_index) |
| { |
| if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Accessing a list element in a non-list template of enumerated type @Can.AdresseFamily_enum."); |
| if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Can.AdresseFamily_enum."); |
| return value_list.list_value[list_index]; |
| } |
| |
| void AdresseFamily__enum_template::log() const |
| { |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| TTCN_Logger::log_event_enum(AdresseFamily__enum::enum_to_str(single_value), single_value); |
| break; |
| case COMPLEMENTED_LIST: |
| TTCN_Logger::log_event_str("complement"); |
| case VALUE_LIST: |
| TTCN_Logger::log_char('('); |
| for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { |
| if (elem_count > 0) TTCN_Logger::log_event_str(", "); |
| value_list.list_value[elem_count].log(); |
| } |
| TTCN_Logger::log_char(')'); |
| break; |
| default: |
| log_generic(); |
| } |
| log_ifpresent(); |
| } |
| |
| void AdresseFamily__enum_template::log_match(const AdresseFamily__enum& match_value, boolean) const |
| { |
| match_value.log(); |
| TTCN_Logger::log_event_str(" with "); |
| log(); |
| if (match(match_value)) TTCN_Logger::log_event_str(" matched"); |
| else TTCN_Logger::log_event_str(" unmatched"); |
| } |
| |
| void AdresseFamily__enum_template::encode_text(Text_Buf& text_buf) const |
| { |
| encode_text_base(text_buf); |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| text_buf.push_int(single_value); |
| case OMIT_VALUE: |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| break; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| text_buf.push_int(value_list.n_values); |
| for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) |
| value_list.list_value[elem_count].encode_text(text_buf); |
| break; |
| default: |
| TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Can.AdresseFamily_enum."); |
| } |
| } |
| |
| void AdresseFamily__enum_template::decode_text(Text_Buf& text_buf) |
| { |
| clean_up(); |
| decode_text_base(text_buf); |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| single_value = (AdresseFamily__enum::enum_type)text_buf.pull_int().get_val(); |
| if (!AdresseFamily__enum::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Can.AdresseFamily_enum.", single_value); |
| case OMIT_VALUE: |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| break; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| value_list.n_values = text_buf.pull_int().get_val(); |
| value_list.list_value = new AdresseFamily__enum_template[value_list.n_values]; |
| for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) |
| value_list.list_value[elem_count].decode_text(text_buf); |
| break; |
| default: |
| TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Can.AdresseFamily_enum."); |
| } |
| } |
| |
| boolean AdresseFamily__enum_template::is_present(boolean legacy) const |
| { |
| if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; |
| return !match_omit(legacy); |
| } |
| |
| boolean AdresseFamily__enum_template::match_omit(boolean legacy) const |
| { |
| if (is_ifpresent) return TRUE; |
| switch (template_selection) { |
| case OMIT_VALUE: |
| case ANY_OR_OMIT: |
| return TRUE; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| if (legacy) { |
| for (unsigned int i=0; i<value_list.n_values; i++) |
| if (value_list.list_value[i].match_omit()) |
| return template_selection==VALUE_LIST; |
| return template_selection==COMPLEMENTED_LIST; |
| } // else fall through |
| default: |
| return FALSE; |
| } |
| return FALSE; |
| } |
| |
| void AdresseFamily__enum_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: { |
| AdresseFamily__enum_template new_temp; |
| new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, m_p->get_size()); |
| for (size_t p_i=0; p_i<m_p->get_size(); p_i++) { |
| new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); |
| } |
| *this = new_temp; |
| break; } |
| case Module_Param::MP_Enumerated: { |
| AdresseFamily__enum::enum_type enum_val = AdresseFamily__enum::str_to_enum(m_p->get_enumerated()); |
| if (!AdresseFamily__enum::is_valid_enum(enum_val)) { |
| param.error("Invalid enumerated value for type @Can.AdresseFamily_enum."); |
| } |
| *this = enum_val; |
| } break; |
| default: |
| param.type_error("enumerated template", "@Can.AdresseFamily_enum"); |
| } |
| is_ifpresent = param.get_ifpresent(); |
| } |
| |
| void AdresseFamily__enum_template::check_restriction(template_res t_res, const char* t_name, |
| boolean legacy) const |
| { |
| if (template_selection==UNINITIALIZED_TEMPLATE) return; |
| switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { |
| case TR_VALUE: |
| if (!is_ifpresent && template_selection==SPECIFIC_VALUE) return; |
| break; |
| case TR_OMIT: |
| if (!is_ifpresent && (template_selection==OMIT_VALUE || template_selection==SPECIFIC_VALUE)) return; |
| break; |
| case TR_PRESENT: |
| if (!match_omit(legacy)) return; |
| break; |
| default: |
| return; |
| } |
| TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@Can.AdresseFamily_enum"); |
| } |
| |
| ProtocolFamily__enum::ProtocolFamily__enum() |
| { |
| enum_value = UNBOUND_VALUE; |
| } |
| |
| ProtocolFamily__enum::ProtocolFamily__enum(int other_value) |
| { |
| if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Can.ProtocolFamily_enum with invalid numeric value %d.", other_value); |
| enum_value = (enum_type)other_value; |
| } |
| |
| ProtocolFamily__enum::ProtocolFamily__enum(enum_type other_value) |
| { |
| enum_value = other_value; |
| } |
| |
| ProtocolFamily__enum::ProtocolFamily__enum(const ProtocolFamily__enum& other_value) |
| : Base_Type() |
| { |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Can.ProtocolFamily_enum."); |
| enum_value = other_value.enum_value; |
| } |
| |
| ProtocolFamily__enum& ProtocolFamily__enum::operator=(int other_value) |
| { |
| if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Can.ProtocolFamily_enum.", other_value); |
| enum_value = (enum_type)other_value; |
| return *this; |
| } |
| |
| ProtocolFamily__enum& ProtocolFamily__enum::operator=(enum_type other_value) |
| { |
| enum_value = other_value; |
| return *this; |
| } |
| |
| ProtocolFamily__enum& ProtocolFamily__enum::operator=(const ProtocolFamily__enum& other_value) |
| { |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Can.ProtocolFamily_enum."); |
| enum_value = other_value.enum_value; |
| return *this; |
| } |
| |
| boolean ProtocolFamily__enum::operator==(enum_type other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.ProtocolFamily_enum."); |
| return enum_value == other_value; |
| } |
| |
| boolean ProtocolFamily__enum::operator==(const ProtocolFamily__enum& other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.ProtocolFamily_enum."); |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Can.ProtocolFamily_enum."); |
| return enum_value == other_value.enum_value; |
| } |
| |
| boolean ProtocolFamily__enum::operator<(enum_type other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.ProtocolFamily_enum."); |
| return enum_value < other_value; |
| } |
| |
| boolean ProtocolFamily__enum::operator<(const ProtocolFamily__enum& other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.ProtocolFamily_enum."); |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Can.ProtocolFamily_enum."); |
| return enum_value < other_value.enum_value; |
| } |
| |
| boolean ProtocolFamily__enum::operator>(enum_type other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.ProtocolFamily_enum."); |
| return enum_value > other_value; |
| } |
| |
| boolean ProtocolFamily__enum::operator>(const ProtocolFamily__enum& other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.ProtocolFamily_enum."); |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Can.ProtocolFamily_enum."); |
| return enum_value > other_value.enum_value; |
| } |
| |
| const char *ProtocolFamily__enum::enum_to_str(enum_type enum_par) |
| { |
| switch (enum_par) { |
| case SOCK__DGRAM: return "SOCK_DGRAM"; |
| case SOCK__RAW: return "SOCK_RAW"; |
| default: return "<unknown>"; |
| } |
| } |
| |
| ProtocolFamily__enum::enum_type ProtocolFamily__enum::str_to_enum(const char *str_par) |
| { |
| if (!strcmp(str_par, "SOCK_DGRAM")) return SOCK__DGRAM; |
| else if (!strcmp(str_par, "SOCK_RAW")) return SOCK__RAW; |
| else return UNKNOWN_VALUE; |
| } |
| |
| boolean ProtocolFamily__enum::is_valid_enum(int int_par) |
| { |
| switch (int_par) { |
| case 2: |
| case 3: |
| return TRUE; |
| default: |
| return FALSE; |
| } |
| } |
| |
| int ProtocolFamily__enum::enum2int(enum_type enum_par) |
| { |
| if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Can.ProtocolFamily_enum.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); |
| return enum_par; |
| } |
| |
| int ProtocolFamily__enum::enum2int(const ProtocolFamily__enum& enum_par) |
| { |
| if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Can.ProtocolFamily_enum.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); |
| return enum_par.enum_value; |
| } |
| |
| void ProtocolFamily__enum::int2enum(int int_val) |
| { |
| if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Can.ProtocolFamily_enum.", int_val); |
| enum_value = (enum_type)int_val; |
| } |
| |
| ProtocolFamily__enum::operator ProtocolFamily__enum::enum_type() const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Can.ProtocolFamily_enum."); |
| return enum_value; |
| } |
| |
| void ProtocolFamily__enum::log() const |
| { |
| if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); |
| else TTCN_Logger::log_event_unbound(); |
| } |
| |
| void ProtocolFamily__enum::set_param(Module_Param& param) |
| { |
| param.basic_check(Module_Param::BC_VALUE, "enumerated value"); |
| if (param.get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Can.ProtocolFamily_enum"); |
| enum_value = str_to_enum(param.get_enumerated()); |
| if (!is_valid_enum(enum_value)) { |
| param.error("Invalid enumerated value for type @Can.ProtocolFamily_enum."); |
| } |
| } |
| |
| void ProtocolFamily__enum::encode_text(Text_Buf& text_buf) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Can.ProtocolFamily_enum."); |
| text_buf.push_int(enum_value); |
| } |
| |
| void ProtocolFamily__enum::decode_text(Text_Buf& text_buf) |
| { |
| enum_value = (enum_type)text_buf.pull_int().get_val(); |
| if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Can.ProtocolFamily_enum.", enum_value); |
| } |
| |
| void ProtocolFamily__enum_template::copy_template(const ProtocolFamily__enum_template& other_value) |
| { |
| set_selection(other_value); |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| single_value = other_value.single_value; |
| break; |
| case OMIT_VALUE: |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| break; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| value_list.n_values = other_value.value_list.n_values; |
| value_list.list_value = new ProtocolFamily__enum_template[value_list.n_values]; |
| for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) |
| value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); |
| break; |
| default: |
| TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Can.ProtocolFamily_enum."); |
| } |
| } |
| |
| ProtocolFamily__enum_template::ProtocolFamily__enum_template() |
| { |
| } |
| |
| ProtocolFamily__enum_template::ProtocolFamily__enum_template(template_sel other_value) |
| : Base_Template(other_value) |
| { |
| check_single_selection(other_value); |
| } |
| |
| ProtocolFamily__enum_template::ProtocolFamily__enum_template(int other_value) |
| : Base_Template(SPECIFIC_VALUE) |
| { |
| if (!ProtocolFamily__enum::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Can.ProtocolFamily_enum with unknown numeric value %d.", other_value); |
| single_value = (ProtocolFamily__enum::enum_type)other_value; |
| } |
| |
| ProtocolFamily__enum_template::ProtocolFamily__enum_template(ProtocolFamily__enum::enum_type other_value) |
| : Base_Template(SPECIFIC_VALUE) |
| { |
| single_value = other_value; |
| } |
| |
| ProtocolFamily__enum_template::ProtocolFamily__enum_template(const ProtocolFamily__enum& other_value) |
| : Base_Template(SPECIFIC_VALUE) |
| { |
| if (other_value.enum_value == ProtocolFamily__enum::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Can.ProtocolFamily_enum."); |
| single_value = other_value.enum_value; |
| } |
| |
| ProtocolFamily__enum_template::ProtocolFamily__enum_template(const OPTIONAL<ProtocolFamily__enum>& other_value) |
| { |
| switch (other_value.get_selection()) { |
| case OPTIONAL_PRESENT: |
| set_selection(SPECIFIC_VALUE); |
| single_value = (ProtocolFamily__enum::enum_type)(const ProtocolFamily__enum&)other_value; |
| break; |
| case OPTIONAL_OMIT: |
| set_selection(OMIT_VALUE); |
| break; |
| default: |
| TTCN_error("Creating a template of enumerated type @Can.ProtocolFamily_enum from an unbound optional field."); |
| } |
| } |
| |
| ProtocolFamily__enum_template::ProtocolFamily__enum_template(const ProtocolFamily__enum_template& other_value) |
| : Base_Template() |
| { |
| copy_template(other_value); |
| } |
| |
| ProtocolFamily__enum_template::~ProtocolFamily__enum_template() |
| { |
| clean_up(); |
| } |
| |
| boolean ProtocolFamily__enum_template::is_bound() const |
| { |
| if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; |
| return TRUE; |
| } |
| |
| boolean ProtocolFamily__enum_template::is_value() const |
| { |
| if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; |
| return single_value != ProtocolFamily__enum::UNBOUND_VALUE; |
| } |
| |
| void ProtocolFamily__enum_template::clean_up() |
| { |
| if (template_selection == VALUE_LIST || template_selection == COMPLEMENTED_LIST) delete [] value_list.list_value; |
| template_selection = UNINITIALIZED_TEMPLATE; |
| } |
| |
| ProtocolFamily__enum_template& ProtocolFamily__enum_template::operator=(template_sel other_value) |
| { |
| check_single_selection(other_value); |
| clean_up(); |
| set_selection(other_value); |
| return *this; |
| } |
| |
| ProtocolFamily__enum_template& ProtocolFamily__enum_template::operator=(int other_value) |
| { |
| if (!ProtocolFamily__enum::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Can.ProtocolFamily_enum.", other_value); |
| clean_up(); |
| set_selection(SPECIFIC_VALUE); |
| single_value = (ProtocolFamily__enum::enum_type)other_value; |
| return *this; |
| } |
| |
| ProtocolFamily__enum_template& ProtocolFamily__enum_template::operator=(ProtocolFamily__enum::enum_type other_value) |
| { |
| clean_up(); |
| set_selection(SPECIFIC_VALUE); |
| single_value = other_value; |
| return *this; |
| } |
| |
| ProtocolFamily__enum_template& ProtocolFamily__enum_template::operator=(const ProtocolFamily__enum& other_value) |
| { |
| if (other_value.enum_value == ProtocolFamily__enum::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Can.ProtocolFamily_enum to a template."); |
| clean_up(); |
| set_selection(SPECIFIC_VALUE); |
| single_value = other_value.enum_value; |
| return *this; |
| } |
| |
| ProtocolFamily__enum_template& ProtocolFamily__enum_template::operator=(const OPTIONAL<ProtocolFamily__enum>& other_value) |
| { |
| clean_up(); |
| switch (other_value.get_selection()) { |
| case OPTIONAL_PRESENT: |
| set_selection(SPECIFIC_VALUE); |
| single_value = (ProtocolFamily__enum::enum_type)(const ProtocolFamily__enum&)other_value; |
| break; |
| case OPTIONAL_OMIT: |
| set_selection(OMIT_VALUE); |
| break; |
| default: |
| TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Can.ProtocolFamily_enum."); |
| } |
| return *this; |
| } |
| |
| ProtocolFamily__enum_template& ProtocolFamily__enum_template::operator=(const ProtocolFamily__enum_template& other_value) |
| { |
| if (&other_value != this) { |
| clean_up(); |
| copy_template(other_value); |
| } |
| return *this; |
| } |
| |
| boolean ProtocolFamily__enum_template::match(ProtocolFamily__enum::enum_type other_value, boolean) const |
| { |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| return single_value == other_value; |
| case OMIT_VALUE: |
| return FALSE; |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| return TRUE; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) |
| if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; |
| return template_selection == COMPLEMENTED_LIST; |
| default: |
| TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Can.ProtocolFamily_enum."); |
| } |
| return FALSE; |
| } |
| |
| boolean ProtocolFamily__enum_template::match(const ProtocolFamily__enum& other_value, boolean) const |
| { |
| if (other_value.enum_value == ProtocolFamily__enum::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Can.ProtocolFamily_enum with an unbound value."); |
| return match(other_value.enum_value); |
| } |
| |
| ProtocolFamily__enum::enum_type ProtocolFamily__enum_template::valueof() const |
| { |
| if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Can.ProtocolFamily_enum."); |
| return single_value; |
| } |
| |
| void ProtocolFamily__enum_template::set_type(template_sel template_type, unsigned int list_length) |
| { |
| if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST) TTCN_error("Setting an invalid list type for a template of enumerated type @Can.ProtocolFamily_enum."); |
| clean_up(); |
| set_selection(template_type); |
| value_list.n_values = list_length; |
| value_list.list_value = new ProtocolFamily__enum_template[list_length]; |
| } |
| |
| ProtocolFamily__enum_template& ProtocolFamily__enum_template::list_item(unsigned int list_index) |
| { |
| if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Accessing a list element in a non-list template of enumerated type @Can.ProtocolFamily_enum."); |
| if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Can.ProtocolFamily_enum."); |
| return value_list.list_value[list_index]; |
| } |
| |
| void ProtocolFamily__enum_template::log() const |
| { |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| TTCN_Logger::log_event_enum(ProtocolFamily__enum::enum_to_str(single_value), single_value); |
| break; |
| case COMPLEMENTED_LIST: |
| TTCN_Logger::log_event_str("complement"); |
| case VALUE_LIST: |
| TTCN_Logger::log_char('('); |
| for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { |
| if (elem_count > 0) TTCN_Logger::log_event_str(", "); |
| value_list.list_value[elem_count].log(); |
| } |
| TTCN_Logger::log_char(')'); |
| break; |
| default: |
| log_generic(); |
| } |
| log_ifpresent(); |
| } |
| |
| void ProtocolFamily__enum_template::log_match(const ProtocolFamily__enum& match_value, boolean) const |
| { |
| match_value.log(); |
| TTCN_Logger::log_event_str(" with "); |
| log(); |
| if (match(match_value)) TTCN_Logger::log_event_str(" matched"); |
| else TTCN_Logger::log_event_str(" unmatched"); |
| } |
| |
| void ProtocolFamily__enum_template::encode_text(Text_Buf& text_buf) const |
| { |
| encode_text_base(text_buf); |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| text_buf.push_int(single_value); |
| case OMIT_VALUE: |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| break; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| text_buf.push_int(value_list.n_values); |
| for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) |
| value_list.list_value[elem_count].encode_text(text_buf); |
| break; |
| default: |
| TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Can.ProtocolFamily_enum."); |
| } |
| } |
| |
| void ProtocolFamily__enum_template::decode_text(Text_Buf& text_buf) |
| { |
| clean_up(); |
| decode_text_base(text_buf); |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| single_value = (ProtocolFamily__enum::enum_type)text_buf.pull_int().get_val(); |
| if (!ProtocolFamily__enum::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Can.ProtocolFamily_enum.", single_value); |
| case OMIT_VALUE: |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| break; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| value_list.n_values = text_buf.pull_int().get_val(); |
| value_list.list_value = new ProtocolFamily__enum_template[value_list.n_values]; |
| for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) |
| value_list.list_value[elem_count].decode_text(text_buf); |
| break; |
| default: |
| TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Can.ProtocolFamily_enum."); |
| } |
| } |
| |
| boolean ProtocolFamily__enum_template::is_present(boolean legacy) const |
| { |
| if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; |
| return !match_omit(legacy); |
| } |
| |
| boolean ProtocolFamily__enum_template::match_omit(boolean legacy) const |
| { |
| if (is_ifpresent) return TRUE; |
| switch (template_selection) { |
| case OMIT_VALUE: |
| case ANY_OR_OMIT: |
| return TRUE; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| if (legacy) { |
| for (unsigned int i=0; i<value_list.n_values; i++) |
| if (value_list.list_value[i].match_omit()) |
| return template_selection==VALUE_LIST; |
| return template_selection==COMPLEMENTED_LIST; |
| } // else fall through |
| default: |
| return FALSE; |
| } |
| return FALSE; |
| } |
| |
| void ProtocolFamily__enum_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: { |
| ProtocolFamily__enum_template new_temp; |
| new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, m_p->get_size()); |
| for (size_t p_i=0; p_i<m_p->get_size(); p_i++) { |
| new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); |
| } |
| *this = new_temp; |
| break; } |
| case Module_Param::MP_Enumerated: { |
| ProtocolFamily__enum::enum_type enum_val = ProtocolFamily__enum::str_to_enum(m_p->get_enumerated()); |
| if (!ProtocolFamily__enum::is_valid_enum(enum_val)) { |
| param.error("Invalid enumerated value for type @Can.ProtocolFamily_enum."); |
| } |
| *this = enum_val; |
| } break; |
| default: |
| param.type_error("enumerated template", "@Can.ProtocolFamily_enum"); |
| } |
| is_ifpresent = param.get_ifpresent(); |
| } |
| |
| void ProtocolFamily__enum_template::check_restriction(template_res t_res, const char* t_name, |
| boolean legacy) const |
| { |
| if (template_selection==UNINITIALIZED_TEMPLATE) return; |
| switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { |
| case TR_VALUE: |
| if (!is_ifpresent && template_selection==SPECIFIC_VALUE) return; |
| break; |
| case TR_OMIT: |
| if (!is_ifpresent && (template_selection==OMIT_VALUE || template_selection==SPECIFIC_VALUE)) return; |
| break; |
| case TR_PRESENT: |
| if (!match_omit(legacy)) return; |
| break; |
| default: |
| return; |
| } |
| TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@Can.ProtocolFamily_enum"); |
| } |
| |
| PF__CAN__protocols__enum::PF__CAN__protocols__enum() |
| { |
| enum_value = UNBOUND_VALUE; |
| } |
| |
| PF__CAN__protocols__enum::PF__CAN__protocols__enum(int other_value) |
| { |
| if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Can.PF_CAN_protocols_enum with invalid numeric value %d.", other_value); |
| enum_value = (enum_type)other_value; |
| } |
| |
| PF__CAN__protocols__enum::PF__CAN__protocols__enum(enum_type other_value) |
| { |
| enum_value = other_value; |
| } |
| |
| PF__CAN__protocols__enum::PF__CAN__protocols__enum(const PF__CAN__protocols__enum& other_value) |
| : Base_Type() |
| { |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Can.PF_CAN_protocols_enum."); |
| enum_value = other_value.enum_value; |
| } |
| |
| PF__CAN__protocols__enum& PF__CAN__protocols__enum::operator=(int other_value) |
| { |
| if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Can.PF_CAN_protocols_enum.", other_value); |
| enum_value = (enum_type)other_value; |
| return *this; |
| } |
| |
| PF__CAN__protocols__enum& PF__CAN__protocols__enum::operator=(enum_type other_value) |
| { |
| enum_value = other_value; |
| return *this; |
| } |
| |
| PF__CAN__protocols__enum& PF__CAN__protocols__enum::operator=(const PF__CAN__protocols__enum& other_value) |
| { |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Can.PF_CAN_protocols_enum."); |
| enum_value = other_value.enum_value; |
| return *this; |
| } |
| |
| boolean PF__CAN__protocols__enum::operator==(enum_type other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.PF_CAN_protocols_enum."); |
| return enum_value == other_value; |
| } |
| |
| boolean PF__CAN__protocols__enum::operator==(const PF__CAN__protocols__enum& other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.PF_CAN_protocols_enum."); |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Can.PF_CAN_protocols_enum."); |
| return enum_value == other_value.enum_value; |
| } |
| |
| boolean PF__CAN__protocols__enum::operator<(enum_type other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.PF_CAN_protocols_enum."); |
| return enum_value < other_value; |
| } |
| |
| boolean PF__CAN__protocols__enum::operator<(const PF__CAN__protocols__enum& other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.PF_CAN_protocols_enum."); |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Can.PF_CAN_protocols_enum."); |
| return enum_value < other_value.enum_value; |
| } |
| |
| boolean PF__CAN__protocols__enum::operator>(enum_type other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.PF_CAN_protocols_enum."); |
| return enum_value > other_value; |
| } |
| |
| boolean PF__CAN__protocols__enum::operator>(const PF__CAN__protocols__enum& other_value) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Can.PF_CAN_protocols_enum."); |
| if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Can.PF_CAN_protocols_enum."); |
| return enum_value > other_value.enum_value; |
| } |
| |
| const char *PF__CAN__protocols__enum::enum_to_str(enum_type enum_par) |
| { |
| switch (enum_par) { |
| case CAN__RAW: return "CAN_RAW"; |
| case CAN__BCM: return "CAN_BCM"; |
| case CAN__TP16: return "CAN_TP16"; |
| case CAN__TP20: return "CAN_TP20"; |
| case CAN__MCNET: return "CAN_MCNET"; |
| case CAN__ISOTP: return "CAN_ISOTP"; |
| case CAN__NPROTO: return "CAN_NPROTO"; |
| default: return "<unknown>"; |
| } |
| } |
| |
| PF__CAN__protocols__enum::enum_type PF__CAN__protocols__enum::str_to_enum(const char *str_par) |
| { |
| if (!strcmp(str_par, "CAN_RAW")) return CAN__RAW; |
| else if (!strcmp(str_par, "CAN_BCM")) return CAN__BCM; |
| else if (!strcmp(str_par, "CAN_TP16")) return CAN__TP16; |
| else if (!strcmp(str_par, "CAN_TP20")) return CAN__TP20; |
| else if (!strcmp(str_par, "CAN_MCNET")) return CAN__MCNET; |
| else if (!strcmp(str_par, "CAN_ISOTP")) return CAN__ISOTP; |
| else if (!strcmp(str_par, "CAN_NPROTO")) return CAN__NPROTO; |
| else return UNKNOWN_VALUE; |
| } |
| |
| boolean PF__CAN__protocols__enum::is_valid_enum(int int_par) |
| { |
| switch (int_par) { |
| case 1: |
| case 2: |
| case 3: |
| case 4: |
| case 5: |
| case 6: |
| case 7: |
| return TRUE; |
| default: |
| return FALSE; |
| } |
| } |
| |
| int PF__CAN__protocols__enum::enum2int(enum_type enum_par) |
| { |
| if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Can.PF_CAN_protocols_enum.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); |
| return enum_par; |
| } |
| |
| int PF__CAN__protocols__enum::enum2int(const PF__CAN__protocols__enum& enum_par) |
| { |
| if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Can.PF_CAN_protocols_enum.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); |
| return enum_par.enum_value; |
| } |
| |
| void PF__CAN__protocols__enum::int2enum(int int_val) |
| { |
| if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Can.PF_CAN_protocols_enum.", int_val); |
| enum_value = (enum_type)int_val; |
| } |
| |
| PF__CAN__protocols__enum::operator PF__CAN__protocols__enum::enum_type() const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Can.PF_CAN_protocols_enum."); |
| return enum_value; |
| } |
| |
| void PF__CAN__protocols__enum::log() const |
| { |
| if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); |
| else TTCN_Logger::log_event_unbound(); |
| } |
| |
| void PF__CAN__protocols__enum::set_param(Module_Param& param) |
| { |
| param.basic_check(Module_Param::BC_VALUE, "enumerated value"); |
| if (param.get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Can.PF_CAN_protocols_enum"); |
| enum_value = str_to_enum(param.get_enumerated()); |
| if (!is_valid_enum(enum_value)) { |
| param.error("Invalid enumerated value for type @Can.PF_CAN_protocols_enum."); |
| } |
| } |
| |
| void PF__CAN__protocols__enum::encode_text(Text_Buf& text_buf) const |
| { |
| if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Can.PF_CAN_protocols_enum."); |
| text_buf.push_int(enum_value); |
| } |
| |
| void PF__CAN__protocols__enum::decode_text(Text_Buf& text_buf) |
| { |
| enum_value = (enum_type)text_buf.pull_int().get_val(); |
| if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Can.PF_CAN_protocols_enum.", enum_value); |
| } |
| |
| void PF__CAN__protocols__enum_template::copy_template(const PF__CAN__protocols__enum_template& other_value) |
| { |
| set_selection(other_value); |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| single_value = other_value.single_value; |
| break; |
| case OMIT_VALUE: |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| break; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| value_list.n_values = other_value.value_list.n_values; |
| value_list.list_value = new PF__CAN__protocols__enum_template[value_list.n_values]; |
| for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) |
| value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); |
| break; |
| default: |
| TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Can.PF_CAN_protocols_enum."); |
| } |
| } |
| |
| PF__CAN__protocols__enum_template::PF__CAN__protocols__enum_template() |
| { |
| } |
| |
| PF__CAN__protocols__enum_template::PF__CAN__protocols__enum_template(template_sel other_value) |
| : Base_Template(other_value) |
| { |
| check_single_selection(other_value); |
| } |
| |
| PF__CAN__protocols__enum_template::PF__CAN__protocols__enum_template(int other_value) |
| : Base_Template(SPECIFIC_VALUE) |
| { |
| if (!PF__CAN__protocols__enum::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Can.PF_CAN_protocols_enum with unknown numeric value %d.", other_value); |
| single_value = (PF__CAN__protocols__enum::enum_type)other_value; |
| } |
| |
| PF__CAN__protocols__enum_template::PF__CAN__protocols__enum_template(PF__CAN__protocols__enum::enum_type other_value) |
| : Base_Template(SPECIFIC_VALUE) |
| { |
| single_value = other_value; |
| } |
| |
| PF__CAN__protocols__enum_template::PF__CAN__protocols__enum_template(const PF__CAN__protocols__enum& other_value) |
| : Base_Template(SPECIFIC_VALUE) |
| { |
| if (other_value.enum_value == PF__CAN__protocols__enum::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Can.PF_CAN_protocols_enum."); |
| single_value = other_value.enum_value; |
| } |
| |
| PF__CAN__protocols__enum_template::PF__CAN__protocols__enum_template(const OPTIONAL<PF__CAN__protocols__enum>& other_value) |
| { |
| switch (other_value.get_selection()) { |
| case OPTIONAL_PRESENT: |
| set_selection(SPECIFIC_VALUE); |
| single_value = (PF__CAN__protocols__enum::enum_type)(const PF__CAN__protocols__enum&)other_value; |
| break; |
| case OPTIONAL_OMIT: |
| set_selection(OMIT_VALUE); |
| break; |
| default: |
| TTCN_error("Creating a template of enumerated type @Can.PF_CAN_protocols_enum from an unbound optional field."); |
| } |
| } |
| |
| PF__CAN__protocols__enum_template::PF__CAN__protocols__enum_template(const PF__CAN__protocols__enum_template& other_value) |
| : Base_Template() |
| { |
| copy_template(other_value); |
| } |
| |
| PF__CAN__protocols__enum_template::~PF__CAN__protocols__enum_template() |
| { |
| clean_up(); |
| } |
| |
| boolean PF__CAN__protocols__enum_template::is_bound() const |
| { |
| if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; |
| return TRUE; |
| } |
| |
| boolean PF__CAN__protocols__enum_template::is_value() const |
| { |
| if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; |
| return single_value != PF__CAN__protocols__enum::UNBOUND_VALUE; |
| } |
| |
| void PF__CAN__protocols__enum_template::clean_up() |
| { |
| if (template_selection == VALUE_LIST || template_selection == COMPLEMENTED_LIST) delete [] value_list.list_value; |
| template_selection = UNINITIALIZED_TEMPLATE; |
| } |
| |
| PF__CAN__protocols__enum_template& PF__CAN__protocols__enum_template::operator=(template_sel other_value) |
| { |
| check_single_selection(other_value); |
| clean_up(); |
| set_selection(other_value); |
| return *this; |
| } |
| |
| PF__CAN__protocols__enum_template& PF__CAN__protocols__enum_template::operator=(int other_value) |
| { |
| if (!PF__CAN__protocols__enum::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Can.PF_CAN_protocols_enum.", other_value); |
| clean_up(); |
| set_selection(SPECIFIC_VALUE); |
| single_value = (PF__CAN__protocols__enum::enum_type)other_value; |
| return *this; |
| } |
| |
| PF__CAN__protocols__enum_template& PF__CAN__protocols__enum_template::operator=(PF__CAN__protocols__enum::enum_type other_value) |
| { |
| clean_up(); |
| set_selection(SPECIFIC_VALUE); |
| single_value = other_value; |
| return *this; |
| } |
| |
| PF__CAN__protocols__enum_template& PF__CAN__protocols__enum_template::operator=(const PF__CAN__protocols__enum& other_value) |
| { |
| if (other_value.enum_value == PF__CAN__protocols__enum::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Can.PF_CAN_protocols_enum to a template."); |
| clean_up(); |
| set_selection(SPECIFIC_VALUE); |
| single_value = other_value.enum_value; |
| return *this; |
| } |
| |
| PF__CAN__protocols__enum_template& PF__CAN__protocols__enum_template::operator=(const OPTIONAL<PF__CAN__protocols__enum>& other_value) |
| { |
| clean_up(); |
| switch (other_value.get_selection()) { |
| case OPTIONAL_PRESENT: |
| set_selection(SPECIFIC_VALUE); |
| single_value = (PF__CAN__protocols__enum::enum_type)(const PF__CAN__protocols__enum&)other_value; |
| break; |
| case OPTIONAL_OMIT: |
| set_selection(OMIT_VALUE); |
| break; |
| default: |
| TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Can.PF_CAN_protocols_enum."); |
| } |
| return *this; |
| } |
| |
| PF__CAN__protocols__enum_template& PF__CAN__protocols__enum_template::operator=(const PF__CAN__protocols__enum_template& other_value) |
| { |
| if (&other_value != this) { |
| clean_up(); |
| copy_template(other_value); |
| } |
| return *this; |
| } |
| |
| boolean PF__CAN__protocols__enum_template::match(PF__CAN__protocols__enum::enum_type other_value, boolean) const |
| { |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| return single_value == other_value; |
| case OMIT_VALUE: |
| return FALSE; |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| return TRUE; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) |
| if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; |
| return template_selection == COMPLEMENTED_LIST; |
| default: |
| TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Can.PF_CAN_protocols_enum."); |
| } |
| return FALSE; |
| } |
| |
| boolean PF__CAN__protocols__enum_template::match(const PF__CAN__protocols__enum& other_value, boolean) const |
| { |
| if (other_value.enum_value == PF__CAN__protocols__enum::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Can.PF_CAN_protocols_enum with an unbound value."); |
| return match(other_value.enum_value); |
| } |
| |
| PF__CAN__protocols__enum::enum_type PF__CAN__protocols__enum_template::valueof() const |
| { |
| if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Can.PF_CAN_protocols_enum."); |
| return single_value; |
| } |
| |
| void PF__CAN__protocols__enum_template::set_type(template_sel template_type, unsigned int list_length) |
| { |
| if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST) TTCN_error("Setting an invalid list type for a template of enumerated type @Can.PF_CAN_protocols_enum."); |
| clean_up(); |
| set_selection(template_type); |
| value_list.n_values = list_length; |
| value_list.list_value = new PF__CAN__protocols__enum_template[list_length]; |
| } |
| |
| PF__CAN__protocols__enum_template& PF__CAN__protocols__enum_template::list_item(unsigned int list_index) |
| { |
| if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Accessing a list element in a non-list template of enumerated type @Can.PF_CAN_protocols_enum."); |
| if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Can.PF_CAN_protocols_enum."); |
| return value_list.list_value[list_index]; |
| } |
| |
| void PF__CAN__protocols__enum_template::log() const |
| { |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| TTCN_Logger::log_event_enum(PF__CAN__protocols__enum::enum_to_str(single_value), single_value); |
| break; |
| case COMPLEMENTED_LIST: |
| TTCN_Logger::log_event_str("complement"); |
| case VALUE_LIST: |
| TTCN_Logger::log_char('('); |
| for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { |
| if (elem_count > 0) TTCN_Logger::log_event_str(", "); |
| value_list.list_value[elem_count].log(); |
| } |
| TTCN_Logger::log_char(')'); |
| break; |
| default: |
| log_generic(); |
| } |
| log_ifpresent(); |
| } |
| |
| void PF__CAN__protocols__enum_template::log_match(const PF__CAN__protocols__enum& match_value, boolean) const |
| { |
| match_value.log(); |
| TTCN_Logger::log_event_str(" with "); |
| log(); |
| if (match(match_value)) TTCN_Logger::log_event_str(" matched"); |
| else TTCN_Logger::log_event_str(" unmatched"); |
| } |
| |
| void PF__CAN__protocols__enum_template::encode_text(Text_Buf& text_buf) const |
| { |
| encode_text_base(text_buf); |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| text_buf.push_int(single_value); |
| case OMIT_VALUE: |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| break; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| text_buf.push_int(value_list.n_values); |
| for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) |
| value_list.list_value[elem_count].encode_text(text_buf); |
| break; |
| default: |
| TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Can.PF_CAN_protocols_enum."); |
| } |
| } |
| |
| void PF__CAN__protocols__enum_template::decode_text(Text_Buf& text_buf) |
| { |
| clean_up(); |
| decode_text_base(text_buf); |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| single_value = (PF__CAN__protocols__enum::enum_type)text_buf.pull_int().get_val(); |
| if (!PF__CAN__protocols__enum::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Can.PF_CAN_protocols_enum.", single_value); |
| case OMIT_VALUE: |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| break; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| value_list.n_values = text_buf.pull_int().get_val(); |
| value_list.list_value = new PF__CAN__protocols__enum_template[value_list.n_values]; |
| for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) |
| value_list.list_value[elem_count].decode_text(text_buf); |
| break; |
| default: |
| TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Can.PF_CAN_protocols_enum."); |
| } |
| } |
| |
| boolean PF__CAN__protocols__enum_template::is_present(boolean legacy) const |
| { |
| if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; |
| return !match_omit(legacy); |
| } |
| |
| boolean PF__CAN__protocols__enum_template::match_omit(boolean legacy) const |
| { |
| if (is_ifpresent) return TRUE; |
| switch (template_selection) { |
| case OMIT_VALUE: |
| case ANY_OR_OMIT: |
| return TRUE; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| if (legacy) { |
| for (unsigned int i=0; i<value_list.n_values; i++) |
| if (value_list.list_value[i].match_omit()) |
| return template_selection==VALUE_LIST; |
| return template_selection==COMPLEMENTED_LIST; |
| } // else fall through |
| default: |
| return FALSE; |
| } |
| return FALSE; |
| } |
| |
| void PF__CAN__protocols__enum_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: { |
| PF__CAN__protocols__enum_template new_temp; |
| new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, m_p->get_size()); |
| for (size_t p_i=0; p_i<m_p->get_size(); p_i++) { |
| new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); |
| } |
| *this = new_temp; |
| break; } |
| case Module_Param::MP_Enumerated: { |
| PF__CAN__protocols__enum::enum_type enum_val = PF__CAN__protocols__enum::str_to_enum(m_p->get_enumerated()); |
| if (!PF__CAN__protocols__enum::is_valid_enum(enum_val)) { |
| param.error("Invalid enumerated value for type @Can.PF_CAN_protocols_enum."); |
| } |
| *this = enum_val; |
| } break; |
| default: |
| param.type_error("enumerated template", "@Can.PF_CAN_protocols_enum"); |
| } |
| is_ifpresent = param.get_ifpresent(); |
| } |
| |
| void PF__CAN__protocols__enum_template::check_restriction(template_res t_res, const char* t_name, |
| boolean legacy) const |
| { |
| if (template_selection==UNINITIALIZED_TEMPLATE) return; |
| switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { |
| case TR_VALUE: |
| if (!is_ifpresent && template_selection==SPECIFIC_VALUE) return; |
| break; |
| case TR_OMIT: |
| if (!is_ifpresent && (template_selection==OMIT_VALUE || template_selection==SPECIFIC_VALUE)) return; |
| break; |
| case TR_PRESENT: |
| if (!match_omit(legacy)) return; |
| break; |
| default: |
| return; |
| } |
| TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@Can.PF_CAN_protocols_enum"); |
| } |
| |
| CAN__frame::CAN__frame() |
| { |
| } |
| |
| CAN__frame::CAN__frame(const OCTETSTRING& par_can__id, |
| const OCTETSTRING& par_can__pdu) |
| : field_can__id(par_can__id), |
| field_can__pdu(par_can__pdu) |
| { |
| } |
| |
| CAN__frame::CAN__frame(const CAN__frame& other_value) |
| { |
| if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @Can.CAN_frame."); |
| if (other_value.can__id().is_bound()) field_can__id = other_value.can__id(); |
| else field_can__id.clean_up(); |
| if (other_value.can__pdu().is_bound()) field_can__pdu = other_value.can__pdu(); |
| else field_can__pdu.clean_up(); |
| } |
| |
| void CAN__frame::clean_up() |
| { |
| field_can__id.clean_up(); |
| field_can__pdu.clean_up(); |
| } |
| |
| const TTCN_Typedescriptor_t* CAN__frame::get_descriptor() const { return &CAN__frame_descr_; } |
| CAN__frame& CAN__frame::operator=(const CAN__frame& other_value) |
| { |
| if (this != &other_value) { |
| if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @Can.CAN_frame."); |
| if (other_value.can__id().is_bound()) field_can__id = other_value.can__id(); |
| else field_can__id.clean_up(); |
| if (other_value.can__pdu().is_bound()) field_can__pdu = other_value.can__pdu(); |
| else field_can__pdu.clean_up(); |
| } |
| return *this; |
| } |
| |
| boolean CAN__frame::operator==(const CAN__frame& other_value) const |
| { |
| return field_can__id==other_value.field_can__id |
| && field_can__pdu==other_value.field_can__pdu; |
| } |
| |
| boolean CAN__frame::is_bound() const |
| { |
| return (field_can__id.is_bound()) |
| || (field_can__pdu.is_bound()); |
| } |
| boolean CAN__frame::is_value() const |
| { |
| return field_can__id.is_value() |
| && field_can__pdu.is_value(); |
| } |
| void CAN__frame::log() const |
| { |
| if (!is_bound()) { |
| TTCN_Logger::log_event_unbound(); |
| return; |
| } |
| TTCN_Logger::log_event_str("{ can_id := "); |
| field_can__id.log(); |
| TTCN_Logger::log_event_str(", can_pdu := "); |
| field_can__pdu.log(); |
| TTCN_Logger::log_event_str(" }"); |
| } |
| |
| void CAN__frame::set_param(Module_Param& param) |
| { |
| param.basic_check(Module_Param::BC_VALUE, "record value"); |
| switch (param.get_type()) { |
| case Module_Param::MP_Value_List: |
| if (2<param.get_size()) { |
| param.error("record value of type @Can.CAN_frame 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) can__id().set_param(*param.get_elem(0)); |
| if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) can__pdu().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(), "can_id")) { |
| if (curr_param->get_type()!=Module_Param::MP_NotUsed) { |
| can__id().set_param(*curr_param); |
| } |
| value_used[val_idx]=TRUE; |
| } |
| } |
| for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { |
| Module_Param* const curr_param = param.get_elem(val_idx); |
| if (!strcmp(curr_param->get_id()->get_name(), "can_pdu")) { |
| if (curr_param->get_type()!=Module_Param::MP_NotUsed) { |
| can__pdu().set_param(*curr_param); |
| } |
| value_used[val_idx]=TRUE; |
| } |
| } |
| for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { |
| Module_Param* const curr_param = param.get_elem(val_idx); |
| curr_param->error("Non existent field name in type @Can.CAN_frame: %s", curr_param->get_id()->get_name()); |
| break; |
| } |
| } break; |
| default: |
| param.type_error("record value", "@Can.CAN_frame"); |
| } |
| } |
| |
| void CAN__frame::set_implicit_omit() |
| { |
| if (can__id().is_bound()) can__id().set_implicit_omit(); |
| if (can__pdu().is_bound()) can__pdu().set_implicit_omit(); |
| } |
| |
| void CAN__frame::encode_text(Text_Buf& text_buf) const |
| { |
| field_can__id.encode_text(text_buf); |
| field_can__pdu.encode_text(text_buf); |
| } |
| |
| void CAN__frame::decode_text(Text_Buf& text_buf) |
| { |
| field_can__id.decode_text(text_buf); |
| field_can__pdu.decode_text(text_buf); |
| } |
| |
| struct CAN__frame_template::single_value_struct { |
| OCTETSTRING_template field_can__id; |
| OCTETSTRING_template field_can__pdu; |
| }; |
| |
| void CAN__frame_template::set_specific() |
| { |
| if (template_selection != SPECIFIC_VALUE) { |
| template_sel old_selection = template_selection; |
| clean_up(); |
| single_value = new single_value_struct; |
| set_selection(SPECIFIC_VALUE); |
| if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) { |
| single_value->field_can__id = ANY_VALUE; |
| single_value->field_can__pdu = ANY_VALUE; |
| } |
| } |
| } |
| |
| void CAN__frame_template::copy_value(const CAN__frame& other_value) |
| { |
| single_value = new single_value_struct; |
| if (other_value.can__id().is_bound()) { |
| single_value->field_can__id = other_value.can__id(); |
| } else { |
| single_value->field_can__id.clean_up(); |
| } |
| if (other_value.can__pdu().is_bound()) { |
| single_value->field_can__pdu = other_value.can__pdu(); |
| } else { |
| single_value->field_can__pdu.clean_up(); |
| } |
| set_selection(SPECIFIC_VALUE); |
| } |
| |
| void CAN__frame_template::copy_template(const CAN__frame_template& other_value) |
| { |
| switch (other_value.template_selection) { |
| case SPECIFIC_VALUE: |
| single_value = new single_value_struct; |
| if (UNINITIALIZED_TEMPLATE != other_value.can__id().get_selection()) { |
| single_value->field_can__id = other_value.can__id(); |
| } else { |
| single_value->field_can__id.clean_up(); |
| } |
| if (UNINITIALIZED_TEMPLATE != other_value.can__pdu().get_selection()) { |
| single_value->field_can__pdu = other_value.can__pdu(); |
| } else { |
| single_value->field_can__pdu.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 CAN__frame_template[value_list.n_values]; |
| for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) |
| value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); |
| break; |
| default: |
| TTCN_error("Copying an uninitialized/unsupported template of type @Can.CAN_frame."); |
| break; |
| } |
| set_selection(other_value); |
| } |
| |
| CAN__frame_template::CAN__frame_template() |
| { |
| } |
| |
| CAN__frame_template::CAN__frame_template(template_sel other_value) |
| : Base_Template(other_value) |
| { |
| check_single_selection(other_value); |
| } |
| |
| CAN__frame_template::CAN__frame_template(const CAN__frame& other_value) |
| { |
| copy_value(other_value); |
| } |
| |
| CAN__frame_template::CAN__frame_template(const OPTIONAL<CAN__frame>& other_value) |
| { |
| switch (other_value.get_selection()) { |
| case OPTIONAL_PRESENT: |
| copy_value((const CAN__frame&)other_value); |
| break; |
| case OPTIONAL_OMIT: |
| set_selection(OMIT_VALUE); |
| break; |
| default: |
| TTCN_error("Creating a template of type @Can.CAN_frame from an unbound optional field."); |
| } |
| } |
| |
| CAN__frame_template::CAN__frame_template(const CAN__frame_template& other_value) |
| : Base_Template() |
| { |
| copy_template(other_value); |
| } |
| |
| CAN__frame_template::~CAN__frame_template() |
| { |
| clean_up(); |
| } |
| |
| CAN__frame_template& CAN__frame_template::operator=(template_sel other_value) |
| { |
| check_single_selection(other_value); |
| clean_up(); |
| set_selection(other_value); |
| return *this; |
| } |
| |
| CAN__frame_template& CAN__frame_template::operator=(const CAN__frame& other_value) |
| { |
| clean_up(); |
| copy_value(other_value); |
| return *this; |
| } |
| |
| CAN__frame_template& CAN__frame_template::operator=(const OPTIONAL<CAN__frame>& other_value) |
| { |
| clean_up(); |
| switch (other_value.get_selection()) { |
| case OPTIONAL_PRESENT: |
| copy_value((const CAN__frame&)other_value); |
| break; |
| case OPTIONAL_OMIT: |
| set_selection(OMIT_VALUE); |
| break; |
| default: |
| TTCN_error("Assignment of an unbound optional field to a template of type @Can.CAN_frame."); |
| } |
| return *this; |
| } |
| |
| CAN__frame_template& CAN__frame_template::operator=(const CAN__frame_template& other_value) |
| { |
| if (&other_value != this) { |
| clean_up(); |
| copy_template(other_value); |
| } |
| return *this; |
| } |
| |
| boolean CAN__frame_template::match(const CAN__frame& other_value, boolean legacy) const |
| { |
| if (!other_value.is_bound()) return FALSE; |
| switch (template_selection) { |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| return TRUE; |
| case OMIT_VALUE: |
| return FALSE; |
| case SPECIFIC_VALUE: |
| if(!other_value.can__id().is_bound()) return FALSE; |
| if(!single_value->field_can__id.match(other_value.can__id(), legacy))return FALSE; |
| if(!other_value.can__pdu().is_bound()) return FALSE; |
| if(!single_value->field_can__pdu.match(other_value.can__pdu(), 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 @Can.CAN_frame."); |
| } |
| return FALSE; |
| } |
| |
| boolean CAN__frame_template::is_bound() const |
| { |
| if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; |
| if (template_selection != SPECIFIC_VALUE) return TRUE; |
| return single_value->field_can__id.is_bound() |
| |
| ||single_value->field_can__pdu.is_bound() |
| ; |
| } |
| |
| boolean CAN__frame_template::is_value() const |
| { |
| if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; |
| return single_value->field_can__id.is_value() |
| &&single_value->field_can__pdu.is_value(); |
| } |
| |
| void CAN__frame_template::clean_up() |
| { |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| delete single_value; |
| break; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| delete [] value_list.list_value; |
| default: |
| break; |
| } |
| template_selection = UNINITIALIZED_TEMPLATE; |
| } |
| |
| CAN__frame CAN__frame_template::valueof() const |
| { |
| if (template_selection != SPECIFIC_VALUE || is_ifpresent) |
| TTCN_error("Performing a valueof or send operation on a non-specific template of type @Can.CAN_frame."); |
| CAN__frame ret_val; |
| if (single_value->field_can__id.is_bound()) { |
| ret_val.can__id() = single_value->field_can__id.valueof(); |
| } |
| if (single_value->field_can__pdu.is_bound()) { |
| ret_val.can__pdu() = single_value->field_can__pdu.valueof(); |
| } |
| return ret_val; |
| } |
| |
| void CAN__frame_template::set_type(template_sel template_type, unsigned int list_length) |
| { |
| if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST) |
| TTCN_error("Setting an invalid list for a template of type @Can.CAN_frame."); |
| clean_up(); |
| set_selection(template_type); |
| value_list.n_values = list_length; |
| value_list.list_value = new CAN__frame_template[list_length]; |
| } |
| |
| CAN__frame_template& CAN__frame_template::list_item(unsigned int list_index) const |
| { |
| if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) |
| TTCN_error("Accessing a list element of a non-list template of type @Can.CAN_frame."); |
| if (list_index >= value_list.n_values) |
| TTCN_error("Index overflow in a value list template of type @Can.CAN_frame."); |
| return value_list.list_value[list_index]; |
| } |
| |
| OCTETSTRING_template& CAN__frame_template::can__id() |
| { |
| set_specific(); |
| return single_value->field_can__id; |
| } |
| |
| const OCTETSTRING_template& CAN__frame_template::can__id() const |
| { |
| if (template_selection != SPECIFIC_VALUE) |
| TTCN_error("Accessing field can_id of a non-specific template of type @Can.CAN_frame."); |
| return single_value->field_can__id; |
| } |
| |
| OCTETSTRING_template& CAN__frame_template::can__pdu() |
| { |
| set_specific(); |
| return single_value->field_can__pdu; |
| } |
| |
| const OCTETSTRING_template& CAN__frame_template::can__pdu() const |
| { |
| if (template_selection != SPECIFIC_VALUE) |
| TTCN_error("Accessing field can_pdu of a non-specific template of type @Can.CAN_frame."); |
| return single_value->field_can__pdu; |
| } |
| |
| int CAN__frame_template::size_of() const |
| { |
| if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @Can.CAN_frame 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 @Can.CAN_frame containing an empty list."); |
| int item_size = value_list.list_value[0].size_of(); |
| for (unsigned int l_idx = 1; l_idx < value_list.n_values; l_idx++) |
| { |
| if (value_list.list_value[l_idx].size_of()!=item_size) |
| TTCN_error("Performing sizeof() operation on a template of type @Can.CAN_frame containing a value list with different sizes."); |
| } |
| return item_size; |
| } |
| case OMIT_VALUE: |
| TTCN_error("Performing sizeof() operation on a template of type @Can.CAN_frame containing omit value."); |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| TTCN_error("Performing sizeof() operation on a template of type @Can.CAN_frame containing */? value."); |
| case COMPLEMENTED_LIST: |
| TTCN_error("Performing sizeof() operation on a template of type @Can.CAN_frame containing complemented list."); |
| default: |
| TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @Can.CAN_frame."); |
| } |
| return 0; |
| } |
| |
| void CAN__frame_template::log() const |
| { |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| TTCN_Logger::log_event_str("{ can_id := "); |
| single_value->field_can__id.log(); |
| TTCN_Logger::log_event_str(", can_pdu := "); |
| single_value->field_can__pdu.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 CAN__frame_template::log_match(const CAN__frame& match_value, boolean legacy) const |
| { |
| if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ |
| if(match(match_value, legacy)){ |
| TTCN_Logger::print_logmatch_buffer(); |
| TTCN_Logger::log_event_str(" matched"); |
| } else{ |
| if (template_selection == SPECIFIC_VALUE) { |
| size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); |
| if(!single_value->field_can__id.match(match_value.can__id(), legacy)){ |
| TTCN_Logger::log_logmatch_info(".can_id"); |
| single_value->field_can__id.log_match(match_value.can__id(), legacy); |
| TTCN_Logger::set_logmatch_buffer_len(previous_size); |
| } |
| if(!single_value->field_can__pdu.match(match_value.can__pdu(), legacy)){ |
| TTCN_Logger::log_logmatch_info(".can_pdu"); |
| single_value->field_can__pdu.log_match(match_value.can__pdu(), 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("{ can_id := "); |
| single_value->field_can__id.log_match(match_value.can__id(), legacy); |
| TTCN_Logger::log_event_str(", can_pdu := "); |
| single_value->field_can__pdu.log_match(match_value.can__pdu(), 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 CAN__frame_template::encode_text(Text_Buf& text_buf) const |
| { |
| encode_text_base(text_buf); |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| single_value->field_can__id.encode_text(text_buf); |
| single_value->field_can__pdu.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 @Can.CAN_frame."); |
| } |
| } |
| |
| void CAN__frame_template::decode_text(Text_Buf& text_buf) |
| { |
| clean_up(); |
| decode_text_base(text_buf); |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| single_value = new single_value_struct; |
| single_value->field_can__id.decode_text(text_buf); |
| single_value->field_can__pdu.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 CAN__frame_template[value_list.n_values]; |
| for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) |
| value_list.list_value[list_count].decode_text(text_buf); |
| break; |
| default: |
| TTCN_error("Text decoder: An unknown/unsupported selection was received in a template of type @Can.CAN_frame."); |
| } |
| } |
| |
| void CAN__frame_template::set_param(Module_Param& param) |
| { |
| param.basic_check(Module_Param::BC_TEMPLATE, "record template"); |
| switch (param.get_type()) { |
| case Module_Param::MP_Omit: |
| *this = OMIT_VALUE; |
| break; |
| case Module_Param::MP_Any: |
| *this = ANY_VALUE; |
| break; |
| case Module_Param::MP_AnyOrNone: |
| *this = ANY_OR_OMIT; |
| break; |
| case Module_Param::MP_List_Template: |
| case Module_Param::MP_ComplementList_Template: { |
| CAN__frame_template new_temp; |
| new_temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size()); |
| for (size_t p_i=0; p_i<param.get_size(); p_i++) { |
| new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); |
| } |
| *this = new_temp; |
| break; } |
| case Module_Param::MP_Value_List: |
| if (2<param.get_size()) { |
| param.error("record template of type @Can.CAN_frame 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) can__id().set_param(*param.get_elem(0)); |
| if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) can__pdu().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(), "can_id")) { |
| if (curr_param->get_type()!=Module_Param::MP_NotUsed) { |
| can__id().set_param(*curr_param); |
| } |
| value_used[val_idx]=TRUE; |
| } |
| } |
| for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { |
| Module_Param* const curr_param = param.get_elem(val_idx); |
| if (!strcmp(curr_param->get_id()->get_name(), "can_pdu")) { |
| if (curr_param->get_type()!=Module_Param::MP_NotUsed) { |
| can__pdu().set_param(*curr_param); |
| } |
| value_used[val_idx]=TRUE; |
| } |
| } |
| for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { |
| Module_Param* const curr_param = param.get_elem(val_idx); |
| curr_param->error("Non existent field name in type @Can.CAN_frame: %s", curr_param->get_id()->get_name()); |
| break; |
| } |
| } break; |
| default: |
| param.type_error("record template", "@Can.CAN_frame"); |
| } |
| is_ifpresent = param.get_ifpresent(); |
| } |
| |
| void CAN__frame_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const |
| { |
| if (template_selection==UNINITIALIZED_TEMPLATE) return; |
| switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { |
| case TR_OMIT: |
| if (template_selection==OMIT_VALUE) return; |
| case TR_VALUE: |
| if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; |
| single_value->field_can__id.check_restriction(t_res, t_name ? t_name : "@Can.CAN_frame"); |
| single_value->field_can__pdu.check_restriction(t_res, t_name ? t_name : "@Can.CAN_frame"); |
| return; |
| case TR_PRESENT: |
| if (!match_omit(legacy)) return; |
| break; |
| default: |
| return; |
| } |
| TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@Can.CAN_frame"); |
| } |
| |
| boolean CAN__frame_template::is_present(boolean legacy) const |
| { |
| if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; |
| return !match_omit(legacy); |
| } |
| |
| boolean CAN__frame_template::match_omit(boolean legacy) const |
| { |
| if (is_ifpresent) return TRUE; |
| switch (template_selection) { |
| case OMIT_VALUE: |
| case ANY_OR_OMIT: |
| return TRUE; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| if (legacy) { |
| for (unsigned int l_idx=0; l_idx<value_list.n_values; l_idx++) |
| if (value_list.list_value[l_idx].match_omit()) |
| return template_selection==VALUE_LIST; |
| return template_selection==COMPLEMENTED_LIST; |
| } // else fall through |
| default: |
| return FALSE; |
| } |
| return FALSE; |
| } |
| |
| CANFD__frame::CANFD__frame() |
| { |
| } |
| |
| CANFD__frame::CANFD__frame(const OCTETSTRING& par_can__id, |
| const BITSTRING& par_can__flags, |
| const OCTETSTRING& par_can__pdu) |
| : field_can__id(par_can__id), |
| field_can__flags(par_can__flags), |
| field_can__pdu(par_can__pdu) |
| { |
| } |
| |
| CANFD__frame::CANFD__frame(const CANFD__frame& other_value) |
| { |
| if(!other_value.is_bound()) TTCN_error("Copying an unbound value of type @Can.CANFD_frame."); |
| if (other_value.can__id().is_bound()) field_can__id = other_value.can__id(); |
| else field_can__id.clean_up(); |
| if (other_value.can__flags().is_bound()) field_can__flags = other_value.can__flags(); |
| else field_can__flags.clean_up(); |
| if (other_value.can__pdu().is_bound()) field_can__pdu = other_value.can__pdu(); |
| else field_can__pdu.clean_up(); |
| } |
| |
| void CANFD__frame::clean_up() |
| { |
| field_can__id.clean_up(); |
| field_can__flags.clean_up(); |
| field_can__pdu.clean_up(); |
| } |
| |
| const TTCN_Typedescriptor_t* CANFD__frame::get_descriptor() const { return &CANFD__frame_descr_; } |
| CANFD__frame& CANFD__frame::operator=(const CANFD__frame& other_value) |
| { |
| if (this != &other_value) { |
| if(!other_value.is_bound()) TTCN_error("Assignment of an unbound value of type @Can.CANFD_frame."); |
| if (other_value.can__id().is_bound()) field_can__id = other_value.can__id(); |
| else field_can__id.clean_up(); |
| if (other_value.can__flags().is_bound()) field_can__flags = other_value.can__flags(); |
| else field_can__flags.clean_up(); |
| if (other_value.can__pdu().is_bound()) field_can__pdu = other_value.can__pdu(); |
| else field_can__pdu.clean_up(); |
| } |
| return *this; |
| } |
| |
| boolean CANFD__frame::operator==(const CANFD__frame& other_value) const |
| { |
| return field_can__id==other_value.field_can__id |
| && field_can__flags==other_value.field_can__flags |
| && field_can__pdu==other_value.field_can__pdu; |
| } |
| |
| boolean CANFD__frame::is_bound() const |
| { |
| return (field_can__id.is_bound()) |
| || (field_can__flags.is_bound()) |
| || (field_can__pdu.is_bound()); |
| } |
| boolean CANFD__frame::is_value() const |
| { |
| return field_can__id.is_value() |
| && field_can__flags.is_value() |
| && field_can__pdu.is_value(); |
| } |
| void CANFD__frame::log() const |
| { |
| if (!is_bound()) { |
| TTCN_Logger::log_event_unbound(); |
| return; |
| } |
| TTCN_Logger::log_event_str("{ can_id := "); |
| field_can__id.log(); |
| TTCN_Logger::log_event_str(", can_flags := "); |
| field_can__flags.log(); |
| TTCN_Logger::log_event_str(", can_pdu := "); |
| field_can__pdu.log(); |
| TTCN_Logger::log_event_str(" }"); |
| } |
| |
| void CANFD__frame::set_param(Module_Param& param) |
| { |
| param.basic_check(Module_Param::BC_VALUE, "record value"); |
| switch (param.get_type()) { |
| case Module_Param::MP_Value_List: |
| if (3<param.get_size()) { |
| param.error("record value of type @Can.CANFD_frame has 3 fields but list value has %d fields", (int)param.get_size()); |
| } |
| if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) can__id().set_param(*param.get_elem(0)); |
| if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) can__flags().set_param(*param.get_elem(1)); |
| if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) can__pdu().set_param(*param.get_elem(2)); |
| break; |
| case Module_Param::MP_Assignment_List: { |
| Vector<bool> value_used(param.get_size()); |
| value_used.resize(param.get_size(), FALSE); |
| for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { |
| Module_Param* const curr_param = param.get_elem(val_idx); |
| if (!strcmp(curr_param->get_id()->get_name(), "can_id")) { |
| if (curr_param->get_type()!=Module_Param::MP_NotUsed) { |
| can__id().set_param(*curr_param); |
| } |
| value_used[val_idx]=TRUE; |
| } |
| } |
| for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { |
| Module_Param* const curr_param = param.get_elem(val_idx); |
| if (!strcmp(curr_param->get_id()->get_name(), "can_flags")) { |
| if (curr_param->get_type()!=Module_Param::MP_NotUsed) { |
| can__flags().set_param(*curr_param); |
| } |
| value_used[val_idx]=TRUE; |
| } |
| } |
| for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { |
| Module_Param* const curr_param = param.get_elem(val_idx); |
| if (!strcmp(curr_param->get_id()->get_name(), "can_pdu")) { |
| if (curr_param->get_type()!=Module_Param::MP_NotUsed) { |
| can__pdu().set_param(*curr_param); |
| } |
| value_used[val_idx]=TRUE; |
| } |
| } |
| for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { |
| Module_Param* const curr_param = param.get_elem(val_idx); |
| curr_param->error("Non existent field name in type @Can.CANFD_frame: %s", curr_param->get_id()->get_name()); |
| break; |
| } |
| } break; |
| default: |
| param.type_error("record value", "@Can.CANFD_frame"); |
| } |
| } |
| |
| void CANFD__frame::set_implicit_omit() |
| { |
| if (can__id().is_bound()) can__id().set_implicit_omit(); |
| if (can__flags().is_bound()) can__flags().set_implicit_omit(); |
| if (can__pdu().is_bound()) can__pdu().set_implicit_omit(); |
| } |
| |
| void CANFD__frame::encode_text(Text_Buf& text_buf) const |
| { |
| field_can__id.encode_text(text_buf); |
| field_can__flags.encode_text(text_buf); |
| field_can__pdu.encode_text(text_buf); |
| } |
| |
| void CANFD__frame::decode_text(Text_Buf& text_buf) |
| { |
| field_can__id.decode_text(text_buf); |
| field_can__flags.decode_text(text_buf); |
| field_can__pdu.decode_text(text_buf); |
| } |
| |
| struct CANFD__frame_template::single_value_struct { |
| OCTETSTRING_template field_can__id; |
| BITSTRING_template field_can__flags; |
| OCTETSTRING_template field_can__pdu; |
| }; |
| |
| void CANFD__frame_template::set_specific() |
| { |
| if (template_selection != SPECIFIC_VALUE) { |
| template_sel old_selection = template_selection; |
| clean_up(); |
| single_value = new single_value_struct; |
| set_selection(SPECIFIC_VALUE); |
| if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) { |
| single_value->field_can__id = ANY_VALUE; |
| single_value->field_can__flags = ANY_VALUE; |
| single_value->field_can__pdu = ANY_VALUE; |
| } |
| } |
| } |
| |
| void CANFD__frame_template::copy_value(const CANFD__frame& other_value) |
| { |
| single_value = new single_value_struct; |
| if (other_value.can__id().is_bound()) { |
| single_value->field_can__id = other_value.can__id(); |
| } else { |
| single_value->field_can__id.clean_up(); |
| } |
| if (other_value.can__flags().is_bound()) { |
| single_value->field_can__flags = other_value.can__flags(); |
| } else { |
| single_value->field_can__flags.clean_up(); |
| } |
| if (other_value.can__pdu().is_bound()) { |
| single_value->field_can__pdu = other_value.can__pdu(); |
| } else { |
| single_value->field_can__pdu.clean_up(); |
| } |
| set_selection(SPECIFIC_VALUE); |
| } |
| |
| void CANFD__frame_template::copy_template(const CANFD__frame_template& other_value) |
| { |
| switch (other_value.template_selection) { |
| case SPECIFIC_VALUE: |
| single_value = new single_value_struct; |
| if (UNINITIALIZED_TEMPLATE != other_value.can__id().get_selection()) { |
| single_value->field_can__id = other_value.can__id(); |
| } else { |
| single_value->field_can__id.clean_up(); |
| } |
| if (UNINITIALIZED_TEMPLATE != other_value.can__flags().get_selection()) { |
| single_value->field_can__flags = other_value.can__flags(); |
| } else { |
| single_value->field_can__flags.clean_up(); |
| } |
| if (UNINITIALIZED_TEMPLATE != other_value.can__pdu().get_selection()) { |
| single_value->field_can__pdu = other_value.can__pdu(); |
| } else { |
| single_value->field_can__pdu.clean_up(); |
| } |
| case OMIT_VALUE: |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| break; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| value_list.n_values = other_value.value_list.n_values; |
| value_list.list_value = new CANFD__frame_template[value_list.n_values]; |
| for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) |
| value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); |
| break; |
| default: |
| TTCN_error("Copying an uninitialized/unsupported template of type @Can.CANFD_frame."); |
| break; |
| } |
| set_selection(other_value); |
| } |
| |
| CANFD__frame_template::CANFD__frame_template() |
| { |
| } |
| |
| CANFD__frame_template::CANFD__frame_template(template_sel other_value) |
| : Base_Template(other_value) |
| { |
| check_single_selection(other_value); |
| } |
| |
| CANFD__frame_template::CANFD__frame_template(const CANFD__frame& other_value) |
| { |
| copy_value(other_value); |
| } |
| |
| CANFD__frame_template::CANFD__frame_template(const OPTIONAL<CANFD__frame>& other_value) |
| { |
| switch (other_value.get_selection()) { |
| case OPTIONAL_PRESENT: |
| copy_value((const CANFD__frame&)other_value); |
| break; |
| case OPTIONAL_OMIT: |
| set_selection(OMIT_VALUE); |
| break; |
| default: |
| TTCN_error("Creating a template of type @Can.CANFD_frame from an unbound optional field."); |
| } |
| } |
| |
| CANFD__frame_template::CANFD__frame_template(const CANFD__frame_template& other_value) |
| : Base_Template() |
| { |
| copy_template(other_value); |
| } |
| |
| CANFD__frame_template::~CANFD__frame_template() |
| { |
| clean_up(); |
| } |
| |
| CANFD__frame_template& CANFD__frame_template::operator=(template_sel other_value) |
| { |
| check_single_selection(other_value); |
| clean_up(); |
| set_selection(other_value); |
| return *this; |
| } |
| |
| CANFD__frame_template& CANFD__frame_template::operator=(const CANFD__frame& other_value) |
| { |
| clean_up(); |
| copy_value(other_value); |
| return *this; |
| } |
| |
| CANFD__frame_template& CANFD__frame_template::operator=(const OPTIONAL<CANFD__frame>& other_value) |
| { |
| clean_up(); |
| switch (other_value.get_selection()) { |
| case OPTIONAL_PRESENT: |
| copy_value((const CANFD__frame&)other_value); |
| break; |
| case OPTIONAL_OMIT: |
| set_selection(OMIT_VALUE); |
| break; |
| default: |
| TTCN_error("Assignment of an unbound optional field to a template of type @Can.CANFD_frame."); |
| } |
| return *this; |
| } |
| |
| CANFD__frame_template& CANFD__frame_template::operator=(const CANFD__frame_template& other_value) |
| { |
| if (&other_value != this) { |
| clean_up(); |
| copy_template(other_value); |
| } |
| return *this; |
| } |
| |
| boolean CANFD__frame_template::match(const CANFD__frame& other_value, boolean legacy) const |
| { |
| if (!other_value.is_bound()) return FALSE; |
| switch (template_selection) { |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| return TRUE; |
| case OMIT_VALUE: |
| return FALSE; |
| case SPECIFIC_VALUE: |
| if(!other_value.can__id().is_bound()) return FALSE; |
| if(!single_value->field_can__id.match(other_value.can__id(), legacy))return FALSE; |
| if(!other_value.can__flags().is_bound()) return FALSE; |
| if(!single_value->field_can__flags.match(other_value.can__flags(), legacy))return FALSE; |
| if(!other_value.can__pdu().is_bound()) return FALSE; |
| if(!single_value->field_can__pdu.match(other_value.can__pdu(), 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 @Can.CANFD_frame."); |
| } |
| return FALSE; |
| } |
| |
| boolean CANFD__frame_template::is_bound() const |
| { |
| if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; |
| if (template_selection != SPECIFIC_VALUE) return TRUE; |
| return single_value->field_can__id.is_bound() |
| |
| ||single_value->field_can__flags.is_bound() |
| |
| ||single_value->field_can__pdu.is_bound() |
| ; |
| } |
| |
| boolean CANFD__frame_template::is_value() const |
| { |
| if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; |
| return single_value->field_can__id.is_value() |
| &&single_value->field_can__flags.is_value() |
| &&single_value->field_can__pdu.is_value(); |
| } |
| |
| void CANFD__frame_template::clean_up() |
| { |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| delete single_value; |
| break; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| delete [] value_list.list_value; |
| default: |
| break; |
| } |
| template_selection = UNINITIALIZED_TEMPLATE; |
| } |
| |
| CANFD__frame CANFD__frame_template::valueof() const |
| { |
| if (template_selection != SPECIFIC_VALUE || is_ifpresent) |
| TTCN_error("Performing a valueof or send operation on a non-specific template of type @Can.CANFD_frame."); |
| CANFD__frame ret_val; |
| if (single_value->field_can__id.is_bound()) { |
| ret_val.can__id() = single_value->field_can__id.valueof(); |
| } |
| if (single_value->field_can__flags.is_bound()) { |
| ret_val.can__flags() = single_value->field_can__flags.valueof(); |
| } |
| if (single_value->field_can__pdu.is_bound()) { |
| ret_val.can__pdu() = single_value->field_can__pdu.valueof(); |
| } |
| return ret_val; |
| } |
| |
| void CANFD__frame_template::set_type(template_sel template_type, unsigned int list_length) |
| { |
| if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST) |
| TTCN_error("Setting an invalid list for a template of type @Can.CANFD_frame."); |
| clean_up(); |
| set_selection(template_type); |
| value_list.n_values = list_length; |
| value_list.list_value = new CANFD__frame_template[list_length]; |
| } |
| |
| CANFD__frame_template& CANFD__frame_template::list_item(unsigned int list_index) const |
| { |
| if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) |
| TTCN_error("Accessing a list element of a non-list template of type @Can.CANFD_frame."); |
| if (list_index >= value_list.n_values) |
| TTCN_error("Index overflow in a value list template of type @Can.CANFD_frame."); |
| return value_list.list_value[list_index]; |
| } |
| |
| OCTETSTRING_template& CANFD__frame_template::can__id() |
| { |
| set_specific(); |
| return single_value->field_can__id; |
| } |
| |
| const OCTETSTRING_template& CANFD__frame_template::can__id() const |
| { |
| if (template_selection != SPECIFIC_VALUE) |
| TTCN_error("Accessing field can_id of a non-specific template of type @Can.CANFD_frame."); |
| return single_value->field_can__id; |
| } |
| |
| BITSTRING_template& CANFD__frame_template::can__flags() |
| { |
| set_specific(); |
| return single_value->field_can__flags; |
| } |
| |
| const BITSTRING_template& CANFD__frame_template::can__flags() const |
| { |
| if (template_selection != SPECIFIC_VALUE) |
| TTCN_error("Accessing field can_flags of a non-specific template of type @Can.CANFD_frame."); |
| return single_value->field_can__flags; |
| } |
| |
| OCTETSTRING_template& CANFD__frame_template::can__pdu() |
| { |
| set_specific(); |
| return single_value->field_can__pdu; |
| } |
| |
| const OCTETSTRING_template& CANFD__frame_template::can__pdu() const |
| { |
| if (template_selection != SPECIFIC_VALUE) |
| TTCN_error("Accessing field can_pdu of a non-specific template of type @Can.CANFD_frame."); |
| return single_value->field_can__pdu; |
| } |
| |
| int CANFD__frame_template::size_of() const |
| { |
| if (is_ifpresent) TTCN_error("Performing sizeof() operation on a template of type @Can.CANFD_frame 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 @Can.CANFD_frame containing an empty list."); |
| int item_size = value_list.list_value[0].size_of(); |
| for (unsigned int l_idx = 1; l_idx < value_list.n_values; l_idx++) |
| { |
| if (value_list.list_value[l_idx].size_of()!=item_size) |
| TTCN_error("Performing sizeof() operation on a template of type @Can.CANFD_frame containing a value list with different sizes."); |
| } |
| return item_size; |
| } |
| case OMIT_VALUE: |
| TTCN_error("Performing sizeof() operation on a template of type @Can.CANFD_frame containing omit value."); |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| TTCN_error("Performing sizeof() operation on a template of type @Can.CANFD_frame containing */? value."); |
| case COMPLEMENTED_LIST: |
| TTCN_error("Performing sizeof() operation on a template of type @Can.CANFD_frame containing complemented list."); |
| default: |
| TTCN_error("Performing sizeof() operation on an uninitialized/unsupported template of type @Can.CANFD_frame."); |
| } |
| return 0; |
| } |
| |
| void CANFD__frame_template::log() const |
| { |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| TTCN_Logger::log_event_str("{ can_id := "); |
| single_value->field_can__id.log(); |
| TTCN_Logger::log_event_str(", can_flags := "); |
| single_value->field_can__flags.log(); |
| TTCN_Logger::log_event_str(", can_pdu := "); |
| single_value->field_can__pdu.log(); |
| TTCN_Logger::log_event_str(" }"); |
| break; |
| case COMPLEMENTED_LIST: |
| TTCN_Logger::log_event_str("complement"); |
| case VALUE_LIST: |
| TTCN_Logger::log_char('('); |
| for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { |
| if (list_count > 0) TTCN_Logger::log_event_str(", "); |
| value_list.list_value[list_count].log(); |
| } |
| TTCN_Logger::log_char(')'); |
| break; |
| default: |
| log_generic(); |
| } |
| log_ifpresent(); |
| } |
| |
| void CANFD__frame_template::log_match(const CANFD__frame& match_value, boolean legacy) const |
| { |
| if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ |
| if(match(match_value, legacy)){ |
| TTCN_Logger::print_logmatch_buffer(); |
| TTCN_Logger::log_event_str(" matched"); |
| } else{ |
| if (template_selection == SPECIFIC_VALUE) { |
| size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); |
| if(!single_value->field_can__id.match(match_value.can__id(), legacy)){ |
| TTCN_Logger::log_logmatch_info(".can_id"); |
| single_value->field_can__id.log_match(match_value.can__id(), legacy); |
| TTCN_Logger::set_logmatch_buffer_len(previous_size); |
| } |
| if(!single_value->field_can__flags.match(match_value.can__flags(), legacy)){ |
| TTCN_Logger::log_logmatch_info(".can_flags"); |
| single_value->field_can__flags.log_match(match_value.can__flags(), legacy); |
| TTCN_Logger::set_logmatch_buffer_len(previous_size); |
| } |
| if(!single_value->field_can__pdu.match(match_value.can__pdu(), legacy)){ |
| TTCN_Logger::log_logmatch_info(".can_pdu"); |
| single_value->field_can__pdu.log_match(match_value.can__pdu(), 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("{ can_id := "); |
| single_value->field_can__id.log_match(match_value.can__id(), legacy); |
| TTCN_Logger::log_event_str(", can_flags := "); |
| single_value->field_can__flags.log_match(match_value.can__flags(), legacy); |
| TTCN_Logger::log_event_str(", can_pdu := "); |
| single_value->field_can__pdu.log_match(match_value.can__pdu(), legacy); |
| TTCN_Logger::log_event_str(" }"); |
| } else { |
| match_value.log(); |
| TTCN_Logger::log_event_str(" with "); |
| log(); |
| if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); |
| else TTCN_Logger::log_event_str(" unmatched"); |
| } |
| } |
| |
| void CANFD__frame_template::encode_text(Text_Buf& text_buf) const |
| { |
| encode_text_base(text_buf); |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| single_value->field_can__id.encode_text(text_buf); |
| single_value->field_can__flags.encode_text(text_buf); |
| single_value->field_can__pdu.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 @Can.CANFD_frame."); |
| } |
| } |
| |
| void CANFD__frame_template::decode_text(Text_Buf& text_buf) |
| { |
| clean_up(); |
| decode_text_base(text_buf); |
| switch (template_selection) { |
| case SPECIFIC_VALUE: |
| single_value = new single_value_struct; |
| single_value->field_can__id.decode_text(text_buf); |
| single_value->field_can__flags.decode_text(text_buf); |
| single_value->field_can__pdu.decode_text(text_buf); |
| case OMIT_VALUE: |
| case ANY_VALUE: |
| case ANY_OR_OMIT: |
| break; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| value_list.n_values = text_buf.pull_int().get_val(); |
| value_list.list_value = new CANFD__frame_template[value_list.n_values]; |
| for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) |
| value_list.list_value[list_count].decode_text(text_buf); |
| break; |
| default: |
| TTCN_error("Text decoder: An unknown/unsupported selection was received in a template of type @Can.CANFD_frame."); |
| } |
| } |
| |
| void CANFD__frame_template::set_param(Module_Param& param) |
| { |
| param.basic_check(Module_Param::BC_TEMPLATE, "record template"); |
| switch (param.get_type()) { |
| case Module_Param::MP_Omit: |
| *this = OMIT_VALUE; |
| break; |
| case Module_Param::MP_Any: |
| *this = ANY_VALUE; |
| break; |
| case Module_Param::MP_AnyOrNone: |
| *this = ANY_OR_OMIT; |
| break; |
| case Module_Param::MP_List_Template: |
| case Module_Param::MP_ComplementList_Template: { |
| CANFD__frame_template new_temp; |
| new_temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size()); |
| for (size_t p_i=0; p_i<param.get_size(); p_i++) { |
| new_temp.list_item(p_i).set_param(*param.get_elem(p_i)); |
| } |
| *this = new_temp; |
| break; } |
| case Module_Param::MP_Value_List: |
| if (3<param.get_size()) { |
| param.error("record template of type @Can.CANFD_frame has 3 fields but list value has %d fields", (int)param.get_size()); |
| } |
| if (param.get_size()>0 && param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) can__id().set_param(*param.get_elem(0)); |
| if (param.get_size()>1 && param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) can__flags().set_param(*param.get_elem(1)); |
| if (param.get_size()>2 && param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) can__pdu().set_param(*param.get_elem(2)); |
| break; |
| case Module_Param::MP_Assignment_List: { |
| Vector<bool> value_used(param.get_size()); |
| value_used.resize(param.get_size(), FALSE); |
| for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { |
| Module_Param* const curr_param = param.get_elem(val_idx); |
| if (!strcmp(curr_param->get_id()->get_name(), "can_id")) { |
| if (curr_param->get_type()!=Module_Param::MP_NotUsed) { |
| can__id().set_param(*curr_param); |
| } |
| value_used[val_idx]=TRUE; |
| } |
| } |
| for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { |
| Module_Param* const curr_param = param.get_elem(val_idx); |
| if (!strcmp(curr_param->get_id()->get_name(), "can_flags")) { |
| if (curr_param->get_type()!=Module_Param::MP_NotUsed) { |
| can__flags().set_param(*curr_param); |
| } |
| value_used[val_idx]=TRUE; |
| } |
| } |
| for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) { |
| Module_Param* const curr_param = param.get_elem(val_idx); |
| if (!strcmp(curr_param->get_id()->get_name(), "can_pdu")) { |
| if (curr_param->get_type()!=Module_Param::MP_NotUsed) { |
| can__pdu().set_param(*curr_param); |
| } |
| value_used[val_idx]=TRUE; |
| } |
| } |
| for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) { |
| Module_Param* const curr_param = param.get_elem(val_idx); |
| curr_param->error("Non existent field name in type @Can.CANFD_frame: %s", curr_param->get_id()->get_name()); |
| break; |
| } |
| } break; |
| default: |
| param.type_error("record template", "@Can.CANFD_frame"); |
| } |
| is_ifpresent = param.get_ifpresent(); |
| } |
| |
| void CANFD__frame_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const |
| { |
| if (template_selection==UNINITIALIZED_TEMPLATE) return; |
| switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { |
| case TR_OMIT: |
| if (template_selection==OMIT_VALUE) return; |
| case TR_VALUE: |
| if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; |
| single_value->field_can__id.check_restriction(t_res, t_name ? t_name : "@Can.CANFD_frame"); |
| single_value->field_can__flags.check_restriction(t_res, t_name ? t_name : "@Can.CANFD_frame"); |
| single_value->field_can__pdu.check_restriction(t_res, t_name ? t_name : "@Can.CANFD_frame"); |
| return; |
| case TR_PRESENT: |
| if (!match_omit(legacy)) return; |
| break; |
| default: |
| return; |
| } |
| TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@Can.CANFD_frame"); |
| } |
| |
| boolean CANFD__frame_template::is_present(boolean legacy) const |
| { |
| if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; |
| return !match_omit(legacy); |
| } |
| |
| boolean CANFD__frame_template::match_omit(boolean legacy) const |
| { |
| if (is_ifpresent) return TRUE; |
| switch (template_selection) { |
| case OMIT_VALUE: |
| case ANY_OR_OMIT: |
| return TRUE; |
| case VALUE_LIST: |
| case COMPLEMENTED_LIST: |
| if (legacy) { |
| for (unsigned int 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 static functions */ |
| |
| static void pre_init_module() |
| { |
| TTCN_Location current_location("../src/Can.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "Can"); |
| General__Types::module_object.pre_init_module(); |
| current_location.update_lineno(21); |
| #line 21 "../src/Can.ttcn" |
| const_CAN__EFF__FLAG = os_0; |
| current_location.update_lineno(22); |
| #line 22 "../src/Can.ttcn" |
| const_CAN__RTR__FLAG = os_1; |
| current_location.update_lineno(23); |
| #line 23 "../src/Can.ttcn" |
| const_CAN__ERR__FLAG = os_2; |
| current_location.update_lineno(26); |
| #line 26 "../src/Can.ttcn" |
| const_CAN__SFF__MASK = os_3; |
| current_location.update_lineno(27); |
| #line 27 "../src/Can.ttcn" |
| const_CAN__EFF__MASK = os_4; |
| current_location.update_lineno(28); |
| #line 28 "../src/Can.ttcn" |
| const_CAN__ERR__MASK = os_4; |
| current_location.update_lineno(109); |
| #line 109 "../src/Can.ttcn" |
| const_AF__CAN = 29; |
| current_location.update_lineno(134); |
| #line 134 "../src/Can.ttcn" |
| const_CAN__MAX__DLEN = 8; |
| current_location.update_lineno(138); |
| #line 138 "../src/Can.ttcn" |
| const_CANFD__MAX__DLEN = 64; |
| } |
| |
| static void post_init_module() |
| { |
| TTCN_Location current_location("../src/Can.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "Can"); |
| General__Types::module_object.post_init_module(); |
| current_location.update_lineno(30); |
| #line 30 "../src/Can.ttcn" |
| template_t__CAN__EFF__FLAG.set_type(VALUE_LIST, 128); |
| template_t__CAN__EFF__FLAG.list_item(0) = op_0; |
| template_t__CAN__EFF__FLAG.list_item(1) = op_1; |
| template_t__CAN__EFF__FLAG.list_item(2) = op_2; |
| template_t__CAN__EFF__FLAG.list_item(3) = op_3; |
| template_t__CAN__EFF__FLAG.list_item(4) = op_4; |
| template_t__CAN__EFF__FLAG.list_item(5) = op_5; |
| template_t__CAN__EFF__FLAG.list_item(6) = op_6; |
| template_t__CAN__EFF__FLAG.list_item(7) = op_7; |
| template_t__CAN__EFF__FLAG.list_item(8) = op_8; |
| template_t__CAN__EFF__FLAG.list_item(9) = op_9; |
| template_t__CAN__EFF__FLAG.list_item(10) = op_10; |
| template_t__CAN__EFF__FLAG.list_item(11) = op_11; |
| template_t__CAN__EFF__FLAG.list_item(12) = op_12; |
| template_t__CAN__EFF__FLAG.list_item(13) = op_13; |
| template_t__CAN__EFF__FLAG.list_item(14) = op_14; |
| template_t__CAN__EFF__FLAG.list_item(15) = op_15; |
| template_t__CAN__EFF__FLAG.list_item(16) = op_16; |
| template_t__CAN__EFF__FLAG.list_item(17) = op_17; |
| template_t__CAN__EFF__FLAG.list_item(18) = op_18; |
| template_t__CAN__EFF__FLAG.list_item(19) = op_19; |
| template_t__CAN__EFF__FLAG.list_item(20) = op_20; |
| template_t__CAN__EFF__FLAG.list_item(21) = op_21; |
| template_t__CAN__EFF__FLAG.list_item(22) = op_22; |
| template_t__CAN__EFF__FLAG.list_item(23) = op_23; |
| template_t__CAN__EFF__FLAG.list_item(24) = op_24; |
| template_t__CAN__EFF__FLAG.list_item(25) = op_25; |
| template_t__CAN__EFF__FLAG.list_item(26) = op_26; |
| template_t__CAN__EFF__FLAG.list_item(27) = op_27; |
| template_t__CAN__EFF__FLAG.list_item(28) = op_28; |
| template_t__CAN__EFF__FLAG.list_item(29) = op_29; |
| template_t__CAN__EFF__FLAG.list_item(30) = op_30; |
| template_t__CAN__EFF__FLAG.list_item(31) = op_31; |
| template_t__CAN__EFF__FLAG.list_item(32) = op_32; |
| template_t__CAN__EFF__FLAG.list_item(33) = op_33; |
| template_t__CAN__EFF__FLAG.list_item(34) = op_34; |
| template_t__CAN__EFF__FLAG.list_item(35) = op_35; |
| template_t__CAN__EFF__FLAG.list_item(36) = op_36; |
| template_t__CAN__EFF__FLAG.list_item(37) = op_37; |
| template_t__CAN__EFF__FLAG.list_item(38) = op_38; |
| template_t__CAN__EFF__FLAG.list_item(39) = op_39; |
| template_t__CAN__EFF__FLAG.list_item(40) = op_40; |
| template_t__CAN__EFF__FLAG.list_item(41) = op_41; |
| template_t__CAN__EFF__FLAG.list_item(42) = op_42; |
| template_t__CAN__EFF__FLAG.list_item(43) = op_43; |
| template_t__CAN__EFF__FLAG.list_item(44) = op_44; |
| template_t__CAN__EFF__FLAG.list_item(45) = op_45; |
| template_t__CAN__EFF__FLAG.list_item(46) = op_46; |
| template_t__CAN__EFF__FLAG.list_item(47) = op_47; |
| template_t__CAN__EFF__FLAG.list_item(48) = op_48; |
| template_t__CAN__EFF__FLAG.list_item(49) = op_49; |
| template_t__CAN__EFF__FLAG.list_item(50) = op_50; |
| template_t__CAN__EFF__FLAG.list_item(51) = op_51; |
| template_t__CAN__EFF__FLAG.list_item(52) = op_52; |
| template_t__CAN__EFF__FLAG.list_item(53) = op_53; |
| template_t__CAN__EFF__FLAG.list_item(54) = op_54; |
| template_t__CAN__EFF__FLAG.list_item(55) = op_55; |
| template_t__CAN__EFF__FLAG.list_item(56) = op_56; |
| template_t__CAN__EFF__FLAG.list_item(57) = op_57; |
| template_t__CAN__EFF__FLAG.list_item(58) = op_58; |
| template_t__CAN__EFF__FLAG.list_item(59) = op_59; |
| template_t__CAN__EFF__FLAG.list_item(60) = op_60; |
| template_t__CAN__EFF__FLAG.list_item(61) = op_61; |
| template_t__CAN__EFF__FLAG.list_item(62) = op_62; |
| template_t__CAN__EFF__FLAG.list_item(63) = op_63; |
| template_t__CAN__EFF__FLAG.list_item(64) = op_64; |
| template_t__CAN__EFF__FLAG.list_item(65) = op_65; |
| template_t__CAN__EFF__FLAG.list_item(66) = op_66; |
| template_t__CAN__EFF__FLAG.list_item(67) = op_67; |
| template_t__CAN__EFF__FLAG.list_item(68) = op_68; |
| template_t__CAN__EFF__FLAG.list_item(69) = op_69; |
| template_t__CAN__EFF__FLAG.list_item(70) = op_70; |
| template_t__CAN__EFF__FLAG.list_item(71) = op_71; |
| template_t__CAN__EFF__FLAG.list_item(72) = op_72; |
| template_t__CAN__EFF__FLAG.list_item(73) = op_73; |
| template_t__CAN__EFF__FLAG.list_item(74) = op_74; |
| template_t__CAN__EFF__FLAG.list_item(75) = op_75; |
| template_t__CAN__EFF__FLAG.list_item(76) = op_76; |
| template_t__CAN__EFF__FLAG.list_item(77) = op_77; |
| template_t__CAN__EFF__FLAG.list_item(78) = op_78; |
| template_t__CAN__EFF__FLAG.list_item(79) = op_79; |
| template_t__CAN__EFF__FLAG.list_item(80) = op_80; |
| template_t__CAN__EFF__FLAG.list_item(81) = op_81; |
| template_t__CAN__EFF__FLAG.list_item(82) = op_82; |
| template_t__CAN__EFF__FLAG.list_item(83) = op_83; |
| template_t__CAN__EFF__FLAG.list_item(84) = op_84; |
| template_t__CAN__EFF__FLAG.list_item(85) = op_85; |
| template_t__CAN__EFF__FLAG.list_item(86) = op_86; |
| template_t__CAN__EFF__FLAG.list_item(87) = op_87; |
| template_t__CAN__EFF__FLAG.list_item(88) = op_88; |
| template_t__CAN__EFF__FLAG.list_item(89) = op_89; |
| template_t__CAN__EFF__FLAG.list_item(90) = op_90; |
| template_t__CAN__EFF__FLAG.list_item(91) = op_91; |
| template_t__CAN__EFF__FLAG.list_item(92) = op_92; |
| template_t__CAN__EFF__FLAG.list_item(93) = op_93; |
| template_t__CAN__EFF__FLAG.list_item(94) = op_94; |
| template_t__CAN__EFF__FLAG.list_item(95) = op_95; |
| template_t__CAN__EFF__FLAG.list_item(96) = op_96; |
| template_t__CAN__EFF__FLAG.list_item(97) = op_97; |
| template_t__CAN__EFF__FLAG.list_item(98) = op_98; |
| template_t__CAN__EFF__FLAG.list_item(99) = op_99; |
| template_t__CAN__EFF__FLAG.list_item(100) = op_100; |
| template_t__CAN__EFF__FLAG.list_item(101) = op_101; |
| template_t__CAN__EFF__FLAG.list_item(102) = op_102; |
| template_t__CAN__EFF__FLAG.list_item(103) = op_103; |
| template_t__CAN__EFF__FLAG.list_item(104) = op_104; |
| template_t__CAN__EFF__FLAG.list_item(105) = op_105; |
| template_t__CAN__EFF__FLAG.list_item(106) = op_106; |
| template_t__CAN__EFF__FLAG.list_item(107) = op_107; |
| template_t__CAN__EFF__FLAG.list_item(108) = op_108; |
| template_t__CAN__EFF__FLAG.list_item(109) = op_109; |
| template_t__CAN__EFF__FLAG.list_item(110) = op_110; |
| template_t__CAN__EFF__FLAG.list_item(111) = op_111; |
| template_t__CAN__EFF__FLAG.list_item(112) = op_112; |
| template_t__CAN__EFF__FLAG.list_item(113) = op_113; |
| template_t__CAN__EFF__FLAG.list_item(114) = op_114; |
| template_t__CAN__EFF__FLAG.list_item(115) = op_115; |
| template_t__CAN__EFF__FLAG.list_item(116) = op_116; |
| template_t__CAN__EFF__FLAG.list_item(117) = op_117; |
| template_t__CAN__EFF__FLAG.list_item(118) = op_118; |
| template_t__CAN__EFF__FLAG.list_item(119) = op_119; |
| template_t__CAN__EFF__FLAG.list_item(120) = op_120; |
| template_t__CAN__EFF__FLAG.list_item(121) = op_121; |
| template_t__CAN__EFF__FLAG.list_item(122) = op_122; |
| template_t__CAN__EFF__FLAG.list_item(123) = op_123; |
| template_t__CAN__EFF__FLAG.list_item(124) = op_124; |
| template_t__CAN__EFF__FLAG.list_item(125) = op_125; |
| template_t__CAN__EFF__FLAG.list_item(126) = op_126; |
| template_t__CAN__EFF__FLAG.list_item(127) = op_127; |
| current_location.update_lineno(48); |
| #line 48 "../src/Can.ttcn" |
| template_t__CAN__SFF__FLAG.set_type(VALUE_LIST, 128); |
| template_t__CAN__SFF__FLAG.list_item(0) = op_128; |
| template_t__CAN__SFF__FLAG.list_item(1) = op_129; |
| template_t__CAN__SFF__FLAG.list_item(2) = op_130; |
| template_t__CAN__SFF__FLAG.list_item(3) = op_131; |
| template_t__CAN__SFF__FLAG.list_item(4) = op_132; |
| template_t__CAN__SFF__FLAG.list_item(5) = op_133; |
| template_t__CAN__SFF__FLAG.list_item(6) = op_134; |
| template_t__CAN__SFF__FLAG.list_item(7) = op_135; |
| template_t__CAN__SFF__FLAG.list_item(8) = op_136; |
| template_t__CAN__SFF__FLAG.list_item(9) = op_137; |
| template_t__CAN__SFF__FLAG.list_item(10) = op_138; |
| template_t__CAN__SFF__FLAG.list_item(11) = op_139; |
| template_t__CAN__SFF__FLAG.list_item(12) = op_140; |
| template_t__CAN__SFF__FLAG.list_item(13) = op_141; |
| template_t__CAN__SFF__FLAG.list_item(14) = op_142; |
| template_t__CAN__SFF__FLAG.list_item(15) = op_143; |
| template_t__CAN__SFF__FLAG.list_item(16) = op_144; |
| template_t__CAN__SFF__FLAG.list_item(17) = op_145; |
| template_t__CAN__SFF__FLAG.list_item(18) = op_146; |
| template_t__CAN__SFF__FLAG.list_item(19) = op_147; |
| template_t__CAN__SFF__FLAG.list_item(20) = op_148; |
| template_t__CAN__SFF__FLAG.list_item(21) = op_149; |
| template_t__CAN__SFF__FLAG.list_item(22) = op_150; |
| template_t__CAN__SFF__FLAG.list_item(23) = op_151; |
| template_t__CAN__SFF__FLAG.list_item(24) = op_152; |
| template_t__CAN__SFF__FLAG.list_item(25) = op_153; |
| template_t__CAN__SFF__FLAG.list_item(26) = op_154; |
| template_t__CAN__SFF__FLAG.list_item(27) = op_155; |
| template_t__CAN__SFF__FLAG.list_item(28) = op_156; |
| template_t__CAN__SFF__FLAG.list_item(29) = op_157; |
| template_t__CAN__SFF__FLAG.list_item(30) = op_158; |
| template_t__CAN__SFF__FLAG.list_item(31) = op_159; |
| template_t__CAN__SFF__FLAG.list_item(32) = op_160; |
| template_t__CAN__SFF__FLAG.list_item(33) = op_161; |
| template_t__CAN__SFF__FLAG.list_item(34) = op_162; |
| template_t__CAN__SFF__FLAG.list_item(35) = op_163; |
| template_t__CAN__SFF__FLAG.list_item(36) = op_164; |
| template_t__CAN__SFF__FLAG.list_item(37) = op_165; |
| template_t__CAN__SFF__FLAG.list_item(38) = op_166; |
| template_t__CAN__SFF__FLAG.list_item(39) = op_167; |
| template_t__CAN__SFF__FLAG.list_item(40) = op_168; |
| template_t__CAN__SFF__FLAG.list_item(41) = op_169; |
| template_t__CAN__SFF__FLAG.list_item(42) = op_170; |
| template_t__CAN__SFF__FLAG.list_item(43) = op_171; |
| template_t__CAN__SFF__FLAG.list_item(44) = op_172; |
| template_t__CAN__SFF__FLAG.list_item(45) = op_173; |
| template_t__CAN__SFF__FLAG.list_item(46) = op_174; |
| template_t__CAN__SFF__FLAG.list_item(47) = op_175; |
| template_t__CAN__SFF__FLAG.list_item(48) = op_176; |
| template_t__CAN__SFF__FLAG.list_item(49) = op_177; |
| template_t__CAN__SFF__FLAG.list_item(50) = op_178; |
| template_t__CAN__SFF__FLAG.list_item(51) = op_179; |
| template_t__CAN__SFF__FLAG.list_item(52) = op_180; |
| template_t__CAN__SFF__FLAG.list_item(53) = op_181; |
| template_t__CAN__SFF__FLAG.list_item(54) = op_182; |
| template_t__CAN__SFF__FLAG.list_item(55) = op_183; |
| template_t__CAN__SFF__FLAG.list_item(56) = op_184; |
| template_t__CAN__SFF__FLAG.list_item(57) = op_185; |
| template_t__CAN__SFF__FLAG.list_item(58) = op_186; |
| template_t__CAN__SFF__FLAG.list_item(59) = op_187; |
| template_t__CAN__SFF__FLAG.list_item(60) = op_188; |
| template_t__CAN__SFF__FLAG.list_item(61) = op_189; |
| template_t__CAN__SFF__FLAG.list_item(62) = op_190; |
| template_t__CAN__SFF__FLAG.list_item(63) = op_191; |
| template_t__CAN__SFF__FLAG.list_item(64) = op_192; |
| template_t__CAN__SFF__FLAG.list_item(65) = op_193; |
| template_t__CAN__SFF__FLAG.list_item(66) = op_194; |
| template_t__CAN__SFF__FLAG.list_item(67) = op_195; |
| template_t__CAN__SFF__FLAG.list_item(68) = op_196; |
| template_t__CAN__SFF__FLAG.list_item(69) = op_197; |
| template_t__CAN__SFF__FLAG.list_item(70) = op_198; |
| template_t__CAN__SFF__FLAG.list_item(71) = op_199; |
| template_t__CAN__SFF__FLAG.list_item(72) = op_200; |
| template_t__CAN__SFF__FLAG.list_item(73) = op_201; |
| template_t__CAN__SFF__FLAG.list_item(74) = op_202; |
| template_t__CAN__SFF__FLAG.list_item(75) = op_203; |
| template_t__CAN__SFF__FLAG.list_item(76) = op_204; |
| template_t__CAN__SFF__FLAG.list_item(77) = op_205; |
| template_t__CAN__SFF__FLAG.list_item(78) = op_206; |
| template_t__CAN__SFF__FLAG.list_item(79) = op_207; |
| template_t__CAN__SFF__FLAG.list_item(80) = op_208; |
| template_t__CAN__SFF__FLAG.list_item(81) = op_209; |
| template_t__CAN__SFF__FLAG.list_item(82) = op_210; |
| template_t__CAN__SFF__FLAG.list_item(83) = op_211; |
| template_t__CAN__SFF__FLAG.list_item(84) = op_212; |
| template_t__CAN__SFF__FLAG.list_item(85) = op_213; |
| template_t__CAN__SFF__FLAG.list_item(86) = op_214; |
| template_t__CAN__SFF__FLAG.list_item(87) = op_215; |
| template_t__CAN__SFF__FLAG.list_item(88) = op_216; |
| template_t__CAN__SFF__FLAG.list_item(89) = op_217; |
| template_t__CAN__SFF__FLAG.list_item(90) = op_218; |
| template_t__CAN__SFF__FLAG.list_item(91) = op_219; |
| template_t__CAN__SFF__FLAG.list_item(92) = op_220; |
| template_t__CAN__SFF__FLAG.list_item(93) = op_221; |
| template_t__CAN__SFF__FLAG.list_item(94) = op_222; |
| template_t__CAN__SFF__FLAG.list_item(95) = op_223; |
| template_t__CAN__SFF__FLAG.list_item(96) = op_224; |
| template_t__CAN__SFF__FLAG.list_item(97) = op_225; |
| template_t__CAN__SFF__FLAG.list_item(98) = op_226; |
| template_t__CAN__SFF__FLAG.list_item(99) = op_227; |
| template_t__CAN__SFF__FLAG.list_item(100) = op_228; |
| template_t__CAN__SFF__FLAG.list_item(101) = op_229; |
| template_t__CAN__SFF__FLAG.list_item(102) = op_230; |
| template_t__CAN__SFF__FLAG.list_item(103) = op_231; |
| template_t__CAN__SFF__FLAG.list_item(104) = op_232; |
| template_t__CAN__SFF__FLAG.list_item(105) = op_233; |
| template_t__CAN__SFF__FLAG.list_item(106) = op_234; |
| template_t__CAN__SFF__FLAG.list_item(107) = op_235; |
| template_t__CAN__SFF__FLAG.list_item(108) = op_236; |
| template_t__CAN__SFF__FLAG.list_item(109) = op_237; |
| template_t__CAN__SFF__FLAG.list_item(110) = op_238; |
| template_t__CAN__SFF__FLAG.list_item(111) = op_239; |
| template_t__CAN__SFF__FLAG.list_item(112) = op_240; |
| template_t__CAN__SFF__FLAG.list_item(113) = op_241; |
| template_t__CAN__SFF__FLAG.list_item(114) = op_242; |
| template_t__CAN__SFF__FLAG.list_item(115) = op_243; |
| template_t__CAN__SFF__FLAG.list_item(116) = op_244; |
| template_t__CAN__SFF__FLAG.list_item(117) = op_245; |
| template_t__CAN__SFF__FLAG.list_item(118) = op_246; |
| template_t__CAN__SFF__FLAG.list_item(119) = op_247; |
| template_t__CAN__SFF__FLAG.list_item(120) = op_248; |
| template_t__CAN__SFF__FLAG.list_item(121) = op_249; |
| template_t__CAN__SFF__FLAG.list_item(122) = op_250; |
| template_t__CAN__SFF__FLAG.list_item(123) = op_251; |
| template_t__CAN__SFF__FLAG.list_item(124) = op_252; |
| template_t__CAN__SFF__FLAG.list_item(125) = op_253; |
| template_t__CAN__SFF__FLAG.list_item(126) = op_254; |
| template_t__CAN__SFF__FLAG.list_item(127) = op_255; |
| current_location.update_lineno(66); |
| #line 66 "../src/Can.ttcn" |
| template_t__CAN__RTR__FLAG.set_type(VALUE_LIST, 128); |
| template_t__CAN__RTR__FLAG.list_item(0) = op_192; |
| template_t__CAN__RTR__FLAG.list_item(1) = op_193; |
| template_t__CAN__RTR__FLAG.list_item(2) = op_194; |
| template_t__CAN__RTR__FLAG.list_item(3) = op_195; |
| template_t__CAN__RTR__FLAG.list_item(4) = op_196; |
| template_t__CAN__RTR__FLAG.list_item(5) = op_197; |
| template_t__CAN__RTR__FLAG.list_item(6) = op_198; |
| template_t__CAN__RTR__FLAG.list_item(7) = op_199; |
| template_t__CAN__RTR__FLAG.list_item(8) = op_200; |
| template_t__CAN__RTR__FLAG.list_item(9) = op_201; |
| template_t__CAN__RTR__FLAG.list_item(10) = op_202; |
| template_t__CAN__RTR__FLAG.list_item(11) = op_203; |
| template_t__CAN__RTR__FLAG.list_item(12) = op_204; |
| template_t__CAN__RTR__FLAG.list_item(13) = op_205; |
| template_t__CAN__RTR__FLAG.list_item(14) = op_206; |
| template_t__CAN__RTR__FLAG.list_item(15) = op_207; |
| template_t__CAN__RTR__FLAG.list_item(16) = op_208; |
| template_t__CAN__RTR__FLAG.list_item(17) = op_209; |
| template_t__CAN__RTR__FLAG.list_item(18) = op_210; |
| template_t__CAN__RTR__FLAG.list_item(19) = op_211; |
| template_t__CAN__RTR__FLAG.list_item(20) = op_212; |
| template_t__CAN__RTR__FLAG.list_item(21) = op_213; |
| template_t__CAN__RTR__FLAG.list_item(22) = op_214; |
| template_t__CAN__RTR__FLAG.list_item(23) = op_215; |
| template_t__CAN__RTR__FLAG.list_item(24) = op_216; |
| template_t__CAN__RTR__FLAG.list_item(25) = op_217; |
| template_t__CAN__RTR__FLAG.list_item(26) = op_218; |
| template_t__CAN__RTR__FLAG.list_item(27) = op_219; |
| template_t__CAN__RTR__FLAG.list_item(28) = op_220; |
| template_t__CAN__RTR__FLAG.list_item(29) = op_221; |
| template_t__CAN__RTR__FLAG.list_item(30) = op_222; |
| template_t__CAN__RTR__FLAG.list_item(31) = op_223; |
| template_t__CAN__RTR__FLAG.list_item(32) = op_224; |
| template_t__CAN__RTR__FLAG.list_item(33) = op_225; |
| template_t__CAN__RTR__FLAG.list_item(34) = op_226; |
| template_t__CAN__RTR__FLAG.list_item(35) = op_227; |
| template_t__CAN__RTR__FLAG.list_item(36) = op_228; |
| template_t__CAN__RTR__FLAG.list_item(37) = op_229; |
| template_t__CAN__RTR__FLAG.list_item(38) = op_230; |
| template_t__CAN__RTR__FLAG.list_item(39) = op_231; |
| template_t__CAN__RTR__FLAG.list_item(40) = op_232; |
| template_t__CAN__RTR__FLAG.list_item(41) = op_233; |
| template_t__CAN__RTR__FLAG.list_item(42) = op_234; |
| template_t__CAN__RTR__FLAG.list_item(43) = op_235; |
| template_t__CAN__RTR__FLAG.list_item(44) = op_236; |
| template_t__CAN__RTR__FLAG.list_item(45) = op_237; |
| template_t__CAN__RTR__FLAG.list_item(46) = op_238; |
| template_t__CAN__RTR__FLAG.list_item(47) = op_239; |
| template_t__CAN__RTR__FLAG.list_item(48) = op_240; |
| template_t__CAN__RTR__FLAG.list_item(49) = op_241; |
| template_t__CAN__RTR__FLAG.list_item(50) = op_242; |
| template_t__CAN__RTR__FLAG.list_item(51) = op_243; |
| template_t__CAN__RTR__FLAG.list_item(52) = op_244; |
| template_t__CAN__RTR__FLAG.list_item(53) = op_245; |
| template_t__CAN__RTR__FLAG.list_item(54) = op_246; |
| template_t__CAN__RTR__FLAG.list_item(55) = op_247; |
| template_t__CAN__RTR__FLAG.list_item(56) = op_248; |
| template_t__CAN__RTR__FLAG.list_item(57) = op_249; |
| template_t__CAN__RTR__FLAG.list_item(58) = op_250; |
| template_t__CAN__RTR__FLAG.list_item(59) = op_251; |
| template_t__CAN__RTR__FLAG.list_item(60) = op_252; |
| template_t__CAN__RTR__FLAG.list_item(61) = op_253; |
| template_t__CAN__RTR__FLAG.list_item(62) = op_254; |
| template_t__CAN__RTR__FLAG.list_item(63) = op_255; |
| template_t__CAN__RTR__FLAG.list_item(64) = op_64; |
| template_t__CAN__RTR__FLAG.list_item(65) = op_65; |
| template_t__CAN__RTR__FLAG.list_item(66) = op_66; |
| template_t__CAN__RTR__FLAG.list_item(67) = op_67; |
| template_t__CAN__RTR__FLAG.list_item(68) = op_68; |
| template_t__CAN__RTR__FLAG.list_item(69) = op_69; |
| template_t__CAN__RTR__FLAG.list_item(70) = op_70; |
| template_t__CAN__RTR__FLAG.list_item(71) = op_71; |
| template_t__CAN__RTR__FLAG.list_item(72) = op_72; |
| template_t__CAN__RTR__FLAG.list_item(73) = op_73; |
| template_t__CAN__RTR__FLAG.list_item(74) = op_74; |
| template_t__CAN__RTR__FLAG.list_item(75) = op_75; |
| template_t__CAN__RTR__FLAG.list_item(76) = op_76; |
| template_t__CAN__RTR__FLAG.list_item(77) = op_77; |
| template_t__CAN__RTR__FLAG.list_item(78) = op_78; |
| template_t__CAN__RTR__FLAG.list_item(79) = op_79; |
| template_t__CAN__RTR__FLAG.list_item(80) = op_80; |
| template_t__CAN__RTR__FLAG.list_item(81) = op_81; |
| template_t__CAN__RTR__FLAG.list_item(82) = op_82; |
| template_t__CAN__RTR__FLAG.list_item(83) = op_83; |
| template_t__CAN__RTR__FLAG.list_item(84) = op_84; |
| template_t__CAN__RTR__FLAG.list_item(85) = op_85; |
| template_t__CAN__RTR__FLAG.list_item(86) = op_86; |
| template_t__CAN__RTR__FLAG.list_item(87) = op_87; |
| template_t__CAN__RTR__FLAG.list_item(88) = op_88; |
| template_t__CAN__RTR__FLAG.list_item(89) = op_89; |
| template_t__CAN__RTR__FLAG.list_item(90) = op_90; |
| template_t__CAN__RTR__FLAG.list_item(91) = op_91; |
| template_t__CAN__RTR__FLAG.list_item(92) = op_92; |
| template_t__CAN__RTR__FLAG.list_item(93) = op_93; |
| template_t__CAN__RTR__FLAG.list_item(94) = op_94; |
| template_t__CAN__RTR__FLAG.list_item(95) = op_95; |
| template_t__CAN__RTR__FLAG.list_item(96) = op_96; |
| template_t__CAN__RTR__FLAG.list_item(97) = op_97; |
| template_t__CAN__RTR__FLAG.list_item(98) = op_98; |
| template_t__CAN__RTR__FLAG.list_item(99) = op_99; |
| template_t__CAN__RTR__FLAG.list_item(100) = op_100; |
| template_t__CAN__RTR__FLAG.list_item(101) = op_101; |
| template_t__CAN__RTR__FLAG.list_item(102) = op_102; |
| template_t__CAN__RTR__FLAG.list_item(103) = op_103; |
| template_t__CAN__RTR__FLAG.list_item(104) = op_104; |
| template_t__CAN__RTR__FLAG.list_item(105) = op_105; |
| template_t__CAN__RTR__FLAG.list_item(106) = op_106; |
| template_t__CAN__RTR__FLAG.list_item(107) = op_107; |
| template_t__CAN__RTR__FLAG.list_item(108) = op_108; |
| template_t__CAN__RTR__FLAG.list_item(109) = op_109; |
| template_t__CAN__RTR__FLAG.list_item(110) = op_110; |
| template_t__CAN__RTR__FLAG.list_item(111) = op_111; |
| template_t__CAN__RTR__FLAG.list_item(112) = op_112; |
| template_t__CAN__RTR__FLAG.list_item(113) = op_113; |
| template_t__CAN__RTR__FLAG.list_item(114) = op_114; |
| template_t__CAN__RTR__FLAG.list_item(115) = op_115; |
| template_t__CAN__RTR__FLAG.list_item(116) = op_116; |
| template_t__CAN__RTR__FLAG.list_item(117) = op_117; |
| template_t__CAN__RTR__FLAG.list_item(118) = op_118; |
| template_t__CAN__RTR__FLAG.list_item(119) = op_119; |
| template_t__CAN__RTR__FLAG.list_item(120) = op_120; |
| template_t__CAN__RTR__FLAG.list_item(121) = op_121; |
| template_t__CAN__RTR__FLAG.list_item(122) = op_122; |
| template_t__CAN__RTR__FLAG.list_item(123) = op_123; |
| template_t__CAN__RTR__FLAG.list_item(124) = op_124; |
| template_t__CAN__RTR__FLAG.list_item(125) = op_125; |
| template_t__CAN__RTR__FLAG.list_item(126) = op_126; |
| template_t__CAN__RTR__FLAG.list_item(127) = op_127; |
| current_location.update_lineno(84); |
| #line 84 "../src/Can.ttcn" |
| template_t__CAN__ERR__FLAG.set_type(VALUE_LIST, 128); |
| template_t__CAN__ERR__FLAG.list_item(0) = op_160; |
| template_t__CAN__ERR__FLAG.list_item(1) = op_161; |
| template_t__CAN__ERR__FLAG.list_item(2) = op_162; |
| template_t__CAN__ERR__FLAG.list_item(3) = op_163; |
| template_t__CAN__ERR__FLAG.list_item(4) = op_164; |
| template_t__CAN__ERR__FLAG.list_item(5) = op_165; |
| template_t__CAN__ERR__FLAG.list_item(6) = op_166; |
| template_t__CAN__ERR__FLAG.list_item(7) = op_167; |
| template_t__CAN__ERR__FLAG.list_item(8) = op_168; |
| template_t__CAN__ERR__FLAG.list_item(9) = op_169; |
| template_t__CAN__ERR__FLAG.list_item(10) = op_170; |
| template_t__CAN__ERR__FLAG.list_item(11) = op_171; |
| template_t__CAN__ERR__FLAG.list_item(12) = op_172; |
| template_t__CAN__ERR__FLAG.list_item(13) = op_173; |
| template_t__CAN__ERR__FLAG.list_item(14) = op_174; |
| template_t__CAN__ERR__FLAG.list_item(15) = op_175; |
| template_t__CAN__ERR__FLAG.list_item(16) = op_176; |
| template_t__CAN__ERR__FLAG.list_item(17) = op_177; |
| template_t__CAN__ERR__FLAG.list_item(18) = op_178; |
| template_t__CAN__ERR__FLAG.list_item(19) = op_179; |
| template_t__CAN__ERR__FLAG.list_item(20) = op_180; |
| template_t__CAN__ERR__FLAG.list_item(21) = op_181; |
| template_t__CAN__ERR__FLAG.list_item(22) = op_182; |
| template_t__CAN__ERR__FLAG.list_item(23) = op_183; |
| template_t__CAN__ERR__FLAG.list_item(24) = op_184; |
| template_t__CAN__ERR__FLAG.list_item(25) = op_185; |
| template_t__CAN__ERR__FLAG.list_item(26) = op_186; |
| template_t__CAN__ERR__FLAG.list_item(27) = op_187; |
| template_t__CAN__ERR__FLAG.list_item(28) = op_188; |
| template_t__CAN__ERR__FLAG.list_item(29) = op_189; |
| template_t__CAN__ERR__FLAG.list_item(30) = op_190; |
| template_t__CAN__ERR__FLAG.list_item(31) = op_191; |
| template_t__CAN__ERR__FLAG.list_item(32) = op_224; |
| template_t__CAN__ERR__FLAG.list_item(33) = op_225; |
| template_t__CAN__ERR__FLAG.list_item(34) = op_226; |
| template_t__CAN__ERR__FLAG.list_item(35) = op_227; |
| template_t__CAN__ERR__FLAG.list_item(36) = op_228; |
| template_t__CAN__ERR__FLAG.list_item(37) = op_229; |
| template_t__CAN__ERR__FLAG.list_item(38) = op_230; |
| template_t__CAN__ERR__FLAG.list_item(39) = op_231; |
| template_t__CAN__ERR__FLAG.list_item(40) = op_232; |
| template_t__CAN__ERR__FLAG.list_item(41) = op_233; |
| template_t__CAN__ERR__FLAG.list_item(42) = op_234; |
| template_t__CAN__ERR__FLAG.list_item(43) = op_235; |
| template_t__CAN__ERR__FLAG.list_item(44) = op_236; |
| template_t__CAN__ERR__FLAG.list_item(45) = op_237; |
| template_t__CAN__ERR__FLAG.list_item(46) = op_238; |
| template_t__CAN__ERR__FLAG.list_item(47) = op_239; |
| template_t__CAN__ERR__FLAG.list_item(48) = op_240; |
| template_t__CAN__ERR__FLAG.list_item(49) = op_241; |
| template_t__CAN__ERR__FLAG.list_item(50) = op_242; |
| template_t__CAN__ERR__FLAG.list_item(51) = op_243; |
| template_t__CAN__ERR__FLAG.list_item(52) = op_244; |
| template_t__CAN__ERR__FLAG.list_item(53) = op_245; |
| template_t__CAN__ERR__FLAG.list_item(54) = op_246; |
| template_t__CAN__ERR__FLAG.list_item(55) = op_247; |
| template_t__CAN__ERR__FLAG.list_item(56) = op_248; |
| template_t__CAN__ERR__FLAG.list_item(57) = op_249; |
| template_t__CAN__ERR__FLAG.list_item(58) = op_250; |
| template_t__CAN__ERR__FLAG.list_item(59) = op_251; |
| template_t__CAN__ERR__FLAG.list_item(60) = op_252; |
| template_t__CAN__ERR__FLAG.list_item(61) = op_253; |
| template_t__CAN__ERR__FLAG.list_item(62) = op_254; |
| template_t__CAN__ERR__FLAG.list_item(63) = op_255; |
| template_t__CAN__ERR__FLAG.list_item(64) = op_32; |
| template_t__CAN__ERR__FLAG.list_item(65) = op_33; |
| template_t__CAN__ERR__FLAG.list_item(66) = op_34; |
| template_t__CAN__ERR__FLAG.list_item(67) = op_35; |
| template_t__CAN__ERR__FLAG.list_item(68) = op_36; |
| template_t__CAN__ERR__FLAG.list_item(69) = op_37; |
| template_t__CAN__ERR__FLAG.list_item(70) = op_38; |
| template_t__CAN__ERR__FLAG.list_item(71) = op_39; |
| template_t__CAN__ERR__FLAG.list_item(72) = op_40; |
| template_t__CAN__ERR__FLAG.list_item(73) = op_41; |
| template_t__CAN__ERR__FLAG.list_item(74) = op_42; |
| template_t__CAN__ERR__FLAG.list_item(75) = op_43; |
| template_t__CAN__ERR__FLAG.list_item(76) = op_44; |
| template_t__CAN__ERR__FLAG.list_item(77) = op_45; |
| template_t__CAN__ERR__FLAG.list_item(78) = op_46; |
| template_t__CAN__ERR__FLAG.list_item(79) = op_47; |
| template_t__CAN__ERR__FLAG.list_item(80) = op_48; |
| template_t__CAN__ERR__FLAG.list_item(81) = op_49; |
| template_t__CAN__ERR__FLAG.list_item(82) = op_50; |
| template_t__CAN__ERR__FLAG.list_item(83) = op_51; |
| template_t__CAN__ERR__FLAG.list_item(84) = op_52; |
| template_t__CAN__ERR__FLAG.list_item(85) = op_53; |
| template_t__CAN__ERR__FLAG.list_item(86) = op_54; |
| template_t__CAN__ERR__FLAG.list_item(87) = op_55; |
| template_t__CAN__ERR__FLAG.list_item(88) = op_56; |
| template_t__CAN__ERR__FLAG.list_item(89) = op_57; |
| template_t__CAN__ERR__FLAG.list_item(90) = op_58; |
| template_t__CAN__ERR__FLAG.list_item(91) = op_59; |
| template_t__CAN__ERR__FLAG.list_item(92) = op_60; |
| template_t__CAN__ERR__FLAG.list_item(93) = op_61; |
| template_t__CAN__ERR__FLAG.list_item(94) = op_62; |
| template_t__CAN__ERR__FLAG.list_item(95) = op_63; |
| template_t__CAN__ERR__FLAG.list_item(96) = op_96; |
| template_t__CAN__ERR__FLAG.list_item(97) = op_97; |
| template_t__CAN__ERR__FLAG.list_item(98) = op_98; |
| template_t__CAN__ERR__FLAG.list_item(99) = op_99; |
| template_t__CAN__ERR__FLAG.list_item(100) = op_100; |
| template_t__CAN__ERR__FLAG.list_item(101) = op_101; |
| template_t__CAN__ERR__FLAG.list_item(102) = op_102; |
| template_t__CAN__ERR__FLAG.list_item(103) = op_103; |
| template_t__CAN__ERR__FLAG.list_item(104) = op_104; |
| template_t__CAN__ERR__FLAG.list_item(105) = op_105; |
| template_t__CAN__ERR__FLAG.list_item(106) = op_106; |
| template_t__CAN__ERR__FLAG.list_item(107) = op_107; |
| template_t__CAN__ERR__FLAG.list_item(108) = op_108; |
| template_t__CAN__ERR__FLAG.list_item(109) = op_109; |
| template_t__CAN__ERR__FLAG.list_item(110) = op_110; |
| template_t__CAN__ERR__FLAG.list_item(111) = op_111; |
| template_t__CAN__ERR__FLAG.list_item(112) = op_112; |
| template_t__CAN__ERR__FLAG.list_item(113) = op_113; |
| template_t__CAN__ERR__FLAG.list_item(114) = op_114; |
| template_t__CAN__ERR__FLAG.list_item(115) = op_115; |
| template_t__CAN__ERR__FLAG.list_item(116) = op_116; |
| template_t__CAN__ERR__FLAG.list_item(117) = op_117; |
| template_t__CAN__ERR__FLAG.list_item(118) = op_118; |
| template_t__CAN__ERR__FLAG.list_item(119) = op_119; |
| template_t__CAN__ERR__FLAG.list_item(120) = op_120; |
| template_t__CAN__ERR__FLAG.list_item(121) = op_121; |
| template_t__CAN__ERR__FLAG.list_item(122) = op_122; |
| template_t__CAN__ERR__FLAG.list_item(123) = op_123; |
| template_t__CAN__ERR__FLAG.list_item(124) = op_124; |
| template_t__CAN__ERR__FLAG.list_item(125) = op_125; |
| template_t__CAN__ERR__FLAG.list_item(126) = op_126; |
| template_t__CAN__ERR__FLAG.list_item(127) = op_127; |
| } |
| |
| |
| } /* end of namespace */ |