RSuplTerminalSubSession Class Reference

class RSuplTerminalSubSession : public RSubSessionBase

This class is used to make request to determine the position information, to request additional position information such as assistance data for A-GPS and to retrieve position information. Client can optionally specify Quality of Position (QoP) while requesting for position determination. Before using the class, a connection must have already been established with the SUPL Server. This class also has methods to open subsession, to cancel outstanding position determination request and to close sub-session to SUPL Server. All methods in this class, except Close, panics with ESuplServerBadHandle if connection to SUPL Server is not established.

RSuplTerminalServer

Inherits from

Public Member Functions
RSuplTerminalSubSession()
IMPORT_C voidCancelRunSession()
IMPORT_C voidClose()
IMPORT_C TIntGetPosition(TPositionInfoBase &)
IMPORT_C TIntGetServerAddress(TDes &)
IMPORT_C TIntGetSlpList(RPointerArray< CSuplTerminalParams > &)
IMPORT_C voidNotifyTriggerFired(TRequestStatus &, TSuplTriggerFireInfo &)
IMPORT_C TIntOpen(RSuplTerminalServer &, TSuplServiceType)
IMPORT_C voidRunSession(TRequestStatus &, TSuplTerminalQop &, TInt, TInt, TBool)
IMPORT_C TIntRunSession(TSuplTerminalQop &, TInt, TInt, TBool)
IMPORT_C voidRunSession(TRequestStatus &, TInt, TInt, TBool)
IMPORT_C TIntRunSession(TInt, TInt, TBool)
IMPORT_C voidRunSession(TRequestStatus &, TSuplTerminalQop &, const TDesC &, TBool, TInt, TInt, TBool)
IMPORT_C TIntRunSession(TSuplTerminalQop &, const TDesC &, TBool, TInt, TInt, TBool)
IMPORT_C voidRunSession(TRequestStatus &, const TDesC &, TBool, TInt, TInt, TBool)
IMPORT_C TIntRunSession(const TDesC &, TBool, TInt, TInt, TBool)
IMPORT_C voidStartSuplTriggerSession(TRequestStatus &, TSuplTerminalPeriodicTrigger &, TInt, TInt)
IMPORT_C voidStartSuplTriggerSession(TRequestStatus &, TSuplTerminalPeriodicTrigger &, const TDesC &, TBool, TInt, TInt)
IMPORT_C voidStopSuplTriggerSession()
Protected Member Functions
TInt CheckIfSlpExists(const TDesC &)
IMPORT_C voidConstructL()
IMPORT_C voidDestruct()
IMPORT_C TAny *ExtendedInterface(TInt, TAny *, TAny *)
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
Public Member Enumerations
enumTSuplServiceType { ESUPL_1_0 = 1, ESUPL_2_0 }
Protected Attributes
CSuplSubSessnPtrHolder *iPtrHolder
TSuplServiceType iSuplService
Private Attributes
TInt iNotifyRequestCtr
TSuplTerminalPeriodicTrigger iPeriodicTrigger
TSuplTerminalQop iQoP
TAny *iReserved
TSuplParameters iSuplParameters
CSuplSettings *iSuplStorageSettings
TBool isTriggeringUsed

Constructor & Destructor Documentation

RSuplTerminalSubSession()

IMPORT_CRSuplTerminalSubSession()

Constructor for RSuplTerminalSubSession

Member Functions Documentation

CancelRunSession()

IMPORT_C voidCancelRunSession()

Cancels an outstanding asynchronous position determination, RunSession(), request. Canceling requests is typically attempted when an client is closing down.

CheckIfSlpExists(const TDesC &)

TInt CheckIfSlpExists(const TDesC &aHslpAddress)[protected]
Checks if server is present in the database or not @ return codes
  • KErrNone if server is present

  • KErrNotFound if server is not present

  • KErrGeneral

Parameters

const TDesC & aHslpAddress

Close()

IMPORT_C voidClose()

Closes a sub-session with the SUPL Server. This must be called when the RSuplTerminalSubSession sub-session is no longer required. All the outstanding requests must be cancelled before closing sub-session.

ConstructL()

IMPORT_C voidConstructL()[protected, virtual]

Destruct()

IMPORT_C voidDestruct()[protected, virtual]

ExtendedInterface(TInt, TAny *, TAny *)

IMPORT_C TAny *ExtendedInterface(TIntaFunctionNumber,
TAny *aPtr1,
TAny *aPtr2
)[protected, virtual]

