Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]

#include <smldmadapter.h>
Link against: devmancmdmgr.lib
This item is not part of the S60 5th Edition SDK

Class MSmlDmAdapter

class MSmlDmAdapter;

Description

Abstract Device Management adapter. Implementations of this interface are able to map settings in device stores to portions of the Device Management Tree.

Members

Defined in MSmlDmAdapter:


Member functions


ExtendedInterfaceL(TUid)

IMPORT_C virtual TAny* ExtendedInterfaceL(TUid aInterfaceUid);

Description

This function enables the adapter to instantiate any API extension to the adapter that is necessary for that adapter to function prpoperly.

Parameters

TUid aInterfaceUid

UID corresponding to the API extension interface class.

Return value

TAny *


DDFVersionL(CBufBase &)

virtual void DDFVersionL(CBufBase &aVersion)=0;

Description

The function returns the current version of the DDF. By asking for current DDF versions from adapters the DM Module can control possible changes in the data structure and send the changed DDF description to a management server. This function is always called after DDFStructureL.

Parameters

CBufBase &aVersion

DDF version of the adapter. (filled by the adapter)


DDFStructureL(MSmlDmDDFObject &)

virtual void DDFStructureL(MSmlDmDDFObject &aDDF)=0;

Description

The function for filling the DDF structure of the adapter This function is only called once, immediately after the adapter is created.

Parameters

MSmlDmDDFObject &aDDF

Reference to root object. A DM adapter starts filling the data structure by calling AddChildObjectL to the root object and so describes the DDF of the adapter.


UpdateLeafObjectL(const TDesC8 &,const TDesC8 &,const TDesC8 &,const TDesC8 &,TInt)

virtual void UpdateLeafObjectL(const TDesC8 &aURI, const TDesC8 &aLUID, const TDesC8 &aObject, const TDesC8 &aType, TInt aStatusRef)=0;

Description

The function creates new leaf objects, or replaces data in existing leaf objects. The information about the success of the command should be returned by calling the SetStatusL function of the MSmlDmCallback callback interface. This makes it possible to buffer the commands. However, all the status codes for buffered commands must be returned at the latest when the adapter's MSmlDmAdapter::CompleteOutstandingCmdsL() is called.

Parameters

const TDesC8 &aURI

URI of the object

const TDesC8 &aLUID

LUID of the object (if the adapter has earlier returned a LUID to the DM Module). For new objects, this is the LUID inherited through the parent node.

const TDesC8 &aObject

Data of the object.

const TDesC8 &aType

MIME type of the object

TInt aStatusRef

Reference to correct command, i.e. this reference must be used when calling the SetStatusL of this command


UpdateLeafObjectL(const TDesC8 &,const TDesC8 &,RWriteStream *&,const TDesC8 &,TInt)

virtual void UpdateLeafObjectL(const TDesC8 &aURI, const TDesC8 &aLUID, RWriteStream *&aStream, const TDesC8 &aType, TInt aStatusRef)=0;

Description

The function creates new leaf objects, or replaces data in existing leaf objects, in the case where data is large enough to be streamed. The information about the success of the command should be returned by calling the SetStatusL function of the MSmlDmCallback callback interface. This makes it possible to buffer the commands. However, all the status codes for buffered commands must be returned at the latest when the MSmlDmAdapter::CompleteOutstandingCmdsL() method of the adapter is called.

Parameters

const TDesC8 &aURI

URI of the object

const TDesC8 &aLUID

LUID of the object (if the adapter has earlier returned a LUID to the DM Module). For new objects, this is the LUID inherited through the parent node.

RWriteStream *&aStream

Data of the object. Adapter should create write stream and return, when data is written to stream by DM agent, MSmlDmAdapter::StreamCommittedL(RWriteStream &) is called by DM engine

const TDesC8 &aType

MIME type of the object

TInt aStatusRef

Reference to correct command, i.e. this reference must be used when calling the SetStatusL of this command.


DeleteObjectL(const TDesC8 &,const TDesC8 &,TInt)

virtual void DeleteObjectL(const TDesC8 &aURI, const TDesC8 &aLUID, TInt aStatusRef)=0;

Description

The function deletes an object and its child objects. The SetStatusL should be used as described in MSmlDmAdapter::UpdateLeafObjectL(const TDesC8 &,const TDesC8 &,const TDesC8 &,const TDesC8 &,TInt)

Parameters

const TDesC8 &aURI

URI of the object

const TDesC8 &aLUID

LUID of the object (if the adapter has earlier returned LUID to the DM Module).

TInt aStatusRef

Reference to correct command, i.e. this reference must be used when calling the SetStatusL of this command.


FetchLeafObjectL(const TDesC8 &,const TDesC8 &,const TDesC8 &,TInt,TInt)

virtual void FetchLeafObjectL(const TDesC8 &aURI, const TDesC8 &aLUID, const TDesC8 &aType, TInt aResultsRef, TInt aStatusRef)=0;

Description

