telephonyprotocols/qos3gppcpr/inc/Qos3GPP_subconparams.inl
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // Inline Functions file for the 3GPP SubConnection Extension Parameters
       
    15 // 
       
    16 //
       
    17 
       
    18 /**
       
    19  @file
       
    20  @publishedAll
       
    21  @released
       
    22 */
       
    23 
       
    24 
       
    25 
       
    26 #ifndef QOS3GPP_SUBCONPARAMS_INL
       
    27 #define QOS3GPP_SUBCONPARAMS_INL
       
    28 
       
    29 /**
       
    30 @param      aFamily the sub-connection parameter family to which the newly created object is to be added
       
    31 @param      aType The type of the set from TParameterSetType (ERequested, EAcceptable or EGranted)
       
    32 @return     pointer to the created object
       
    33 @publishedAll
       
    34 @released Since 9.3
       
    35 */
       
    36 CSubConQosR99ParamSet* CSubConQosR99ParamSet::NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType)
       
    37     {
       
    38     CSubConQosR99ParamSet* obj = NewL();
       
    39     CleanupStack::PushL(obj);
       
    40     aFamily.AddExtensionSetL(*obj, aType);
       
    41     CleanupStack::Pop(obj);
       
    42     return obj;
       
    43     }
       
    44 
       
    45 /**
       
    46 @param      aFamily the parameter family to which the newly created object is to be added
       
    47 @param      aType The type of the set from TParameterSetType (ERequested, EAcceptable or EGranted)
       
    48 @return     pointer to the created object
       
    49 @publishedAll
       
    50 @released Since 9.3
       
    51 */
       
    52 CSubConQosR99ParamSet* CSubConQosR99ParamSet::NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType)
       
    53     {
       
    54     CSubConQosR99ParamSet* obj = NewL();
       
    55     CleanupStack::PushL(obj);
       
    56     aFamily.AddParameterSetL(obj, aType);
       
    57     CleanupStack::Pop(obj);
       
    58     return obj;
       
    59     }
       
    60 
       
    61 /**
       
    62 @return     pointer to the created object
       
    63 @publishedAll
       
    64 @released Since 9.3
       
    65 */
       
    66 CSubConQosR99ParamSet* CSubConQosR99ParamSet::NewL()
       
    67     {
       
    68     STypeId typeId = STypeId::CreateSTypeId(KSubCon3GPPExtParamsFactoryUid, KSubConQosR99ParamsType);
       
    69     return static_cast<CSubConQosR99ParamSet*>(CSubConParameterSet::NewL(typeId));
       
    70     }
       
    71 
       
    72 /**
       
    73 @publishedAll
       
    74 @released Since 9.3
       
    75 */
       
    76 CSubConQosR99ParamSet::CSubConQosR99ParamSet()
       
    77     : CSubConExtensionParameterSet(),
       
    78     iTrafficClass(RPacketQoS::ETrafficClassUnspecified),
       
    79     iDeliveryOrder(RPacketQoS::EDeliveryOrderUnspecified),
       
    80     iDeliveryOfErroneusSdu(RPacketQoS::EErroneousSDUDeliveryUnspecified),
       
    81     iResidualBer(RPacketQoS::EBERUnspecified),
       
    82     iErrorRatio(RPacketQoS::ESDUErrorRatioUnspecified),
       
    83     iPriority(RPacketQoS::ETrafficPriorityUnspecified),
       
    84     iTransferDelay(0),
       
    85     iMaxSduSize(0),
       
    86     iMaxBitrateUplink(0),
       
    87     iMaxBitrateDownlink(0),
       
    88     iGuaBitrateUplink(0),
       
    89     iGuaBitrateDownlink(0)
       
    90     {
       
    91     }
       
    92 
       
    93 /** Identifies the current traffic class. Traffic class is; Converstional, Streaming, Interactive or Background.
       
    94 See 3GPP TS 23.107.
       
    95 @return the traffic class
       
    96 @publishedAll
       
    97 @released Since 9.3
       
    98 */
       
    99 RPacketQoS::TTrafficClass CSubConQosR99ParamSet::GetTrafficClass() const
       
   100     {
       
   101     return iTrafficClass;
       
   102     }
       
   103 
       
   104 /** Current delivery order. Indicates whether the bearer shall provide in-sequence SDU delivery or not.
       
   105 @return Current delivery order. 
       
   106 @publishedAll
       
   107 @released Since 9.3
       
   108 */
       
   109 RPacketQoS::TDeliveryOrder CSubConQosR99ParamSet::GetDeliveryOrder() const
       
   110     {
       
   111     return iDeliveryOrder;
       
   112     }
       
   113 
       
   114 /** Current delivery of erroneous SDUs. Indicates whether SDUs detected as erroneous shall be delivered or discarded.
       
   115 @return Current delivery of erroneous SDUs. 
       
   116 @publishedAll
       
   117 @released Since 9.3
       
   118 */
       
   119 RPacketQoS::TErroneousSDUDelivery CSubConQosR99ParamSet::GetErroneousSDUDelivery() const
       
   120     {
       
   121     return iDeliveryOfErroneusSdu;
       
   122     }
       
   123 
       
   124 /** Indicates the undetected bit error ratio in the delivered SDUs. If no error detection is
       
   125 requested, Residual bit error ratio indicates the bit error ratio in
       
   126 the delivered SDUs.
       
   127 @return the residual bit error ratio. 
       
   128 @publishedAll
       
   129 @released Since 9.3
       
   130 */
       
   131 RPacketQoS::TBitErrorRatio CSubConQosR99ParamSet::GetResidualBitErrorRatio() const
       
   132     {
       
   133     return iResidualBer;
       
   134     }
       
   135 
       
   136 /** Indicates the fraction of SDUs lost or detected as erroneous.
       
   137 @return the SDU error ratio.  
       
   138 @publishedAll
       
   139 @released Since 9.3
       
   140 */
       
   141 RPacketQoS::TSDUErrorRatio CSubConQosR99ParamSet::GetSDUErrorRatio() const
       
   142     {
       
   143     return iErrorRatio;
       
   144     }
       
   145 
       
   146 /** Current traffic handling priority. Specifies the relative importance for handling of all SDUs
       
   147 belonging to the UMTS bearer compared to the SDUs of other bearers. This is defined only for
       
   148 Interactive traffic class. See 3GPP TS 23.107
       
   149 @return the traffic handling priority. 
       
   150 @publishedAll
       
   151 @released Since 9.3
       
   152 */
       
   153 RPacketQoS::TTrafficHandlingPriority CSubConQosR99ParamSet::GetTrafficHandlingPriority() const
       
   154     {
       
   155     return iPriority;
       
   156     }
       
   157 
       
   158 /** @return the transfer delay. Indicates maximum delay for 95th percentile of the distribution
       
   159 of delay for all delivered SDUs during the lifetime of a bearer service, where delay for an SDU
       
   160 is defined as the time from a request to transfer an SDU at one SAP to its delivery at the other
       
   161 SAP. 
       
   162 @publishedAll
       
   163 @released Since 9.3
       
   164 */
       
   165 TInt CSubConQosR99ParamSet::GetTransferDelay() const
       
   166     {
       
   167     return iTransferDelay;
       
   168     }
       
   169 
       
   170 /** @return the maximum SDU size. 
       
   171 @publishedAll
       
   172 @released Since 9.3
       
   173 */
       
   174 TInt CSubConQosR99ParamSet::GetMaxSduSize() const
       
   175     {
       
   176     return iMaxSduSize;
       
   177     }
       
   178 
       
   179 /** @return Current maximum bitrate for uplink direction. The traffic is conformant with Maximum
       
   180 bitrate as long as it follows a token bucket algorithm where token rate equals Maximum bitrate
       
   181 and bucket size equals Maximum SDU size.
       
   182 @publishedAll
       
   183 @released Since 9.3
       
   184 */
       
   185 TInt CSubConQosR99ParamSet::GetMaxBitrateUplink() const
       
   186     {
       
   187     return iMaxBitrateUplink;
       
   188     }
       
   189 
       
   190 /** Getter function for the maximum downlink bit rate.
       
   191 @return the maximum downlink bit rate. 
       
   192 @publishedAll
       
   193 @released Since 9.3
       
   194 */
       
   195 TInt CSubConQosR99ParamSet::GetMaxBitrateDownlink() const
       
   196     {
       
   197     return iMaxBitrateDownlink;
       
   198     }
       
   199 
       
   200 /** Getter function for the guaranteed uplink bit rate.
       
   201 @return the guaranteed uplink bit rate. 
       
   202 @publishedAll
       
   203 @released Since 9.3
       
   204 */
       
   205 TInt CSubConQosR99ParamSet::GetGuaBitrateUplink() const
       
   206     {
       
   207     return iGuaBitrateUplink;
       
   208     }
       
   209 
       
   210 /** Getter function for the guaranteed downlink bit rate.
       
   211 @return the guaranteed downlink bit rate. 
       
   212 @publishedAll
       
   213 @released Since 9.3
       
   214 */
       
   215 TInt CSubConQosR99ParamSet::GetGuaBitrateDownlink() const
       
   216     {
       
   217     return iGuaBitrateDownlink;
       
   218     }
       
   219 
       
   220 /** Sets the traffic class.
       
   221 @param aTrafficClass Value to which to set the traffic class. 
       
   222 @publishedAll
       
   223 @released Since 9.3
       
   224 */
       
   225 void CSubConQosR99ParamSet::SetTrafficClass(RPacketQoS::TTrafficClass aTrafficClass)
       
   226     {
       
   227     iTrafficClass = aTrafficClass;
       
   228     }
       
   229 
       
   230 /** Sets the delivery order. Indicates whether in-sequence SDU delivery shall be provided or not.
       
   231 @param aDeliveryOrder Value to which to set the delivery order. 
       
   232 @publishedAll
       
   233 @released Since 9.3
       
   234 */
       
   235 void CSubConQosR99ParamSet::SetDeliveryOrder(RPacketQoS::TDeliveryOrder aDeliveryOrder)
       
   236     {
       
   237     iDeliveryOrder = aDeliveryOrder;
       
   238     }
       
   239 
       
   240 /** Sets the handling of the delivery of erroneous SDUs
       
   241 @param aDeliveryOfErroneusSdu Value to which to set the dilvery of erroneous SDUs.
       
   242 Indicates whether SUDs detected as erroneous shall be delivered or discarded. 
       
   243 @publishedAll
       
   244 @released Since 9.3
       
   245 */
       
   246 void CSubConQosR99ParamSet::SetErroneousSDUDelivery(RPacketQoS::TErroneousSDUDelivery aDeliveryOfErroneusSdu)
       
   247     {
       
   248     iDeliveryOfErroneusSdu = aDeliveryOfErroneusSdu;
       
   249     }
       
   250 
       
   251 /** Sets the residual bit error ratio. Indicates the undetected bit error ratio in the delivered SDUs.
       
   252 If no error detection is requested, Residual bit error ratio indicates the bit error ratio in the delivered SDUs.
       
   253 @param aResidualBer Value to which to set the residual bit error ratio. 
       
   254 @publishedAll
       
   255 @released Since 9.3
       
   256 */
       
   257 void CSubConQosR99ParamSet::SetResidualBitErrorRatio(RPacketQoS::TBitErrorRatio aResidualBer)
       
   258     {
       
   259     iResidualBer = aResidualBer;
       
   260     }
       
   261 
       
   262 /** Sets the error ratio. Indicates the fraction of SDUs lost or detected as erroneous.
       
   263 SDU error ratio is defined only for conforming traffic.
       
   264 @param aErrorRatio Sets the error ratio. Indicates the fraction of SDUs lost or detected as erroneous.
       
   265 SDU error ratio is defined only for conforming traffic. 
       
   266 @publishedAll
       
   267 @released Since 9.3
       
   268 */
       
   269 void CSubConQosR99ParamSet::SetSDUErrorRatio(RPacketQoS::TSDUErrorRatio aErrorRatio)
       
   270     {
       
   271     iErrorRatio = aErrorRatio;
       
   272     }
       
   273 
       
   274 /** Sets the traffic handling priority.
       
   275 @param aPriority Value to which to set the traffic handling priority. 
       
   276 @publishedAll
       
   277 @released Since 9.3
       
   278 */
       
   279 void CSubConQosR99ParamSet::SetTrafficHandlingPriority(RPacketQoS::TTrafficHandlingPriority aPriority)
       
   280     {
       
   281     iPriority = aPriority;
       
   282     }
       
   283 
       
   284 /** Sets the transfer delay. Indicates maximum delay for 95th percentile of the distribution of delay for
       
   285 all delivered SDUs during the lifetime of a bearer service, where delay for an SDU is defined as the time
       
   286 from a request to transfer an SDU at one SAP to its delivery at the other SAP.
       
   287 @param aTransferDelay Value to which to set the transfer delay. 
       
   288 @publishedAll
       
   289 @released Since 9.3
       
   290 */
       
   291 void CSubConQosR99ParamSet::SetTransferDelay(TInt aTransferDelay)
       
   292     {
       
   293     iTransferDelay = aTransferDelay;
       
   294     }
       
   295 
       
   296 /** Sets the maximum SDU size. Defines the maximum allowed SDU size.
       
   297 @param aMaxSduSize Value to which to set the maximum SDU size. 
       
   298 @publishedAll
       
   299 @released Since 9.3
       
   300 */
       
   301 void CSubConQosR99ParamSet::SetMaxSduSize(TInt aMaxSduSize)
       
   302     {
       
   303     iMaxSduSize = aMaxSduSize;
       
   304     }
       
   305 
       
   306 /** Sets the maximum bitrate for uplink direction. The traffic is conformant with Maximum bitrate as
       
   307 long as it follows a token bucket algorithm where token rate equals Maximum bitrate and bucket size
       
   308 equals Maximum SDU size.
       
   309 @param aMaxBitrate Value to which to set the maximum bitrate for uplink direction.
       
   310 @publishedAll
       
   311 @released Since 9.3
       
   312 */
       
   313 void CSubConQosR99ParamSet::SetMaxBitrateUplink(TInt aMaxBitrateUplink)
       
   314     {
       
   315     iMaxBitrateUplink = aMaxBitrateUplink;
       
   316     }
       
   317 
       
   318 /** Sets the maximum bitrate for downlink direction. The traffic is conformant with Maximum bitrate as
       
   319 long as it follows a token bucket algorithm where token rate equals Maximum bitrate and bucket size
       
   320 equals Maximum SDU size.
       
   321 @param aMaxBitrate Value to which to set the maximum bitrate for downlink direction.
       
   322 @publishedAll
       
   323 @released Since 9.3
       
   324 */
       
   325 void CSubConQosR99ParamSet::SetMaxBitrateDownlink(TInt aMaxBitrateDownlink)
       
   326     {
       
   327     iMaxBitrateDownlink = aMaxBitrateDownlink;
       
   328     }
       
   329 
       
   330 /** Sets the guaranteed bitrate for uplink direction.
       
   331 @param aGuaBitrateUplink Value to which to set the guaranteed SDU size.
       
   332 @publishedAll
       
   333 @released Since 9.3
       
   334 */
       
   335 void CSubConQosR99ParamSet::SetGuaBitrateUplink(TInt aGuaBitrateUplink)
       
   336     {
       
   337     iGuaBitrateUplink = aGuaBitrateUplink;
       
   338     }
       
   339 
       
   340 /** Sets the guaranteed bitrate for downlink direction.
       
   341 @param aGuaBitrateDownlink Value to which to set the guaranteed SDU size.
       
   342 @publishedAll
       
   343 @released Since 9.3
       
   344 */
       
   345 void CSubConQosR99ParamSet::SetGuaBitrateDownlink(TInt aGuaBitrateDownlink)
       
   346     {
       
   347     iGuaBitrateDownlink = aGuaBitrateDownlink;
       
   348     }
       
   349 
       
   350 
       
   351 #ifdef SYMBIAN_NETWORKING_UMTSR5
       
   352 /**
       
   353 @param aFamily the sub-connection parameter family to which the newly created object is to be added
       
   354 @param aType The type of the set from TParameterSetType (ERequested, EAcceptable or EGranted)
       
   355 @return pointer to the created object
       
   356 */
       
   357 CSubConImsExtParamSet* CSubConImsExtParamSet::NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType)
       
   358     {
       
   359     CSubConImsExtParamSet* obj = NewL();
       
   360     CleanupStack::PushL(obj);
       
   361     aFamily.AddExtensionSetL(*obj, aType);
       
   362     CleanupStack::Pop(obj);
       
   363     return obj;
       
   364     }
       
   365 
       
   366 /**
       
   367 @param      aFamily the parameter family to which the newly created object is to be added
       
   368 @param      aType The type of the set from TParameterSetType (ERequested, EAcceptable or EGranted)
       
   369 @return     pointer to the created object
       
   370 */
       
   371 CSubConImsExtParamSet* CSubConImsExtParamSet::NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType)
       
   372     {
       
   373     CSubConImsExtParamSet* obj = NewL();
       
   374     CleanupStack::PushL(obj);
       
   375     aFamily.AddParameterSetL(obj, aType);
       
   376     CleanupStack::Pop(obj);
       
   377     return obj;
       
   378     }
       
   379 
       
   380 /**
       
   381 @return pointer to the created object
       
   382 */
       
   383 CSubConImsExtParamSet* CSubConImsExtParamSet::NewL()
       
   384     {
       
   385     STypeId typeId = STypeId::CreateSTypeId(KSubCon3GPPExtParamsFactoryUid, KSubConImsExtParamsType);
       
   386     return static_cast<CSubConImsExtParamSet*>(CSubConParameterSet::NewL(typeId));
       
   387     }
       
   388 
       
   389 CSubConImsExtParamSet::CSubConImsExtParamSet()
       
   390     : iImsSignallingIndicator(EFalse)
       
   391     {
       
   392     }
       
   393 
       
   394 /** @return the IMS Signalling Indicator flag for 3GPP R5 dedicated signalling PDP contexts.
       
   395 */
       
   396 TBool CSubConImsExtParamSet::GetImsSignallingIndicator() const
       
   397     {
       
   398     return iImsSignallingIndicator;
       
   399     }
       
   400 
       
   401 /** Sets the IMS Signalling Indicator flag for 3GPP R5 dedicated signalling PDP contexts.
       
   402 @param aImsSignallingIndicator Value to which to set the IMS signalling indicator. */
       
   403 void CSubConImsExtParamSet::SetImsSignallingIndicator(TBool aImsSignallingIndicator)
       
   404     {
       
   405     iImsSignallingIndicator = aImsSignallingIndicator;
       
   406     }
       
   407 
       
   408 /**
       
   409 @param      aFamily the sub-connection parameter family to which the newly created object is to be added
       
   410 @param      aType The type of the set from TParameterSetType (ERequested, EAcceptable or EGranted)
       
   411 @return     pointer to the created object
       
   412 */
       
   413 CSubConQosR5ParamSet* CSubConQosR5ParamSet::NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType)
       
   414     {
       
   415     CSubConQosR5ParamSet* obj = NewL();
       
   416     CleanupStack::PushL(obj);
       
   417     aFamily.AddExtensionSetL(*obj, aType);
       
   418     CleanupStack::Pop(obj);
       
   419     return obj;
       
   420     }
       
   421 
       
   422 /**
       
   423 @param      aFamily the parameter family to which the newly created object is to be added
       
   424 @param      aType The type of the set from TParameterSetType (ERequested, EAcceptable or EGranted)
       
   425 @return     pointer to the created object
       
   426 */
       
   427 CSubConQosR5ParamSet* CSubConQosR5ParamSet::NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType)
       
   428     {
       
   429     CSubConQosR5ParamSet* obj = NewL();
       
   430     CleanupStack::PushL(obj);
       
   431     aFamily.AddParameterSetL(obj, aType);
       
   432     CleanupStack::Pop(obj);
       
   433     return obj;
       
   434     }
       
   435 
       
   436 /**
       
   437 @return     pointer to the created object
       
   438 */
       
   439 CSubConQosR5ParamSet* CSubConQosR5ParamSet::NewL()
       
   440     {
       
   441     STypeId typeId = STypeId::CreateSTypeId(KSubCon3GPPExtParamsFactoryUid, KSubConQosR5ParamsType);
       
   442     return static_cast<CSubConQosR5ParamSet*>(CSubConParameterSet::NewL(typeId));
       
   443     }
       
   444 
       
   445 /**
       
   446 */
       
   447 CSubConQosR5ParamSet::CSubConQosR5ParamSet()
       
   448     : iSrcStatsDesc(RPacketQoS::ESourceStatisticsDescriptorUnknown), iSignallingIndicator(EFalse)
       
   449     {
       
   450     }
       
   451 
       
   452 /** Gets the signalling nature of the SDU's. Signalling traffic can have different characteristics
       
   453 to other interactive traffic, eg higher priority, lower delay and increased peakiness. This attribute
       
   454 permits enhancing the Radio Access Network (RAN) operation accordingly. See 3GPP TS 23.107
       
   455 @return the signalling nature of the SDU's.
       
   456 */
       
   457 TBool CSubConQosR5ParamSet::GetSignallingIndicator() const
       
   458     {
       
   459     return iSignallingIndicator;
       
   460     }
       
   461 
       
   462 /** Sets signalling nature of the SDU's. This attribute is additional to the other QoS
       
   463 attributes and does not over-ride them. Signalling traffic can have different characteristics
       
   464 to other interactive traffic, eg higher priority, lower delay and increased peakiness. This
       
   465 attribute permits enhancing the Radio Access Network (RAN) operation accordingly. An example use of
       
   466 the Signalling Indication is for IMS signalling traffic. See 3GPP TS 23.107
       
   467 @param aSignallingIndicator Value to which to set the signalling indicator. */
       
   468 void CSubConQosR5ParamSet::SetSignallingIndicator(TBool aSignallingIndicator)
       
   469     {
       
   470     iSignallingIndicator = aSignallingIndicator;
       
   471     }
       
   472 
       
   473 /** @return the source of the SDU's. */
       
   474 RPacketQoS::TSourceStatisticsDescriptor CSubConQosR5ParamSet::GetSourceStatisticsDescriptor() const
       
   475     {
       
   476     return iSrcStatsDesc;
       
   477     }
       
   478 
       
   479 /** Sets the source characteristic of the SDU's. Conversational speech has a well-known statistical
       
   480 behaviour (or the discontinuous transmission (DTX) factor). By being informed that the SDUs for a Radio
       
   481 Access Bearer (RAB) are generated by a speech source, Radio Access Network (RAN) may, based on experience,
       
   482 calculate a statistical multiplex gain for use in admission control on the radio and RAN Access interfaces.
       
   483 @param aSrcStatsDescType Value to which to set the source statistics indicator. */
       
   484 void CSubConQosR5ParamSet::SetSourceStatisticsDescriptor(RPacketQoS::TSourceStatisticsDescriptor aSrcStatsDescType)
       
   485     {
       
   486     iSrcStatsDesc = aSrcStatsDescType;
       
   487     }
       
   488 
       
   489 #endif
       
   490 // SYMBIAN_NETWORKING_UMTSR5
       
   491 
       
   492 /** the Media Component number as specified in 3GPP TS 29.207
       
   493 @return the media component number portion of the flow identifier
       
   494 @publishedAll
       
   495 @released Since 9.3
       
   496 */
       
   497 TUint16 TFlowId::GetMediaComponentNumber() const
       
   498     {
       
   499     return iMediaComponentNumber;
       
   500     }
       
   501 
       
   502 /** the IP flow number as specified in 3GPP TS 29.207
       
   503 @return the IP flow portion of the flow identifier
       
   504 @publishedAll
       
   505 @released Since 9.3
       
   506 */
       
   507 TUint16 TFlowId::GetIPFlowNumber() const
       
   508     {
       
   509     return iIPFlowNumber;
       
   510     }
       
   511 
       
   512 /** Sets the media component number portion of the flow identifier. The Media Component number is specified in 3GPP TS 29.207
       
   513 @param aMediaComponentNumber the media component portion of the flow identifier
       
   514 @publishedAll
       
   515 @released Since 9.3
       
   516 */
       
   517 void TFlowId::SetMediaComponentNumber(TUint16 aMediaComponentNumber)
       
   518     {
       
   519     iMediaComponentNumber = aMediaComponentNumber;
       
   520     }
       
   521 
       
   522 /**
       
   523 @param the IP flow portion of the flow identifier.
       
   524 @publishedAll
       
   525 @released Since 9.3
       
   526 */
       
   527 void TFlowId::SetIPFlowNumber(TUint16 aIPFlowNumber)
       
   528     {
       
   529     iIPFlowNumber = aIPFlowNumber;
       
   530     }
       
   531 
       
   532 
       
   533 //===========================
       
   534 // Implementation Extension class
       
   535 /**
       
   536 @publishedAll
       
   537 @released Since 9.3
       
   538 */
       
   539 CSubConSBLPR5ExtensionParamSet::CSubConSBLPR5ExtensionParamSet()
       
   540     : CSubConExtensionParameterSet()
       
   541     {
       
   542     }
       
   543 
       
   544 /**
       
   545 @publishedAll
       
   546 @released Since 9.3
       
   547 */
       
   548 CSubConSBLPR5ExtensionParamSet::~CSubConSBLPR5ExtensionParamSet()
       
   549     {
       
   550     iFlowIds.Close();
       
   551     }
       
   552 
       
   553 /**
       
   554 @param      aFamily the sub-connection parameter family to which the newly created object is to be added
       
   555 @param      aType The type of the set from TParameterSetType (ERequested, EAcceptable or EGranted)
       
   556 @return     pointer to the created object
       
   557 @publishedAll
       
   558 @released Since 9.3
       
   559 */
       
   560 CSubConSBLPR5ExtensionParamSet* CSubConSBLPR5ExtensionParamSet::NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType)
       
   561     {
       
   562     CSubConSBLPR5ExtensionParamSet* sblpExtn = NewL();
       
   563     CleanupStack::PushL(sblpExtn);
       
   564     aFamily.AddExtensionSetL(*sblpExtn, aType);
       
   565     CleanupStack::Pop(sblpExtn);
       
   566     return sblpExtn;
       
   567     }
       
   568 
       
   569 /**
       
   570 @param      aFamily the parameter family to which the newly created object is to be added
       
   571 @param      aType The type of the set from TParameterSetType (ERequested, EAcceptable or EGranted)
       
   572 @return     pointer to the created object
       
   573 @publishedAll
       
   574 @released Since 9.3
       
   575 */
       
   576 CSubConSBLPR5ExtensionParamSet* CSubConSBLPR5ExtensionParamSet::NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType)
       
   577     {
       
   578     CSubConSBLPR5ExtensionParamSet* obj = NewL();
       
   579     CleanupStack::PushL(obj);
       
   580     aFamily.AddParameterSetL(obj, aType);
       
   581     CleanupStack::Pop(obj);
       
   582     return obj;
       
   583     }
       
   584 
       
   585 /**
       
   586 @return     pointer to the created object
       
   587 @publishedAll
       
   588 @released Since 9.3
       
   589 */
       
   590 CSubConSBLPR5ExtensionParamSet* CSubConSBLPR5ExtensionParamSet::NewL()
       
   591     {
       
   592     STypeId typeId = STypeId::CreateSTypeId(KSubCon3GPPExtParamsFactoryUid, KSubConnSBLPR5ExtensionParamsType);
       
   593     return static_cast<CSubConSBLPR5ExtensionParamSet*>(CSubConParameterSet::NewL(typeId));
       
   594     }
       
   595 
       
   596 /**
       
   597 @return     the media authorisation token
       
   598 @publishedAll
       
   599 @released Since 9.3
       
   600 */
       
   601 const TAuthToken& CSubConSBLPR5ExtensionParamSet::GetMAT() const
       
   602     {
       
   603     return iAuthToken;
       
   604     }
       
   605 
       
   606 /**
       
   607 @param      aAuthToken sets the media authorisation token
       
   608 @publishedAll
       
   609 @released Since 9.3
       
   610 */
       
   611 void CSubConSBLPR5ExtensionParamSet::SetMAT(const TAuthToken& aAuthToken)
       
   612     {
       
   613     iAuthToken = aAuthToken;
       
   614     }
       
   615 
       
   616 /**
       
   617 @return the number of flow indexes in this session
       
   618 @publishedAll
       
   619 @released Since 9.3
       
   620 */
       
   621 TInt CSubConSBLPR5ExtensionParamSet::GetNumberOfFlowIds() const
       
   622     {
       
   623     return iFlowIds.Count();
       
   624     }
       
   625 
       
   626 /**
       
   627 @param      aIndex the index of the flow identifier that will be returned.
       
   628 @return     the flow identifier at the index given by aIndex.
       
   629 @publishedAll
       
   630 @released Since 9.3
       
   631 */
       
   632 const TFlowId& CSubConSBLPR5ExtensionParamSet::GetFlowIdAt(TInt aIndex) const
       
   633     {
       
   634     return iFlowIds[aIndex];
       
   635     }
       
   636 
       
   637 /**         adds a flow identifier to this session.
       
   638 @param      aFlowId the flow indentifier to be added.
       
   639 @publishedAll
       
   640 @released Since 9.3
       
   641 */
       
   642 void CSubConSBLPR5ExtensionParamSet::AddFlowIdL(const TFlowId & aFlowId)
       
   643     {
       
   644     iFlowIds.AppendL(aFlowId);
       
   645     }
       
   646 
       
   647 #endif
       
   648 // QOS3GPP_SUBCONPARAMS_INL
       
   649