Reserved for future expansion - derived classes should see documentation on how this is to be used.

Parameters

TInt aFunctionNumber
TAny * aPtr1
TAny * aPtr2

GetPosition(TPositionInfoBase &)

IMPORT_C TIntGetPosition(TPositionInfoBase &aPositionInfo)
This is an synchronous method for retrieving position information determined during RSuplTerminalSubSession::RunSession(). This method should be called after RunSession is completed with KErrNone or with KSuplPositionPresent. The parameter aPositionInfo is of type TPositionInfoBase defined by Location Acquisition API. It is possible to pass any class that is derived from TPositionInfoBase. But class types supported are TPositionInfo and HPositionGenericInfo defined in Location Acquisition API. Using HPositionGenericInfo client can specify and retrieve extended position information. Client can specify field it wants to retrieve by setting identifiers of the requested fields in the HPositionGenericInfo object using HPositionGenericInfo::SetRequestedField method. Fields currently supported are:
  • EPositionFieldHorizontalSpeed

  • EPositionFieldHorizontalSpeedError

  • EPositionFieldVerticalSpeed

  • EPositionFieldVerticalSpeedError

If the position determined during RunSession() does not meet the quality criteria specified by the client, KSuplPositionQualityLoss is returned for GetPosition() . But client will still be able to get the position information if RunSession() is completed with KErrNone. Quality of position in RunSession() is optional and returning KSuplPositionQualityLoss error code is applicable only if client has mentioned QoP when invoking RunSession() .

Parameters

TPositionInfoBase & aPositionInfo

GetServerAddress(TDes &)

IMPORT_C TIntGetServerAddress(TDes &aHslpAddress)

This is an synchronous method for retrieving information on the server used during RSuplTerminalSubSession::RunSession(). This method should be called after RunSession is completed. It is client's responsibility to allocate enough memory to hold the server address and server address can have maximum size of 256 characters.

Parameters

TDes & aHslpAddress

GetSlpList(RPointerArray< CSuplTerminalParams > &)

IMPORT_C TIntGetSlpList(RPointerArray< CSuplTerminalParams > &aParamValues)

Retrieves list of SUPL server propertis configured. Client can use the retrieved SUPL server properties to specify the server address RunSession()

Parameters

RPointerArray< CSuplTerminalParams > & aParamValues

NotifyTriggerFired(TRequestStatus &, TSuplTriggerFireInfo &)

IMPORT_C voidNotifyTriggerFired(TRequestStatus &aStatus,
TSuplTriggerFireInfo &aFireInfo
)

Listens for the event if any trigger is fired.

Client application must call StartSuplTriggerSession() before calling NotifyTriggerFired().

Client applications can use this method to get notified when a periodic trigger is fired. The firing information is returned to the client application. If more that one trigger is fired, Supl Trigger Server will complete the request and the first fired trigger is returned. Client application shall call this method again to get next trigger firing.

A client application will get Trigger firing response that are created by itself.

This method requires Location capability.

Since this is an asynchronous call, client has to wait for status on aStatus parameter to know the result of position determination.

Client can cancel this request using RSuplTerminalSubSession::StopSuplTriggerSession. Before a client closes a sub-session, it must ensure that all outstanding requests have been cancelled. In particular, after the client has invoked the StopSuplTriggerSession() method, it must wait until SUPL Server has reported that the request has indeed been cancelled. Panic ESuplDuplicateRequest occurs if there is already an outstanding request for the sub session.

panic
ESuplServerBadHandle If the subsession is not opened. already an outstanding NotifyTriggerFired() request.

Parameters

TRequestStatus & aStatusWill be completed
TSuplTriggerFireInfo & aFireInfoOn return contains the fired trigger's firing information.

Open(RSuplTerminalServer &, TSuplServiceType)

IMPORT_C TIntOpen(RSuplTerminalServer &aSuplServer,
TSuplServiceTypeaSuplService = ESUPL_1_0
)

Opens a sub-session to the SUPL Server. Client can request for position determination, can request for procedure to get assistance data and retrieve position information through sub-session. Panic ESuplServerHandleNotClosed occurs if sub-session is already opened

Parameters

RSuplTerminalServer & aSuplServer
TSuplServiceType aSuplService = ESUPL_1_0

RunSession(TRequestStatus &, TSuplTerminalQop &, TInt, TInt, TBool)

