blob: 9420b0e8f00e79eed0781407effb1c63a1d0fab1 [file] [log] [blame]
anjana_sreekumar@infosys.com991c2062020-01-08 11:42:57 +05301/*
2 * Copyright (c) 2019, Infosys Ltd.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef STRUCTS_H_
18#define STRUCTS_H_
19
20#include <iostream>
21#include "msgType.h"
22#include "s1ap_structs.h"
23#include "ue_table.h"
24#include "s11_structs.h"
25#include <utils/mmeProcedureTypes.h>
26
27
28class Tai
29{
30 public:
31 Tai();
32 Tai( const TAI& tai_i );
33 ~Tai();
34 void operator = ( const Tai& tai_i );
35 public:
36 TAI tai_m;
37};
38
39class Cgi
40{
41 public:
42 Cgi();
43 Cgi( const CGI& cgi_i );
44 ~Cgi();
45 void operator = ( const Cgi& cgi_i );
46 public:
47 CGI cgi_m;
48};
49
50class Stmsi
51{
52 public:
53 Stmsi();
54 Stmsi( const STMSI& stmsi_i );
55 ~Stmsi();
56 void operator = ( const Stmsi& stmsi_i );
57 public:
58 STMSI stmsi_m;
59};
60
61
62class Arp
63{
64 public:
65 Arp();
66 Arp( const ARP& arp_i );
67 ~Arp();
68 void operator = ( const Arp& arp_i );
69 public:
70 ARP arp_m;
71};
72
73class Ms_net_capab
74{
75 public:
76 Ms_net_capab();
77 Ms_net_capab( const MS_net_capab& ms_net_capb_i );
78 ~Ms_net_capab();
79 void operator = ( const Ms_net_capab& ms_net_capb_i );
80 public:
81 MS_net_capab ms_net_capab_m;
82};
83
84class Ue_net_capab
85{
86 public:
87 Ue_net_capab();
88 Ue_net_capab( const UE_net_capab& ue_net_capab_i );
89 ~Ue_net_capab();
90 void operator = ( const Ue_net_capab& ue_net_capab_i );
91 public:
92 UE_net_capab ue_net_capab_m;
93};
94
95class Secinfo
96{
97 public:
98 Secinfo();
99 Secinfo( const secinfo& secinfo_i );
100 ~Secinfo();
101 void operator = ( const Secinfo& secinfo_i );
102 public:
103 secinfo secinfo_m;
104};
105
106class Ambr
107{
108 public:
109 Ambr();
110 Ambr( const AMBR& ambr_i );
111 ~Ambr();
112 void operator = ( const Ambr& ambr_i );
113 public:
114 AMBR ambr_m;
115};
116
117class E_utran_sec_vector
118{
119 public:
120 E_utran_sec_vector();
121 E_utran_sec_vector( const E_UTRAN_sec_vector& secinfo_i );
122 ~E_utran_sec_vector();
123 void operator = ( const E_utran_sec_vector& secinfo_i );
124 friend std::ostream& operator << ( std::ostream& os, const E_utran_sec_vector& data_i );
125 public:
126 E_UTRAN_sec_vector* AiaSecInfo_mp;
127};
128
129class Fteid
130{
131 public:
132 Fteid();
133 Fteid( const fteid& fteid_i );
134 ~Fteid();
135 void operator = ( const Fteid& fteid_i );
136 public:
137 fteid fteid_m;
138};
139
140class Paa
141{
142 public:
143 Paa();
144 Paa( const PAA& paa_i );
145 ~Paa();
146 void operator = ( const Paa& paa_i );
147 public:
148 PAA paa_m;
149};
150
151class Apn_name
152{
153 public:
154 Apn_name();
155 Apn_name( const apn_name& apn_name_i );
156 ~Apn_name();
157 void operator = ( const Apn_name& apn_name_i );
158 public:
159 apn_name apnname_m;
160};
161
162class DigitRegister15
163{
164 public:
165 DigitRegister15();
166 void convertToBcdArray(uint8_t* arrayOut) const;
167 void convertFromBcdArray(const uint8_t* bcdArrayIn);
168 void setImsiDigits( uint8_t* digitsArrayIn );
169 void getImsiDigits( uint8_t* digitsArrayIn ) const;
170 bool isValid() const;
171 void operator = ( const DigitRegister15& data_i );
172 bool operator == ( const DigitRegister15& data_i )const;
173 bool operator < ( const DigitRegister15& data_i )const;
174
175 friend std::ostream& operator << ( std::ostream& os, const DigitRegister15& data_i );
176
177 private:
178
179 uint8_t digitsArray[15];
180};
181
182#endif