The function fetches data of a leaf object. The SetStatusL should be used as described in MSmlDmAdapter::UpdateLeafObjectL(const TDesC8 &,const TDesC8 &,const TDesC8 &,const TDesC8 &,TInt). The data is returned by using the SetResultsL function of MSmlCallback callback interface, and may be streamed.

Parameters

const TDesC8 &aURI

URI of the object

const TDesC8 &aLUID

LUID of the object (if the adapter have earlier returned LUID to the DM Module).

const TDesC8 &aType

MIME type of the object

TInt aResultsRef

Reference to correct results, i.e. this reference must be used when returning the result by calling the SetResultsL.

TInt aStatusRef

Reference to correct command, i.e. this reference must be used when calling the SetStatusL of this command.


FetchLeafObjectSizeL(const TDesC8 &,const TDesC8 &,const TDesC8 &,TInt,TInt)

virtual void FetchLeafObjectSizeL(const TDesC8 &aURI, const TDesC8 &aLUID, const TDesC8 &aType, TInt aResultsRef, TInt aStatusRef)=0;

Description

The function fetches the size of the data of a leaf object. The size is in bytes, and must reflect the number of bytes that will be transferred when the framework calls FetchLeafObjectL. The SetStatusL should be used as described in MSmlDmAdapter::FetchLeafObjectL(const TDesC8 &,const TDesC8 &,const TDesC8 &,TInt,TInt). The size value is returned by using the SetResultsL function of MSmlCallback callback interface, and must be a decimal integer expressed as a string, eg. "1234". Results from this call MUST NOT be streamed.

Parameters

const TDesC8 &aURI

URI of the object

const TDesC8 &aLUID

LUID of the object (if the adapter has earlier returned LUID to the DM Module).

const TDesC8 &aType

MIME type of the object

TInt aResultsRef

Reference to correct results, i.e. this reference must be used when returning the result by calling SetResultsL.

TInt aStatusRef

Reference to correct command, i.e. this reference must be used when calling the SetStatusL of this command.


ChildURIListL(const TDesC8 &,const TDesC8 &,const CArrayFix< TSmlDmMappingInfo > &,TInt,TInt)

virtual void ChildURIListL(const TDesC8 &aURI, const TDesC8 &aLUID, const CArrayFix< TSmlDmMappingInfo > &aPreviousURISegmentList, TInt aResultsRef, TInt aStatusRef)=0;

Description

The function fetches URI list. An adapter returns the list of URI segments under the given URI separated by slash ("/"). The URI segment names for new objects must be given by the adapter. The list is returned by calling the SetResultsL function of MSmlCallback callback interface. Results from this call MUST NOT be streamed.

Parameters

const TDesC8 &aURI

URI of the parent object

const TDesC8 &aLUID

LUID of the parent object (if the adapter has earlier returned LUID to the DM Module).

const CArrayFix< TSmlDmMappingInfo > &aPreviousURISegmentList

URI list with mapping LUID information, which is known by DM engine. An adapter can use this information when verifying if old objects still exists. An adapter also knows what objects are new to DM engine and can provide LUID mapping for them. aPreviousURISegmentList parameter (see above) helps to recognise new objects.

TInt aResultsRef

Reference to correct results, i.e. this reference must be used when returning the result by calling the SetResultsL.

TInt aStatusRef

Reference to correct command, i.e. this reference must be used when calling the SetStatusL of this command.


AddNodeObjectL(const TDesC8 &,const TDesC8 &,TInt)

virtual void AddNodeObjectL(const TDesC8 &aURI, const TDesC8 &aParentLUID, TInt aStatusRef)=0;

Description

The function adds node object. In some cases an implementation of the function may be an empty function, if the node object does not need concrete database update. Still this function may be helpful to an adapter, i.e. in passing mapping LUID of the node to DM Module. The SetStatusL should be used as described in MSmlDmAdapter::UpdateLeafObjectL(const TDesC8 &,const TDesC8 &,const TDesC8 &,const TDesC8 &,TInt)

Parameters

const TDesC8 &aURI

URI of the object

const TDesC8 &aParentLUID

LUID of the parent object (if the adapter have earlier returned LUID to the DM Module).

TInt aStatusRef

Reference to correct command, i.e. this reference must be used when calling the SetStatusL of this command.


ExecuteCommandL(const TDesC8 &,const TDesC8 &,const TDesC8 &,const TDesC8 &,TInt)

virtual void ExecuteCommandL(const TDesC8 &aURI, const TDesC8 &aLUID, const TDesC8 &aArgument, const TDesC8 &aType, TInt aStatusRef)=0;

Description

The function implements execute command. The information about the success of the command should be returned by calling SetStatusL function of MSmlDmCallback callback interface. This makes it possible to buffer the commands. However, all the status codes for buffered commands must be returned at the latest when the MSmlDmAdapter::CompleteOutstandingCmdsL() of adapter is called.

Parameters

const TDesC8 &aURI

URI of the command

const TDesC8 &aLUID

LUID of the object (if the adapter have earlier returned LUID to the DM Module).

const TDesC8 &aArgument

Argument for the command