IMPORT_C voidRunSession(TRequestStatus &aStatus,
TSuplTerminalQop &aQop,
TIntaSETCaps = 0,
TIntaRequestId = 0,
TBoolaFirstReq = ETrue
)

This is an asynchronous request to SUPL Server to determine position information or to determine additional positioning information such as assistance data. Client can have only one outstanding asynchronous request per sub-session.

Parameter aQop is of type TSuplTerminalQop and can be used by the Terminal Initiation API client to specify the desired quality of position. Client can specify horizontal accuracy, vertical accuracy, maximum location age and response time using this parameter.

Parameter aSETCaps can be used to restrict the positioning technologies to be used in subsequent positioning determination request by the current client. Parameter aSETCaps takes constant values defined in epos_suplterminalconstants.h and additional constants can be introduced for positioning technologies not in mentioned in the list. This parameter has a default value of zero in which case any of the position technology can be used to determine the position informatioin. Following are the currently defined constant values:
  • KGpsSETAssisted = 0x0001,

  • KGpsSETBased = 0x0002,

  • KAutonomousGps = 0x0004,

  • KAFLT = 0x0008,

  • KECID = 0x0010,

  • KEOTD = 0x0020,

  • KOTDOA = 0x0040,

  • KCID = 0x0080,

Client can use more than one option from the above table using logical 'OR' operator.

Parameter aRequestId can be used by the Terminal Initiation API client to deliver a request identifier to the tunneled positioning protocol handler if needed. This is used by the client which is requesting for additional position information such as assistance data for A-GPS. Tunneled protocol can use this value for example to match different assistance data requests and response received from SUPL Server. By default, the value of this parameter is set to zero. It is client's responsibility to generate and keep track of this request identifier, if used.

Parameter aFirstReq can be used by the Terminal Initiation API client to indicate whether the request is the first request in the subsession or not. By default, this is set to ETrue to indicate that the request is the first one. For second request onwards this parameter should be set to EFalse to indicate that the request is not the first one.

Since this is an asynchronous call, the client has to wait for status on aStatus parameter to know the result of position determination.

Client can cancel this request using RSuplTerminalSubSession::CancelRunSession. Before a client closes a sub-session, it must ensure that all outstanding requests have been cancelled. In particular, after the client has invoked the CancelRunSession() method, it must wait until SUPL Server has reported that the request has indeed been cancelled. Panic ESuplDuplicateRequest occurs if there is already an outstanding request for the sub session.

Parameters

TRequestStatus & aStatus
TSuplTerminalQop & aQop
TInt aSETCaps = 0
TInt aRequestId = 0
TBool aFirstReq = ETrue

RunSession(TSuplTerminalQop &, TInt, TInt, TBool)

IMPORT_C TIntRunSession(TSuplTerminalQop &aQop,
TIntaSETCaps = 0,
TIntaRequestId = 0,
TBoolaFirstReq = ETrue
)

This is an synchronous request to SUPL server to determine position information or to determine additional positioning information.

Parameter aQop is of type TSuplTerminalQop and can be used by the Terminal Initiation API client to specify the desired quality of position. Client can specify horizontal accuracy, vertical accuracy, maximum location age and response time using this parameter.

Parameter aSETCaps can be used to restrict the positioning technologies to be used in subsequent positioning determination requests by the current client. Parameter aSETCaps takes constant values defined in epos_suplterminalconstants.h and additional constants can be introduced for positioning technologies not in mentioned in the list. This parameter has a default value of zero in which case any of the position technology can be used to determine the position informatioin. Following are the currently defined constant values:
  • KGpsSETAssisted = 0x0001,

  • KGpsSETBased = 0x0002,

  • KAutonomousGps = 0x0004,

  • KAFLT = 0x0008,

  • KECID = 0x0010,

  • KEOTD = 0x0020,

  • KOTDOA = 0x0040,

  • KCID = 0x0080,

Client can use more than one option from the above table using logical 'OR' operator.

Parameter aRequestId can be used by the Terminal Initiation API client to deliver a request identifier to the tunneled positioning protocol handler if needed. This is used by the client which is requesting for additional position information such as assistance data for A-GPS. Tunneled protocol can use this value for example to match different assistance data requests and response received from SUPL Server. By default, value of this parameter is set to zero. It is client's responsibility to generate and keep track of this request identifier, if used.

Parameter aFirstReq can be used by the Terminal Initiation API client to indicate whether the request is the first request in the subsession or not. By default, this is set to ETrue to indicate that the request is the first one. For second request onwards this parameter should be set to EFalse to indicate that the request is not the first one.

