MSmlDmCallback Class Reference

#include <smldmadapter.h>

class MSmlDmCallback
Public Member Functions
pure virtual voidFetchLinkL(const TDesC8 &, CBufBase &, MSmlDmAdapter::TError &)
pure virtual HBufC8 *GetLuidAllocL(const TDesC8 &)
pure virtual TInt RemoveMappingL(TUint32, const TDesC8 &, TBool)
pure virtual voidSetMappingL(const TDesC8 &, const TDesC8 &)
pure virtual voidSetResultsL(TInt, CBufBase &, const TDesC8 &)
pure virtual voidSetResultsL(TInt, RReadStream *&, const TDesC8 &)
pure virtual voidSetStatusL(TInt, MSmlDmAdapter::TError)

Detailed Description

This class is callback interface which is implemented in DM Module. An instance is passed by reference as an argument to the CSmlDmAdapter::NewL() function. This interface is mostly used for returning results and status codes for completed commands to the DM framework. The interface also has functionality for mapping LUIDs and fetching from other parts of the DM Tree. The adapter does not necessarily need to use any other functions but the SetStatusL and SetResultsL, if it handles the LUID mapping itself.

Member Function Documentation

FetchLinkL ( const TDesC8 &, CBufBase &, MSmlDmAdapter::TError & )

voidFetchLinkL(const TDesC8 &aURI,
CBufBase &aData,
MSmlDmAdapter::TError &aStatus
)[pure virtual]

The function is used to make a fetch to other adapters. The most common use is to make a fetch to the AP adapter, because when managing the access points, the data comes as URI. For example, there are ToNAPId field in some adapters, and data to it can be something like AP/IAPidx, and then the link to AP adapter is needed. Using FetchLinkL causes the DM Framework to make a Get request to the appropriate DM adapter. The receiving adapter MUST complete the Get request synchronously.

ParameterDescription
aURIURI of the object.
aDataReference to data, i.e. data is returned here
aStatusThe status of fetch command is returned here

GetLuidAllocL ( const TDesC8 & )

HBufC8 *GetLuidAllocL(const TDesC8 &aURI)[pure virtual]

The function returns the LUID which is mapped to aURI. If LUID is not found, the function allocates a null length string, i.e. the function allocates memory in every case.

ParameterDescription
aURIURI of the object.

RemoveMappingL ( TUint32, const TDesC8 &, TBool )

TInt RemoveMappingL(TUint32aAdapterId,
const TDesC8 &aURI,
TBoolaChildAlso
)[pure virtual]

The function is used to remove a mapped URI. Returns the error code about mapping removal.

ParameterDescription
aAdapterIdSettings Adapter id
aURIMapped Uri
aChildAlsoIndicates the child nodes removal

SetMappingL ( const TDesC8 &, const TDesC8 & )

voidSetMappingL(const TDesC8 &aURI,
const TDesC8 &aLUID
)[pure virtual]

The function passes map information to DM Module. This function is called for a new management object, both for node objects and for leaf objects. In addition if ChildURIListL() function has returned new objects a mapping information of the new objects must be passed. A mapping is treated as inheritable. If the mapping is not set with this function, the mapping LUID of the parent object is passed in following commands to the object.

ParameterDescription
aURIURI of the object.
aLUIDLUID of the object. LUID must contain the all information, which is needed for retrieve the invidual object from the database. Typically it is ID for the database table. In more complicated structures it can be combination of IDs, which represent path to the object.

SetResultsL ( TInt, CBufBase &, const TDesC8 & )

voidSetResultsL(TIntaResultsRef,
CBufBase &aObject,
const TDesC8 &aType
)[pure virtual]

The function is used to return the data in case of FetchLeafObjectL(), FetchLeafObjectSizeL() and ChildURIListL() functions. It should not be called where the DM command has failed, i.e. the error code returned in SetStatusL is something other than EOk.

ParameterDescription
aResultsRefReference to correct command
aObjectThe data which should be returned
aTypeMIME type of the object

SetResultsL ( TInt, RReadStream *&, const TDesC8 & )

voidSetResultsL(TIntaResultsRef,
RReadStream *&aStream,
const TDesC8 &aType
)[pure virtual]

The function is used to return the data in case of FetchLeafObjectL() and ChildURIListL() functions, where the size of the data being returned is large enough for the Adapter to stream it. This function should not be called when command was failed, i.e. the error code returned in SetStatusL is something other than EOk.

ParameterDescription
aResultsRefReference to correct command
aStreamLarge data which should be returned, DM engine closes stream when it has read all the data
aTypeMIME type of the object

SetStatusL ( TInt, MSmlDmAdapter::TError )

voidSetStatusL(TIntaStatusRef,
MSmlDmAdapter::TErroraErrorCode
)[pure virtual]

The function returns information about the Add,Update,Delete and Fetch commands success to DM engine. The reference to correct command must be used when calling the SetStatusL function, the reference is got from the argument of the command functions. The SetStatusL function must be called separately for every single command.

ParameterDescription
aStatusRefReference to correct command
aErrorCodeInformation about the command success