epoc32/include/ip_subconparams.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 /**
     2 * Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     8 *
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    11 *
    12 * Contributors:
    13 *
    14 * Description:
    15 * Header file for the IP SubConnection Parameters
    16 * 
    17 *
    18 */
    19 
    20 
    21 
    22 /**
    23  @file ip_subconparams.h
    24 */
    25 
    26 #ifndef __IP_SUBCONPARAMS_H__
    27 #define __IP_SUBCONPARAMS_H__
    28 
    29 #include <es_sock.h>
    30 #include <networking/Qos3GPP_subconparams.h>
    31 
    32  
    33 // NOTE: This Uid may be changed - See #ifdef at bottom of the file
    34 const TInt KSubConIPParamsUid = 0x10204309;
    35 
    36 const TInt KSubConQosIPLinkR99ParamsType = 1;
    37 
    38 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
    39 #include <networking/qos3gpp_subconparams.h>
    40 
    41 #else
    42 const TInt KSubConnSBLPR5ExtensionParamsType = 2;
    43 
    44 /** Constant definitions particular to the Generic Parameters. */
    45 const TInt KMAuthTokenLength = 255;
    46 /** Typedef for the AuthToken Holder. */
    47 typedef TBuf8<KMAuthTokenLength> TAuthToken;
    48 #endif
    49 
    50 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
    51 /** Provides Implementation of IP QoS Parameters
    52 
    53 @publishedAll
    54 @released since v9.1
    55 @deprecated Since Intulo. Use CSubConQosR99ParamSet from Qos3GPP_Subconparams.h instead.
    56 */
    57 #else
    58 /** Provides Implementation of IP QoS Parameters
    59 
    60 @publishedAll
    61 @released since v9.1
    62 */
    63 #endif
    64 
    65 class CSubConQosIPLinkR99ParamSet : public CSubConExtensionParameterSet
    66 {
    67 public:
    68 	inline static CSubConQosIPLinkR99ParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
    69 	inline static CSubConQosIPLinkR99ParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType);
    70 	inline static CSubConQosIPLinkR99ParamSet* NewL();
    71 
    72 	inline CSubConQosIPLinkR99ParamSet();
    73 
    74 	inline RPacketQoS::TTrafficClass GetTrafficClass() const;
    75 	inline RPacketQoS::TDeliveryOrder GetDeliveryOrder() const;
    76 	inline RPacketQoS::TErroneousSDUDelivery GetErroneousSDUDelivery() const;
    77 	inline RPacketQoS::TBitErrorRatio GetResidualBitErrorRatio() const;
    78 	inline RPacketQoS::TSDUErrorRatio GetSDUErrorRatio() const;
    79 	inline RPacketQoS::TTrafficHandlingPriority GetTrafficHandlingPriority() const;
    80 	inline TInt GetTransferDelay() const;
    81 	inline TInt GetMaxSduSize() const;
    82 	inline TInt GetMaxBitrateUplink() const;
    83 	inline TInt GetMaxBitrateDownlink() const;
    84 	inline TInt GetGuaBitrateUplink() const;
    85 	inline TInt GetGuaBitrateDownlink() const;
    86 	inline void SetTrafficClass(RPacketQoS::TTrafficClass aTrafficClass);
    87 	inline void SetDeliveryOrder(RPacketQoS::TDeliveryOrder aDeliveryOrder);
    88 	inline void SetErroneousSDUDelivery(RPacketQoS::TErroneousSDUDelivery aDeliveryOfErroneusSdu);
    89 	inline void SetResidualBitErrorRatio(RPacketQoS::TBitErrorRatio aResidualBer);
    90 	inline void SetSDUErrorRatio(RPacketQoS::TSDUErrorRatio aErrorRatio);
    91 	inline void SetTrafficHandlingPriority(RPacketQoS::TTrafficHandlingPriority aPriority);
    92 	inline void SetTransferDelay(TInt aTransferDelay);
    93 	inline void SetMaxSduSize(TInt aMaxSduSize);
    94 	inline void SetMaxBitrateUplink(TInt aMaxBitrateUplink);
    95 	inline void SetMaxBitrateDownlink(TInt aMaxBitrateDownlink);
    96 	inline void SetGuaBitrateUplink(TInt aGuaBitrateUplink);
    97 	inline void SetGuaBitrateDownlink(TInt aGuaBitrateDownlink);
    98 
    99 protected:
   100 
   101 	DATA_VTABLE
   102 
   103 protected:
   104 	RPacketQoS::TTrafficClass				iTrafficClass;			// Traffic class
   105 	RPacketQoS::TDeliveryOrder				iDeliveryOrder;			// Delivery order
   106 	RPacketQoS::TErroneousSDUDelivery		iDeliveryOfErroneusSdu;	// Delivery of erroneous SDUs
   107 	RPacketQoS::TBitErrorRatio				iResidualBer;			// Residual BER
   108 	RPacketQoS::TSDUErrorRatio				iErrorRatio;			// SDU error ratio
   109 	RPacketQoS::TTrafficHandlingPriority	iPriority;				// Traffic handling priority
   110 	TInt									iTransferDelay;			// Transfer delay
   111 	TInt									iMaxSduSize;			// Maximum SDU size
   112 	TInt									iMaxBitrateUplink;		// Maximum bit rate for uplink
   113 	TInt									iMaxBitrateDownlink;	// Maximum bit rate for downlink
   114 	TInt									iGuaBitrateUplink;		// Guaranteed bit rate for uplink
   115 	TInt									iGuaBitrateDownlink;	// Guaranteed bit rate for downlink
   116 	};
   117 
   118 
   119 
   120 #ifndef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
   121 
   122 /** Flow Identifires
   123 ECOM Implementation Id for SBLP Extension parameters.
   124 
   125 @publishedAll
   126 @released since v9.1 */
   127 struct TFlowId
   128 	{
   129 	/** Getter Function for the Components of Flow ids. */
   130 	inline TUint16 GetMediaComponentNumber() const;
   131 	inline TUint16 GetIPFlowNumber() const;
   132 	/**	Setter Function For Flow Id Components.	*/
   133 	inline void SetMediaComponentNumber(TUint16 aMediaComponentNumber);
   134 	inline void SetIPFlowNumber(TUint16 aIPFlowNumber);
   135 
   136 private:	
   137 	TUint16 iMediaComponentNumber;
   138 	TUint16 iIPFlowNumber;
   139 	};	
   140 
   141 typedef RArray<TFlowId> RFlowIdentifiers;
   142 
   143 /** Extension Parameter Sets, Consise of MAT and FI(s).
   144 Provides Implementation of Extension parameters of the SBLP Family.
   145 
   146 @publishedAll
   147 @released since v9.1 */
   148 class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet
   149 	{
   150 public:
   151 	inline static CSubConSBLPR5ExtensionParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
   152 	inline static CSubConSBLPR5ExtensionParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType);
   153 	inline static CSubConSBLPR5ExtensionParamSet* NewL();
   154 
   155 	/**	Media Authorization Token setter and getter functions. */
   156 	inline const TAuthToken& GetMAT() const;
   157 	inline void SetMAT(const TAuthToken& aAuthToken);
   158 	
   159 	/** Flow identifires setter and getter functions. */
   160 	inline TInt GetNumberOfFlowIds() const;
   161 	inline const TFlowId& GetFlowIdAt(TInt aIndex) const;
   162 	
   163 	/** Adding of Flow Identifires into an array. */
   164 	inline void AddFlowIdL(const TFlowId& aFlowId);
   165 	
   166 	/** public constructors so that it can be accessed by factory. */
   167 	inline CSubConSBLPR5ExtensionParamSet();	
   168 	inline ~CSubConSBLPR5ExtensionParamSet();
   169 	
   170 protected:
   171 	DATA_VTABLE
   172 
   173 	/** Single Media Authorization Token (MAT). */
   174 	TAuthToken iAuthToken;
   175 	
   176 	/** Multiple Flow Identifiers. */
   177 	RFlowIdentifiers	iFlowIds;
   178 	};
   179 #endif
   180 
   181 /**
   182 Factory used to create instances of IP SubConnection Parameters.
   183 
   184 @internalComponent
   185 @released since v9.1
   186 */
   187 class CSubConIPExtensionParamsFactory : public CBase
   188 	{
   189 public:
   190 	static CSubConExtensionParameterSet* NewL(TAny* aConstructionParameters);
   191 	};
   192 
   193 #include <ip_subconparams.inl>
   194 
   195 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
   196 /*
   197  Umts QoS extension classes have been relocated to the UmtsGprsSCPR component.
   198  So now we need to make sure that the correct class factory TUid, class name,
   199  and class Id are used
   200 */
   201 #define KSubConIPParamsUid KSubCon3GPPExtParamsFactoryUid
   202 #define KSubConQosIPLinkR99ParamsType KSubConQosR99ParamsType
   203 #define CSubConQosIPLinkR99ParamSet CSubConQosR99ParamSet
   204 #endif
   205 // SYMBIAN_NETWORKING_3GPPDEFAULTQOS
   206 
   207 #endif
   208 // __IP_SUBCONPARAMS_H__