Parameters

TSuplTerminalQop & aQop
TInt aSETCaps = 0
TInt aRequestId = 0
TBool aFirstReq = ETrue

RunSession(TRequestStatus &, TInt, TInt, TBool)

IMPORT_C voidRunSession(TRequestStatus &aStatus,
TIntaSETCaps = 0,
TIntaRequestId = 0,
TBoolaFirstReq = ETrue
)

This is an asynchronous request to SUPL Server to determine position information or to determine additional positioning information such as assistance data. Client can have only one outstanding asynchronous request per sub-session.

Parameter aSETCaps can be used to restrict the positioning technologies to be used in subsequent positioning determination request by the current client. Parameter aSETCaps takes constant values defined in epos_suplterminalconstants.h and additional constants can be introduced for positioning technologies not mentioned in the list. This parameter has a default value of zero in which case any of the position technology can be used to determine the position informatioin. Following are the currently defined constant values:
  • KGpsSETAssisted = 0x0001,

  • KGpsSETBased = 0x0002,

  • KAutonomousGps = 0x0004,

  • KAFLT = 0x0008,

  • KECID = 0x0010,

  • KEOTD = 0x0020,

  • KOTDOA = 0x0040,

  • KCID = 0x0080,

Client can use more than one option from the above table using logical 'OR' operator.

Parameter aRequestId can be used by the Terminal Initiation API client to deliver a request identifier to the tunneled positioning protocol handler if needed. This is used by the client which is requesting for additional position information such as assistance data for A-GPS. Tunneled protocol can use this value for example to match different assistance data requests and response received from SUPL Server. By default, value of this parameter is set to zero. It is client's responsibility to generate and keep track of this request identifier, if used.

Parameter aFirstReq can be used by the Terminal Initiation API client to indicate whether the request is the first request in the subsession or not. By default, this is set to ETrue to indicate that the request is the first one. For second request onwards this parameter should be set to EFalse to indicate that the request is not the first one.

Since this is an asynchronous call, client has to wait for status on aStatus parameter to know the result of position determination.

Client can cancel this request using RSuplTerminalSubSession::CancelRunSession. Before a client closes a sub-session, it must ensure that all outstanding requests have been cancelled. In particular, after the client has invoked the CancelRunSession() method, it must wait until SUPL Server has reported that the request has indeed been cancelled. Panic ESuplDuplicateRequest occurs if there is already an outstanding request for the sub session.

Parameters

TRequestStatus & aStatus
TInt aSETCaps = 0
TInt aRequestId = 0
TBool aFirstReq = ETrue

RunSession(TInt, TInt, TBool)

IMPORT_C TIntRunSession(TIntaSETCaps = 0,
TIntaRequestId = 0,
TBoolaFirstReq = ETrue
)

This is an synchronous request to SUPL Server to determine position information or to determine additional positioning information.

Parameter aSETCaps can be used to restrict the positioning technologies to be used in subsequent positioning determination requests by the current client. Parameter aSETCaps takes constant values defined in epos_suplterminalconstants.h and additional constants can be introduced for positioning technologies not in mentioned in the list. This parameter has a default value of zero in which case any of the position technology can be used to determine the position informatioin. Following are the currently defined constant values:
  • KGpsSETAssisted = 0x0001,

  • KGpsSETBased = 0x0002,

  • KAutonomousGps = 0x0004,

  • KAFLT = 0x0008,

  • KECID = 0x0010,

  • KEOTD = 0x0020,

  • KOTDOA = 0x0040,

  • KCID = 0x0080,

Client can use more than one option from the above table using logical 'OR' operator.

Parameter aRequestId can be used by the Terminal Initiation API client to deliver a request identifier to the tunneled positioning protocol handler if needed. This is used by the client which is requesting for additional position information such as assistance data for A-GPS. Tunneled protocol can use this value for example to match different assistance data requests and response received from SUPL server. By default, value of this parameter is set to zero. It is client's responsibility to generate and keep track of this request identifier, if used.

Parameter aFirstReq can be used by the Terminal Initiation API client to indicate whether the request is the first request in the subsession or not. By default, this is set to ETrue to indicate that the request is the first one. For second request onwards this parameter should be set to EFalse to indicate that the request is not the first one.

Parameters

TInt aSETCaps = 0
TInt aRequestId = 0
TBool aFirstReq = ETrue

