omadm/omadmextensions/adapters/syncmlds/src/NSmlDsSettingsAdapter.cpp
changeset 2 a5fecba4b1e4
parent 0 3ce708148e4d
--- a/omadm/omadmextensions/adapters/syncmlds/src/NSmlDsSettingsAdapter.cpp	Thu Jan 07 12:39:15 2010 +0200
+++ b/omadm/omadmextensions/adapters/syncmlds/src/NSmlDsSettingsAdapter.cpp	Mon Jan 18 20:09:30 2010 +0200
@@ -941,6 +941,16 @@
 		}
 	else
 		{
+		if( aParentLUID.Length() > 0 )
+		{		
+			TInt ret = iCallBack->RemoveMappingL(KNSmlDSSettingsAdapterImplUid,
+						GetDynamicDSNodeUri( aURI ), ETrue );
+			if(ret)
+				{
+				iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
+				return;
+				}
+		}		
         //
         //	Create new profile
         //
@@ -3817,5 +3827,24 @@
          CleanupStack::PopAndDestroy( 1 );//profileIdArray
         return profileID;
 }
+
+//------------------------------------------------------------------------------
+// TPtrC8 CUtils::GetDynamicDSNodeUri( const TDesC8& aURI )
+// returns Syncml/DSAcc/xxx URI
+//------------------------------------------------------------------------------
+TPtrC8 CNSmlDSSettingsAdapter::GetDynamicDSNodeUri(const TDesC8& aURI)
+    {    
+    TInt i= 0;
+    TBuf8<50> DsAccRoot(KDSAcc1);
+    for ( i = aURI.Find( KDSAcc1 ) + DsAccRoot.Length() + 1 ; i < aURI.Length(); i++ )
+        {
+        if( aURI[i] == '/'  )            
+			{            break;            
+			}
+        }    
+		
+    return aURI.Left( i );
+    }
+	
 // End of File