omadm/omadmextensions/adapters/dcmodmadapter/src/dcmodmadapter.cpp
changeset 18 7d11f9a6646f
parent 4 75a71fdb4c92
child 21 c707676bf59f
--- a/omadm/omadmextensions/adapters/dcmodmadapter/src/dcmodmadapter.cpp	Tue Feb 02 00:03:17 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,926 +0,0 @@
-/*
-* Copyright (c) 2009 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:  DCMO DM Adapter implementation
-*
-*/
-
-// INCLUDE
-#include <implementationproxy.h>
-#include <smldmadapter.h>
-#include <data_caging_path_literals.hrh>
-#include <centralrepository.h>
-#include <e32base.h>
-#include <ecom.h>
-#include <utf.h>
-#include <SettingEnforcementInfo.h> // DCMO Enforcement
-#include "nsmldebug.h"
-#include "dcmodmadapter.h"
-#include "dcmointerface.h"
-
-// CONSTANTS
-
-#define MAXBUFLEN 255
-
-_LIT8( KTextType,"text/plain" ); // Leaf inputs
-_LIT8( KDCMODMAdapterVersion, "1.0" ); // Adapter version
-_LIT8( KDCMORootNode, "DCMO" ); // root URI
-
-
-// ============================= MEMBER FUNCTIONS =============================
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::NewL
-// Symbian 1st phase contructor
-// (static, may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-CDcmoDMAdapter* CDcmoDMAdapter::NewL( MSmlDmCallback* aCallback )
-    {
-    CDcmoDMAdapter* self = NewLC( aCallback );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::NewLC
-// Symbian 1st phase contructor. Push object to cleanup-stack
-// (static, may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-CDcmoDMAdapter* CDcmoDMAdapter::NewLC( MSmlDmCallback* aCallback )
-    {
-    	_DBG_FILE( "CDcmoDMAdapter NewLC : begin"  );
-    	CDcmoDMAdapter* self = new ( ELeave ) CDcmoDMAdapter( aCallback );
-    	CleanupStack::PushL( self );
-    	self->ConstructL();
-    	_DBG_FILE( "CDcmoDMAdapter NewLC : end"  );
-    	return self;
-    }
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::CDcmoDMAdapter()
-// C++ Constructor
-// Status : Draft
-// ----------------------------------------------------------------------------
-CDcmoDMAdapter::CDcmoDMAdapter( TAny* aEcomArguments )
-    : CSmlDmAdapter::CSmlDmAdapter( aEcomArguments )
-    {
-    	_DBG_FILE( "CDcmoDMAdapter Constructor"  );
-    }
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::ConstructL
-// 2nd phase contructor
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::ConstructL()
-    {
-    	_DBG_FILE( "CDcmoDMAdapter::ConstructL"  );
-    	idcmoClient = RDCMOClient::NewL();
-    	iExtOpNode = EFalse;	
-    }
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::~CDcmoDMAdapter()
-// C++ Destructor
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-CDcmoDMAdapter::~CDcmoDMAdapter()
-    {
-    	_DBG_FILE( "CDcmoDMAdapter Destructor"  );
-    	if( idcmoClient )
-    		{
-    			idcmoClient->Close();
-    			delete idcmoClient;
-    		}
-    	idcmoClient = NULL;
-    }
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::DDFVersionL
-// Return DM plug-in version
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::DDFVersionL( CBufBase& aDDFVersion )
-    {
-    // Insert version information
-    _DBG_FILE( "CDcmoDMAdapter::DDFVersionL" );
-    aDDFVersion.InsertL( 0, KDCMODMAdapterVersion );
-    }
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::DDFStructureL
-// Return DM plug-in structure
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
-    {
-    // Declare accesses
-    _DBG_FILE( "CDcmoDMAdapter::DDFStructureL begin" );
-    TSmlDmAccessTypes accessTypes;
-    accessTypes.SetGet();    
-    
-    // Create root node 
-    MSmlDmDDFObject& root = aDDF.AddChildObjectL( KDCMORootNode );
-    FillNodeInfoL( root,
-                   accessTypes,
-                   MSmlDmDDFObject::EPermanent,
-                   MSmlDmDDFObject::ENode,
-                   MSmlDmDDFObject::EOne,
-                   KNullDesC8(),
-                   KTextType );
-                   
-   	root.SetDFTitleL( KNSmlDCMOAdapterTitle );
-                   
-   	DDFDCMOAdaptersL(root);
-   	_DBG_FILE( "CDcmoDMAdapter::DDFStructureL end" );
-
-    }
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::StreamingSupport
-// Return streaming support status, set supported item size
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-TBool CDcmoDMAdapter::StreamingSupport( TInt& /* aItemSize */ )
-    {
-    // Not supported
-    _DBG_FILE( "CDcmoDMAdapter::StreamingSupport"  );
-    return EFalse;
-    }
-    
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::StreamCommittedL
-// Commit stream buffer
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::StreamCommittedL()
-    {        
-    _DBG_FILE("CDcmoDMAdapter::StreamCommitted"  );
-    // Intentionally left empty 
-    }
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::CompleteOutstandingCmdsL
-// Complete outstanding commands
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::CompleteOutstandingCmdsL()
-    {
-    _DBG_FILE( "CDcmoDMAdapter::CompleteOutstandingCmdsL"  );
-    }
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::FillNodeInfoL
-// Fill node info
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::FillNodeInfoL( MSmlDmDDFObject& aDDFObject, 
-                                     TSmlDmAccessTypes& aAccessTypes, 
-                                     MSmlDmDDFObject::TScope aScope,
-                                     MSmlDmDDFObject::TDFFormat aFormat, 
-                                     MSmlDmDDFObject::TOccurence aOccurence,
-                                     const TDesC8& aDescription,
-                                     const TDesC8& aMIMEType )
-    {
-    _DBG_FILE( "CDcmoDMAdapter::FillNodeInfoL - begin"  );
-    aDDFObject.SetAccessTypesL( aAccessTypes );
-    aDDFObject.SetScopeL( aScope );
-    aDDFObject.SetOccurenceL( aOccurence );
-    aDDFObject.SetDFFormatL( aFormat );
-    aDDFObject.SetDescriptionL( aDescription );
-    if ( aFormat != MSmlDmDDFObject::ENode )
-        {
-        aDDFObject.AddDFTypeMimeTypeL( aMIMEType );
-        }
-    _DBG_FILE( "CDcmoDMAdapter::FillNodeInfoL - end"  );    
-    }
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::CopyCommandL
-// Copy object
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/, 
-                                    const TDesC8& /*aTargetLUID*/,
-                                    const TDesC8& /*aSourceURI*/, 
-                                    const TDesC8& /*aSourceLUID*/,
-                                    const TDesC8& /*aType*/, 
-                                    TInt aStatusRef )
-    {
-    // Not supported
-    _DBG_FILE( "CDcmoDMAdapter::CopyCommandL"  );
-    Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    }
-
-// ----------------------------------------------------------------------------
-// DeleteObjectL
-// Delete object
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::DeleteObjectL( const TDesC8& /* aURI */, 
-                                     const TDesC8& /* aLUID */,
-                                     TInt aStatusRef )
-
-    {
-    // Not supported
-    _DBG_FILE( "CDcmoDMAdapter::DeleteObjectL"  );
-    Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    }
-    
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::FetchLeafObjectL
-// Fetch leaf
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::FetchLeafObjectL( const TDesC8& aURI, 
-                                        const TDesC8& /* aLUID */,
-								        const TDesC8& aType, 
-								        TInt aResultsRef,
-								        TInt aStatusRef )
-    {
-    _DBG_FILE( "CDcmoDMAdapter::FetchLeafObjectL - begin"  );
-    MSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk; 
-		TDCMOStatus err (EDcmoFail);
-		
-    TBool dcmoEnforce=EFalse;
-	  TRAPD(eError, dcmoEnforce =CheckEnforcementL())
-	  if(!(eError==KErrNone && dcmoEnforce))
-	  {
-	  	 // Respond
-	  	retValue = CSmlDmAdapter::ENotAllowed;
-  		Callback().SetStatusL( aStatusRef, retValue );
-  		return;
-	  }
-    
-		TBuf<MAXBUFLEN> iName;
-		
-		TPtrC8 category = GetCategoryFromUriL( aURI );
-		iName.Copy ( category );
-
-		CBufBase *lObject = CBufFlat::NewL( 128 );
-    CleanupStack::PushL( lObject );
-    lObject->Reset();
-    TBool value;
-    TInt group;
-    	
-		if(aURI.Find(KNSmlDdfProperty)!= KErrNotFound)
-		{
-			 _DBG_FILE( "CDcmoDMAdapter::FetchLeafObjectL - In Property"  );
-			TBuf<KDCMOMaxStringSize> property;
-			err = idcmoClient->GetDCMOStrAttributeValue(iName, EProperty,property); 
-			lObject->Reset();
-			TBuf8<KDCMOMaxStringSize> tmp;
-			tmp.Copy(property);
-			lObject->InsertL(lObject->Size(),tmp);
-		}
-			
-		else if(aURI.Find(KNSmlDdfGroup)!= KErrNotFound)
-		{
-			 _DBG_FILE( "CDcmoDMAdapter::FetchLeafObjectL - In Group"  );
-			err = idcmoClient->GetDCMOIntAttributeValue(iName, EGroup, group); 
-			switch(group)
-			{
-				case EHardware			: 	lObject->InsertL(lObject->Size(),KNSmlHardware);
-										break;
-				case EIO						:	lObject->InsertL(lObject->Size(),KNSmlIO);
-										break;
-				case EConnectivity	:	lObject->InsertL(lObject->Size(),KNSmlConnectivity);
-										break;
-				case ESoftware			:	lObject->InsertL(lObject->Size(),KNSmlSoftware);
-										break;
-				case EService				:	lObject->InsertL(lObject->Size(),KNSmlService);
-										break;	
-				default : retValue = CSmlDmAdapter::ENotFound;
-									
-			}
-		}			
-		else if(aURI.Find(KNSmlDdfDescription)!= KErrNotFound)
-		{
-			 _DBG_FILE( "CDcmoDMAdapter::FetchLeafObjectL - In Description"  );
-			TBuf<KDCMOMaxStringSize> description;
-			err = idcmoClient->GetDCMOStrAttributeValue(iName, EDescription, description); 
-			lObject->Reset();
-			TBuf8<KDCMOMaxStringSize> tmp;
-			tmp.Copy(description);
-			lObject->InsertL(lObject->Size(),tmp);
-		}
-			
-		else if(aURI.Find(KNSmlDdfAttached)!= KErrNotFound)
-		{
-			 _DBG_FILE( "CDcmoDMAdapter::FetchLeafObjectL - In Attached"  );
-			err = idcmoClient->GetDCMOIntAttributeValue(iName, EAttached, value); 
-			if(value)
-				lObject->InsertL(lObject->Size(),KNSmlTrue);
-			else
-				lObject->InsertL(lObject->Size(),KNSmlFalse);
-		}
-		
-		else if(aURI.Find(KNSmlDdfEnabled)!= KErrNotFound) 
-		{
-			 _DBG_FILE( "CDcmoDMAdapter::FetchLeafObjectL - In Enabled"  );
-			err = idcmoClient->GetDCMOIntAttributeValue(iName, EEnabled, value); 
-			if(value)
-				lObject->InsertL(lObject->Size(),KNSmlTrue);
-			else
-				lObject->InsertL(lObject->Size(),KNSmlFalse);			
-		}
-			
-		else if(aURI.Find(KNSmlDdfDenyUserEnable)!= KErrNotFound)
-		{
-			 _DBG_FILE( "CDcmoDMAdapter::FetchLeafObjectL - In DenyUserEnable"  );
-			err = idcmoClient->GetDCMOIntAttributeValue(iName, EDenyUserEnable, value); 
-			if(value)
-				lObject->InsertL(lObject->Size(),KNSmlTrue);
-			else
-				lObject->InsertL(lObject->Size(),KNSmlFalse);
-		}
-			
-		else if(aURI.Find(KNSmlDdfNotifyUser)!= KErrNotFound)
-		{
-			 _DBG_FILE( "CDcmoDMAdapter::FetchLeafObjectL - In NotifyUser"  );
-			err = idcmoClient->GetDCMOIntAttributeValue(iName, ENotifyUser, value); 
-			if(value)
-				lObject->InsertL(lObject->Size(),KNSmlTrue);
-			else
-				lObject->InsertL(lObject->Size(),KNSmlFalse);
-		}
-		
-		else if(aURI.Find(KNSmlDdfExt)!= KErrNotFound)
-		{
-			_DBG_FILE( "CDcmoDMAdapter::FetchLeafObjectL - In Ext"  );
-			lObject->Reset();
-			lObject->InsertL(lObject->Size(), KNullDesC8);
-			err = EDcmoSuccess;
-		}
-			
-		else
-			retValue = CSmlDmAdapter::ENotFound;
-		
-		if(retValue == CSmlDmAdapter::EOk)
-    {
-			switch(err)
-			{
-				case EDcmoSuccess 		:	Callback().SetResultsL( aResultsRef, *lObject, aType );
-											break;
-				case EDcmoNotSupported	:	retValue = CSmlDmAdapter::EError;
-											break;
-				case EDcmoAccessDenied	:	retValue = CSmlDmAdapter::ENotAllowed;
-											break;
-				default :
-											retValue = CSmlDmAdapter::EError;						
-			}
-				
-  	}
-    	
-    CleanupStack::PopAndDestroy(); //lObject	
-
-    // Respond
-  Callback().SetStatusL( aStatusRef, retValue );
-   _DBG_FILE( "CDcmoDMAdapter::FetchLeafObjectL - end"  );
-    }    
-    
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::FetchLeafObjectSizeL
-// Calculate leaf object size
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::FetchLeafObjectSizeL( const TDesC8& /* aURI */, 
-                                            const TDesC8& /* aLUID */,
-									        const TDesC8& /* aType */, 
-									        TInt /* aResultsRef */,
-									        TInt aStatusRef )
-    {
-    _DBG_FILE( "CDcmoDMAdapter::FetchLeafObjectSizeL"  );
-    MSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
-    // Respond
-    Callback().SetStatusL( aStatusRef, retValue );
-    }    
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::ChildURIListL
-// Create child URI list
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::ChildURIListL( const TDesC8& aURI, 
-                                     const TDesC8& /* aLUID */,
-					                 const CArrayFix<TSmlDmMappingInfo>& /* aPreviousURISegmentList */,
-            					     TInt aResultsRef, 
-            					     TInt aStatusRef )
-    {
-    _DBG_FILE( "CDcmoDMAdapter::ChildURIListL - begin"  );
-    MSmlDmAdapter::TError retValue = CSmlDmAdapter::EOk;
-    CBufBase *currentURISegmentList = CBufFlat::NewL( 128 );
-		CleanupStack::PushL( currentURISegmentList );	
-
- 		if(( aURI.Match( KDcmoMatch2 ) != KErrNotFound ) &&
-		 (aURI.Match( KDcmoMatch3 ) == KErrNotFound ))
-		{	
-            currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDcmo );
-			Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
-		    Callback().SetResultsL( aResultsRef, *currentURISegmentList, KNullDesC8 );
-            CleanupStack::PopAndDestroy(  ); // currentURISegmentList
-       		_DBG_FILE( "CDcmoDMAdapter::ChildURIListL(): end" );
-			return;
-		}
-    else if(( aURI.Match( KDcmoMatch ) != KErrNotFound ) &&
-              (aURI.Match( KDcmoMatch2 ) == KErrNotFound ))
-        {
-        //    
-        }
-    // DCMOConfig subtree
-    else if( ( aURI.Match( KDcmoConfigMatch ) != KErrNotFound ))
-        {
-          currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDcmoConfig );
-        }
-    // Operations    
-    else if(( aURI.Match( KDcmoOperationsMatch ) != KErrNotFound ))
-        {
-          currentURISegmentList->InsertL( currentURISegmentList->Size(), KSegmDcmoOperations );
-        } 
-    // Ext    
-    else if(( aURI.Match(KNSmlBluetooth) != KErrNotFound) && ( aURI.Match(KDcmoOperationsExtMatch)!= KErrNotFound ))
-        {
-          currentURISegmentList->InsertL( currentURISegmentList->Size(), KNSmlDdfOpExtSemiEnable );
-        }        
-    else
-        {
-        retValue = CSmlDmAdapter::ENotFound;
-        }
-
-    // Respond
-    Callback().SetStatusL( aStatusRef, retValue );
-    CleanupStack::PopAndDestroy(); // currentURISegmentList
-    _DBG_FILE( "CDcmoDMAdapter::ChildURIListL - end"  );
-    }    
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::AddNodeObjectL
-// Add node
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::AddNodeObjectL( const TDesC8& /* aURI */,
-                                     const TDesC8& /* aParentLUID */,
-								     TInt aStatusRef )
-    {
-    // Not supported
-    _DBG_FILE( "CDcmoDMAdapter::AddNodeObjectL - begin"  );
-    Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    _DBG_FILE( "CDcmoDMAdapter::AddNodeObjectL - end"  );
-    }    
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::ExecuteCommandL
-// Execute command
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::ExecuteCommandL( const TDesC8&  aURI , 
-                                      const TDesC8& /* aLUID */,
-							          const TDesC8& /* aArgument */, 
-							          const TDesC8& /* aType */,
-								      TInt aStatusRef )
-    {
-    _DBG_FILE( "CDcmoDMAdapter::ExecuteCommandL - begin"  );
-   	MSmlDmAdapter::TError status = CSmlDmAdapter::EOk;
-    TInt err (EDcmoFail);
-    
-    TBool dcmoEnforce=EFalse;
-	  TRAPD(eError, dcmoEnforce =CheckEnforcementL())
-	  if(!(eError==KErrNone && dcmoEnforce))
-	  {
-	  	 // Respond
-	  	status = CSmlDmAdapter::ENotAllowed;
-  		Callback().SetStatusL( aStatusRef, status );
-  		return;
-	  }
-	  
-		TBuf<MAXBUFLEN> iName;
-		TPtrC8 category = GetCategoryFromUriL( aURI );
-		iName.Copy ( category );		
-		
-		if((category.Compare( KNSmlBluetooth ) == KErrNone ) && (aURI.Find( KNSmlDdfOpExtSemiEnable ) != KErrNotFound ))
-			err = idcmoClient->SetDCMOIntAttributeValue(iName, EEnable, 2); 
-		else if(aURI.Find( KNSmlDdfEnable ) != KErrNotFound ) 
-			err = idcmoClient->SetDCMOIntAttributeValue(iName, EEnable, 1); 
-		else if(aURI.Find( KNSmlDdfDisable ) != KErrNotFound ) 
-			err = idcmoClient->SetDCMOIntAttributeValue(iName, EEnable, 0); 		
-		else	
-			err = EDcmoNotFound;				
-			// map error	
-		status = MapErrorToStatus( err );
-								
-    Callback().SetStatusL( aStatusRef, status );
-    _DBG_FILE( "CDcmoDMAdapter::ExecuteCommandL - end"  );
-    }    
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::ExecuteCommandL
-// Execute command, streaming enabled
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::ExecuteCommandL( const TDesC8& /* aURI */, 
-                                      const TDesC8& /* aLUID */,
-								      RWriteStream*& /* aStream */,
-								      const TDesC8& /* aType */,
-								      TInt aStatusRef )
-    {
-    // Not supported
-    Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    }    
-    
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::UpdateLeafObjectL
-// Update leaf object
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::UpdateLeafObjectL( const TDesC8& /* aURI */, 
-                                        const TDesC8& /* aLUID */,
-                                        const TDesC8& /* aObject */,
-                                        const TDesC8& /* aType */,
-                                        TInt aStatusRef )
-    {
-      _DBG_FILE( "CDcmoDMAdapter::UpdateLeafObjectL - begin"  );
- 		// Not supported
-    Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-   _DBG_FILE( "CDcmoDMAdapter::UpdateLeafObjectL - end"  );
-    }
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::UpdateLeafObjectL
-// Update leaf object, streaming enabled
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::UpdateLeafObjectL( const TDesC8& /* aURI */, 
-                                         const TDesC8& /* aLUID */,
-									     RWriteStream*& /* aStream */, 
-									     const TDesC8& /* aType */,
-		 							     TInt aStatusRef )
-    {
-    // Not supported
-    Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
-    }
-    
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::StartAtomicL
-// Start atomic
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::StartAtomicL()
-    {
-    }
-    
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::CommitAtomicL
-// Commit atomic commands
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::CommitAtomicL()
-    {
-    }
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::RollbackAtomicL
-// Lose all modifications after 'StartAtomicL' command
-// (may leave)
-// Status : Draft
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::RollbackAtomicL()
-    {
-    }    
-
-// ---------------------------------------------------------------------------
-// CNSmlDmFotaAdapter::MapStatusToError()
-// Returns a status code corresponding to the system error code given 
-// as parameter.
-// ---------------------------------------------------------------------------
-//
-CSmlDmAdapter::TError CDcmoDMAdapter::MapErrorToStatus( TInt aError ) const
- {
-    CSmlDmAdapter::TError err = CSmlDmAdapter::EError;
-    
-    switch( aError )
-        {
-        case EDcmoSuccess:
-            err = CSmlDmAdapter::EExecSuccess;
-            break;
-        case EDcmoFail:
-            err = CSmlDmAdapter::EExecClientError;
-            break;    
-        case EDcmoNotFound:
-            err = CSmlDmAdapter::EExecDownloadFailed;
-            break;
-        case EDcmoNotSupported:
-            err = CSmlDmAdapter::EExecClientError;
-            break;
-        case EDcmoAccessDenied:
-            err = CSmlDmAdapter::EExecClientError;
-            break;            
-        default :
-        		err = CSmlDmAdapter::EExecClientError;        
-        }
-    
-    return err;
- }
-      
-// ========================= OTHER EXPORTED FUNCTIONS =========================
-
-void CleanupEComArray(TAny* aArray)
-	{
-	(static_cast<RImplInfoPtrArray*> (aArray))->ResetAndDestroy();
-	(static_cast<RImplInfoPtrArray*> (aArray))->Close();
-	}
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::DDFDCMOAdaptersL
-// This function loads all the DCMO plug-in adapters
-// ----------------------------------------------------------------------------
-//
-void CDcmoDMAdapter::DDFDCMOAdaptersL(MSmlDmDDFObject& rootdcmo)
-{
-		_DBG_FILE("CDcmoDMAdapter::DDFDCMOAdaptersL(): begin");	
-			TBuf8<MAXBUFLEN> buf;
-      TSmlDmAccessTypes accessTypes;
-    	accessTypes.SetGet();
-    	
-			CRepository* centrep = NULL;
-			TInt err(KErrNone);
-			TRAP(err, centrep = CRepository::NewL( KCRUidDCMOServer ));
-			if(err == KErrNone)
-			{
-				TUint32 centrepKey = 0;
-				TInt count(0);
-				TInt reterr = centrep->Get( centrepKey, count );	
-				if(reterr == KErrNone)
-				{		
-					TBuf<MAXBUFLEN> buffer;
-					for(TInt i=0; i<count; i++)
-					{   
-        		centrepKey = KDCMOKeyMaxNumber*i + KDCMOPropertyNumber ;
-        		reterr = centrep->Get( centrepKey, buffer );
-	    			if( reterr== KErrNone )
-        		{        			
-        			buf.Copy ( buffer );
-        			MSmlDmDDFObject& entityNode = rootdcmo.AddChildObjectL( buf );
-    					FillNodeInfoL( entityNode,
-                   accessTypes,
-                   MSmlDmDDFObject::EDynamic,
-                   MSmlDmDDFObject::ENode,
-                   MSmlDmDDFObject::EZeroOrOne,                   
-                   KDCMOCapabilityDescription,
-                   KMimeType ); 
-                                       
-							FillDCMODDFL(entityNode);
-							buf.Zero();
-        		}
-					}
-				}	
-				delete centrep;
-				centrep = NULL;
-			}
-			
-			// Read info about all implementations into infoArray
-			RImplInfoPtrArray infoArray;
-			// Note that a special cleanup function is required to reset and destroy
-			// all items in the array, and then close it.
-			TCleanupItem cleanup(CleanupEComArray, &infoArray);
-			CleanupStack::PushL(cleanup);
-			REComSession::ListImplementationsL(KDCMOInterfaceUid, infoArray);
-
-			// Loop through each info for each implementation
-			// and create and use each in turn
-			CDCMOInterface* ex;			
-
-			for (TInt i=0; i< infoArray.Count(); i++)
-				{
-
-				TUid impluid = infoArray[i]->ImplementationUid();
-				// Create object of type and call its function
-				
-				buf = infoArray[i]->OpaqueData();
-				
-				CDCMOInterface::TDCMOInterfaceInitParams initParms;
-				initParms.uid = impluid;
-				TBuf<MAXBUFLEN> categoryName;
-				categoryName.Copy(buf);
-				initParms.descriptor = categoryName.AllocL(); 
-				ex = CDCMOInterface::NewL(initParms);
-				CleanupStack::PushL(ex);
-				if( buf.Compare(KNSmlBluetooth)== KErrNone )
-				{
-					iExtOpNode = ETrue;
-				}	
-    			MSmlDmDDFObject& entityNode = rootdcmo.AddChildObjectL( buf );
-    			FillNodeInfoL( entityNode,
-                   accessTypes,
-                   MSmlDmDDFObject::EDynamic,
-                   MSmlDmDDFObject::ENode,
-                   MSmlDmDDFObject::EZeroOrOne,                   
-                   KDCMOCapabilityDescription,
-                   KMimeType ); 
-                                       
-				FillDCMODDFL(entityNode);
-				ex = NULL;
-				buf.Zero();
-				CleanupStack::PopAndDestroy(); //ex
-				}
-
-			// Clean up
-			CleanupStack::PopAndDestroy(); //infoArray, results in a call to CleanupEComArray
-	_DBG_FILE("CDcmoDMAdapter::DDFDCMOAdaptersL(): end");	
-}
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::FillDCMODDFL
-// This function constructs the DDFnode with the details
-// ----------------------------------------------------------------------------
-//	
-void CDcmoDMAdapter::FillDCMODDFL(MSmlDmDDFObject& aDDF)
-{
-	_DBG_FILE("CDcmoDMAdapter::FillDCMPDDFL(): begin");
-		
-	  TSmlDmAccessTypes accessTypesG;
-    accessTypesG.SetGet();
-    
-    MSmlDmDDFObject& nPropertyDDF = aDDF.AddChildObjectL( KNSmlDdfProperty );			// Property
-    FillNodeInfoL( nPropertyDDF, accessTypesG,  
-                    MSmlDmDDFObject::EPermanent, MSmlDmDDFObject::EChr, MSmlDmDDFObject::EOne,
-                    KNSmlDdfPropertyDescription, KMimeType );
-
-    //Group 
-    MSmlDmDDFObject& nGroupDDF = aDDF.AddChildObjectL( KNSmlDdfGroup );					// Group
-    FillNodeInfoL( nGroupDDF, accessTypesG,  
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, MSmlDmDDFObject::EOne,
-                    KNSmlDdfGroupDescription, KMimeType );           
-                    
-    // Description node 
-    MSmlDmDDFObject& nDescriptionDDF = aDDF.AddChildObjectL( KNSmlDdfDescription );		// Description
-    FillNodeInfoL( nDescriptionDDF, accessTypesG, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, MSmlDmDDFObject::EOne, 
-                    KNSmlDdfDescDescription, KMimeType );
-
-    MSmlDmDDFObject& nAttachedDDF = aDDF.AddChildObjectL( KNSmlDdfAttached );			// Attached
-    FillNodeInfoL( nAttachedDDF, accessTypesG, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, MSmlDmDDFObject::EOne,
-                    KNSmlDdfAttachedDescription, KMimeType );
-
-		MSmlDmDDFObject& nEnabledDDF = aDDF.AddChildObjectL( KNSmlDdfEnabled );			// Enabled
-    FillNodeInfoL( nEnabledDDF, accessTypesG,  
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, MSmlDmDDFObject::EOne,
-                    KNSmlDdfEnabledDescription, KMimeType );
-
-		MSmlDmDDFObject& nDCMOConfigDDF = aDDF.AddChildObjectL( KNSmlDdfDCMOConfig );	// DCMOConfig
-    FillNodeInfoL( nDCMOConfigDDF, accessTypesG,  
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, MSmlDmDDFObject::EOne,
-                    KNSmlDdfDCMOConfigDescription, KMimeType );
-    
-    MSmlDmDDFObject& nDenyUserEnableDDF = nDCMOConfigDDF.AddChildObjectL( KNSmlDdfDenyUserEnable );	// DenyUserEnable
-    FillNodeInfoL( nDenyUserEnableDDF, accessTypesG,  
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, MSmlDmDDFObject::EZeroOrOne,
-                    KNSmlDdfDenyUserEnableDescription, KMimeType );
-                    
-
-    MSmlDmDDFObject& nNotifyUserDDF = nDCMOConfigDDF.AddChildObjectL( KNSmlDdfNotifyUser );	// NotifyUser
-    FillNodeInfoL( nNotifyUserDDF, accessTypesG,  
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, MSmlDmDDFObject::EOne,
-                    KNSmlDdfNotifyUserDescription, KMimeType );                     
-    //Operations 
-   
-  	MSmlDmDDFObject& nOperationsDDF = aDDF.AddChildObjectL( KNSmlDdfOperations );		// Operations
-    FillNodeInfoL( nOperationsDDF, accessTypesG,  
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, MSmlDmDDFObject::EOne,
-                    KNSmlDdfOperationsDescription, KMimeType ); 
-                    
-   	
-   	TSmlDmAccessTypes accessTypesE;   
-    accessTypesE.SetExec();
-    
-   	MSmlDmDDFObject& nEnableDDF = nOperationsDDF.AddChildObjectL( KNSmlDdfEnable );		// Enable
-    FillNodeInfoL( nEnableDDF, accessTypesE,  
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, MSmlDmDDFObject::EOne,
-                    KNSmlDdfEnableDescription, KMimeType );
-                    
-    
-   	MSmlDmDDFObject& nDisableDDF = nOperationsDDF.AddChildObjectL( KNSmlDdfDisable );	// Disable
-    FillNodeInfoL( nDisableDDF, accessTypesE,  
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, MSmlDmDDFObject::EOne,
-                    KNSmlDdfDisableDescription, KMimeType );
-                    
-
-   	MSmlDmDDFObject& nOpExtDDF = nOperationsDDF.AddChildObjectL( KNSmlDdfOpExt );		// Operations/Ext
-    FillNodeInfoL( nOpExtDDF, accessTypesG,  
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::ENode, MSmlDmDDFObject::EOne,
-                    KNSmlDdfOpExtDescription, KMimeType );
-    
-    if( iExtOpNode )
-    {	
-    	MSmlDmDDFObject& nOpExtSemiEnableDDF = nOpExtDDF.AddChildObjectL( KNSmlDdfOpExtSemiEnable );		// Operations/Ext/SemiEnable
-    	FillNodeInfoL( nOpExtSemiEnableDDF, accessTypesE,  
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, MSmlDmDDFObject::EOne,
-                    KNSmlDdfOpExtSemiEnableDescription, KMimeType );                    
-    	iExtOpNode = EFalse;
-  	}               
-
-   	MSmlDmDDFObject& nExtDDF = aDDF.AddChildObjectL( KNSmlDdfExt );						// Ext
-    FillNodeInfoL( nExtDDF, accessTypesG, 
-                    MSmlDmDDFObject::EDynamic, MSmlDmDDFObject::EChr, MSmlDmDDFObject::EOne, 
-                    KNSmlDdfExtDescription, KMimeType ); 
-
-
-	_DBG_FILE("CDcmoDMAdapter::FillDCMPDDFL(): end");
-}    
-
-// ----------------------------------------------------------------------------
-// CDcmoDMAdapter::GetCategoryFromUriL
-// This function returns the implementation UID if the plug-in
-// ----------------------------------------------------------------------------
-//	
-TPtrC8 CDcmoDMAdapter::GetCategoryFromUriL(const TDesC8& aURI )
-{
-	_DBG_FILE("CDcmoDMAdapter::GetDCMOAdapterUidL(): begin");
-	
-	TInt length = aURI.Length ();
-	TInt count = 0;
-	TInt flag = 0;
-	for (count=0; count<length; count++)
-		{
-		if ( aURI[count]=='/')
-			{
-				if ( flag )
-					break;
-				flag = count;			
-			}
-		}
-		
-	_DBG_FILE("CDcmoDMAdapter::GetDCMOAdapterUidL(): end");	
-	return ( aURI.Mid ( flag+1 , count-(flag+1) ));	
-
-
-}
-
-//----------------------------------------------------------------------
-// TBool CDcmoDMAdapter::CheckEnforcementL()
-// If DCMO policy is enforced true is returned else false
-//----------------------------------------------------------------------
-TBool CDcmoDMAdapter::CheckEnforcementL()
-{
-    CSettingEnforcementInfo* info = CSettingEnforcementInfo::NewL();
-    CleanupStack::PushL(info);
-    TBool enforceActive ( EFalse );
-    User::LeaveIfError(info->EnforcementActive(EDCMOEnforcement, enforceActive));
-    CleanupStack::PopAndDestroy(info);
-    return enforceActive;
-}
-    
-// End of File