There are two kinds of results that require handling, they are:
We will examine a simple handling example for both kinds below.
Note: Queries are asynchronous.
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
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.