omadm/omadmextensions/adapters/mms/src/nsmldmmmsadapter.cpp
changeset 18 7d11f9a6646f
parent 4 75a71fdb4c92
child 21 c707676bf59f
--- a/omadm/omadmextensions/adapters/mms/src/nsmldmmmsadapter.cpp	Tue Feb 02 00:03:17 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1513 +0,0 @@
-/*
-* Copyright (c) 2005 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:    DM MMS Settings Adapter
- *
-*/
-
-
-
-#include <iapprefs.h>
-#include <msvids.h>
-#include <msvuids.h>
-#include <utf.h>
-#include <implementationproxy.h> // For TImplementationProxy definition
-#include <commdb.h>
-#include <cdbcols.h>             // CommsDB columname defs
-#include <mmsclient.h>
-#include <ApUtils.h>
-#include <MmsConformance.h>
-#include <protectdb.h>
-
-#include "nsmldmimpluids.h"
-#include "nsmldmmmsadapter.h"
-#include "nsmldebug.h"
-#include "nsmlconstants.h"
-#include "nsmldmconst.h"
-#include "nsmldmiapmatcher.h"
-#include "nsmldmtreedbclient.h"
-
-#ifndef __WINS__
-// This lowers the unnecessary compiler warning (armv5) to remark.
-// "Warning:  #174-D: expression has no effect..." is caused by 
-// DBG_ARGS8 macro in no-debug builds.
-#pragma diag_remark 174
-#endif
-
-
-// -----------------------------------------------------------------------------
-// CNSmlDmMMSAdapter* CNSmlDmMMSAdapter::NewL( )
-// -----------------------------------------------------------------------------
-CNSmlDmMMSAdapter* CNSmlDmMMSAdapter::NewL(MSmlDmCallback* aDmCallback )
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::NewL(): begin");
-    CNSmlDmMMSAdapter* self = new (ELeave) CNSmlDmMMSAdapter(aDmCallback);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-    _DBG_FILE("CNSmlDmMMSAdapter::NewL(): end");
-    return self;
-    }
-    
-// -----------------------------------------------------------------------------
-// CNSmlDmMMSAdapter::CNSmlDmMMSAdapter()
-// -----------------------------------------------------------------------------
-CNSmlDmMMSAdapter::CNSmlDmMMSAdapter(MSmlDmCallback* aDmCallback) 
-    : CSmlDmAdapter(aDmCallback)
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::CNSmlDmMMSAdapter(): begin");
-    _DBG_FILE("CNSmlDmMMSAdapter::CNSmlDmMMSAdapter(): end");
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmMMSAdapter::ConstructL()
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::ConstructL()
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::ConstructL(): begin");
-    iStatusRef = KNSmlMMSUndefinedStatusRef;
-    iImgSizeStatusRef = KNSmlMMSUndefinedStatusRef;
-    iDatabase = CCommsDatabase::NewL(EDatabaseTypeIAP);
-    _DBG_FILE("CNSmlDmMMSAdapter::ConstructL(): end");
-    }
-
-
-// -----------------------------------------------------------------------------
-// CNSmlDmMMSAdapter::~CNSmlDmMMSAdapter()
-// -----------------------------------------------------------------------------
-CNSmlDmMMSAdapter::~CNSmlDmMMSAdapter()
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::~CNSmlDmMMSAdapter(): begin");
-    delete iMmsClient;
-    delete iClientMtmRegistry;
-    delete iMsvSession;
-    delete iMMSSAddr;
-    delete iMmsSettings;
-	if(iDatabase)
-    delete iDatabase;
-    _DBG_FILE("CNSmlDmMMSAdapter::~CNSmlDmMMSAdapter(): end");
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmMMSAdapter::DDFVersionL()
-//  Returns the DDF version of the adapter
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::DDFVersionL(CBufBase& aDDFVersion)
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::DDFVersionL(TDes& aDDFVersion): begin");
-    aDDFVersion.InsertL(0,KNSmlDMMMSDDFVersion);
-    _DBG_FILE("CNSmlDmMMSAdapter::DDFVersionL(TDes& aDDFVersion): end");
-    }
-
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmMMSAdapter::DDFStructureL()
-//  Builds the DDF structure of adapter
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::DDFStructureL(): begin");
-
-    TSmlDmAccessTypes accessTypesGetAdd;
-    accessTypesGetAdd.SetGet();
-    accessTypesGetAdd.SetAdd();
-    
-    TSmlDmAccessTypes accessTypesGet;
-    accessTypesGet.SetGet();
-
-    TSmlDmAccessTypes accessTypesNoDelete;
-    accessTypesNoDelete.SetGet();
-    accessTypesNoDelete.SetAdd();
-    accessTypesNoDelete.SetReplace();
-
-    // MMS
-    MSmlDmDDFObject& MMS = aDDF.AddChildObjectL(KNSmlDMMMSNodeName);
-    FillNodeInfoL(MMS,accessTypesGet,MSmlDmDDFObject::EOne,
-                  MSmlDmDDFObject::EPermanent,MSmlDmDDFObject::ENode,
-                  KNSmlDMMMSNodeNameDescription);
-
-    //run time node 
-    MSmlDmDDFObject& rtAcc = MMS.AddChildObjectGroupL();
-    FillNodeInfoL(rtAcc,accessTypesGet,MSmlDmDDFObject::EOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::ENode,
-                  KNSmlDMMMSDynamicNodeDescription);
-
-    //level of mms protocol operations
-    MSmlDmDDFObject& mmRecep = rtAcc.AddChildObjectL(KNSmlDMMMSMMRecep);
-    FillNodeInfoL(mmRecep,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EChr,
-                  KNSmlDMMMSMMRecepDescription);
-
-    //Creation mode
-    MSmlDmDDFObject& creMode = rtAcc.AddChildObjectL(KNSmlDMMMSCreMode);
-    FillNodeInfoL(creMode,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EChr,
-                  KNSmlDMMMSCreModeDescription);
-
-    //anonymous messages allowed
-    MSmlDmDDFObject& amsg = rtAcc.AddChildObjectL(KNSmlDMMMSAMsg);
-    FillNodeInfoL(amsg,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EBool,
-                  KNSmlDMMMSAMsgDescription);
-
-    //adverts messages allowed
-    MSmlDmDDFObject& rcvAds = rtAcc.AddChildObjectL(KNSmlDMMMSRcvAds);
-    FillNodeInfoL(rcvAds,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EBool,
-                  KNSmlDMMMSRcvAdsDescription);
-
-    //image size in sending
-    MSmlDmDDFObject& imgSize = rtAcc.AddChildObjectL(KNSmlDMMMSImgSize);
-    FillNodeInfoL(imgSize,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EChr,
-                  KNSmlDMMMSImgSizeDescription);
-
-    //deny delivery report sending
-    MSmlDmDDFObject& dRepSnd = rtAcc.AddChildObjectL(KNSmlDMMMSDRepSnd);
-    FillNodeInfoL(dRepSnd,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EBool,
-                  KNSmlDMMMSDRepSndDescription);
-
-    //delivery report requested by default
-    MSmlDmDDFObject& rcvRep = rtAcc.AddChildObjectL(KNSmlDMMMSRcvRep);
-    FillNodeInfoL(rcvRep,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EBool,
-                  KNSmlDMMMSRcvRepDescription);
-
-    //message validity time
-    MSmlDmDDFObject& msgVal = rtAcc.AddChildObjectL(KNSmlDMMMSMsgVal);
-    FillNodeInfoL(msgVal,accessTypesNoDelete,MSmlDmDDFObject::EZeroOrOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EChr,
-                  KNSmlDMMMSMsgValDescription);
-
-    // MMS/<X>/Con
-    MSmlDmDDFObject& con = rtAcc.AddChildObjectL(KNSmlDMMMSCon);
-    FillNodeInfoL(con,accessTypesGet,MSmlDmDDFObject::EOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::ENode,
-                  KNSmlDMMMSConNodeDescription);
-
-
-    // MMS/<X>/Con/<X>
-    MSmlDmDDFObject& rtCon = con.AddChildObjectL(KNSmlDMMMSConDynamicName16);
-    FillNodeInfoL(rtCon,accessTypesGet,MSmlDmDDFObject::EOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::ENode,
-                  KNSmlDMMMSConRtNodeDescription);
-
-
-    // MMS/<X>/Con/<X>/MMSSAddr
-    MSmlDmDDFObject& mmsAddr = rtCon.AddChildObjectL(KNSmlDMMMSMMSSAddr);
-    FillNodeInfoL(mmsAddr,accessTypesNoDelete,MSmlDmDDFObject::EOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EChr,
-                  KNSmlDMMMSMMSSAddrDescription);
-
-    // MMS/<X>/Con/<X>/MToNapID
-    MSmlDmDDFObject& mToNapID = rtCon.AddChildObjectL(KNSmlDMMMSMToNapID);
-    FillNodeInfoL(mToNapID,accessTypesGet,MSmlDmDDFObject::EZeroOrOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::ENode,
-                  KNSmlDMMMSConRtNodeDescription);
-
-    // MMS/<X>/Con/<X>/MToNapID/<X>
-    MSmlDmDDFObject& rtNapIds = mToNapID.AddChildObjectL(KNullDesC8);
-    FillNodeInfoL(rtNapIds,accessTypesGet,MSmlDmDDFObject::EZeroOrOne,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::ENode,
-                  KNSmlDMMMSConRtNodeDescription);
-
-    // MMS/<X>/Con/<X>/MToNapID/<X>/MToNapIdL
-    MSmlDmDDFObject& mToNapIDL = rtNapIds.AddChildObjectL(KNSmlDMMMSMToNapIDL);
-    FillNodeInfoL(mToNapIDL,accessTypesNoDelete,MSmlDmDDFObject::EOneOrMore,
-                  MSmlDmDDFObject::EDynamic,MSmlDmDDFObject::EChr,
-                  KNSmlDMMMSMToNapIDLDescription);
-
-    RNSmlDMCallbackSession session;
-    User::LeaveIfError( session.Connect() );
-    CleanupClosePushL(session);
-    
-    session.UpdateAclL(KNSmlDMMMSLevel3Parents,KNSmlDmMMSAclGet);
-    session.UpdateAclL(KNSmlDMMMSAclName,KNSmlDmMMSAclDefault);
-    session.UpdateAclL(KNSmlDMMMSAclMMRecep,KNSmlDmMMSAclDefault);
-    session.UpdateAclL(KNSmlDMMMSAclCreMode,KNSmlDmMMSAclDefault);
-    session.UpdateAclL(KNSmlDMMMSAclAMsg,KNSmlDmMMSAclDefault);
-    session.UpdateAclL(KNSmlDMMMSAclRcvAds,KNSmlDmMMSAclDefault);
-    session.UpdateAclL(KNSmlDMMMSAclImgSize,KNSmlDmMMSAclDefault);
-    session.UpdateAclL(KNSmlDMMMSAclDRepSnd,KNSmlDmMMSAclDefault);
-    session.UpdateAclL(KNSmlDMMMSAclRcvRep,KNSmlDmMMSAclDefault);
-    session.UpdateAclL(KNSmlDMMMSAclMsgVal,KNSmlDmMMSAclDefault);
-    session.UpdateAclL(KNSmlDMMMSAclMMSSAddr,KNSmlDmMMSAclDefault);
-    session.UpdateAclL(KNSmlDMMMSAclPrimaryMToNapIDL,KNSmlDmMMSAclDefault);
-    CleanupStack::PopAndDestroy(); //session
-    
-    _DBG_FILE("CNSmlDmMMSAdapter::DDFStructureL(): end");
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmMMSAdapter::UpdateLeafObjectL()
-// Updates value of leaf object
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::UpdateLeafObjectL( const TDesC8& aURI, 
-                                           const TDesC8& aLUID, 
-                                           const TDesC8& aObject, 
-                                           const TDesC8& /*aType*/, 
-                                           const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::UpdateLeafObjectL(): begin");
-    CSmlDmAdapter::TError status = ValidateUriL( aURI );
-    if ( status == EOk )
-        {
-        _DBG_FILE("CNSmlDmMMSAdapter::UpdateLeafObjectL(): OK update");
-        status = UpdateDataL(aURI, aLUID, aObject, aStatusRef);
-        }
-    // ImgSize and MMSAddr are always stored last, from the 
-    // CompleteOutstandingCmdsL() function
-    if( ( aStatusRef != iStatusRef ) && (aStatusRef != iImgSizeStatusRef ))
-        {
-        StoreSettingsL();
-        Callback().SetStatusL(aStatusRef, status);
-        }
-    _DBG_FILE("CNSmlDmMMSAdapter::UpdateLeafObjectL(): end");
-    }
-// -----------------------------------------------------------------------------
-// CNSmlDmMMSAdapter::DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID )
-// This should delete values or accounts, but in case of MMS adapter the delete 
-// is not allowed
-// and the adapters returns allways the EError.
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::DeleteObjectL( const TDesC8& /*aURI*/, 
-                                       const TDesC8& /*aLUID*/, 
-                                       const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::DeleteLeafObjectL( ): begin");
-
-    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
-    _DBG_FILE("CNSmlDmMMSAdapter::DeleteLeafObjectL( ): end");
-    }
-// -----------------------------------------------------------------------------
-//  CNSmlDmMMSAdapter::FetchLeafObjectL( const TDesC8& aURI, 
-//  const TDesC8& aLUID,
-//  const TDesC8& aType, 
-//  const TInt aResultsRef, 
-//  const TInt aStatusRef )
-//  Fetches the values of leaf objects.
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::FetchLeafObjectL( const TDesC8& aURI, 
-                                          const TDesC8& /*aLUID*/, 
-                                          const TDesC8& aType, 
-                                          const TInt aResultsRef, 
-                                          const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::FetchLeafObjectL(): begin");
-    CBufBase* result = CBufFlat::NewL(64);
-    CleanupStack::PushL(result);
-    CSmlDmAdapter::TError status = FetchObjectL(aURI, *result);
-    if(status == CSmlDmAdapter::EOk)
-        {
-        Callback().SetResultsL(aResultsRef,*result,aType);
-        }
-    Callback().SetStatusL(aStatusRef, status);
-
-    CleanupStack::PopAndDestroy(); //result
-    _DBG_FILE("CNSmlDmMMSAdapter::FetchLeafObjectL(): end");
-    }
-
-// -----------------------------------------------------------------------------
-//  CNSmlDmMMSAdapter::ChildURIListL( const TDesC8& aURI, 
-//                                       const TDesC8& /*aLUID*/, 
-//                                       const CArrayFix<TSmlDmMappingInfo>& 
-//                                       /*aPreviousURISegmentList*/, 
-//                                       const TInt aResultsRef, 
-//                                       const TInt aStatusRef )
-//  Retuns the list of children of the node
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::ChildURIListL( const TDesC8& aURI, 
-                                       const TDesC8& /*aLUID*/, 
-                                       const CArrayFix<TSmlDmMappingInfo>& 
-                                       /*aPreviousURISegmentList*/, 
-                                       const TInt aResultsRef, 
-                                       const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::ChildURIListL(): begin");
-    TRAPD(err, CreateMMSClientL());
-    if(err!=KErrNone)
-        {
-        Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
-        _DBG_FILE("CNSmlDmMMSAdapter::ChildURIListL(): EError end");
-        return;
-        }
-
-    CBufBase* currentList = CBufFlat::NewL(1);
-    CleanupStack::PushL(currentList);
-
-    TMsvId id = iMmsSettings->Service();
-    if(id==KMsvNullIndexEntryId)
-        {
-        if(aURI.Compare(KNSmlDMMMSNodeName)==0)
-            {
-            Callback().SetResultsL(aResultsRef,*currentList,KNullDesC8);
-            Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EOk);
-            _DBG_FILE("CNSmlDmMMSAdapter::ChildURIListL(): end");
-            }
-        else
-            {
-            Callback().SetStatusL(aStatusRef, CSmlDmAdapter::ENotFound);
-            _DBG_FILE("CNSmlDmMMSAdapter::ChildURIListL(): ENotFound end");
-            }
-        CleanupStack::PopAndDestroy(); //currentList
-        return;
-        }
-
-    CSmlDmAdapter::TError status = CSmlDmAdapter::EOk;
-    TPtrC8 lastSeg = LastURISeg(aURI);
-    TInt num = NumOfURISegs(aURI);
-
-    if(aURI.Compare(KNSmlDMMMSNodeName)==0)
-        {
-        currentList->InsertL(0,KNSmlDMMMSAccount8);
-        }
-    else if(num==2&&aURI.Find(KNSmlDMMMSAccount8)>=0)
-        {
-        currentList->InsertL(0,KNSmlDMMMSListOfLeafsLo);
-        }
-    else if(num==3&&lastSeg.Compare(KNSmlDMMMSCon)==0)
-        {
-        currentList->InsertL(0,KNSmlDMMMSConDynamicName8);
-        }
-    else if(num==4&&lastSeg.Compare(KNSmlDMMMSConDynamicName16)==0)
-        {
-        currentList->InsertL(0,KNSmlDMMMSListOfLeafsMid);
-        }
-    else if(num==5&&lastSeg.Compare(KNSmlDMMMSMToNapID)==0)
-        {
-        currentList->InsertL(0,KNSmlDMMMSValuePrimary);
-        }
-    else if(num==6&&(lastSeg.Compare(KNSmlDMMMSDynamicPrimary)==0))
-        {
-        currentList->InsertL(0,KNSmlDMMMSListOfLeafsHi);
-        }
-    else
-        {
-        status=CSmlDmAdapter::ENotFound;
-        }
-    Callback().SetStatusL(aStatusRef, status);
-    if(status==CSmlDmAdapter::EOk)
-        {
-        Callback().SetResultsL(aResultsRef,*currentList,KNullDesC8);
-        }
-    CleanupStack::PopAndDestroy(); //currentList
-
-    _DBG_FILE("CNSmlDmMMSAdapter::ChildURIListL(): end");
-    }
-// -----------------------------------------------------------------------------
-// CNSmlDmMMSAdapter::AddNodeObjectL( const TDesC8& aURI, 
-// const TDesC8& aParentLUID )
-// This should add a new account, but in case of MMS settings only one 
-// account exist,
-// and so the add is not possible. Returns allways CSmlDmAdapter::EError.
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::AddNodeObjectL( const TDesC8& /*aURI*/, 
-                                        const TDesC8& /*aParentLUID*/, 
-                                        const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::AddNodeObjectL(): begin");
-    //If add is needed in future then add call to AddObjectL function here
-    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
-    _DBG_FILE("CNSmlDmMMSAdapter::AddNodeObjectL(): end");
-    }
-// -----------------------------------------------------------------------------
-// CNSmlDmMMSAdapter::UpdateLeafObjectL( const TDesC8& aURI, 
-// const TDesC8& aLUID, RWriteStream*& aStream, const TDesC8& aType,
-//  const TInt aStatusRef )
-// This should update a stream object, but in case of MMS settings streaming is 
-// not supported.
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, 
-                                           const TDesC8& /*aLUID*/, 
-                                           RWriteStream*& /*aStream*/, 
-                                           const TDesC8& /*aType*/, 
-                                           const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::UpdateLeafObjectL(stream): begin");
-    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
-    _DBG_FILE("CNSmlDmMMSAdapter::UpdateLeafObjectL(stream): end");
-    }
-// -----------------------------------------------------------------------------
-// void CNSmlDmMMSAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
-// const TDesC8& aLUID, const TDesC8& aType, const TInt aResultsRef, 
-// const TInt aStatusRef )
-// Fetches data object and returns its size.
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
-                                              const TDesC8& /*aLUID*/, 
-                                              const TDesC8& aType, 
-                                              const TInt aResultsRef, 
-                                              const TInt aStatusRef )
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::FetchLeafObjectSizeL(): begin");
-
-    CBufBase* result = CBufFlat::NewL(64);
-    CleanupStack::PushL(result);
-    CSmlDmAdapter::TError status = FetchObjectL(aURI, *result);
-    if( status == CSmlDmAdapter::EOk )
-        {
-        TInt objSizeInBytes = result->Size();
-        TBuf8<KNSmlDmMmsObjectSizeWidth> stringObjSizeInBytes;
-        stringObjSizeInBytes.Num( objSizeInBytes );
-        result->Reset();
-        result->InsertL( 0, stringObjSizeInBytes );
-        Callback().SetResultsL(aResultsRef, *result, aType);
-        }
-    Callback().SetStatusL(aStatusRef, status);
-    CleanupStack::PopAndDestroy(); //result
-    _DBG_FILE("CNSmlDmMMSAdapter::FetchLeafObjectSizeL(): end");
-    }
-//==============================================================================
-// CNSmlDmMMSAdapter::ExecuteCommandL()
-//==============================================================================
-void CNSmlDmMMSAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
-                                         const TDesC8& /*aLUID*/, 
-                                         const TDesC8& /*aArgument*/, 
-                                         const TDesC8& /*aType*/, 
-                                         const TInt aStatusRef )
-    {
-    //Not supported 
-    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
-    }
-
-//==============================================================================
-// CNSmlDmMMSAdapter::ExecuteCommandL()
-//==============================================================================
-void CNSmlDmMMSAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, 
-                                         const TDesC8& /*aLUID*/, 
-                                         RWriteStream*& /*aStream*/, 
-                                         const TDesC8& /*aType*/, 
-                                         const TInt aStatusRef )
-    {
-    //Not supported
-    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
-    }
-
-//==============================================================================
-// CNSmlDmMMSAdapter::CopyCommandL()
-//==============================================================================
-void CNSmlDmMMSAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/, 
-                                      const TDesC8& /*aTargetLUID*/, 
-                                      const TDesC8& /*aSourceURI*/, 
-                                      const TDesC8& /*aSourceLUID*/, 
-                                      const TDesC8& /*aType*/, 
-                                      TInt aStatusRef )
-    {
-    //Not supported
-    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
-
-    }
-
-//==============================================================================
-// CNSmlDmMMSAdapter::StartAtomicL()
-//==============================================================================
-void CNSmlDmMMSAdapter::StartAtomicL()
-    {
-    //Not supported
-    }
-
-//==============================================================================
-// CNSmlDmMMSAdapter::CommitAtomicL()
-//==============================================================================
-void CNSmlDmMMSAdapter::CommitAtomicL()
-    {
-    //Not supported
-    }
-
-//==============================================================================
-// CNSmlDmMMSAdapter::RollbackAtomicL()
-//==============================================================================
-void CNSmlDmMMSAdapter::RollbackAtomicL()
-    {
-    //Not supported
-    }
-
-//==============================================================================
-// CNSmlDmMMSAdapter::StreamingSupport()
-//==============================================================================
-TBool CNSmlDmMMSAdapter::StreamingSupport( TInt& /*aItemSize*/ )
-    {
-    return EFalse;
-    }
-
-//==============================================================================
-// CNSmlDmMMSAdapter::StreamCommittedL()
-//==============================================================================
-void CNSmlDmMMSAdapter::StreamCommittedL()
-    {
-    //Not supported
-    }
-// -----------------------------------------------------------------------------
-// CNSmlDmMMSAdapter::CompleteOutstandingCmdsL()
-// Indication of message ending. The buffered commands must be executed before 
-// return of this function.
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::CompleteOutstandingCmdsL()
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::CompleteOutstandingCmdsL(): begin");
-    if(iStatusRef!=KNSmlMMSUndefinedStatusRef)
-        {
-        Callback().SetStatusL(iStatusRef,UpdateMMSAddrL());
-        delete iMMSSAddr;
-        iMMSSAddr = 0;
-        iStatusRef = KNSmlMMSUndefinedStatusRef;
-        }
-    StoreSettingsL();
-    _DBG_FILE("CNSmlDmMMSAdapter::CompleteOutstandingCmdsL(): end");
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmMMSAdapter::HandleSessionEventL()
-// Inherited from MMsvSessionObserver, and this is needs to implemented for 
-// opening the CMsvSession
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::HandleSessionEventL( TMsvSessionEvent /*aEvent*/, 
-                                             TAny* /*aArg1*/, 
-                                             TAny* /*aArg2*/, 
-                                             TAny* /*aArg3*/ )
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSmlDmAdapter::TError CNSmlDmMMSAdapter::UpdateDataL()
-// The function is used for updating the MMS settings. The function is used in 
-// AddLeafObjectL() and UpdateLeafObjectL()
-// -----------------------------------------------------------------------------
-CSmlDmAdapter::TError CNSmlDmMMSAdapter::UpdateDataL(const TDesC8& aURI, 
-                                                     const TDesC8& /*aParentLUID*/,
-                                                     const TDesC8& aObject, 
-                                                     TInt aStatusRef)
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): begin");
-    HBufC8* data = NULL;
-    TRAPD(err, CreateMMSClientL());
-    if(err!=KErrNone)
-        {
-        _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): EError end");
-        return CSmlDmAdapter::EError;
-        }
-
-    TMsvId id = iMmsSettings->Service();
-
-    if( id == KMsvNullIndexEntryId || aURI.Find( KNSmlDMMMSAccount8 )
-        ==KErrNotFound )
-        {
-        _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): ENotFound end");
-        return CSmlDmAdapter::ENotFound;
-        }
-
-    TPtrC8 uriSeg = LastURISeg(aURI);
-    CSmlDmAdapter::TError status = CSmlDmAdapter::EOk;
-
-    if(uriSeg.Compare(KNSmlDMMMSName)==0)
-        {
-        // Not supported.
-        _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): ENotFound end");
-        status = CSmlDmAdapter::ENotFound;
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSMMRecep)==0)
-        {
-        data = aObject.AllocLC();
-        TPtr8 dataPtr = data->Des();
-        dataPtr.Capitalize();
-        if(dataPtr.Find(KNSmlDMMMSValueAlwaysOn)==0)
-            {
-            iMmsSettings->SetReceivingModeHome(EMmsReceivingAutomatic);
-            iMmsSettings->SetReceivingModeForeign(EMmsReceivingAutomatic);
-            }
-        else if(dataPtr.Compare(KNSmlDMMMSValueOff)==0)
-            {
-            iMmsSettings->SetReceivingModeHome(EMmsReceivingReject);
-            iMmsSettings->SetReceivingModeForeign(EMmsReceivingReject);
-            }
-        else if(dataPtr.Find(KNSmlDMMMSValueAutomaticAtHome)==0)
-            {
-            iMmsSettings->SetReceivingModeHome(EMmsReceivingAutomatic);
-            iMmsSettings->SetReceivingModeForeign(EMmsReceivingReject);
-            }
-        else if (dataPtr.Find(KNSmlDMMMSValueAlwaysManual2)==0 ||
-                 dataPtr.Find(KNSmlDMMMSValueAlwaysManual)==0 )
-            {
-            iMmsSettings->SetReceivingModeHome(EMmsReceivingManual);
-            iMmsSettings->SetReceivingModeForeign(EMmsReceivingManual);
-            }
-        else
-            {
-            status = CSmlDmAdapter::EInvalidObject;
-            }
-        CleanupStack::PopAndDestroy(); //data
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSCreMode)==0)
-        {
-        data = aObject.AllocLC();
-        TPtr8 dataPtr = data->Des();
-        dataPtr.Capitalize();
-        if(dataPtr.Find(KNSmlDMMMSValueFree)==0)
-            {
-            iMmsSettings->SetCreationMode(EMmsCreationModeFree);
-            }
-        else if(dataPtr.Find(KNSmlDMMMSValueRestricted)==0)
-            {
-               iMmsSettings->SetImageWidth(KImageRichWidth);
-               iMmsSettings->SetImageHeight(KImageRichHeight);
-               iMmsSettings->SetCreationMode(EMmsCreationModeRestricted);
-            }
-        else if(dataPtr.Find(KNSmlDMMMSValueWarning)==0)
-            {
-            iMmsSettings->SetCreationMode(EMmsCreationModeWarning);
-            }
-        else
-            {
-            status = CSmlDmAdapter::EInvalidObject;
-            }
-        CleanupStack::PopAndDestroy(); //data
-        }
-    else if( uriSeg.Compare(KNSmlDMMMSAMsg) == 0 )
-        {
-        data = aObject.AllocLC();
-        TPtr8 dataPtr = data->Des();
-        dataPtr.Capitalize();
-        TBool object=EFalse;
-        if(dataPtr.Find(KNSmlDMMMSValueTrue)>=0)
-            {
-            object = ETrue;
-            }
-        iMmsSettings->SetAcceptAnonymousMessages(object);
-        CleanupStack::PopAndDestroy(); //data
-        }
-    else if( uriSeg.Compare(KNSmlDMMMSRcvAds) == 0 )
-        {
-        data = aObject.AllocLC();
-        TPtr8 dataPtr = data->Des();
-        dataPtr.Capitalize();
-        TBool object=EFalse;
-        if(dataPtr.Find(KNSmlDMMMSValueTrue)>=0)
-            {
-            object = ETrue;
-            }
-        iMmsSettings->SetAcceptAdvertisementMessages(object);
-        CleanupStack::PopAndDestroy(); //data
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSImgSize)==0)
-        {
-        data = aObject.AllocLC();
-        TPtr8 dataPtr = data->Des();
-        dataPtr.Capitalize();
-        if(dataPtr.Compare(KNSmlDMMMSValueLarge)==0)
-            {
-             switch(iMmsSettings->CreationMode())
-            {
-                case EMmsCreationModeRestricted:
-                status = CSmlDmAdapter::EInvalidObject;
-                break;
-                default : 
-                iMmsSettings->SetImageWidth(KImageMegapixelWidth);
-                iMmsSettings->SetImageHeight(KImageMegapixelHeight);
-                break;
-            }
-            iImgSizeStatusRef = KNSmlMMSUndefinedStatusRef;
-            }
-        else if(dataPtr.Compare(KNSmlDMMMSValueSmall)==0)
-            {
-            iMmsSettings->SetImageWidth(KImageRichWidth);
-            iMmsSettings->SetImageHeight(KImageRichHeight);
-            iImgSizeStatusRef = KNSmlMMSUndefinedStatusRef;
-            }
-        else
-            {
-            status = CSmlDmAdapter::EInvalidObject;
-            }
-        CleanupStack::PopAndDestroy(); //data
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSDRepSnd)==0)
-        {
-        data = aObject.AllocLC();
-        TPtr8 dataPtr = data->Des();
-        dataPtr.Capitalize();
-        if(dataPtr.Compare(KNSmlDMMMSValueFalse)==0)
-            {
-            iMmsSettings->SetDeliveryReportSendingAllowed(KMmsYes);
-            }
-        else
-            {
-            iMmsSettings->SetDeliveryReportSendingAllowed(KMmsNo);
-            }
-        CleanupStack::PopAndDestroy(); //data
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSRcvRep)==0)
-        {
-        data = aObject.AllocLC();
-        TPtr8 dataPtr = data->Des();
-        dataPtr.Capitalize();
-        if(dataPtr.Compare(KNSmlDMMMSValueTrue)==0)
-            {
-            iMmsSettings->SetDeliveryReportWanted(KMmsYes);
-            }
-        else
-            {
-            iMmsSettings->SetDeliveryReportWanted(KMmsNo);
-            }
-        CleanupStack::PopAndDestroy(); //data
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSMsgVal)==0)
-        {
-        data = aObject.AllocLC();
-        TPtr8 dataPtr = data->Des();
-        dataPtr.LowerCase();
-        if(dataPtr.Compare(KNSmlDMMMSValueHour)==0 ||
-           dataPtr.Compare(KNSmlDMMMSValueHourShort)==0)
-            {
-            iMmsSettings->SetExpiryInterval(KNSmlDMMMSExpiryHour);
-            }
-        else if(dataPtr.Find(KNSmlDMMMSValueSixHoursShort)==0 ||
-                dataPtr.Find(KNSmlDMMMSValueSixHoursShortNum)==0)
-            {
-            iMmsSettings->SetExpiryInterval(KNSmlDMMMSExpirySixHours);
-            }
-        else if(dataPtr.Find(KNSmlDMMMSValueDayShort)==0)
-            {
-            iMmsSettings->SetExpiryInterval(KNSmlDMMMSExpiryDay);
-            }
-        else if(dataPtr.Find(KNSmlDMMMSValueThreeDaysShort)==0 ||
-                dataPtr.Find(KNSmlDMMMSValueThreeDaysShortNum)==0)
-            {
-            iMmsSettings->SetExpiryInterval(KNSmlDMMMSExpiryThreeDays);
-            }
-        else if(dataPtr.Find(KNSmlDMMMSValueWeekShort)>=0)
-            {
-            iMmsSettings->SetExpiryInterval(KNSmlDMMMSExpiryWeek);
-            }
-        else if(dataPtr.Find(KNSmlDMMMSValueMaximumTimeShort)==0)
-            {
-            iMmsSettings->SetExpiryInterval(KNSmlDMMMSExpiryMaximum);
-            }
-        else
-            {
-            status = CSmlDmAdapter::EInvalidObject;
-            }
-        CleanupStack::PopAndDestroy(); //data
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSMToNapIDL)==0)
-        {
-        TPtrC8 seg=LastURISeg(RemoveLastURISeg(aURI));
-        if( seg.Compare(KNSmlDMMMSDynamicPrimary)==0 )
-            {
-            CNSmlDMIAPMatcher* iapmatch = CNSmlDMIAPMatcher::NewL( &Callback() );
-            CleanupStack::PushL(iapmatch);
-            
-            TInt iap = iapmatch->IAPIdFromURIL( aObject );
-
-            CleanupStack::PopAndDestroy(); // iapmatch
-            
-            if ( iap != KErrNotFound )
-                {
-                CCommsDatabase* commDb = CCommsDatabase::NewL();
-                CleanupStack::PushL(commDb);
-                CApUtils* aputils = CApUtils::NewLC(*commDb);
-                TRAP(err, iap = aputils->WapIdFromIapIdL( iap ) );
-                DBG_ARGS(_S("IAP = %d"), iap);
-
-                CleanupStack::PopAndDestroy(2); //commdb,aputils
-
-                if( err == KErrNone)
-                    {
-                    ReplaceAPL( iap, KNSmlDMMMSFirstAccessPointId );
-                    }
-                else
-                    {
-                    _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): \
-                    err!=KErrNone");
-                    iap = KNSmlDMMMSIapNotDefined;
-                    status = CSmlDmAdapter::EInvalidObject;
-                    }
-                }
-            else
-                {
-                _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): status = \
-                CSmlDmAdapter::EInvalidObject");
-                status = CSmlDmAdapter::EInvalidObject;
-                }
-            }
-        else
-            {
-            if( status == CSmlDmAdapter::EOk )
-                {
-                status = CSmlDmAdapter::ENotFound;
-                }
-            }
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSMMSSAddr)==0)
-        {
-        if(iMMSSAddr)
-            {
-            delete iMMSSAddr;
-            iMMSSAddr = 0;
-            }
-        if(iStatusRef != KNSmlMMSUndefinedStatusRef)
-            {
-            Callback().SetStatusL(iStatusRef,CSmlDmAdapter::EError);
-            }
-        iMMSSAddr = aObject.AllocL();
-        iStatusRef = aStatusRef;
-        }
-
-    _DBG_FILE("CNSmlDmMMSAdapter::UpdateDataL(): end");
-    return status;
-    }
-
-// -----------------------------------------------------------------------------
-// void CNSmlDmMMSAdapter::ReplaceAP( TInt aIapId, TInt aPos )
-// replace AP, if no AP exitst in aPos then just add it.
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::ReplaceAPL( TInt aIapId, TInt aPos )
-    {
-    if( iMmsSettings->AccessPoint( aPos ) != KErrNotFound )
-        {
-        iMmsSettings->DeleteAccessPointL( aPos );
-        }
-    iMmsSettings->AddAccessPointL( aIapId, aPos );
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmMMSAdapter::UpdateMMSAddrL()
-// Executes the buffered MMSSAddr update command. 
-// This command is called from CompleteOutstandingCmdsL() 
-// -----------------------------------------------------------------------------
-CSmlDmAdapter::TError CNSmlDmMMSAdapter::UpdateMMSAddrL()
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL(): begin");
-    CSmlDmAdapter::TError status = CSmlDmAdapter::EOk;
-
-    TBool ok = EFalse;
-    TUint32 wapid = iMmsSettings->AccessPoint(KNSmlDMMMSFirstAccessPointId);
-    
-    //Check if locked , if locked unlock else execute normal sequence.
-        
-        TBool reclock = EFalse;
-        TBool lockerror =KErrNone;
-        reclock = IsWAPAccessPointRecordLockedL(wapid);
-        if(reclock)
-        {
-        	_DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL():making record unlock");
-        	//unlock the record
-        	lockerror = DoProtectWAPAccessRecordL(wapid,EFalse);
-        	_DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL():record unlocked with error as ");
-        	DBG_ARGS(_S("err = %d"), lockerror);
-        }
-        
-    
-    CCommsDbTableView* tableView=0;
-    tableView = iDatabase->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),
-                                               TPtrC(COMMDB_ID), wapid );        
-    if(tableView->GotoFirstRecord()==KErrNone)
-        {
-        _DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL(): GotoFirstRecord");
-        
-        
-        //If it was unlocked, lock it again
-        
-        if(lockerror == KErrNone)
-        {
-        	TInt err = tableView->UpdateRecord();
-        	if(err == KErrNone)
-        	{
-        		HBufC* object = HBufC::NewLC(iMMSSAddr->Length());
-        TPtr obPtr = object->Des();
-        CnvUtfConverter::ConvertToUnicodeFromUtf8( obPtr, *iMMSSAddr);
-
-        TRAPD(err,tableView->WriteLongTextL(TPtrC(WAP_START_PAGE),obPtr));
-        DBG_ARGS(_S("err = %d"), err);
-        if(err==KErrNone)
-            {
-            _DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL(): Write OK");
-            tableView->PutRecordChanges();
-            ok = ETrue;
-            }
-        CleanupStack::PopAndDestroy(); //object
-        
-        	}
-        	
-        }
-        
-        }
-    CleanupStack::PopAndDestroy(1); //tableview  //, commDb--iDatabase
-if(reclock)
-        	{
-        		TInt err = DoProtectWAPAccessRecordL(wapid,ETrue);
-        	_DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL():record again locked with error as ");
-        	 DBG_ARGS(_S("err = %d"), err);
-        	 reclock = EFalse;
-        	}
-    if(!ok)
-        {
-        status = CSmlDmAdapter::EError;
-        }
-
-    _DBG_FILE("CNSmlDmMMSAdapter::UpdateMMSAddrL(): end");
-    return status;
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmMMSAdapter::DesToInt()
-// Converts a 16 bit descriptor to TInt
-// -----------------------------------------------------------------------------
-TInt CNSmlDmMMSAdapter::DesToInt(const TDesC& aLuid)
-    {
-    TLex16 lex(aLuid);
-    TInt value = 0;
-    lex.Val(value);
-    return value;
-    }
-
-
-// -----------------------------------------------------------------------------
-// TPtrC8 CNSmlDmMMSAdapter::RemoveLastURISeg(const TDesC8& aURI)
-// returns parent uri, i.e. removes last uri segment
-// -----------------------------------------------------------------------------
-TPtrC8 CNSmlDmMMSAdapter::RemoveLastURISeg(const TDesC8& aURI)
-    {
-    TInt i;
-    for(i=aURI.Length()-1;i>=0;i--)
-        {
-        if(aURI[i]==KNSmlDMMMSSeparatorDef)
-            {
-            break;
-            }
-        }
-    return aURI.Left(i);
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// TInt CNSmlDmMMSAdapter::NumOfURISegs(const TDesC8& aURI)
-// Returns the num of uri segs
-// -----------------------------------------------------------------------------
-TInt CNSmlDmMMSAdapter::NumOfURISegs(const TDesC8& aURI)
-    {
-    TInt numOfURISegs = 1;
-    for(TInt i=0;i<aURI.Length();i++)
-        {
-        if(aURI[i]==KNSmlDMMMSSeparatorDef)
-            {
-            numOfURISegs++;
-            }
-        }
-    return numOfURISegs;
-    }
-
-
-// -----------------------------------------------------------------------------
-// TPtrC8 CNSmlDmMMSAdapter::LastURISeg(const TDesC8& aURI)
-// Returns only the last uri segemnt
-// -----------------------------------------------------------------------------
-TPtrC8 CNSmlDmMMSAdapter::LastURISeg(const TDesC8& aURI)
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::LastURISeg() : begin");
-    TInt i;
-    for(i=aURI.Length()-1;i>=0;i--)
-        {
-        if(aURI[i]==KNSmlDMMMSSeparatorDef)
-            {
-            break;
-            }
-        }
-    _DBG_FILE("CNSmlDmMMSAdapter::LastURISeg() : end");
-    if(i==0)
-        {
-        return aURI;
-        }
-    else
-        {
-        return aURI.Mid(i+1);
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CNSmlDmMMSAdapter::CreateMMSClientL()
-// Creates MMS client mtm
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::CreateMMSClientL()
-    {
-    if(iMmsClient ==0)
-        {
-        iMsvSession = CMsvSession::OpenSyncL( *this );
-        iClientMtmRegistry = CClientMtmRegistry::NewL(* iMsvSession );
-        iMmsClient = (CMmsClientMtm *) iClientMtmRegistry->
-            NewMtmL( KUidMsgTypeMultimedia );
-        iMmsClient->RestoreSettingsL();
-        iMmsSettings = CMmsSettings::NewL();
-        iMmsSettings->CopyL( iMmsClient->MmsSettings() );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CNSmlDmMMSAdapter::FillNodeInfoL()
-// Fills the node info in ddf structure
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::FillNodeInfoL( MSmlDmDDFObject& aNode,
-                                       TSmlDmAccessTypes aAccTypes,
-                                       MSmlDmDDFObject::TOccurence aOccurrence, 
-                                       MSmlDmDDFObject::TScope aScope, 
-                                       MSmlDmDDFObject::TDFFormat aFormat,
-                                       const TDesC8& aDescription)
-    {
-    aNode.SetAccessTypesL(aAccTypes);
-    aNode.SetOccurenceL(aOccurrence);
-    aNode.SetScopeL(aScope);
-    aNode.SetDFFormatL(aFormat);
-    if(aFormat!=MSmlDmDDFObject::ENode)
-        {
-        aNode.AddDFTypeMimeTypeL(KNSmlDMMMSTextPlain);
-        }
-    aNode.SetDescriptionL(aDescription);
-
-    }
-
-// -----------------------------------------------------------------------------
-// CSmlDmAdapter::TError FetchObjectL(const TDesC8& aURI, const TDesC8& aObject)
-// Fetches data object and returns it in parameter. 
-// Return values according to CSmlDmAdapter::TError.
-// -----------------------------------------------------------------------------
-CSmlDmAdapter::TError CNSmlDmMMSAdapter::FetchObjectL(const TDesC8& aURI, 
-                                                      CBufBase& aObject)
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::FetchObjectL(): begin");
-    TRAPD(err, CreateMMSClientL());
-    if(err!=KErrNone)
-        {
-        _DBG_FILE("CNSmlDmMMSAdapter::FetchObjectL(): EError end");
-        return CSmlDmAdapter::EError;
-        }
-
-    TMsvId id = iMmsSettings->Service();
-
-    if(id == KMsvNullIndexEntryId||aURI.Find(KNSmlDMMMSAccount8)==KErrNotFound)
-        {
-        _DBG_FILE("CNSmlDmMMSAdapter::FetchObjectL(): ENotFound end");
-        return CSmlDmAdapter::ENotFound;
-        }
-
-    TPtrC8 uriSeg = LastURISeg(aURI);
-    CSmlDmAdapter::TError status = CSmlDmAdapter::EOk;
-
-    if(uriSeg.Compare(KNSmlDMMMSName)==0)
-        {
-        status = CSmlDmAdapter::ENotFound;
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSMMRecep)==0)
-        {
-        TMmsReceivingMode rcvHome = iMmsSettings->ReceivingModeHome();
-        TMmsReceivingMode rcvForeign = iMmsSettings->ReceivingModeForeign();
-        if ( rcvHome == EMmsReceivingAutomatic )
-            {
-            if ( rcvForeign == EMmsReceivingAutomatic )
-                {
-                aObject.InsertL( 0, KNSmlDMMMSValueAlwaysOn );
-                }
-            else
-                {
-                aObject.InsertL( 0, KNSmlDMMMSValueAutomaticAtHome );
-                }
-            }
-        else if ( rcvHome == EMmsReceivingReject )
-            {
-            aObject.InsertL( 0, KNSmlDMMMSValueOff );
-            }
-        else if ( rcvHome == EMmsReceivingManual )
-            {
-            aObject.InsertL( 0, KNSmlDMMMSValueAlwaysManual );
-            }
-        else
-            {
-            aObject.InsertL( 0, KNSmlDMMMSValueAutomaticAtHome );
-            }
-
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSCreMode)==0)
-        {
-        switch(iMmsSettings->CreationMode())
-            {
-        case EMmsCreationModeWarning:
-            aObject.InsertL(0,KNSmlDMMMSValueWarning);
-            break;
-            
-        case EMmsCreationModeFree:
-            aObject.InsertL(0,KNSmlDMMMSValueFree);
-            break;
-
-        case EMmsCreationModeRestricted:
-            aObject.InsertL(0,KNSmlDMMMSValueRestricted);
-            break;
-
-        default:
-            aObject.InsertL(0,KNSmlDMMMSValueWarning);
-            break;
-            }
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSAMsg)==0)
-        {
-        if(iMmsSettings->AcceptAnonymousMessages())
-            {
-            aObject.InsertL(0,KNSmlDMMMSValueTrue);
-            }
-        else
-            {
-            aObject.InsertL(0,KNSmlDMMMSValueFalse);
-            }
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSRcvAds)==0)
-        {
-        if(iMmsSettings->AcceptAdvertisementMessages())
-            {
-            aObject.InsertL(0,KNSmlDMMMSValueTrue);
-            }
-        else
-            {
-            aObject.InsertL(0,KNSmlDMMMSValueFalse);
-            }
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSImgSize)==0)
-        {
-        if( iMmsSettings->ImageWidth() == KImageRichWidth && 
-            iMmsSettings->ImageHeight() == KImageRichHeight )
-            {
-            aObject.InsertL(0,KNSmlDMMMSValueSmall);
-            }
-        else if ( iMmsSettings->ImageWidth() == KImageMegapixelWidth && 
-                  iMmsSettings->ImageHeight() == KImageMegapixelHeight )
-            {
-            aObject.InsertL(0,KNSmlDMMMSValueLarge);
-            }
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSDRepSnd)==0)
-        {
-        if( iMmsSettings->DeliveryReportSendingAllowed() == KMmsYes)
-            {
-            aObject.InsertL(0,KNSmlDMMMSValueFalse);
-            }
-        else
-            {
-            aObject.InsertL(0,KNSmlDMMMSValueTrue);
-            }
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSRcvRep)==0)
-        {
-        if( iMmsSettings->DeliveryReportWanted() == KMmsYes)
-            {
-            aObject.InsertL(0,KNSmlDMMMSValueTrue);
-            }
-        else
-            {
-            aObject.InsertL(0,KNSmlDMMMSValueFalse);
-            }
-        }
-    else if( uriSeg.Compare( KNSmlDMMMSMsgVal ) == 0 )
-        {
-        switch(iMmsSettings->ExpiryInterval())
-            {
-        case KNSmlDMMMSExpiryHour:
-            aObject.InsertL(0,KNSmlDMMMSValueHourShort);
-            break;
-            
-        case KNSmlDMMMSExpirySixHours:
-            aObject.InsertL(0,KNSmlDMMMSValueSixHours);
-            break;
-
-        case KNSmlDMMMSExpiryDay:
-            aObject.InsertL(0,KNSmlDMMMSValueDay);
-            break;
-
-        case KNSmlDMMMSExpiryThreeDays:
-            aObject.InsertL(0,KNSmlDMMMSValueThreeDays);
-            break;
-
-        case KNSmlDMMMSExpiryWeek:
-            aObject.InsertL(0,KNSmlDMMMSValueWeek);
-            break;
-
-        case KNSmlDMMMSExpiryMaximum:
-            aObject.InsertL(0,KNSmlDMMMSValueMaximumTime);
-            break;
-
-        default:
-            aObject.InsertL(0,KNSmlDMMMSValueThreeDays);
-            break;
-            }
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSMToNapIDL)==0)
-        {
-        TUint32 iap = KNSmlDMMMSIapNotDefined;
-        TInt32 mmsIap = -1;
-        CCommsDatabase* commDb = CCommsDatabase::NewL();
-        CleanupStack::PushL(commDb);
-        CApUtils* aputils = CApUtils::NewLC(*commDb);
-
-        if(LastURISeg(RemoveLastURISeg(aURI)).Compare(
-               KNSmlDMMMSDynamicPrimary)==0)
-            {
-            mmsIap = iMmsSettings->AccessPoint( KNSmlDMMMSFirstAccessPointId );
-            }
-        
-        if(mmsIap != KErrNotFound )
-        	{
-        	iap = mmsIap;
-        	TRAPD(err, iap = aputils->IapIdFromWapIdL( iap ) ); 
-        
-        	if( iap != KNSmlDMMMSIapNotDefined && err == KErrNone )
-            	{
-            	CNSmlDMIAPMatcher* iapmatch = CNSmlDMIAPMatcher::NewL( &Callback() );
-            	CleanupStack::PushL(iapmatch);
-    
-            	HBufC8* uri8 = iapmatch->URIFromIAPIdL( iap );
-                
-            if( uri8 )
-                {
-                CleanupStack::PushL(uri8);
-                aObject.InsertL(0,uri8->Des());
-                status = CSmlDmAdapter::EOk;
-                CleanupStack::PopAndDestroy(); // uri8
-                }
-            else
-                {
-                status = CSmlDmAdapter::ENotFound;
-                }    
-            CleanupStack::PopAndDestroy(); // iapMatch
-            }
-        else
-            {
-            status = CSmlDmAdapter::ENotFound;
-            }
-        	
-        }
-        else
-        {
-        	status = CSmlDmAdapter::ENotFound;
-        }
-        CleanupStack::PopAndDestroy(2); //commdb,aputils
-        }
-    else if(uriSeg.Compare(KNSmlDMMMSMMSSAddr)==0)
-        {
-        CCommsDatabase* commDb = CCommsDatabase::NewL(EDatabaseTypeIAP);
-        CleanupStack::PushL(commDb);
-
-        TBool ok = EFalse;
-
-        CCommsDbTableView* tableView=0;
-        
-        TInt apId = iMmsSettings->AccessPoint(KNSmlDMMMSFirstAccessPointId);
-        
-        if ( apId != KErrNotFound )
-            {
-            
-            tableView = commDb->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),
-                                                       TPtrC(COMMDB_ID),
-                                                       apId);
-
-            if(tableView->GotoFirstRecord()==KErrNone)
-                {
-                TBuf<KCommsDbSvrMaxFieldLength> columnValue;
-                HBufC* tmpPage;
-                tmpPage = tableView->ReadLongTextLC(TPtrC(WAP_START_PAGE));
-            
-                if(err==KErrNone)
-                    {
-                    HBufC8* val8 = HBufC8::NewLC(tmpPage->Size());
-                    TPtr8 valPtr = val8->Des();
-                    CnvUtfConverter::ConvertFromUnicodeToUtf8( valPtr, 
-                                                               *tmpPage);
-                    aObject.InsertL(0,valPtr);
-                    ok = ETrue;
-                    CleanupStack::PopAndDestroy(); //val8
-                    }
-                CleanupStack::PopAndDestroy(tmpPage);
-                }
-            CleanupStack::PopAndDestroy(); //tableview
-            }
-        CleanupStack::PopAndDestroy(); //commDb
-        if(!ok)
-            {
-            status = CSmlDmAdapter::EError;
-            }
-        }
-    else 
-        {
-        status = CSmlDmAdapter::ENotFound;
-        }
-    _DBG_FILE("CNSmlDmMMSAdapter::FetchObjectL(): end");
-    return status;
-    }
-
-// -----------------------------------------------------------------------------
-// void StoreSettingsL()
-// Stores the MMS settings to the phone.
-// 
-// -----------------------------------------------------------------------------
-void CNSmlDmMMSAdapter::StoreSettingsL()
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::StoreSettingsL(): begin");
-    if ( iMmsSettings && iMmsClient )
-        {
-        iMmsSettings->SaveSettingsL();
-        iMmsClient->SetSettingsL( *iMmsSettings );
-        }
-    _DBG_FILE("CNSmlDmMMSAdapter::StoreSettingsL(): end");
-    }
-
-// -----------------------------------------------------------------------------
-// CSmlDmAdapter::TError ValidateUriL( const TDesC8& aURI )
-// Validate URI, return error if not valid.
-// 
-// -----------------------------------------------------------------------------
-CSmlDmAdapter::TError CNSmlDmMMSAdapter::ValidateUriL( const TDesC8& aURI )
-    {
-    _DBG_FILE("CNSmlDmMMSAdapter::ValidateUriL(): begin");
-    CSmlDmAdapter::TError status = EOk;
-    TPtrC8 parentUri = RemoveLastURISeg(aURI);
-    switch ( NumOfURISegs( aURI ) )
-        {
-    case 3:
-        if ( parentUri.Match( KNSmlDMMMSLevel3Parents ) != 0 )
-            {
-            _DBG_FILE("CNSmlDmMMSAdapter::ValidateUriL(): 3");
-            status = ENotFound;
-            }
-        break;
-    case 5:
-        if ( parentUri.Match( KNSmlDMMMSLevel5Parents ) != 0 )
-            {
-            _DBG_FILE("CNSmlDmMMSAdapter::ValidateUriL(): 5");
-            status = ENotFound;
-            }
-        break;
-    case 7:
-        if ( parentUri.Match( KNSmlDMMMSLevel7Parents1 ) != 0 && 
-             parentUri.Match( KNSmlDMMMSLevel7Parents2 ) != 0)
-            {
-            _DBG_FILE("CNSmlDmMMSAdapter::ValidateUriL(): 7");
-            status = ENotFound;
-            }
-        break;
-    default:
-        status = ENotFound;
-        break;
-
-        }
-    _DBG_FILE("CNSmlDmMMSAdapter::ValidateUriL(): end");
-    return status;
-    }
-
-// -----------------------------------------------------------------------------
-// TImplementationProxy ImplementationTable[]
-// Needed because of ECOM architecture
-// -----------------------------------------------------------------------------
-
-#ifndef IMPLEMENTATION_PROXY_ENTRY
-#define IMPLEMENTATION_PROXY_ENTRY(aUid, aFuncPtr)  {{aUid},(aFuncPtr)}
-#endif
-
-const TImplementationProxy ImplementationTable[] = 
-    {
-    IMPLEMENTATION_PROXY_ENTRY(KNSmlDMMMSAdapterImplUid, 
-                               CNSmlDmMMSAdapter::NewL)
-    };
-
-// -----------------------------------------------------------------------------
-// ImplementationGroupProxy()
-// Needed because of ECOM architecture
-// -----------------------------------------------------------------------------
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& 
-                                                               aTableCount )
-    {
-    _DBG_FILE("ImplementationGroupProxy() for CNSmlDmMMSAdapter: begin");
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-    _DBG_FILE("ImplementationGroupProxy() for CNSmlDmMMSAdapter: end");
-    return ImplementationTable;
-    }
-
-
-//----------------------------------------------------------------------
-//TBool CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL(TUint32 aRecord)
-//check for wap access point record  lock status 
-//----------------------------------------------------------------------
-    
-TBool CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL(TUint32 aRecord)
-	{
-	_DBG_FILE("CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL():  BEGIN");	
-	
-	TBool ret = EFalse;
-    CCommsDbTableView* wapView;
-    DBG_ARGS8(_S8("CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL record being checked = %d"),aRecord);
-    wapView = iDatabase->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),
-                                                            TPtrC(COMMDB_ID),
-                                                            aRecord);
-      	                                                      
-    TInt aAccess( 0 );
-    if(wapView!=NULL)
-    	{
-   		_DBG_FILE("CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL():wap record exists, check for access type");	
-    	TInt err = (((CCommsDbProtectTableView*) wapView )->GetRecordAccess( aAccess ) );
-    	DBG_ARGS8(_S8("CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL , GetrecordAccess code is =%d and acess type of record = %d"),err, aAccess);
-    	CleanupStack::PopAndDestroy( wapView);                                            
-    	if(aAccess == RDbRowSet::EReadOnly)                                                    
-       		ret = ETrue;
-    	}
-    
-    _DBG_FILE("CNSmlDmMMSAdapter::IsWAPAccessPointRecordLockedL():  END");	
-    return ret;
-        		
-	}
-//----------------------------------------------------------------------
-//TBool CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL(TUint32 aRecord,TBool aProtect)
-// protect or unprotect wapaccesspoint record of access point being altered 
-//----------------------------------------------------------------------
-
-
-TInt CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL(TUint32 aRecord,TBool aProtect)
-	{
-	_DBG_FILE("CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL():  BEGIN");	
-	DBG_ARGS8(_S8("CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL , record and protect value  =%d  = %d"),aRecord, aProtect);
-	TInt err = KErrNone;
-	
-	CCommsDbTableView* wapView;
-    wapView = iDatabase->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),
-                                                            TPtrC(COMMDB_ID),
-                                                            aRecord);
-	if( wapView != NULL )
-		{
-		_DBG_FILE("CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL():  wap record exists");	
-		if( !aProtect )
-    		{
-    		err = ( (CCommsDbProtectTableView*) wapView )->UnprotectRecord();
-    		DBG_ARGS8(_S8("CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL ,error code of Unprotectrecord = %d"),err);
-        	}
-     			
-     	else
-     		{
-     		err = ( (CCommsDbProtectTableView*) wapView )->ProtectRecord();
-     		DBG_ARGS8(_S8("CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL ,error code of ProtectRecord = %d"),err);	
-     		}
-  
-  		CleanupStack::PopAndDestroy( wapView);
-		}
-   	
-	_DBG_FILE("CNSmlDmMMSAdapter::DoProtectWAPAccessRecordL():  END");	
-	return err;
-	}
-	
-	
-
-// End of File