Newer
Older
#include "LibItsCam_EncdecDeclarations.hh"
namespace LibItsCam__EncdecDeclarations {
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/****************************************************
* @desc External function to encode a CamReq type
* @param value to encode
* @return encoded value
****************************************************/
BITSTRING fx__enc__CamReq(const LibItsCam__TestSystem::CamReq& p_camReq)
{
loggers::get_instance().log_msg(">>> fx__enc__CamReq: ", p_camReq);
CAMCodec codec;
OCTETSTRING os;
if (codec.encode(p_camReq.msgOut(), os) == -1) {
loggers::get_instance().warning("fx__enc__CamReq: -1 result code was returned");
return int2bit(0, 1);
}
return oct2bit(os);
}
/****************************************************
* @desc External function to decode a DenmReq type
* @param value to encode
* @return encoded value
****************************************************/
INTEGER fx__dec__CamReq(BITSTRING& b, LibItsCam__TestSystem::CamReq& p)
{
loggers::get_instance().log(">>> fx__dec__CamReq");
CAMCodec codec;
CAM__PDU__Descriptions::CAM cam;
OCTETSTRING is = bit2oct(b);
if (codec.decode(is, cam) == -1) {
loggers::get_instance().warning("fx__dec__CamReq: -1 result code was returned");
return -1;
}
p.msgOut() = cam;
return 0;
}
INTEGER fx__dec__CamInd(BITSTRING& b, LibItsCam__TestSystem::CamInd& p_camInd)
{
loggers::get_instance().log_msg(">>> fx__enc__CamInd: ", p_camInd);
CAMCodec codec;
CAM__PDU__Descriptions::CAM cam;
OCTETSTRING is = bit2oct(b);
// Calculate the size of the lower layers information
LibItsCam__TestSystem::CamInd_gnNextHeader_raw_.fieldlength +
LibItsCam__TestSystem::CamInd_gnHeaderType_raw_.fieldlength +
LibItsCam__TestSystem::CamInd_gnHeaderSubtype_raw_.fieldlength +
LibItsCam__TestSystem::CamInd_gnLifetime_raw_.fieldlength +
LibItsCam__TestSystem::CamInd_gnTrafficClass_raw_.fieldlength +
LibItsCam__TestSystem::CamInd_btpDestinationPort_raw_.fieldlength +
LibItsCam__TestSystem::CamInd_btpInfo_raw_.fieldlength +
LibItsCam__TestSystem::CamInd_ssp_raw_.fieldlength +
LibItsCam__TestSystem::CamInd_its__aid_raw_.fieldlength
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
if (codec.decode(OCTETSTRING(is.lengthof() - s, static_cast<const unsigned char *>(is)), cam) == -1) {
loggers::get_instance().warning("fx__dec__CamInd: -1 result code was returned");
return -1;
}
p_camInd.msgIn() = cam;
TTCN_Buffer decoding_buffer(OCTETSTRING(is.lengthof() - s, static_cast<const unsigned char *>(is) + is.lengthof() - s));
for (int i = 1; i < p_camInd.get_count(); i++) {
p_camInd.get_at(i)->decode(*p_camInd.fld_descr(i), decoding_buffer, TTCN_EncDec::CT_RAW);
} // End of 'for' statement
return 0;
}
BITSTRING fx__enc__CAM(const CAM__PDU__Descriptions::CAM& p_cam)
{
loggers::get_instance().log_msg(">>> fx__enc__CAM: ", p_cam);
CAMCodec codec;
OCTETSTRING os;
codec.encode(p_cam, os);
return oct2bit(os);
}
INTEGER fx__dec__CAM(BITSTRING& b, CAM__PDU__Descriptions::CAM& p)
{
loggers::get_instance().log(">>> fx__dec__CAM");
CAMCodec codec;
OCTETSTRING is = bit2oct(b);
if (codec.decode(OCTETSTRING(is.lengthof(), static_cast<const unsigned char *>(is)), p) == -1) {
loggers::get_instance().warning("fx__dec__CAM: -1 result code was returned");
return -1;
}
return 0;
}