Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]

#include <btsdp.h>
Link against: sdpagent.lib

Class CSdpAgent

class CSdpAgent : public CBase;

Description

Makes Bluetooth service discovery protocol (SDP) requests to a remote device.

To make SDP requests,

Construct a CSdpAgent object with the Bluetooth address of the remote device to query.

Set the classes of service that you want to query for. The classes have predefined UUIDs, which you specify with CSdpAgent::SetRecordFilterL(const CSdpSearchPattern &).

Get results through CSdpAgent::NextRecordRequestL(). Information on services is stored as records, which can be queried in turn for attribute values for the service through CSdpAgent::AttributeRequestL(TSdpServRecordHandle,TSdpAttributeID).

A user of this class must implement MSdpAgentNotifier to receive the responses to queries.

Note that queries are asynchronous, although this is hidden in the API. The implication is that the interface functions that receive responses are only called when the thread's active scheduler can schedule handling of the completion of the query.

Derivation

Members

Defined in CSdpAgent:

Inherited from CBase:

See also:


Construction and destruction


NewL(MSdpAgentNotifier &,const TBTDevAddr &)

Capability: LocalServices

IMPORT_C static CSdpAgent* NewL(MSdpAgentNotifier &aNotifier, const TBTDevAddr &aDevAddr);

Description

Creates a new SDP Agent object.

Parameters

MSdpAgentNotifier &aNotifier

Interface implemented by the query requester, which the agent calls asynchronously to pass responses to queries

const TBTDevAddr &aDevAddr

The Bluetooth address of the remote device to query

Return value

CSdpAgent *

New service discovery agent


NewLC(MSdpAgentNotifier &,const TBTDevAddr &)

Capability: LocalServices

IMPORT_C static CSdpAgent* NewLC(MSdpAgentNotifier &aNotifier, const TBTDevAddr &aDevAddr);

Description

Creates a new SDP Agent object.

Allocate and construct a service discovery agent, leaving the object on the cleanup stack.

Parameters

MSdpAgentNotifier &aNotifier

Interface implemented by the query requester, which the agent calls asynchronously to pass responses to queries

const TBTDevAddr &aDevAddr

The Bluetooth address of the remote device to query

Return value

CSdpAgent *

New service discovery agent


~CSdpAgent()

IMPORT_C ~CSdpAgent();

Description

Destructor.

[Top]


Member functions


SetRecordFilterL(const CSdpSearchPattern &)

Capability: LocalServices

IMPORT_C void SetRecordFilterL(const CSdpSearchPattern &aUUIDFilter);

Description

Sets the classes of service to query for on the remote device.

Responses from the agent will only contain records for services that belong to the classes listed in aUUIDFilter. Service classes are represented as unique identifiers (UUIDs).

Parameters

const CSdpSearchPattern &aUUIDFilter

A list of UUIDs that will be matched in SDP Service Search Requests. The function takes a copy of the object. Any previous UUID list is deleted.


SetAttributePredictorListL(const CSdpAttrIdMatchList &)

Interface status: deprecated
Capability: LocalServices

IMPORT_C void SetAttributePredictorListL(const CSdpAttrIdMatchList &aMatchList);

Description

This does nothing! (It used to create a copy of an attribute match list supplied, and place it in the CSdpAgentEng object.)

Parameters

const CSdpAttrIdMatchList &aMatchList

Attribute - now unused


NextRecordRequestL()

Capability: LocalServices

IMPORT_C void NextRecordRequestL();

Description

Gets a handle to the record for the next (or first) service on the remote device that matches the service class filter previously set.

The function is asynchronous: on completion, it calls NextRecordRequestComplete() on the MSdpAgentNotifier interface passed in the CSdpAgent::NewL(MSdpAgentNotifier &,const TBTDevAddr &).

See also:


AttributeRequestL(TSdpServRecordHandle,TSdpAttributeID)

Capability: LocalServices

IMPORT_C void AttributeRequestL(TSdpServRecordHandle aHandle, TSdpAttributeID aAttrID);

Description

Gets the specified attribute for a remote service.

The function is asynchronous: on completion, it calls MSdpAgentNotifier::AttributeRequestComplete(TSdpServRecordHandle,TInt).

If the attribute is found, the function passes it by also calling MSdpAgentNotifier::AttributeRequestResult(TSdpServRecordHandle,TSdpAttributeID,CSdpAttrValue *).

Parameters

TSdpServRecordHandle aHandle

The service for which to get the attribute, specified by its record handle

TSdpAttributeID aAttrID

The ID of the attribute to get

See also:


AttributeRequestL(TSdpServRecordHandle,const CSdpAttrIdMatchList &)

Capability: LocalServices

IMPORT_C void AttributeRequestL(TSdpServRecordHandle aHandle, const CSdpAttrIdMatchList &aMatchList);

Description

Gets the specified attributes for a remote service.

The function is asynchronous: on completion, it calls MSdpAgentNotifier::AttributeRequestComplete(TSdpServRecordHandle,TInt).

The function also calls MSdpAgentNotifier::AttributeRequestResult(TSdpServRecordHandle,TSdpAttributeID,CSdpAttrValue *) for each attribute found.

Parameters

TSdpServRecordHandle aHandle

The service for which to get the attribute, specified by its record handle

const CSdpAttrIdMatchList &aMatchList

A list of attributes to get

See also:


AttributeRequestL(MSdpElementBuilder *,TSdpServRecordHandle,TSdpAttributeID)

Capability: LocalServices

IMPORT_C void AttributeRequestL(MSdpElementBuilder *aBuilder, TSdpServRecordHandle aHandle, TSdpAttributeID aAttrID);

Description

Gets the specified attribute for a remote service.

The function is asynchronous: on completion, it calls MSdpAgentNotifier::AttributeRequestComplete(TSdpServRecordHandle,TInt).

If the attribute is found, the function calls aBuilder's interface to set the attribute ID and value.

Parameters

MSdpElementBuilder *aBuilder

Object implementing the MSdpElementBuilder interface. It will be called with each type found in the response.

TSdpServRecordHandle aHandle

The service for which to get the attribute, specified by its record handle

TSdpAttributeID aAttrID

The ID of the attribute to get

See also:


AttributeRequestL(MSdpElementBuilder *,TSdpServRecordHandle,const CSdpAttrIdMatchList &)

Capability: LocalServices

IMPORT_C void AttributeRequestL(MSdpElementBuilder *aBuilder, TSdpServRecordHandle aHandle, const CSdpAttrIdMatchList &aMatchList);

Description

Gets the specified attributes for a remote service.

The function is asynchronous: on completion, it calls MSdpAgentNotifier::AttributeRequestComplete(TSdpServRecordHandle,TInt).

As each attribute is found, the function calls aBuilder's interface to set the attribute ID and value.

Parameters

MSdpElementBuilder *aBuilder

Object implementing the MSdpElementBuilder interface. It will be called with each type found in the response.

TSdpServRecordHandle aHandle

The service for which to get the attribute, specified by its record handle

const CSdpAttrIdMatchList &aMatchList

A list of attributes to get

See also:


Cancel()

Capability: LocalServices

IMPORT_C void Cancel();

Description

Attempts to cancel an SDP Agent request.

Calls cancel on active objects making request. Resets all variables associated with a request and its state.

NB The cancel operation will not, and cannot stop results from an SDP query being sent by the remote.