RunSession(TRequestStatus &, TSuplTerminalQop &, const TDesC &, TBool, TInt, TInt, TBool)

IMPORT_C voidRunSession(TRequestStatus &aStatus,
TSuplTerminalQop &aQop,
const TDesC &aHslpAddress,
TBoolaFallBack = EFalse,
TIntaSETCaps = 0,
TIntaRequestId = 0,
TBoolaFirstReq = ETrue
)

This is an asynchronous request to SUPL Server to determine position information or to determine additional positioning information such as assistance data. Client can have only one outstanding asynchronous request per sub-session.

Parameter aQop is of type TSuplTerminalQop and can be used by the Terminal Initiation API client to specify the desired quality of position. Client can specify horizontal accuracy, vertical accuracy, maximum location age and response time using this parameter.

Parameter aHslpAddress is used to specify SUPL server to be used. The list of configured SUPL server addresses can be obtained using GetSlpList() . The SUPL server address is one of the parameter in the the server properties obtained.

Parameter aFallBack can be used to specify if the fallback to other configured server is allowed if SUPL session with the server address specified fails.

Parameter aSETCaps can be used to restrict the positioning technologies to be used in subsequent positioning determination request by the current client. Parameter aSETCaps takes constant values defined in epos_suplterminalconstants.h and additional constants can be introduced for positioning technologies not in mentioned in the list. This parameter has a default value of zero in which case any of the position technology can be used to determine the position informatioin. Following are the currently defined constant values:
  • KGpsSETAssisted = 0x0001,

  • KGpsSETBased = 0x0002,

  • KAutonomousGps = 0x0004,

  • KAFLT = 0x0008,

  • KECID = 0x0010,

  • KEOTD = 0x0020,

  • KOTDOA = 0x0040,

  • KCID = 0x0080,

Client can use more than one option from the above table using logical 'OR' operator.

Parameter aRequestId can be used by the Terminal Initiation API client to deliver a request identifier to the tunneled positioning protocol handler if needed. This is used by the client which is requesting for additional position information such as assistance data for A-GPS. Tunneled protocol can use this value for example to match different assistance data requests and response received from SUPL Server. By default, the value of this parameter is set to zero. It is client's responsibility to generate and keep track of this request identifier, if used.

Parameter aFirstReq can be used by the Terminal Initiation API client to indicate whether the request is the first request in the subsession or not. By default, this is set to ETrue to indicate that the request is the first one. For second request onwards this parameter should be set to EFalse to indicate that the request is not the first one.

Since this is an asynchronous call, the client has to wait for status on aStatus parameter to know the result of position determination.

Client can cancel this request using RSuplTerminalSubSession::CancelRunSession. Before a client closes a sub-session, it must ensure that all outstanding requests have been cancelled. In particular, after the client has invoked the CancelRunSession() method, it must wait until SUPL Server has reported that the request has indeed been cancelled. Panic ESuplDuplicateRequest occurs if there is already an outstanding request for the sub session.

Parameters

TRequestStatus & aStatus
TSuplTerminalQop & aQop
const TDesC & aHslpAddress
TBool aFallBack = EFalse
TInt aSETCaps = 0
TInt aRequestId = 0
TBool aFirstReq = ETrue

RunSession(TSuplTerminalQop &, const TDesC &, TBool, TInt, TInt, TBool)

IMPORT_C TIntRunSession(TSuplTerminalQop &aQop,
const TDesC &aHslpAddress,
TBoolaFallBack = EFalse,
TIntaSETCaps = 0,
TIntaRequestId = 0,
TBoolaFirstReq = ETrue
)

This is an synchronous request to SUPL server to determine position information or to determine additional positioning information.

Parameter aQop is of type TSuplTerminalQop and can be used by the Terminal Initiation API client to specify the desired quality of position. Client can specify horizontal accuracy, vertical accuracy, maximum location age and response time using this parameter.

Parameter aHslpAddress is used to specify SUPL server to be used. The list of configured SUPL server addresses can be obtained using GetSlpList() . The SUPL server address is one of the parameter in the the server properties obtained.

Parameter aFallBack can be used to specify if the fallback to other configured server is allowed if SUPL session with the server address specified fails.

