anjana_sreekumar@infosys.com | 991c206 | 2020-01-08 11:42:57 +0530 | [diff] [blame^] | 1 | /* |
| 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 | |
| 92 | GtpV2IeFactory::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 | |
| 314 | GtpV2IeFactory::~GtpV2IeFactory() { |
| 315 | // TODO clean up the allocated memory for message objects |
| 316 | } |
| 317 | |
| 318 | GtpV2IeFactory& GtpV2IeFactory::getInstance() |
| 319 | { |
| 320 | static GtpV2IeFactory gtpV2IeFactory; |
| 321 | return gtpV2IeFactory; |
| 322 | } |
| 323 | |
| 324 | GtpV2Ie& GtpV2IeFactory::getIeObject(Uint8 ieType) |
| 325 | { |
| 326 | std::map<Uint8, GtpV2Ie*>::iterator it; |
| 327 | it = ieObjectContainer.find(ieType); |
| 328 | return *(it->second); |
| 329 | } |