blob: f10109fb216d90ab2ff05b3452f9b05cc3bf7419 [file] [log] [blame]
anjana_sreekumar@infosys.com991c2062020-01-08 11:42:57 +05301/*
2 * Copyright 2019-present Infosys Limited  
3 *   
4 * SPDX-License-Identifier: Apache-2.0    
5 */
6
7/******************************************************************************
8 *
9 * This is an auto generated file.
10 * Please do not edit this file.
11 * All edits to be made through template source file
12 * <TOP-DIR/scripts/GtpV2StackCodeGen/tts/iefactorytemplate.cpp.tt>
13 ******************************************************************************/
14
15#include <map>
16#include "gtpV2IeFactory.h"
17#include "manual/gtpV2Ie.h"
18#include "gtpV2GrpIeDataTypes.h"
19#include "imsiIe.h"
20#include "causeIe.h"
21#include "msisdnIe.h"
22#include "meiIe.h"
23#include "uliIe.h"
24#include "servingNetworkIe.h"
25#include "ratTypeIe.h"
26#include "indicationIe.h"
27#include "fTeidIe.h"
28#include "apnIe.h"
29#include "selectionModeIe.h"
30#include "pdnTypeIe.h"
31#include "paaIe.h"
32#include "apnRestrictionIe.h"
33#include "ambrMmbrIe.h"
34#include "ambrIe.h"
35#include "ebiIe.h"
36#include "pcoIe.h"
37#include "traceInformationIe.h"
38#include "recoveryIe.h"
39#include "ueTimeZoneIe.h"
40#include "uciIe.h"
41#include "chargingCharacteristicsIe.h"
42#include "localDistinguishedNameIe.h"
43#include "signallingPriorityIndicationIe.h"
44#include "additionalProtocolConfigurationOptionsIe.h"
45#include "fqCsidIe.h"
46#include "bearerTftIe.h"
47#include "bearerQosIe.h"
48#include "changeReportingActionIe.h"
49#include "csgInformationReportingActionIe.h"
50#include "fqdnIe.h"
51#include "epcTimerIe.h"
52#include "chargingIdIe.h"
53#include "bearerFlagsIe.h"
54#include "ipAddressIe.h"
55#include "delayValueIe.h"
56#include "portNumberIe.h"
57#include "cnOperatorSelectionEntityIe.h"
58#include "servingPlmnRateControlIe.h"
59#include "counterIe.h"
60#include "twanIdentifierIe.h"
61#include "twanIdentifierTimestampIe.h"
62#include "secondaryRatUsageDataReportIe.h"
63#include "ranNasCauseIe.h"
64#include "epcoIe.h"
65#include "maximumPacketLossRateIe.h"
66#include "fContainerIe.h"
67#include "nodeIdentifierIe.h"
68#include "upFunctionSelectionIndicationFlagsIe.h"
69#include "henbInformationReportingIe.h"
70#include "ip4cpIe.h"
71#include "presenceReportingAreaActionIe.h"
72#include "nodeTypeIe.h"
73#include "ptiIe.h"
74#include "twmiIe.h"
75#include "millisecondTimeStampIe.h"
76#include "integerNumberIe.h"
77#include "mappedUeUsageTypeIe.h"
78#include "uliTimestampIe.h"
79#include "metricIe.h"
80#include "remoteUserIdIe.h"
81#include "remoteUeIpInformationIe.h"
82#include "sequenceNumberIe.h"
83#include "apnAndRelativeCapacityIe.h"
84#include "arpIe.h"
85#include "throttlingIe.h"
86#include "pagingAndServiceInformationIe.h"
87#include "bearerContextIe.h"
88#include "overloadControlInformationIe.h"
89#include "loadControlInformationIe.h"
90#include "remoteUeContextIe.h"
91
92GtpV2IeFactory::GtpV2IeFactory()
93{
94 //Create Message Objects
95 ImsiIe* imsiIe_p = new (ImsiIe);
96 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(ImsiIeType, imsiIe_p));
97
98 CauseIe* causeIe_p = new (CauseIe);
99 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(CauseIeType, causeIe_p));
100
101 MsisdnIe* msisdnIe_p = new (MsisdnIe);
102 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(MsisdnIeType, msisdnIe_p));
103
104 MeiIe* meiIe_p = new (MeiIe);
105 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(MeiIeType, meiIe_p));
106
107 UliIe* uliIe_p = new (UliIe);
108 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(UliIeType, uliIe_p));
109
110 ServingNetworkIe* servingNetworkIe_p = new (ServingNetworkIe);
111 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(ServingNetworkIeType, servingNetworkIe_p));
112
113 RatTypeIe* ratTypeIe_p = new (RatTypeIe);
114 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(RatTypeIeType, ratTypeIe_p));
115
116 IndicationIe* indicationIe_p = new (IndicationIe);
117 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(IndicationIeType, indicationIe_p));
118
119 FTeidIe* fTeidIe_p = new (FTeidIe);
120 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(FTeidIeType, fTeidIe_p));
121
122 ApnIe* apnIe_p = new (ApnIe);
123 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(ApnIeType, apnIe_p));
124
125 SelectionModeIe* selectionModeIe_p = new (SelectionModeIe);
126 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(SelectionModeIeType, selectionModeIe_p));
127
128 PdnTypeIe* pdnTypeIe_p = new (PdnTypeIe);
129 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(PdnTypeIeType, pdnTypeIe_p));
130
131 PaaIe* paaIe_p = new (PaaIe);
132 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(PaaIeType, paaIe_p));
133
134 ApnRestrictionIe* apnRestrictionIe_p = new (ApnRestrictionIe);
135 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(ApnRestrictionIeType, apnRestrictionIe_p));
136
137 AmbrMmbrIe* ambrMmbrIe_p = new (AmbrMmbrIe);
138 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(AmbrMmbrIeType, ambrMmbrIe_p));
139
140 AmbrIe* ambrIe_p = new (AmbrIe);
141 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(AmbrIeType, ambrIe_p));
142
143 EbiIe* ebiIe_p = new (EbiIe);
144 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(EbiIeType, ebiIe_p));
145
146 PcoIe* pcoIe_p = new (PcoIe);
147 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(PcoIeType, pcoIe_p));
148
149 TraceInformationIe* traceInformationIe_p = new (TraceInformationIe);
150 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(TraceInformationIeType, traceInformationIe_p));
151
152 RecoveryIe* recoveryIe_p = new (RecoveryIe);
153 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(RecoveryIeType, recoveryIe_p));
154
155 UeTimeZoneIe* ueTimeZoneIe_p = new (UeTimeZoneIe);
156 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(UeTimeZoneIeType, ueTimeZoneIe_p));
157
158 UciIe* uciIe_p = new (UciIe);
159 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(UciIeType, uciIe_p));
160
161 ChargingCharacteristicsIe* chargingCharacteristicsIe_p = new (ChargingCharacteristicsIe);
162 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(ChargingCharacteristicsIeType, chargingCharacteristicsIe_p));
163
164 LocalDistinguishedNameIe* localDistinguishedNameIe_p = new (LocalDistinguishedNameIe);
165 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(LocalDistinguishedNameIeType, localDistinguishedNameIe_p));
166
167 SignallingPriorityIndicationIe* signallingPriorityIndicationIe_p = new (SignallingPriorityIndicationIe);
168 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(SignallingPriorityIndicationIeType, signallingPriorityIndicationIe_p));
169
170 AdditionalProtocolConfigurationOptionsIe* additionalProtocolConfigurationOptionsIe_p = new (AdditionalProtocolConfigurationOptionsIe);
171 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(AdditionalProtocolConfigurationOptionsIeType, additionalProtocolConfigurationOptionsIe_p));
172
173 FqCsidIe* fqCsidIe_p = new (FqCsidIe);
174 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(FqCsidIeType, fqCsidIe_p));
175
176 BearerTftIe* bearerTftIe_p = new (BearerTftIe);
177 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(BearerTftIeType, bearerTftIe_p));
178
179 BearerQosIe* bearerQosIe_p = new (BearerQosIe);
180 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(BearerQosIeType, bearerQosIe_p));
181
182 ChangeReportingActionIe* changeReportingActionIe_p = new (ChangeReportingActionIe);
183 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(ChangeReportingActionIeType, changeReportingActionIe_p));
184
185 CsgInformationReportingActionIe* csgInformationReportingActionIe_p = new (CsgInformationReportingActionIe);
186 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(CsgInformationReportingActionIeType, csgInformationReportingActionIe_p));
187
188 FqdnIe* fqdnIe_p = new (FqdnIe);
189 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(FqdnIeType, fqdnIe_p));
190
191 EpcTimerIe* epcTimerIe_p = new (EpcTimerIe);
192 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(EpcTimerIeType, epcTimerIe_p));
193
194 ChargingIdIe* chargingIdIe_p = new (ChargingIdIe);
195 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(ChargingIdIeType, chargingIdIe_p));
196
197 BearerFlagsIe* bearerFlagsIe_p = new (BearerFlagsIe);
198 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(BearerFlagsIeType, bearerFlagsIe_p));
199
200 IpAddressIe* ipAddressIe_p = new (IpAddressIe);
201 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(IpAddressIeType, ipAddressIe_p));
202
203 DelayValueIe* delayValueIe_p = new (DelayValueIe);
204 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(DelayValueIeType, delayValueIe_p));
205
206 PortNumberIe* portNumberIe_p = new (PortNumberIe);
207 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(PortNumberIeType, portNumberIe_p));
208
209 CnOperatorSelectionEntityIe* cnOperatorSelectionEntityIe_p = new (CnOperatorSelectionEntityIe);
210 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(CnOperatorSelectionEntityIeType, cnOperatorSelectionEntityIe_p));
211
212 ServingPlmnRateControlIe* servingPlmnRateControlIe_p = new (ServingPlmnRateControlIe);
213 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(ServingPlmnRateControlIeType, servingPlmnRateControlIe_p));
214
215 CounterIe* counterIe_p = new (CounterIe);
216 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(CounterIeType, counterIe_p));
217
218 TwanIdentifierIe* twanIdentifierIe_p = new (TwanIdentifierIe);
219 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(TwanIdentifierIeType, twanIdentifierIe_p));
220
221 TwanIdentifierTimestampIe* twanIdentifierTimestampIe_p = new (TwanIdentifierTimestampIe);
222 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(TwanIdentifierTimestampIeType, twanIdentifierTimestampIe_p));
223
224 SecondaryRatUsageDataReportIe* secondaryRatUsageDataReportIe_p = new (SecondaryRatUsageDataReportIe);
225 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(SecondaryRatUsageDataReportIeType, secondaryRatUsageDataReportIe_p));
226
227 RanNasCauseIe* ranNasCauseIe_p = new (RanNasCauseIe);
228 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(RanNasCauseIeType, ranNasCauseIe_p));
229
230 EpcoIe* epcoIe_p = new (EpcoIe);
231 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(EpcoIeType, epcoIe_p));
232
233 MaximumPacketLossRateIe* maximumPacketLossRateIe_p = new (MaximumPacketLossRateIe);
234 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(MaximumPacketLossRateIeType, maximumPacketLossRateIe_p));
235
236 FContainerIe* fContainerIe_p = new (FContainerIe);
237 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(FContainerIeType, fContainerIe_p));
238
239 NodeIdentifierIe* nodeIdentifierIe_p = new (NodeIdentifierIe);
240 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(NodeIdentifierIeType, nodeIdentifierIe_p));
241
242 UpFunctionSelectionIndicationFlagsIe* upFunctionSelectionIndicationFlagsIe_p = new (UpFunctionSelectionIndicationFlagsIe);
243 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(UpFunctionSelectionIndicationFlagsIeType, upFunctionSelectionIndicationFlagsIe_p));
244
245 HenbInformationReportingIe* henbInformationReportingIe_p = new (HenbInformationReportingIe);
246 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(HenbInformationReportingIeType, henbInformationReportingIe_p));
247
248 Ip4cpIe* ip4cpIe_p = new (Ip4cpIe);
249 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(Ip4cpIeType, ip4cpIe_p));
250
251 PresenceReportingAreaActionIe* presenceReportingAreaActionIe_p = new (PresenceReportingAreaActionIe);
252 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(PresenceReportingAreaActionIeType, presenceReportingAreaActionIe_p));
253
254 NodeTypeIe* nodeTypeIe_p = new (NodeTypeIe);
255 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(NodeTypeIeType, nodeTypeIe_p));
256
257 PtiIe* ptiIe_p = new (PtiIe);
258 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(PtiIeType, ptiIe_p));
259
260 TwmiIe* twmiIe_p = new (TwmiIe);
261 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(TwmiIeType, twmiIe_p));
262
263 MillisecondTimeStampIe* millisecondTimeStampIe_p = new (MillisecondTimeStampIe);
264 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(MillisecondTimeStampIeType, millisecondTimeStampIe_p));
265
266 IntegerNumberIe* integerNumberIe_p = new (IntegerNumberIe);
267 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(IntegerNumberIeType, integerNumberIe_p));
268
269 MappedUeUsageTypeIe* mappedUeUsageTypeIe_p = new (MappedUeUsageTypeIe);
270 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(MappedUeUsageTypeIeType, mappedUeUsageTypeIe_p));
271
272 UliTimestampIe* uliTimestampIe_p = new (UliTimestampIe);
273 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(UliTimestampIeType, uliTimestampIe_p));
274
275 MetricIe* metricIe_p = new (MetricIe);
276 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(MetricIeType, metricIe_p));
277
278 RemoteUserIdIe* remoteUserIdIe_p = new (RemoteUserIdIe);
279 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(RemoteUserIdIeType, remoteUserIdIe_p));
280
281 RemoteUeIpInformationIe* remoteUeIpInformationIe_p = new (RemoteUeIpInformationIe);
282 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(RemoteUeIpInformationIeType, remoteUeIpInformationIe_p));
283
284 SequenceNumberIe* sequenceNumberIe_p = new (SequenceNumberIe);
285 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(SequenceNumberIeType, sequenceNumberIe_p));
286
287 ApnAndRelativeCapacityIe* apnAndRelativeCapacityIe_p = new (ApnAndRelativeCapacityIe);
288 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(ApnAndRelativeCapacityIeType, apnAndRelativeCapacityIe_p));
289
290 ArpIe* arpIe_p = new (ArpIe);
291 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(ArpIeType, arpIe_p));
292
293 ThrottlingIe* throttlingIe_p = new (ThrottlingIe);
294 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(ThrottlingIeType, throttlingIe_p));
295
296 PagingAndServiceInformationIe* pagingAndServiceInformationIe_p = new (PagingAndServiceInformationIe);
297 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(PagingAndServiceInformationIeType, pagingAndServiceInformationIe_p));
298
299 BearerContextIe* bearerContextIe_p = new (BearerContextIe);
300 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(BearerContextIeType, bearerContextIe_p));
301
302 OverloadControlInformationIe* overloadControlInformationIe_p = new (OverloadControlInformationIe);
303 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(OverloadControlInformationIeType, overloadControlInformationIe_p));
304
305 LoadControlInformationIe* loadControlInformationIe_p = new (LoadControlInformationIe);
306 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(LoadControlInformationIeType, loadControlInformationIe_p));
307
308 RemoteUeContextIe* remoteUeContextIe_p = new (RemoteUeContextIe);
309 ieObjectContainer.insert(std::pair<Uint8, GtpV2Ie*>(RemoteUeContextIeType, remoteUeContextIe_p));
310
311
312}
313
314GtpV2IeFactory::~GtpV2IeFactory() {
315 // TODO clean up the allocated memory for message objects
316}
317
318GtpV2IeFactory& GtpV2IeFactory::getInstance()
319{
320 static GtpV2IeFactory gtpV2IeFactory;
321 return gtpV2IeFactory;
322}
323
324GtpV2Ie& GtpV2IeFactory::getIeObject(Uint8 ieType)
325{
326 std::map<Uint8, GtpV2Ie*>::iterator it;
327 it = ieObjectContainer.find(ieType);
328 return *(it->second);
329}