Parameter aSETCaps can be used to restrict the positioning technologies to be used in subsequent positioning determination requests by the current client. Parameter aSETCaps takes constant values defined in epos_suplterminalconstants.h and additional constants can be introduced for positioning technologies not in mentioned in the list. This parameter has a default value of zero in which case any of the position technology can be used to determine the position informatioin. Following are the currently defined constant values:
  • KGpsSETAssisted = 0x0001,

  • KGpsSETBased = 0x0002,

  • KAutonomousGps = 0x0004,

  • KAFLT = 0x0008,

  • KECID = 0x0010,

  • KEOTD = 0x0020,

  • KOTDOA = 0x0040,

  • KCID = 0x0080,

Client can use more than one option from the above table using logical 'OR' operator.

Parameter aRequestId can be used by the Terminal Initiation API client to deliver a request identifier to the tunneled positioning protocol handler if needed. This is used by the client which is requesting for additional position information such as assistance data for A-GPS. Tunneled protocol can use this value for example to match different assistance data requests and response received from SUPL Server. By default, value of this parameter is set to zero. It is client's responsibility to generate and keep track of this request identifier, if used.

Parameter aFirstReq can be used by the Terminal Initiation API client to indicate whether the request is the first request in the subsession or not. By default, this is set to ETrue to indicate that the request is the first one. For second request onwards this parameter should be set to EFalse to indicate that the request is not the first one.

Parameters

TSuplTerminalQop & aQop
const TDesC & aHslpAddress
TBool aFallBack = EFalse
TInt aSETCaps = 0
TInt aRequestId = 0
TBool aFirstReq = ETrue

RunSession(TRequestStatus &, const TDesC &, TBool, TInt, TInt, TBool)

IMPORT_C voidRunSession(TRequestStatus &aStatus,
const TDesC &aHslpAddress,
TBoolaFallBack = EFalse,
TIntaSETCaps = 0,
TIntaRequestId = 0,
TBoolaFirstReq = ETrue
)

This is an asynchronous request to SUPL Server to determine position information or to determine additional positioning information such as assistance data. Client can have only one outstanding asynchronous request per sub-session.

Parameter aHslpAddress is used to specify SUPL server to be used. The list of configured SUPL server addresses can be obtained using GetSlpList() . The SUPL server address is one of the parameter in the the server properties obtained.

Parameter aFallBack can be used to specify if the fallback to other configured server is allowed if SUPL session with the server address specified fails.

Parameter aSETCaps can be used to restrict the positioning technologies to be used in subsequent positioning determination request by the current client. Parameter aSETCaps takes constant values defined in epos_suplterminalconstants.h and additional constants can be introduced for positioning technologies not mentioned in the list. This parameter has a default value of zero in which case any of the position technology can be used to determine the position informatioin. Following are the currently defined constant values:
  • KGpsSETAssisted = 0x0001,

  • KGpsSETBased = 0x0002,

  • KAutonomousGps = 0x0004,

  • KAFLT = 0x0008,

  • KECID = 0x0010,

  • KEOTD = 0x0020,

  • KOTDOA = 0x0040,

  • KCID = 0x0080,

Client can use more than one option from the above table using logical 'OR' operator.

Parameter aRequestId can be used by the Terminal Initiation API client to deliver a request identifier to the tunneled positioning protocol handler if needed. This is used by the client which is requesting for additional position information such as assistance data for A-GPS. Tunneled protocol can use this value for example to match different assistance data requests and response received from SUPL Server. By default, value of this parameter is set to zero. It is client's responsibility to generate and keep track of this request identifier, if used.

Parameter aFirstReq can be used by the Terminal Initiation API client to indicate whether the request is the first request in the subsession or not. By default, this is set to ETrue to indicate that the request is the first one. For second request onwards this parameter should be set to EFalse to indicate that the request is not the first one.

Since this is an asynchronous call, client has to wait for status on aStatus parameter to know the result of position determination.

Client can cancel this request using RSuplTerminalSubSession::CancelRunSession. Before a client closes a sub-session, it must ensure that all outstanding requests have been cancelled. In particular, after the client has invoked the CancelRunSession() method, it must wait until SUPL Server has reported that the request has indeed been cancelled. Panic ESuplDuplicateRequest occurs if there is already an outstanding request for the sub session.

Parameters

TRequestStatus & aStatus
const TDesC & aHslpAddress
TBool aFallBack = EFalse
TInt aSETCaps = 0
TInt aRequestId = 0
TBool aFirstReq = ETrue

RunSession(const TDesC &, TBool, TInt, TInt, TBool)

