diff -r 0f9fc722d255 -r b9b00b134b0d omadmadapters/nsmldmbmadapter/inc/nsmldmbmadapter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omadmadapters/nsmldmbmadapter/inc/nsmldmbmadapter.h Tue Jul 13 03:51:25 2010 +0530 @@ -0,0 +1,887 @@ +/* +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Device management adapter handling bearer management related settings +* +*/ + + + + +#ifndef NSMLDMBMADAPTER_H +#define NSMLDMBMADAPTER_H + +#include + +#include "nsmldmbmsettingstore.h" + +class CSmlDmBmCommandElement; +class CSmlDmBmSettingsElement; +class CNSmlDmBmSettingStore; + +/** The DDF version must be changed if any changes in DDF structure +( built in DDFStructureL() function ) */ +_LIT8( KNSmlDmBMAdapterDDFVersion, "1.1" ); +_LIT8( KNSmlDmBMAdapterTextPlain, "text/plain" ); + +/** Names of the nodes */ +/** When updating KNSmlDmBMAdapterBMURI also update +KNSmlDmBmAdapterURIMaxLength! */ +_LIT8(KNSmlDmBMAdapterBMURI, "./BearerManagementSNAP"); +_LIT8(KNSmlDmBMAdapterBM, "BearerManagementSNAP"); +_LIT8(KNSmlDmBMAdapterName, "Name"); +_LIT8(KNSmlDmBMAdapterIAPPriorityList, "IAPPriorityList"); +_LIT8(KNSmlDmBMAdapterEmbeddedSNAP, "EmbeddedSNAP"); +_LIT8(KNSmlDmBMAdapterMetadata, "Metadata"); +_LIT8(KNSmlDmBMAdapterProtected, "Protected"); +_LIT8(KNSmlDmBMAdapterHidden, "Hidden"); + +/** Descriptions of the nodes */ +_LIT8( KNSmlDmBMAdapterBMDescription, + "BearerManagement provides management of Access Point groups (SNAPs)"); +_LIT8( KNSmlDmBMAdapterDynamicDescription, + "Node presents a group of Access Points (SNAP)"); +_LIT8( KNSmlDmBMAdapterNameDescription, + "Name of the Access Point group"); +_LIT8( KNSmlDmBMAdapterIAPPriorityListDescription, + "Comma separated list of Access Point URIs in priority order."); +_LIT8( KNSmlDmBMAdapterEmbeddedSNAPDescription, + "URI of embedded Access Point group. All Access points of the Embedded \ + SNAP are seen as also belonging to this SNAP"); +_LIT8( KNSmlDmBMAdapterMetadataDescription, + "32 bit integer representing SNAP metadata. Following bitmasks indicate \ + meaning of the individual bits: \n 0x00000001 \t Internet: The SNAP is \ + the Internet SNAP. This may only be set to one SNAP object.\n \ + 0x00000002\tHighlight: SNAP is highlighted in certain UI dialog.\n \ + 0x00000004\tHidden: SNAP is hidden in certain UI dialog."); +_LIT8( KNSmlDmBMAdapterProtectedDescription, + "SNAP is protected with one of the following protection levels. \ + Protected object can not be modified without NetworkControl capability \n \ + 0 \t No protection \n 1 \t SNAP and related objects \n \ + 2 \t SNAP name is protected."); +_LIT8( KNSmlDmBMAdapterHiddenDescription, + "SNAP is set as hidden in the setting store"); + +/** Leaf nodes of snap node */ +_LIT8( KNSmlDmBMAllLeafNodes, + "Name/IAPPriorityList/Metadata/Protected/Hidden/EmbeddedSNAP"); +_LIT8( KNSmlDmBMAllLeafNodesNoEmbedded, + "Name/IAPPriorityList/Metadata/Protected/Hidden"); + +/** URI of for fetching IAP nodes */ +/** When updating KNSmlDmBMAdapterIAPURI also update +KNSmlDmBmAdapterAPURIMaxLength! */ +_LIT8( KNSmlDmBMAdapterIAPURI, "./AP" ); +/** Node name of AP adapter root */ +_LIT8( KNSmlDmBMAdapterIAPNode, "AP" ); +/** URI segment separator */ +/** When updating this literal also update +KNSmlDmBmAdapterAPURIMaxLength and KNSmlDmBmAdapterURIMaxLength! */ +_LIT8( KNSmlDmBmSeparator, "/" ); +/** URI segment separator */ +/** When updating KNSmlDmBMAdapterBMURI also update +KNSmlDmBmAdapterAPURIMaxLength and KNSmlDmBmAdapterURIMaxLength! */ +_LIT8( KNSmlDmBmUriListSeparator, "," ); +/** Prefix in URIs (removed for LUID mapping) */ +_LIT8( KNSmlDmBmAdapterURIPrefix, "./" ); + +/** Name prefix for unnamed snap nodes */ +_LIT8( KNSmlDmBMSNAPNamePrefix, "SNAP" ); +_LIT8( KNSmlDmBMBooleanTrue, "True" ); +_LIT8( KNSmlDmBMBooleanFalse, "False" ); + + +const TInt KNSmlDmBMGranularity = 4; +const TInt KNsmlDmBmSNAPNodeDepth = 2; +const TInt KNSmlDmBmInvalidRef = -1; + +/** Maximum length of snap URI including a separator character in URI List. +Node is not calculated here. KNSmlDmBMAdapterBMURI + KNSmlDmBmSeparator + +KNSmlDmBmUriListSeparator +*/ +const TInt KNSmlDmBmAdapterURIMaxLength = 24; + +/** Maximum length of AP URI including a separator character in URI List. +Node is not calculated here. KNSmlDmBMAdapterIAPURI + KNSmlDmBmSeparator + +KNSmlDmBmUriListSeparator +*/ +const TInt KNSmlDmBmAdapterAPURIMaxLength = 6; + +/** Maximum length of 32bit integer */ +const TInt KMaxLengthOf32bitInteger = 10; + +/** + * Bearer Management device management adapter + * + * Bearer Management device management adapter manages settings + * related to Service Network Access Points (SNAPs) which are + * used for groupin IAPs + * + * @lib nsmldmbmadapter + * @since S60 v3.2 + */ +class CNSmlDmBmAdapter : public CSmlDmAdapter + { + +public: + +/** Possible command types */ +enum TCommandType + { + EAddCmd, + EGetCmd, + EGetSizeCmd, + EDeleteCmd + }; + + /** + * Two-phased constructor. + */ + static CNSmlDmBmAdapter* NewL( MSmlDmCallback* aDmCallback ); + + /** + * Destructor. + */ + virtual ~CNSmlDmBmAdapter(); + + +// from base class CSmlDmAdapter + + /** + * The function returns current version of the DDF. + * + * @since S60 v3.2 + * @param aDDFVersion DDF version of the + * adapter. (filled by the adapter) + */ + void DDFVersionL( CBufBase& aDDFVersion ); + + /** + * The function for filling the DDF structure of the adapter + * + * @since S60 v3.2 + * @param aDDF Reference to root object. + */ + void DDFStructureL( MSmlDmDDFObject& aDDF ); + + /** + * The function creates new leaf objects, or replaces data in existing + * leaf objects. The information about the success of the command is + * returned by calling SetStatusL function of MSmlDmCallback callback + * interface. + * + * @since S60 v3.2 + * @param aURI URI of the object + * @param aLUID LUID of the object + * @param aObject Data of the object. + * @param aType MIME type of the object + * @param aStatusRef Reference to correct command, i.e. this reference + * must be used when calling the SetStatusL of this + * command + */ + void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, + const TDesC8& aObject, const TDesC8& aType, + TInt aStatusRef ); + /** + * The function deletes an object and its child objects. + * + * @since S60 v3.2 + * @param aURI URI of the object + * @param aLUID LUID of the object (if the adapter have earlier + * returned LUID to the DM Module). + * @param aStatusRef Reference to correct command, i.e. this reference + * must be used when calling the SetStatusL of this + * command. + */ + void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, + TInt aStatusRef ); + + /** + * The function fetches data of a leaf object. The SetStatusL is used + * as described in UpdateLeafObjectL(). The data is returned by using the + * SetResultsL function of MSmlCallback callback interface. + * + * @since S60 v3.2 + * @param aURI URI of the object + * @param aLUID LUID of the object (if the adapter have + * earlier returned LUID to the DM Module). + * @param aType MIME type of the object + * @param aResultsRef Reference to correct results, i.e. this + * reference must be used when returning the + * result by calling the SetResultsL. + * @param aStatusRef Reference to correct command, i.e. this + * reference must be used when calling the + * SetStatusL of this command. + */ + void FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, + const TDesC8& aType, TInt aResultsRef, + TInt aStatusRef ); + + /** + * 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. + * + * @since S60 v3.2 + * @param aURI URI of the object + * @param aLUID LUID of the object (if the adapter have + * earlier returned LUID to the DM Module). + * @param aType MIME type of the object + * @param aResultsRef Reference to correct results, i.e. this + * reference must be used when returning the + * result by calling the SetResultsL. + * @param aStatusRef Reference to correct command, i.e. this + * reference must be used when calling the + * SetStatusL of this command. + */ + void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, + const TDesC8& aType, TInt aResultsRef, + TInt aStatusRef ); + + /** + * The function fetches URI list. An adapter returns the list of URI + * segments under the given URI be 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. + * + * @since S60 v3.2 + * @param aURI URI of the parent object + * @param aLUID LUID of the parent object (if the + * adapter have earlier returned LUID to + * the DM Module). + * @param aPreviousURISegmentList URI list with mapping LUID + * information, which is known by DM + * engine. + * @param aResultsRef Reference to correct results, i.e. + * this reference must be used when + * returning the result by calling the + * SetResultsL. + * @param aStatusRef Reference to correct command, i.e. + * this reference must be used when + * calling the SetStatusL of this + * command. + */ + void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, + const CArrayFix& aPreviousURISegmentList, + TInt aResultsRef, TInt aStatusRef ); + + /** + * The function adds node object. + * + * @since S60 v3.2 + * @param aURI URI of the object + * @param aParentLUID LUID of the parent object (if the adapter have + * earlier returned LUID to the DM Module). + * @param aStatusRef Reference to correct command, i.e. this + * reference must be used when calling the + * SetStatusL of this command. + */ + void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, + TInt aStatusRef ); + /** + * The adapter does not support streaming and no implementation is + * provided for this function. + * + * @since S60 v3.2 + * @param aURI URI of the object + * @param aLUID LUID of the object + * @param aStream Data of the object. + * @param aType MIME type of the object + * @param aStatusRef Reference to correct command, i.e. this reference + * must be used when calling the SetStatusL of this + * command. + */ + void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, + RWriteStream*& aStream, const TDesC8& aType, + TInt aStatusRef ); + /** + * The adapter does not support execute command and does not + * provide implementation for this function. + * + * @since S60 v3.2 + * @param aURI URI of the command + * @param aLUID LUID of the object + * @param aArgument Argument for the command + * @param aType MIME type of the object + * @param aStatusRef Reference to correct command, i.e. this + * reference must be used when calling the + * SetStatusL of this command. + */ + void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, + const TDesC8& aArgument, const TDesC8& aType, + TInt aStatusRef ); + /** + * The adapter does not support execute command and does not + * provide implementation for this function. + * + * @since S60 v3.2 + * @param aURI URI of the command + * @param aLUID LUID of the object + * @param aStream Argument for the command. + * @param aType MIME type of the object + * @param aStatusRef Reference to correct command, i.e. this + * reference must be used when calling the + * SetStatusL of this command. + */ + void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, + RWriteStream*& aStream, const TDesC8& aType, + TInt aStatusRef ); + /** + * The adapter does not support copy command and does not + * provide implementation for this function. + * + * @since S60 v3.2 + * @param aTargetURI Target URI for the command + * @param aTargetLUID LUID of the target object + * @param aSourceURI Source URI for the command + * @param aSourceLUID LUID of the source object + * @param aType MIME type of the objects + * @param aStatusRef Reference to correct command, i.e. this + * reference must be used when calling the + * SetStatusL of this command. + */ + void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, + const TDesC8& aSourceURI, const TDesC8& aSourceLUID, + const TDesC8& aType, TInt aStatusRef ); + /** + * Not supported + * @since S60 v3.2 + */ + void StartAtomicL(); + /** + * Not Supported + * @since S60 v3.2 + * + */ + void CommitAtomicL(); + /** + * Not supported. + * @since S60 v3.2 + */ + void RollbackAtomicL(); + /** + * Returns EFalse as the adapter does not support streaming + * + * @since S60 v3.2 + * @param aItemSize size limit for stream usage + * @return TBool EFalse as streaming is not supported + */ + TBool StreamingSupport( TInt& aItemSize ); + /** + * Not supported + * + * @since S60 v3.2 + */ + void StreamCommittedL(); + /** + * 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. + * + * @since S60 v3.2 + */ + void CompleteOutstandingCmdsL(); + + /** + * Function checks if a SNAP with the argument URI is buffered for + * later handling. If so, the function calls iSettingStore object + * to store the SNAP. This function is called by the iSettingStore + * object to check whether EmbeddedSNAP node referenced by a command is + * still in the buffer and needs to be stored first. + * + * @since S60 v3.2 + * @param aURI Descriptor containing the SNAP URI + */ + void StoreSnapIfBufferedL( const TDesC8& aURI ); + + + /** + * Function returns a pointer to a HBufC object containing a SNAP URI + * which correcponds to the argument LUID. + * + * @since S60 v3.2 + * @param aSnapId LUID of SNAP object + * @return Descriptor containing the SNAP URI. + */ + HBufC8* GetSnapUriFromLuidL( const TUint aSnapId ); + + + /** + * Function returns a pointer to HBufC object containing a + * comma separated list of IAP URIs according to the IAP LUIDs + * contained in the argument array. + * + * @since S60 v3.2 + * @param aIdArray Array of IAP LUIDs for which the URI list is formed. + * @return HBufC object containing a comma separated list of IAP URIs + */ + HBufC8* GetIapListL( const RArray& aIdArray ); + + + /** + * Function returns an array containing the LUIDs of IAP URIs listed in + * argument descriptor. + * + * @since S60 v3.2 + * @param aIAPList TDesC object containing a comma separated list of IAP + * URIs + * @return Array of IAP LUIDs that correspond to the argument URI list. + */ + RArray GetIdArrayL( const TDesC8& aIAPList); + + + /** + * Converts integer to 8bit descriptor + * + * @since S60 v3.2 + * @param aLuid The integer to be converted + * @return The Integer as a descriptor + */ + HBufC8* IntToDes8L( TInt aLuid) const; + + /** + * Converts 8bit descriptor to integer + * + * @since S60 v3.2 + * @param aLuid The descriptor to be converted + * @return Integer value of the descriptor + */ + TUint DesToIntL(const TDesC8& aLuid) const; + + /** + * Converts 8bit descriptor to a boolean value + * @since S60 v3.2 + * @param aBoolDes The descriptor to be converted + * @param aBool A pointer to a boolean where result is stored + * @return ETrue if conversion was succesful, otherwise EFalse + */ + TBool DesToBool(const TDesC8& aBoolDes, TBool& aBool ) const; + + /** + * Converts boolean value to 8bit descriptor + * @since S60 v3.2 + * @param aBool The boolean value to be converted + * @return The boolean value as a descriptor + */ + HBufC8* BoolToDes8LC( TBool aBool) const; + + + /** + * The function calls the GetLuidAllocL function of the MSmlDmCallback to + * get the LUID which is mapped to aURI. This function LUID is not found, + * the function allocates a null length string, i.e. the function + * allocates memory in every case. + * @since S60 v3.2 + * @param aURI URI of the object. + */ + HBufC8* GetLuidAllocL( const TDesC8& aURI ); + +private: + + /** + * Constructor + */ + CNSmlDmBmAdapter(); + + /** + * Constructor + * @param aDmCallback Callback object to the framework + */ + CNSmlDmBmAdapter( MSmlDmCallback* aDmCallback ); + + /** + * Second phase constructor + */ + void ConstructL(); + + + /** + * Searches the buffer for a SNAP with the parameter mapping name + * @param aMappingName Mapping Name of this SNAP + * @return Pointer to the CSmlDmBmSettingsElement object in buffer. + * The object is owned by the CNSmlDmBmAdapter. + */ + CSmlDmBmSettingsElement* GetSnapIfBuffered( const TDesC8& aMappingName); + + /** + * Returns the first URI from a list of URIs + * @param aURIList Comma separated list of URIs + * @return The first URI + */ + TPtrC8 FirstURI(const TDesC8& aURIList) const; + + /** + * Returns the number of URIs in a list of URIs + * @param aURIList Comma-separated list of URIs + * @return Number of URIs in the list. + */ + TInt NumOfURIs(const TDesC8& aURIList) const; + + + /** + * Removes the first URI from a list of URIs + * @param aURIList Comma separated list of URIs + * @return The first URI + */ + TPtrC8 RemoveFirstURI(const TDesC8& aURI) const; + + /** + * Parses the last URI segment from URI + * @param aURI The whole URI + * @return The last URI segment + */ + TPtrC8 LastURISeg(const TDesC8& aURI) const; + + /** + * Removes the last URI segment from URI + * @param aURI The whole URI + * @return The aURI without the last URI segment + */ + TPtrC8 RemoveLastURISeg(const TDesC8& aURI) const; + + /** + * Calculates the number of URI segments + * @param aURI The whole URI + * @return The number of URI segments + */ + TInt NumOfURISegs(const TDesC8& aURI) const; + + /** + * Checks if the URI refers to predefined SNAP (of format SNAPx) in which + * case operations should be successful even if passed LUID is empty. + * Maps the URI to found id. + * @param aURI The whole URI + * @param aLUID LUID + * @return The SNAP ID if found + */ + TInt MapPredefinedSnapsL( const TDesC8& aURI, const TDesC8& aLUID ); + + /** + * Tries to find predefined URI string (SNAPx) fronm input + * returns the ID. + * @param aURI The whole URI + * @return The SNAP ID if found + */ + TInt GetPredefinedSnapIdFromUri( const TDesC8& aURI ) const; + +private: //data + + /** + * Buffered commands. Contains a CSmlDmBmSettingsElement object + * for each SNAP. THese in turn contain commands for the SNAP. + */ + RPointerArray iBuffer; + + /** + * Setting store object, which is called for managing settings + * in CommsDat. Own. + */ + CNSmlDmBmSettingStore * iSettingStore; + + /** + * CmManager object for SNAP existence checking for + * direct accesses to pre-defined SNAPs + */ + RCmManagerExt iCmManagerExt; + + }; + + +/** + * CSmlDmBmCommandElement + * + * Helper class, which stores a single buffered command for a SNAP. + * @lib nsmldmbmadapter + * @since S60 v3.2 + */ + +class CSmlDmBmCommandElement : public CBase + { + +public: + + /** + * Two-phased constructor. + */ + static CSmlDmBmCommandElement* NewLC( TBool aLeaf, + TInt aStatusRef, + TInt aResultRef, + CNSmlDmBmAdapter::TCommandType aCmdType, + const TDesC8& aLastUriSeg, + const TDesC8& aData ); + + /** + * Destructor. + */ + ~CSmlDmBmCommandElement(); + + /** + * Returns the iExecuted member value of the object + * + * @since S60 v3.2 + * @return The iExecuted member value of the object + */ + inline TBool Executed(); + + /** + * Sets the iExecuted member value of the object + * + * @since S60 v3.2 + * @param aExecuted Executed value for the object. + */ + inline void SetExecuted( TBool aExecuted ); + + /** + * Returns the iStatus member value of the object + * + * @since S60 v3.2 + * @return The iStatus value of the object + */ + inline CSmlDmAdapter::TError Status(); + + /** + * Sets the iStatus member value of the object + * + * @since S60 v3.2 + * @param aStatus Status value for the object. + */ + inline void SetStatus( CSmlDmAdapter::TError aStatus ); + + /** + * Returns the iLeaf member value of the object + * + * @since S60 v3.2 + * @return The iLeaf member value of the object + */ + inline TBool Leaf(); + + /** + * Returns the iStatusRef member value of the object + * + * @since S60 v3.2 + * @return The iStatusRef member value of the object + */ + inline TInt StatusRef(); + + /** + * Returns the iResultRef member value of the object + * + * @since S60 v3.2 + * @return The iResultRef member value of the object + */ + inline TInt ResultRef(); + + /** + * Returns the iCmdType member value of the object + * + * @since S60 v3.2 + * @return The iCmdType member value of the object + */ + inline CNSmlDmBmAdapter::TCommandType CmdType(); + + /** + * Returns the iData member value of the object + * + * @since S60 v3.2 + * @return The iData member value of the object + */ + inline const HBufC8* Data(); + + /** + * Returns the iLastUriSeg member value of the object + * + * @since S60 v3.2 + * @return The iLastUriSeg member value of the object + */ + inline const HBufC8* LastUriSeg(); + + /** + * Sets the iData member value of the object + * + * @since S60 v3.2 + * @param aData Data set to the object. The data will be owned by + * the command object. + */ + inline void SetDataL( const TDesC8& aData ); + +private: + + CSmlDmBmCommandElement( TBool aLeaf, + TInt aStatusRef, + TInt aResultRef, + CNSmlDmBmAdapter::TCommandType aCmdType ); + + void ConstructL( const TDesC8& aLastUriSeg, const TDesC8& aData ); + + +private: //data + + /** + * Has command been executed. + * Set to ETrue when command is executed. + */ + TBool iExecuted; + + /** + * The execution status of an exeuted command. + * Filled in when command is executed. + */ + CSmlDmAdapter::TError iStatus; + + + /** + * True if commend is for a leaf node, False if it is for a Snap node. + */ + const TBool iLeaf; + + /** + * Reference for returning the status to DM framework. + */ + const TInt iStatusRef; + + /** + * Reference for returning result of Get command to the DM framework. + */ + const TInt iResultRef; + + /** + * Type of command. + */ + const CNSmlDmBmAdapter::TCommandType iCmdType; + + + /** + * Data which is either ment to be stored to setting store + * or which has been fetched from there. + */ + HBufC8* iData; + + /** + * Last segment in the command URI, which indicates the leaf node + * in question. For non leaf command empty string. + */ + HBufC8* iLastUriSeg; + + }; + + +/** + * CSmlDmBmSettingsElement + * + * Helper class which stores information of a single SNAP object + * into buffer. Contains the buffered commands for the + * SNAP as a list of CSmlBmCommandElement objects. + * + * @lib nsmldmbmadapter + * @since S60 v3.2 + */ + +class CSmlDmBmSettingsElement : public CBase + { + +public: + + /** + * Two-phased constructor. + */ + static CSmlDmBmSettingsElement* NewLC( const TDesC8& aMappingName ); + + /** + * Destructor. + */ + ~CSmlDmBmSettingsElement(); + + /** + * Returns a reference to iNodeBuf member. + * @since S60 v3.2 + * @return Reference to iNodeBuf member of the object + */ + inline RPointerArray& NodeBuf(); + + /** + * Returns the iMappingName member value. + * @since S60 v3.2 + * @return The iMappingName member value of the object + */ + inline const HBufC8* MappingName(); + + /** + * Returns the iExecuted member value. + * @since S60 v3.2 + * @return The iExecuted member value of the object + */ + inline TBool Executed(); + + /** + * Sets the iExecuted member value. + * @since S60 v3.2 + * @param aExecuted Value for the iExecuted member of the object + */ + inline void SetExecuted( TBool aExecuted ); + + /** + * Returns the iLuid member value. + * @since S60 v3.2 + * @return The iLuid member value of the object + */ + inline TInt Luid(); + + /** + * Sets the iLuid member value. + * @since S60 v3.2 + * @param aLuid Value for the iLuid member of the object + */ + inline void SetLuid( TInt aLuid ); + + +private: + + CSmlDmBmSettingsElement(); + + void ConstructL( const TDesC8& aMappingName ); + +private: //data + + /** + * Buffer of commands for this SNAP object. Commands + * are added as they come in from the framework and + * executed by the setting store. + */ + RPointerArray iNodeBuf; + + /** + * Indicates whether commands for this SNAP have been executed. + * Set to Erue by CNsmlDmBmSettingStore when object is handled. + */ + TBool iExecuted; + + /** + * LUID (Local UID) is the CommsDat id of the SNAP node. This is + * filled in when SNAP object is created in CommsDat. + */ + TInt iLuid; + + /** + * Mapping name of this SNAP node. This is mapped to the + * iLuid when the Snap is created and has id. + */ + HBufC8* iMappingName; + }; + +#include "nsmldmbmadapter.inl" + +#endif // NSMLDMBMADAPTER_H