class RPacketQoS : public RTelSubSessionBase |
Encapsulates functionality to set the Requested and Minimum Quality of Service options for a particular context (or "service configuration" in CDMA parlance), as represented by the RPacketContext class.
Methods are available to set and get the QoS options, query the QoS capabilities of the network service and notify the client if a change in the negotiated QoS options occurs.
A client must first create an instance of RPacketContext before opening a new RPacketQoS, since when creating a new RPacketQoS, the client must call the RPacketQoS::OpenNewQoS() function and pass in a reference to an RPacketContext instance.
Public Member Functions | |
---|---|
RPacketQoS() | |
IMPORT_C void | Close() |
IMPORT_C void | GetProfileCapabilities(TRequestStatus &, TDes8 &) |
IMPORT_C void | GetProfileParameters(TRequestStatus &, TDes8 &) |
IMPORT_C void | NotifyProfileChanged(TRequestStatus &, TDes8 &) |
IMPORT_C TInt | OpenExistingQoS(RPacketContext &, const TDesC &) |
IMPORT_C TInt | OpenNewQoS(RPacketContext &, TDes &) |
IMPORT_C void | SetProfileParameters(TRequestStatus &, TDes8 &) |
Protected Member Functions | |
---|---|
IMPORT_C void | ConstructL() |
IMPORT_C void | Destruct() |
Inherited Enumerations | |
---|---|
RTelSubSessionBase:TReqPriorityType |
Private Attributes | |
---|---|
CPacketQoSPtrHolder * | iEtelPacketQoSPtrHolder |
Inherited Attributes | |
---|---|
RTelSubSessionBase::iPtrHolder |
IMPORT_C void | Close | ( | ) |
Closes the client's current sub-session with ETel.
Any outstanding requests the client may have with ETel (notifications, for example) will be automatically destroyed by ETel.
IMPORT_C void | ConstructL | ( | ) | [protected, virtual] |
This function creates an instance of CPacketQoSPtrHolder and assigns it to the iEtelPacketQoSPtrHolder pointer.
IMPORT_C void | Destruct | ( | ) | [protected, virtual] |
This function deletes and NULLs the iEtelPacketQoSPtrHolder pointer.
IMPORT_C void | GetProfileCapabilities | ( | TRequestStatus & | aStatus, |
TDes8 & | aProfileCaps | |||
) | const |
Gets the Quality of Service capabilities for the current packet service.
Depending on the the packet service type, a TQoSCapsGPRS, TQoSCapsCDMA2000, TQoSCapsR99_R4 or TQoSCapsR5 will be passed in. The TSY will assign a bitmask for each parameter in the relevant TQoSCapsxxx class. This bitmask contains all values which can be assigned to the particular parameter for the current packet service and phone.
This is an asynchronous function.
The TQoSCapsxxxx classes inherit from TPacketDataConfigBase and therefore contain iExtensionId member data identifying the configuration class (GPRS Rel97/98, CDMA, Rel99 or Rel4).
To determine how to correctly unpack the descriptor once it reaches the TSY, the TSY must first cast the descriptor to a TPacketDataConfigBase pointer and check whether the value of the iExtensionId parameter. Depending on this value, the TSY will then cast the descriptor to the correct TPacketDataConfigBase-derived class.
Use RTelSubSessionBase::CancelAsyncRequest(EPacketQoSGetProfileCaps) to cancel a previously placed asynchronous GetProfileCapabilities() request.
TRequestStatus & aStatus | On completion, KErrNone if successful. |
TDes8 & aProfileCaps | A reference to a TQoSCapsGPRS, TQosCapsCDMA2000, TQoSCapsR99_R4 or TQoSCapsR5 packaged in a TPckg and returned as a descriptor. |
IMPORT_C void | GetProfileParameters | ( | TRequestStatus & | aStatus, |
TDes8 & | aProfile | |||
) | const |
Retrieves the TSY/phone values of all parameters associated with a negotiated QoS profile.
This is an asynchronous function.
QoS profile parameters are contained as member data in either a TQoSGPRSNegotiated, TQoSCDMA2000Negotiated, or TQoSR99_R4Negotiated class, depending on the current packet service. These T-classes are packaged inside a TPckg<> template class, enabling them to be passed as a descriptor to the TSY.
The Negotiated QoS profile class derives from TPacketDataConfigBase and therefore contains iExtensionId member data identifying whether it is a GPRS, CDMA or R99_4 configuration class. To determine how to correctly unpack the descriptor once it reaches the TSY, the TSY must first cast the descriptor to a TPacketDataConfigBase pointer and check whether the value of the iExtensionId parameter. Depending on this value, the TSY will then cast the descriptor to the correct TPacketDataConfigBase-derived class.
Use RTelSubSessionBase::CancelAsyncRequest(EPacketQoSGetProfileParams) to cancel a previously placed asynchronous GetProfileParameters() request.
TRequestStatus & aStatus | On return, KErrNone if successful. |
TDes8 & aProfile | On completion, a TQoSGPRSNegotiated, TQoSCDMA2000Negotiated or TQoSR99_R4Negotiated containing the profile data, packaged inside a TPckg<> and returned as a descriptor reference. |
IMPORT_C void | NotifyProfileChanged | ( | TRequestStatus & | aStatus, |
TDes8 & | aProfile | |||
) | const |
Notifies a client of a change in the negotiated QoS profile is received by the TSY from the phone.
This is a asynchronous function.
The new QoS profile returned will be either TQoSGPRSNegotiated, TQoSCDMA2000Negotiated or TQoSR99_R4Negotiated, depending on the current packet service. The TQoSxxxNegotiated class will contain updated values for each QoS parameter.
If the client wishes to receive further notifications, NotifyProfileChanged() must be called again.
Use RTelSubSessionBase::CancelAsyncRequest(EPacketQoSNotifyProfileChanged) to cancel a previously placed asynchronous NotifyProfileChanged() request.
TRequestStatus & aStatus | On completion, KErrNone if successful. |
TDes8 & aProfile | A descriptor reference to a TPckg<TQoSXXXNegotiated> object. |
IMPORT_C TInt | OpenExistingQoS | ( | RPacketContext & | aPacketContext, |
const TDesC & | aProfileName | |||
) |
Opens a handle on an existing RPacketQoS object identified by the profile name.
An opened RPacketContext must be closed explicitely by calling Close() to prevent a resource (memory) leak.
RPacketContext & aPacketContext | This identifies to which RPacketContext the QoS profile to be opened belongs. |
const TDesC & aProfileName | This uniquely identifies to ETel/TSY which existing RPacketQoS object the client wants to open. This name was previously assigned by the TSY when the specified RPacketQoS was originally created using RPacketQoS::OpenNewQoS(). |
IMPORT_C TInt | OpenNewQoS | ( | RPacketContext & | aPacketContext, |
TDes & | aProfileName | |||
) |
Creates a new QoS profile (i.e. RPacketQoS class instance).
An RPacketQoS may only be opened on an existing RPacketContext subsession.
When the new QoS profile is created, the TSY will assign it a unique name to it. The client can use this name to uniquely identify the particular context.
An opened RPacketContext must be closed explicitely by calling Close() to prevent a resource (memory) leak.
RPacketContext & aPacketContext | A reference to a previously instantiated RPacketContext, on which to open the QoS profile. |
TDes & aProfileName | On return, the unique QoS name. |
IMPORT_C void | SetProfileParameters | ( | TRequestStatus & | aStatus, |
TDes8 & | aProfile | |||
) | const |
Passes to the TSY all the parameters required to configure Quality of Service for a particular context.
The parameters are passed via a TQoSGPRSRequested, TQoSCDMA2000Requested or TQoSRequestedR99_R4 class, depending on the current network and packet-service.
This is an asynchronous function call.
The TQoSCapsxxxx classes inherit from TPacketDataConfigBase and therefore contain an iExtensionId member data identifying whether they are a GPRS, CDMA or R99_R4 configuration class.
To determine how to correctly unpack the descriptor once it reaches the TSY, the TSY must first cast the descriptor to a TPacketDataConfigBase pointer and check the value of the iExtensionId parameter. Referring to this value the TSY will then cast the descriptor to the correct TPacketDataConfigBase- derived class.
Use RTelSubSessionBase::CancelAsyncRequest(EPacketQoSSetProfileParams) to cancel a previously placed asynchronous SetProfileParameters() request.
TRequestStatus & aStatus | On completion, KErrNone if successful, a system-wide error code if not. |
TDes8 & aProfile | A TQoSGPRSRequested, TQoSCDMA2000Requested or TQoSR99_R4Requested containing the configuration data, packaged inside a TPckg<> and passed as a descriptor reference. |
EBERUnspecified = 0x01 | |
EBERFivePerHundred = 0x02 | |
EBEROnePerHundred = 0x04 | |
EBERFivePerThousand = 0x08 | |
EBERFourPerThousand = 0x10 | |
EBEROnePerThousand = 0x20 | |
EBEROnePerTenThousand = 0x40 | |
EBEROnePerHundredThousand = 0x80 | |
EBEROnePerMillion = 0x100 | |
EBERSixPerHundredMillion = 0x200 |
EDeliveryOrderUnspecified = 0x01 | |
EDeliveryOrderRequired = 0x02 | |
EDeliveryOrderNotRequired = 0x04 |
EErroneousSDUDeliveryUnspecified = 0x01 | |
EErroneousSDUNoDetection = 0x02 | |
EErroneousSDUDeliveryRequired = 0x04 | |
EErroneousSDUDeliveryNotRequired = 0x08 |
Defines the QoS data loss rate.
EDataLoss1 = 0x01 |
1% data loss rate. |
EDataLoss2 = 0x02 |
2% data loss rate. |
EDataLoss5 = 0x04 |
5% data loss rate. |
EDataLoss10 = 0x08 |
10% data loss rate. |
Defines the QoS data rate.
EDataRate8kbps = 0x01 |
A data rate of 8 kb/s. |
EDataRate32kbps = 0x02 |
A data rate of 32 kb/s. |
EDataRate64kbps = 0x04 |
A data rate of 64 kb/s. |
EDataRate144kbps = 0x08 |
A data rate of 144 kb/s. |
EDataRate384kbps = 0x10 |
A data rate of 384 kb/s |
Defines the QoS delay for GPRS and CDMA200 networks.
EUnspecifiedDelayClass = 0x01 |
Best effort or subscribed value. |
EDelayClass1 = 0x02 |
Delay class 1. |
EDelayClass2 = 0x04 |
Delay class 2. |
EDelayClass3 = 0x08 |
Delay class 3. |
EDelayClass4 = 0x10 |
Delay class 4. |
EDelay40ms = 0x20 |
Delay 40 milli seconds. CDMA2000 specific 9.5 |
EDelay120ms = 0x40 |
Delay 120 milli seconds. CDMA2000 specific 9.5 |
EDelay360ms = 0x80 |
Delay 360 milli seconds. CDMA2000 specific 9.5 |
Defines the QoS link priority for CMDA2000 networks.
ELinkPriority00 = 0x0001 |
No link priority. |
ELinkPriority01 = 0x0002 |
1/13th's of user's subscription priority. |
ELinkPriority02 = 0x0004 |
2/13th's of user's subscription priority. |
ELinkPriority03 = 0x0008 |
3/13th's of user's subscription priority. |
ELinkPriority04 = 0x0010 |
4/13th's of user's subscription priority. |
ELinkPriority05 = 0x0020 |
5/13th's of user's subscription priority. |
ELinkPriority06 = 0x0040 |
6/13th's of user's subscription priority. |
ELinkPriority07 = 0x0080 |
7/13th's of user's subscription priority. |
ELinkPriority08 = 0x0100 |
8/13th's of user's subscription priority. |
ELinkPriority09 = 0x0200 |
9/13th's of user's subscription priority. |
ELinkPriority10 = 0x0400 |
10/13th's of user's subscription priority. |
ELinkPriority11 = 0x0800 |
11/13th's of user's subscription priority. |
ELinkPriority12 = 0x1000 |
12/13th's of user's subscription priority. |
ELinkPriority13 = 0x2000 |
Subscription priority (13/13th's). |
Defines the mean throughput for GRPS networks.
EUnspecifiedMeanThroughput = 0x00001 |
Unsubscribed value. |
EMeanThroughput100 = 0x00002 |
Mean throughput of 100. |
EMeanThroughput200 = 0x00004 |
Mean throughput of 200. |
EMeanThroughput500 = 0x00008 |
Mean throughput of 500. |
EMeanThroughput1000 = 0x00010 |
Mean throughput of 1,000. |
EMeanThroughput2000 = 0x00020 |
Mean throughput of 2,000. |
EMeanThroughput5000 = 0x00040 |
Mean throughput of 5,000. |
EMeanThroughput10000 = 0x00080 |
Mean throughput of 10,000. |
EMeanThroughput20000 = 0x00100 |
Mean throughput of 20,000. |
EMeanThroughput50000 = 0x00200 |
Mean throughput of 50,000. |
EMeanThroughput100000 = 0x00400 |
Mean throughput of 100,000. |
EMeanThroughput200000 = 0x00800 |
Mean throughput of 200,000. |
EMeanThroughput500000 = 0x01000 |
Mean throughput of 500,000. |
EMeanThroughput1000000 = 0x02000 |
Mean throughput of 1,000,000. |
EMeanThroughput2000000 = 0x04000 |
Mean throughput of 2,000,000. |
EMeanThroughput5000000 = 0x08000 |
Mean throughput of 5,000,000. |
EMeanThroughput10000000 = 0x10000 |
Mean throughput of 10,000,000. |
EMeanThroughput20000000 = 0x20000 |
Mean throughput of 20,000,000. |
EMeanThroughput50000000 = 0x40000 |
Mean throughput of 50,000,000. |
EMeanThroughputBestEffort = 0x80000 |
Best effort. |
Defines the QoS peak throughput rates for GRPS networks.
EUnspecifiedPeakThroughput = 0x001 |
Best effort or subscribed value. |
EPeakThroughput1000 = 0x002 |
Peak throughput of 1,000. |
EPeakThroughput2000 = 0x004 |
Peak throughput of 2,000. |
EPeakThroughput4000 = 0x008 |
Peak throughput of 4,000. |
EPeakThroughput8000 = 0x010 |
Peak throughput of 8,000. |
EPeakThroughput16000 = 0x020 |
Peak throughput of 16,000. |
EPeakThroughput32000 = 0x040 |
Peak throughput of 32,000. |
EPeakThroughput64000 = 0x080 |
Peak throughput of 64,000. |
EPeakThroughput128000 = 0x100 |
Peak throughput of 128,000. |
EPeakThroughput256000 = 0x200 |
Peak throughput of 256,000. |
Defines the QoS precedence for GRPS networks.
EUnspecifiedPrecedence = 0x01 |
Best effort or subscribed value |
EPriorityHighPrecedence = 0x02 |
High priority precedence. |
EPriorityMediumPrecedence = 0x04 |
Medium priority precedence. |
EPriorityLowPrecedence = 0x08 |
Low priority precedence. |
Defines the QoS reliability settings for GRPS networks.
EUnspecifiedReliabilityClass = 0x01 |
Best effort or subscribed value. |
EReliabilityClass1 = 0x02 |
Reliability Class 1. |
EReliabilityClass2 = 0x04 |
Reliability Class 2. |
EReliabilityClass3 = 0x08 |
Reliability Class 3. |
EReliabilityClass4 = 0x10 |
Reliability Class 4. |
EReliabilityClass5 = 0x20 |
Reliability Class 5. |
Defines the Radio Link Protocol (RPL) mode.
KRLPUnknown = 0x01 |
RPL mode unknown. |
KRLPTransparent = 0x02 |
Transparent mode only. |
KRLPNonTransparent = 0x04 |
Non-transparent mode only. |
KRLPTransparentPref = 0x08 |
Transparent mode preferred. |
KRLPNonTransparentPref = 0x10 |
Non-transparent mode preferred. |
ESDUErrorRatioUnspecified = 0x01 | |
ESDUErrorRatioOnePerTen = 0x02 | |
ESDUErrorRatioOnePerHundred = 0x04 | |
ESDUErrorRatioSevenPerThousand = 0x08 | |
ESDUErrorRatioOnePerThousand = 0x10 | |
ESDUErrorRatioOnePerTenThousand = 0x20 | |
ESDUErrorRatioOnePerHundredThousand = 0x40 | |
ESDUErrorRatioOnePerMillion = 0x80 |
Source statistics descriptor - as defined in 3GPP TS 23.107 and TS 24.008.
ESourceStatisticsDescriptorUnknown = 0x0 |
Unknown source statistics descriptor. |
ESourceStatisticsDescriptorSpeech = 0x01 |
Speech source statistics descriptor. |
ETrafficClassUnspecified = 0x01 | |
ETrafficClassConversational = 0x02 | |
ETrafficClassStreaming = 0x04 | |
ETrafficClassInteractive = 0x08 | |
ETrafficClassBackground = 0x10 |
ETrafficPriorityUnspecified = 0x01 | |
ETrafficPriority1 = 0x02 | |
ETrafficPriority2 = 0x04 | |
ETrafficPriority3 = 0x08 |
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.