RPacketQoS Class Reference

#include <eteldefaultqos.h>

Link against: etelpckt.lib

class RPacketQoS : public RTelSubSessionBase, public RTelSubSessionBase

Inherits from

  • RPacketQoS

    Nested Classes and Structures

    • RPacketQoS::TBitRate
    • RPacketQoS::TQoSCDMA2000Negotiated
    • RPacketQoS::TQoSCDMA2000Requested
    • RPacketQoS::TQoSCapsCDMA2000
    • RPacketQoS::TQoSCapsGPRS
    • RPacketQoS::TQoSCapsR5
    • RPacketQoS::TQoSCapsR99_R4
    • RPacketQoS::TQoSGPRSNegotiated
    • RPacketQoS::TQoSGPRSRequested
    • RPacketQoS::TQoSR5Negotiated
    • RPacketQoS::TQoSR5Requested
    • RPacketQoS::TQoSR99_R4Negotiated
    • RPacketQoS::TQoSR99_R4Requested
    Public Member Enumerations
    enumTBitErrorRatio { EBERUnspecified, EBERFivePerHundred, EBEROnePerHundred, EBERFivePerThousand, ..., EBERSixPerHundredMillion }
    enumTDeliveryOrder { EDeliveryOrderUnspecified, EDeliveryOrderRequired, EDeliveryOrderNotRequired }
    enumTErroneousSDUDelivery { EErroneousSDUDeliveryUnspecified, EErroneousSDUNoDetection, EErroneousSDUDeliveryRequired, EErroneousSDUDeliveryNotRequired }
    enumTQoSDataLoss { EDataLoss1, EDataLoss2, EDataLoss5, EDataLoss10 }
    enumTQoSDataRate { EDataRate8kbps, EDataRate32kbps, EDataRate64kbps, EDataRate144kbps, EDataRate384kbps }
    enumTQoSDelay { EUnspecifiedDelayClass, EDelayClass1, EDelayClass2, EDelayClass3, ..., EDelay360ms }
    enumTQoSLinkPriority { ELinkPriority00, ELinkPriority01, ELinkPriority02, ELinkPriority03, ..., ELinkPriority13 }
    enumTQoSMeanThroughput { EUnspecifiedMeanThroughput, EMeanThroughput100, EMeanThroughput200, EMeanThroughput500, ..., EMeanThroughputBestEffort }
    enumTQoSPeakThroughput { EUnspecifiedPeakThroughput, EPeakThroughput1000, EPeakThroughput2000, EPeakThroughput4000, ..., EPeakThroughput256000 }
    enumTQoSPrecedence { EUnspecifiedPrecedence, EPriorityHighPrecedence, EPriorityMediumPrecedence, EPriorityLowPrecedence }
    enumTQoSReliability { EUnspecifiedReliabilityClass, EReliabilityClass1, EReliabilityClass2, EReliabilityClass3, ..., EReliabilityClass5 }
    enumTRLPMode { KRLPUnknown, KRLPTransparent, KRLPNonTransparent, KRLPTransparentPref, KRLPNonTransparentPref }
    enumTSDUErrorRatio { ESDUErrorRatioUnspecified, ESDUErrorRatioOnePerTen, ESDUErrorRatioOnePerHundred, ESDUErrorRatioSevenPerThousand, ..., ESDUErrorRatioOnePerMillion }
    enumTSourceStatisticsDescriptor { ESourceStatisticsDescriptorUnknown, ESourceStatisticsDescriptorSpeech }
    enumTTrafficClass { ETrafficClassUnspecified, ETrafficClassConversational, ETrafficClassStreaming, ETrafficClassInteractive, ETrafficClassBackground }
    enumTTrafficHandlingPriority { ETrafficPriorityUnspecified, ETrafficPriority1, ETrafficPriority2, ETrafficPriority3 }
    Public Member Functions
    RPacketQoS()
    IMPORT_C voidClose()
    IMPORT_C voidGetProfileCapabilities(TRequestStatus &, TDes8 &)
    IMPORT_C voidGetProfileParameters(TRequestStatus &, TDes8 &)
    IMPORT_C voidNotifyProfileChanged(TRequestStatus &, TDes8 &)
    IMPORT_C TIntOpenExistingQoS(RPacketContext &, const TDesC &)
    IMPORT_C TIntOpenNewQoS(RPacketContext &, TDes &)
    IMPORT_C voidSetProfileParameters(TRequestStatus &, TDes8 &)
    Protected Member Functions
    virtual IMPORT_C voidConstructL()
    virtual IMPORT_C voidDestruct()
    Inherited Attributes
    RTelSubSessionBase::iPtrHolder
    Inherited Enumerations
    RTelSubSessionBase:TReqPriorityType
    Inherited Functions
    RSubSessionBase::CloseSubSession(TInt)
    RSubSessionBase::CreateAutoCloseSubSession(RSessionBase &,TInt,const TIpcArgs &)
    RSubSessionBase::CreateSubSession(const RSessionBase &,TInt)
    RSubSessionBase::CreateSubSession(const RSessionBase &,TInt,const TIpcArgs &)
    RSubSessionBase::RSubSessionBase()
    RSubSessionBase::Send(TInt)const
    RSubSessionBase::Send(TInt,const TIpcArgs &)const
    RSubSessionBase::SendReceive(TInt)const
    RSubSessionBase::SendReceive(TInt,TRequestStatus &)const
    RSubSessionBase::SendReceive(TInt,const TIpcArgs &)const
    RSubSessionBase::SendReceive(TInt,const TIpcArgs &,TRequestStatus &)const
    RSubSessionBase::Session()const
    RSubSessionBase::SubSessionHandle()const
    RTelSubSessionBase::Blank(const TInt,TReqPriorityType)const
    RTelSubSessionBase::Blank(const TInt,TRequestStatus &,TReqPriorityType)const
    RTelSubSessionBase::CancelAsyncRequest(TInt)const
    RTelSubSessionBase::CancelReq(const TInt,const TInt)const
    RTelSubSessionBase::CancelSubSession()const
    RTelSubSessionBase::Get(const TInt,TDes16 &,TDes16 &,TReqPriorityType)const
    RTelSubSessionBase::Get(const TInt,TDes16 &,TReqPriorityType)const
    RTelSubSessionBase::Get(const TInt,TDes8 &,TDes16 &,TReqPriorityType)const
    RTelSubSessionBase::Get(const TInt,TDes8 &,TDes8 &,TReqPriorityType)const
    RTelSubSessionBase::Get(const TInt,TDes8 &,TReqPriorityType)const
    RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes16 &,TDes16 &,TReqPriorityType)const
    RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes16 &,TReqPriorityType)const
    RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes8 &,TDes16 &,TReqPriorityType)const
    RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes8 &,TDes8 &,TReqPriorityType)const
    RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes8 &,TReqPriorityType)const
    RTelSubSessionBase::RTelSubSessionBase()
    RTelSubSessionBase::ResetSessionHandle()
    RTelSubSessionBase::SessionHandle()const
    RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC16 &,TReqPriorityType)const
    RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC16 &,const TDesC16 &,TReqPriorityType)const
    RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC8 &,TReqPriorityType)const
    RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC8 &,const TDesC16 &,TReqPriorityType)const
    RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC8 &,const TDesC8 &,TReqPriorityType)const
    RTelSubSessionBase::Set(const TInt,const RFile &,TReqPriorityType)const
    RTelSubSessionBase::Set(const TInt,const TDesC16 &,TReqPriorityType)const
    RTelSubSessionBase::Set(const TInt,const TDesC16 &,const TDesC16 &,TReqPriorityType)const
    RTelSubSessionBase::Set(const TInt,const TDesC8 &,TReqPriorityType)const
    RTelSubSessionBase::Set(const TInt,const TDesC8 &,const TDesC16 &,TReqPriorityType)const
    RTelSubSessionBase::Set(const TInt,const TDesC8 &,const TDesC8 &,TReqPriorityType)const
    RTelSubSessionBase::SetAndGet(const TInt,TRequestStatus &,TDes8 &,const TDesC16 &,TReqPriorityType)const
    RTelSubSessionBase::SetAndGet(const TInt,TRequestStatus &,const TDesC16 &,TDes16 &,TReqPriorityType)const
    RTelSubSessionBase::SetAndGet(const TInt,TRequestStatus &,const TDesC8 &,TDes16 &,TReqPriorityType)const
    RTelSubSessionBase::SetAndGet(const TInt,TRequestStatus &,const TDesC8 &,TDes8 &,TReqPriorityType)const
    RTelSubSessionBase::SetSessionHandle(RSessionBase &)
    RTelSubSessionBase::SubSessionHandle()

    Detailed Description

    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.

    Member Enumeration Documentation

    Enum TBitErrorRatio

    Enum TDeliveryOrder

    Enum TErroneousSDUDelivery

    Enum TQoSDataLoss

    Defines the QoS data loss rate.

    EnumeratorValueDescription
    EDataLoss10x01

    1% data loss rate.

    EDataLoss20x02

    2% data loss rate.

    EDataLoss50x04

    5% data loss rate.

    EDataLoss100x08

    10% data loss rate.

    Enum TQoSDataRate

    Defines the QoS data rate.

    EnumeratorValueDescription
    EDataRate8kbps0x01

    A data rate of 8 kb/s.

    EDataRate32kbps0x02

    A data rate of 32 kb/s.

    EDataRate64kbps0x04

    A data rate of 64 kb/s.

    EDataRate144kbps0x08

    A data rate of 144 kb/s.

    EDataRate384kbps0x10

    A data rate of 384 kb/s

    Enum TQoSDelay

    Defines the QoS delay for GPRS and CDMA200 networks.

    EnumeratorValueDescription
    EUnspecifiedDelayClass0x01

    Best effort or subscribed value.

    EDelayClass10x02

    Delay class 1.

    EDelayClass20x04

    Delay class 2.

    EDelayClass30x08

    Delay class 3.

    EDelayClass40x10

    Delay class 4.

    EDelay40ms0x20

    Delay 40 milli seconds.

    CDMA2000 specific Deprecated9.5

    Delay 40 milli seconds.

    CDMA2000 specific Deprecated9.5

    EDelay120ms0x40

    Delay 120 milli seconds.

    CDMA2000 specific Deprecated9.5

    Delay 120 milli seconds.

    CDMA2000 specific Deprecated9.5

    EDelay360ms0x80

    Delay 360 milli seconds.

    CDMA2000 specific Deprecated9.5

    Delay 360 milli seconds.

    CDMA2000 specific Deprecated9.5

    Enum TQoSLinkPriority

    Defines the QoS link priority for CMDA2000 networks.

    EnumeratorValueDescription
    ELinkPriority000x0001

    No link priority.

    ELinkPriority010x0002

    1/13th's of user's subscription priority.

    ELinkPriority020x0004

    2/13th's of user's subscription priority.

    ELinkPriority030x0008

    3/13th's of user's subscription priority.

    ELinkPriority040x0010

    4/13th's of user's subscription priority.

    ELinkPriority050x0020

    5/13th's of user's subscription priority.

    ELinkPriority060x0040

    6/13th's of user's subscription priority.

    ELinkPriority070x0080

    7/13th's of user's subscription priority.

    ELinkPriority080x0100

    8/13th's of user's subscription priority.

    ELinkPriority090x0200

    9/13th's of user's subscription priority.

    ELinkPriority100x0400

    10/13th's of user's subscription priority.

    ELinkPriority110x0800

    11/13th's of user's subscription priority.

    ELinkPriority120x1000

    12/13th's of user's subscription priority.

    ELinkPriority130x2000

    Subscription priority (13/13th's).

    Enum TQoSMeanThroughput

    Defines the mean throughput for GRPS networks.

    EnumeratorValueDescription
    EUnspecifiedMeanThroughput0x00001

    Unsubscribed value.

    EMeanThroughput1000x00002

    Mean throughput of 100.

    EMeanThroughput2000x00004

    Mean throughput of 200.

    EMeanThroughput5000x00008

    Mean throughput of 500.

    EMeanThroughput10000x00010

    Mean throughput of 1,000.

    EMeanThroughput20000x00020

    Mean throughput of 2,000.

    EMeanThroughput50000x00040

    Mean throughput of 5,000.

    EMeanThroughput100000x00080

    Mean throughput of 10,000.

    EMeanThroughput200000x00100

    Mean throughput of 20,000.

    EMeanThroughput500000x00200

    Mean throughput of 50,000.

    EMeanThroughput1000000x00400

    Mean throughput of 100,000.

    EMeanThroughput2000000x00800

    Mean throughput of 200,000.

    EMeanThroughput5000000x01000

    Mean throughput of 500,000.

    EMeanThroughput10000000x02000

    Mean throughput of 1,000,000.

    EMeanThroughput20000000x04000

    Mean throughput of 2,000,000.

    EMeanThroughput50000000x08000

    Mean throughput of 5,000,000.

    EMeanThroughput100000000x10000

    Mean throughput of 10,000,000.

    EMeanThroughput200000000x20000

    Mean throughput of 20,000,000.

    EMeanThroughput500000000x40000

    Mean throughput of 50,000,000.

    EMeanThroughputBestEffort0x80000

    Best effort.

    Enum TQoSPeakThroughput

    Defines the QoS peak throughput rates for GRPS networks.

    EnumeratorValueDescription
    EUnspecifiedPeakThroughput0x001

    Best effort or subscribed value.

    EPeakThroughput10000x002

    Peak throughput of 1,000.

    EPeakThroughput20000x004

    Peak throughput of 2,000.

    EPeakThroughput40000x008

    Peak throughput of 4,000.

    EPeakThroughput80000x010

    Peak throughput of 8,000.

    EPeakThroughput160000x020

    Peak throughput of 16,000.

    EPeakThroughput320000x040

    Peak throughput of 32,000.

    EPeakThroughput640000x080

    Peak throughput of 64,000.

    EPeakThroughput1280000x100

    Peak throughput of 128,000.

    EPeakThroughput2560000x200

    Peak throughput of 256,000.

    Enum TQoSPrecedence

    Defines the QoS precedence for GRPS networks.

    EnumeratorValueDescription
    EUnspecifiedPrecedence0x01

    Best effort or subscribed value

    EPriorityHighPrecedence0x02

    High priority precedence.

    EPriorityMediumPrecedence0x04

    Medium priority precedence.

    EPriorityLowPrecedence0x08

    Low priority precedence.

    Enum TQoSReliability

    Defines the QoS reliability settings for GRPS networks.

    EnumeratorValueDescription
    EUnspecifiedReliabilityClass0x01

    Best effort or subscribed value.

    EReliabilityClass10x02

    Reliability Class 1.

    EReliabilityClass20x04

    Reliability Class 2.

    EReliabilityClass30x08

    Reliability Class 3.

    EReliabilityClass40x10

    Reliability Class 4.

    EReliabilityClass50x20

    Reliability Class 5.

    Enum TRLPMode

    Defines the Radio Link Protocol (RPL) mode.

    EnumeratorValueDescription
    KRLPUnknown0x01

    RPL mode unknown.

    KRLPTransparent0x02

    Transparent mode only.

    KRLPNonTransparent0x04

    Non-transparent mode only.

    KRLPTransparentPref0x08

    Transparent mode preferred.

    KRLPNonTransparentPref0x10

    Non-transparent mode preferred.

    Enum TSDUErrorRatio

    Enum TSourceStatisticsDescriptor

    Source statistics descriptor - as defined in 3GPP TS 23.107 and TS 24.008.

    EnumeratorValueDescription
    ESourceStatisticsDescriptorUnknown0x0

    Unknown source statistics descriptor.

    ESourceStatisticsDescriptorSpeech0x01

    Speech source statistics descriptor.

    Enum TTrafficClass

    Enum TTrafficHandlingPriority

    Constructor & Destructor Documentation

    RPacketQoS ( )

    IMPORT_CRPacketQoS()

    Standard constructor.

    Member Function Documentation

    Close ( )

    IMPORT_C voidClose()

    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.

    An opened RPacketContext must be closed explicitly by calling Close() to prevent a resource (memory) leak.
    Capability
    None

    ConstructL ( )

    IMPORT_C voidConstructL()[protected, virtual]

    This function creates an instance of CPacketQoSPtrHolder and assigns it to the iEtelPacketQoSPtrHolder pointer.

    Capability
    None

    Destruct ( )

    IMPORT_C voidDestruct()[protected, virtual]

    This function deletes and NULLs the iEtelPacketQoSPtrHolder pointer.

    Capability
    None

    GetProfileCapabilities ( TRequestStatus &, TDes8 & )

    IMPORT_C voidGetProfileCapabilities(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.

    Parameters
    aStatusOn completion, KErrNone if successful.
    aProfileCapsA reference to a TQoSCapsGPRS, TQosCapsCDMA2000, TQoSCapsR99_R4 or TQoSCapsR5 packaged in a TPckg and returned as a descriptor.
    Capability
    None

    GetProfileParameters ( TRequestStatus &, TDes8 & )

    IMPORT_C voidGetProfileParameters(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.

    Parameters
    aStatusOn return, KErrNone if successful.
    aProfileOn completion, a TQoSGPRSNegotiated, TQoSCDMA2000Negotiated or TQoSR99_R4Negotiated containing the profile data, packaged inside a TPckg<> and returned as a descriptor reference.
    Capability
    ReadDeviceData

    NotifyProfileChanged ( TRequestStatus &, TDes8 & )

    IMPORT_C voidNotifyProfileChanged(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.

    Parameters
    aStatusOn completion, KErrNone if successful.
    aProfileA descriptor reference to a TPckg<TQoSXXXNegotiated> object.
    Capability
    ReadDeviceData

    OpenExistingQoS ( RPacketContext &, const TDesC & )

    IMPORT_C TIntOpenExistingQoS(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.

    Parameters
    aPacketContextThis identifies to which RPacketContext the QoS profile to be opened belongs.
    aProfileNameThis 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().
    Return Value
    KErrNone if successful, KErrNotFound if the object does not exist.
    Capability
    None

    OpenNewQoS ( RPacketContext &, TDes & )

    IMPORT_C TIntOpenNewQoS(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.

    Parameters
    aPacketContextA reference to a previously instantiated RPacketContext, on which to open the QoS profile.
    aProfileNameOn return, the unique QoS name.
    Return Value
    KErrNone if successful, a system-wide error code if not.
    Capability
    None

    SetProfileParameters ( TRequestStatus &, TDes8 & )

    IMPORT_C voidSetProfileParameters(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.

    Parameters
    aStatusOn completion, KErrNone if successful, a system-wide error code if not.
    aProfileA TQoSGPRSRequested, TQoSCDMA2000Requested or TQoSR99_R4Requested containing the configuration data, packaged inside a TPckg<> and passed as a descriptor reference.
    Capability
    WriteDeviceData
    NetworkServices