|
|
|
Clients that make service and attribute queries through
CSdpAgent must implement the
MSdpAgentNotifier interface to handle the responses.
There are two kinds of results that require handling, they are:
Service Search Results, and
Attribute Read Results
We will examine a simple handling example for both kinds below.
When a service search request completes, it calls the
NextRecordRequestComplete():
virtual void NextRecordRequestComplete(TInt aError, TSdpServRecordHandle aHandle, TInt aTotalRecordsCount)
aHandle gives the service record handle of the matching
service, and can be used in a subsequent attribute query.
aTotalRecordsCount gives the total number of matching records.
When an attribute request completes, each single attribute is
returned with its attribute ID using
AttributeRequestResult().
virtual void AttributeRequestResult(TSdpServRecordHandle aHandle, TSdpAttributeID aAttrID, CSdpAttrValue* aAttrValue)
The ID of the attribute is given in aAttrID, and the
attribute value itself in aAttrValue. You can find the type of the
attribute through aAttrValue->Type(), cast
aAttrValue on this base to the correct subclass of
CSdpAttrValue: for example, if the type is
ETypeBoolean, you can cast aAttrValue to a
CSdpAttrValueBoolean.
When there are no more attributes to be returned,
AttributeRequestComplete() is called.
The complete set of Service Discovery Agent tutorials are shown below:
Handling SDP query results - This document
Also refer to the Bluetooth Service Discovery Agent Overview and the Bluetooth SDP Overview for additional background information.