const TDesC8 &aType

MIME type of the object

TInt aStatusRef

Reference to correct command, i.e. this reference must be used when calling the SetStatusL of this command.


ExecuteCommandL(const TDesC8 &,const TDesC8 &,RWriteStream *&,const TDesC8 &,TInt)

virtual void ExecuteCommandL(const TDesC8 &aURI, const TDesC8 &aLUID, RWriteStream *&aStream, const TDesC8 &aType, TInt aStatusRef)=0;

Description

The function implements execute command. The information about the success of the command should be returned by calling SetStatusL function of MSmlDmCallback callback interface. This makes it possible to buffer the commands. However, all the status codes for buffered commands must be returned at the latest when the MSmlDmAdapter::CompleteOutstandingCmdsL() of the adapter is called.

Parameters

const TDesC8 &aURI

URI of the command

const TDesC8 &aLUID

LUID of the object (if the adapter have earlier returned LUID to the DM Module).

RWriteStream *&aStream

Argument for the command. Adapter should create write stream and return, when data is written to stream by DM agent, MSmlDmAdapter::StreamCommittedL(RWriteStream &) is called by DM engine

const TDesC8 &aType

MIME type of the object

TInt aStatusRef

Reference to correct command, i.e. this reference must be used when calling the SetStatusL of this command.


CopyCommandL(const TDesC8 &,const TDesC8 &,const TDesC8 &,const TDesC8 &,const TDesC8 &,TInt)

virtual void CopyCommandL(const TDesC8 &aTargetURI, const TDesC8 &aTargetLUID, const TDesC8 &aSourceURI, const TDesC8 &aSourceLUID, const TDesC8 &aType, TInt aStatusRef)=0;

Description

The function implements copy command. The information about the success of the command should be returned by calling SetStatusL function of MSmlDmCallback callback interface. This makes it possible to buffer the commands. However, all the status codes for buffered commands must be returned at the latest when the MSmlDmAdapter::CompleteOutstandingCmdsL() of adapter is called.

Parameters

const TDesC8 &aTargetURI

Target URI for the command

const TDesC8 &aTargetLUID

const TDesC8 &aSourceURI

Source URI for the command

const TDesC8 &aSourceLUID

LUID of the target object (if one exists, and if the adapter has earlier returned a LUID to the DM Module).

const TDesC8 &aType

MIME type of the objects

TInt aStatusRef

Reference to correct command, i.e. this reference must be used when calling the SetStatusL of this command.


StartAtomicL()

virtual void StartAtomicL()=0;

Description

The function indicates start of Atomic command.


CommitAtomicL()

virtual void CommitAtomicL()=0;

Description

The function indicates successful end of Atomic command. The adapter should commit all changes issued between MSmlDmAdapter::StartAtomicL() and MSmlDmAdapter::CommitAtomicL()


RollbackAtomicL()

virtual void RollbackAtomicL()=0;

Description

The function indicates unsuccessful end of Atomic command. The adapter should rollback all changes issued between MSmlDmAdapter::StartAtomicL() and MSmlDmAdapter::RollbackAtomicL(). If rollback fails for a command, adapter should use SetStatusL() to indicate it.


StreamingSupport(TInt &)

virtual TBool StreamingSupport(TInt &aItemSize)=0;

Description

Returns ETrue if adapter supports streaming otherwise EFalse.

Parameters

TInt &aItemSize

size limit for stream usage

Return value

TBool

TBool ETrue for streaming support


StreamCommittedL(RWriteStream &)

virtual void StreamCommittedL(RWriteStream &aStream)=0;

Description

Called when stream returned from UpdateLeafObjectL or ExecuteCommandL has been written to and committed. Not called when fetching item.

Parameters

RWriteStream &aStream


CompleteOutstandingCmdsL()

virtual void CompleteOutstandingCmdsL()=0;

Description

The function tells the adapter that all the commands of the message that can be passed to the adapter have now been passed. This indciates that the adapter must supply status codes and results to any buffered commands. This must be done at latest by the time this function returns. This function is used at the end of SyncML messages, and during processing of Atomic. In the case of Atomic processing, the function will be followed by a call to CommitAtomicL or RollbackAtomicL.

[Top]


Member enumerations


Enum TError

TError

Description

An enumeration of the error codes which may be returned by DM adapters.

EOk

The command was successful

ENotFound

The command failed because no setting exists in the store which corresponds to the URI or LUID passed to the adapter

EInvalidObject

The command failed because the setting can't take the value being passed to the adapter

EAlreadyExists

The command failed because the setting already exists in the store

ETooLargeObject

The command failed because the setting value is too large to be accommodated in the store

EDiskFull

The command failed because the disk on which the device store resides is full

EError

The command failed for an unspecified reason

ERollbackFailed

The command could not be rolled back successfully

EObjectInUse

The command failed because the setting is being used by another client

ENoMemory

The command failed because no memory could be allocated

ERollbackOk

The rollback command was completed successfully

ECommitOk

The commit command was completed successfully

ECommitFailed

The commit command failed