MSensrvDataListener Class Reference

class MSensrvDataListener

Data listener callback interface to indicate when data is available for clients to read.

This class is for use with the CSensrvChannel::StartDataListeningL() method. Clients wishing to use data listening must inherit from this class and provide a reference to an instance of it in CSensrvChannel::StartDataListeningL().

CSensrvChannel::StartDataListeningL() CSensrvChannel::GetData() CSensrvChannel::StopDataListening() sensrvclient.lib
Since
S60 5.0
Public Member Functions
voidDataError(CSensrvChannel &, TSensrvErrorSeverity)
voidDataReceived(CSensrvChannel &, TInt, TInt)
voidGetDataListenerInterfaceL(TUid, TAny *&)

Member Functions Documentation

DataError(CSensrvChannel &, TSensrvErrorSeverity)

voidDataError(CSensrvChannel &aChannel,
TSensrvErrorSeverityaError
)[pure virtual]

Callback implemented by a client so that they can be notified when data listening has failed. If the error is fatal the channel will be closed, the sensor server session has been terminated and the channel object is no longer useable. If the error is minor, some data has potentially been lost, however listening is still active.

Clients providing an implementation for this callback must ensure that the operation does not leave. If a leave does occur then the behaviour is undefined.

Since
S60 5.0

Parameters

CSensrvChannel & aChannelChannel associated with the listener
TSensrvErrorSeverity aErrorThe error severity

DataReceived(CSensrvChannel &, TInt, TInt)

voidDataReceived(CSensrvChannel &aChannel,
TIntaCount,
TIntaDataLost
)[pure virtual]

Callback implemented by a client so that they can be notified that data is available to read. A client can read the data using CSensrvChannel::GetData(). Data is valid until this DataReceived() notification occurs again.

Data loss can occur if the client does not retrieve data, using SensrvChannel::GetData(), from server fast enough after the client has been told it is availble. This can happen when system is under heavy load and the client process has lower priority than sensor server process. If data loss is a problem consider using a higher object count in data listening, which will reduce the number of IPC context switches.

Clients providing an implementation for this callback must ensure that the operation does not leave. If a leave does occur then the behaviour is undefined.

Since
S60 5.0
CSensrvChannel::GetData()

Parameters

CSensrvChannel & aChannelChannel associated with the listener
TInt aCountData object count contained in data to be read
TInt aDataLostNumber of lost data items.

GetDataListenerInterfaceL(TUid, TAny *&)

voidGetDataListenerInterfaceL(TUidaInterfaceUid,
TAny *&aInterface
)[pure virtual]

Callback to future proof this API so that additional callbacks can be added in the future without breaking binary compatibility.

Since
S60 5.0
leave
One of the system-wide error codes

Parameters

TUid aInterfaceUidIdentifier for the interface to be retrieved
TAny *& aInterfaceA reference to a pointer for the specified interface. Implementation sets aInterface to a valid pointer if the M-class identified by aInterfaceUid is supported, otherwise it is set to NULL on exit.