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