IMPORT_C TIntRunSession(const TDesC &aHslpAddress,
TBoolaFallBack = EFalse,
TIntaSETCaps = 0,
TIntaRequestId = 0,
TBoolaFirstReq = ETrue
)

This is an synchronous request to SUPL Server to determine position information or to determine additional positioning information.

Parameter aHslpAddress is used to specify SUPL server to be used. The list of configured SUPL server addresses can be obtained using GetSlpList() . The SUPL server address is one of the parameter in the the server properties obtained.

Parameter aFallBack can be used to specify if the fallback to other configured server is allowed if SUPL session with the server address specified fails.

Parameter aSETCaps can be used to restrict the positioning technologies to be used in subsequent positioning determination requests by the current client. Parameter aSETCaps takes constant values defined in epos_suplterminalconstants.h and additional constants can be introduced for positioning technologies not in mentioned in the list. This parameter has a default value of zero in which case any of the position technology can be used to determine the position informatioin. Following are the currently defined constant values:
  • KGpsSETAssisted = 0x0001,

  • KGpsSETBased = 0x0002,

  • KAutonomousGps = 0x0004,

  • KAFLT = 0x0008,

  • KECID = 0x0010,

  • KEOTD = 0x0020,

  • KOTDOA = 0x0040,

  • KCID = 0x0080,

Client can use more than one option from the above table using logical 'OR' operator.

Parameter aRequestId can be used by the Terminal Initiation API client to deliver a request identifier to the tunneled positioning protocol handler if needed. This is used by the client which is requesting for additional position information such as assistance data for A-GPS. Tunneled protocol can use this value for example to match different assistance data requests and response received from SUPL server. By default, value of this parameter is set to zero. It is client's responsibility to generate and keep track of this request identifier, if used.

Parameter aFirstReq can be used by the Terminal Initiation API client to indicate whether the request is the first request in the subsession or not. By default, this is set to ETrue to indicate that the request is the first one. For second request onwards this parameter should be set to EFalse to indicate that the request is not the first one.

Parameters

const TDesC & aHslpAddress
TBool aFallBack = EFalse
TInt aSETCaps = 0
TInt aRequestId = 0
TBool aFirstReq = ETrue

StartSuplTriggerSession(TRequestStatus &, TSuplTerminalPeriodicTrigger &, TInt, TInt)

IMPORT_C voidStartSuplTriggerSession(TRequestStatus &aStatus,
TSuplTerminalPeriodicTrigger &aPeriodicTrigger,
TIntaSETCaps = 0,
TIntaRequestId = 0
)

This is an asynchronous request to SUPL Server to start periodic triggering to determine position information or to determine additional positioning information such as assistance data at given interval of time subsequently. Client can have only one outstanding asynchronous request per sub-session.

Parameter aSETCaps can be used to restrict the positioning technologies to be used in subsequent positioning determination requests by the current client. Parameter aSETCaps takes constant values defined in epos_suplterminalconstants.h and additional constants can be introduced for positioning technologies not in mentioned in the list. This parameter has a default value of zero in which case any of the position technology can be used to determine the position informatioin. Following are the currently defined constant values:
  • KGpsSETAssisted = 0x0001,

  • KGpsSETBased = 0x0002,

  • KAutonomousGps = 0x0004,

  • KAFLT = 0x0008,

  • KECID = 0x0010,

  • KEOTD = 0x0020,

  • KOTDOA = 0x0040,

  • KCID = 0x0080,

Client can use more than one option from the above table using logical 'OR' operator.

Parameter aRequestId can be used by the Terminal Initiation API client to deliver a request identifier to the tunneled positioning protocol handler if needed. This is used by the client which is requesting for additional position information such as assistance data for A-GPS. Tunneled protocol can use this value for example to match different assistance data requests and response received from SUPL server. By default, value of this parameter is set to zero. It is client's responsibility to generate and keep track of this request identifier, if used.

FallBack mechanism is enabled as default to allow other servers if SUPL session with the server address specified fails.

Since this is an asynchronous call, client has to wait for status on aStatus parameter to know the result of starting the triggering session.

Client can cancel this request using RSuplTerminalSubSession::StopSuplTriggerSession. Before a client closes a sub-session, it must ensure that all outstanding requests have been cancelled. In particular, after the client has invoked the StopSuplTriggerSession() method, it must wait until SUPL Server has reported that the request has indeed been cancelled. Panic ESuplDuplicateRequest occurs if there is already an outstanding request for the sub session.

Parameters

TRequestStatus & aStatus
TSuplTerminalPeriodicTrigger & aPeriodicTrigger
TInt aSETCaps = 0
TInt aRequestId = 0

StartSuplTriggerSession(TRequestStatus &, TSuplTerminalPeriodicTrigger &, const TDesC &, TBool, TInt, TInt)

IMPORT_C voidStartSuplTriggerSession(TRequestStatus &aStatus,
TSuplTerminalPeriodicTrigger &aPeriodicTrigger,
const TDesC &aHslpAddress,
TBoolaFallBack = EFalse,
TIntaSETCaps = 0,
TIntaRequestId = 0
)

This is an asynchronous request to SUPL Server to start periodic triggering to determine position information or to determine additional positioning information such as assistance data at given interval of time subsequently. Client can have only one outstanding asynchronous request per sub-session.

Parameter aHslpAddress is used to specify SUPL server to be used. The list of configured SUPL server addresses can be obtained using GetSlpList() . The SUPL server address is one of the parameter in the the server properties obtained.

Parameter aFallBack can be used to specify if the fallback to other configured server is allowed if SUPL session with the server address specified fails.

Parameter aSETCaps can be used to restrict the positioning technologies to be used in subsequent positioning determination requests by the current client. Parameter aSETCaps takes constant values defined in epos_suplterminalconstants.h and additional constants can be introduced for positioning technologies not in mentioned in the list. This parameter has a default value of zero in which case any of the position technology can be used to determine the position informatioin. Following are the currently defined constant values:
  • KGpsSETAssisted = 0x0001,

  • KGpsSETBased = 0x0002,

  • KAutonomousGps = 0x0004,

  • KAFLT = 0x0008,

  • KECID = 0x0010,

  • KEOTD = 0x0020,

  • KOTDOA = 0x0040,

  • KCID = 0x0080,

Client can use more than one option from the above table using logical 'OR' operator.

Parameter aRequestId can be used by the Terminal Initiation API client to deliver a request identifier to the tunneled positioning protocol handler if needed. This is used by the client which is requesting for additional position information such as assistance data for A-GPS. Tunneled protocol can use this value for example to match different assistance data requests and response received from SUPL server. By default, value of this parameter is set to zero. It is client's responsibility to generate and keep track of this request identifier, if used.

Since this is an asynchronous call, client has to wait for status on aStatus parameter to know the result of starting the triggering session.

Client can cancel this request using RSuplTerminalSubSession::StopSuplTriggerSession. Before a client closes a sub-session, it must ensure that all outstanding requests have been cancelled. In particular, after the client has invoked the StopSuplTriggerSession() method, it must wait until SUPL Server has reported that the request has indeed been cancelled. Panic ESuplDuplicateRequest occurs if there is already an outstanding request for the sub session.

Parameters

TRequestStatus & aStatus
TSuplTerminalPeriodicTrigger & aPeriodicTrigger
const TDesC & aHslpAddress
TBool aFallBack = EFalse
TInt aSETCaps = 0
TInt aRequestId = 0

StopSuplTriggerSession()

IMPORT_C voidStopSuplTriggerSession()

Stops an outstanding asynchronous request used for Triggering. This method is used to cancel both StartSuplTriggerSession() and NotifyTriggerFired() which ever is outstanding at that time.

Stopping requests is typically attempted when an client is closing down.

Member Enumerations Documentation

Enum TSuplServiceType

For differentiating request between Supl Service Versions

Enumerators

ESUPL_1_0 = 1
ESUPL_2_0

Member Data Documentation

TInt iNotifyRequestCtr

TInt iNotifyRequestCtr[private]

TSuplTerminalPeriodicTrigger iPeriodicTrigger

TSuplTerminalPeriodicTrigger iPeriodicTrigger[private]

CSuplSubSessnPtrHolder * iPtrHolder

CSuplSubSessnPtrHolder *iPtrHolder[protected]

A pointer to a container that holds pointer descriptors, needed to point to the clients request data during asynchronous requests

TSuplTerminalQop iQoP

TSuplTerminalQop iQoP[private]

TAny * iReserved

TAny *iReserved[private]

Unused variable for future expansion.

TSuplParameters iSuplParameters

TSuplParameters iSuplParameters[private]

TSuplServiceType iSuplService

TSuplServiceType iSuplService[protected]

CSuplSettings * iSuplStorageSettings

CSuplSettings *iSuplStorageSettings[private]

TBool isTriggeringUsed

TBool isTriggeringUsed[private]