simpleengine/presencedm/src/presencedmadapter.cpp
branchRCL_3
changeset 35 fbd2e7cec7ef
parent 34 2669f8761a99
--- a/simpleengine/presencedm/src/presencedmadapter.cpp	Tue Aug 31 15:35:50 2010 +0300
+++ b/simpleengine/presencedm/src/presencedmadapter.cpp	Wed Sep 01 12:23:14 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-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"
@@ -14,9 +14,6 @@
 * Description:    OMA Presence Settings Device Management Adapter's source file 
 *
 */
-
-
-
  
 #include <implementationproxy.h>
 #include <nsmldmuri.h>
@@ -362,6 +359,7 @@
     TPresSettingsProperty property;
 
     HBufC8* luid = Callback().GetLuidAllocL( aUri );
+    PRES_DM_LOG(LOG_LIT8("   GetLuidAllocL() => '%S'"), luid );
     TInt settingsId = DesToInt( *luid );
     
     PRES_DM_LOG(LOG_LIT("   settingsId after callback:%d"), settingsId);
@@ -370,12 +368,16 @@
     if (!IsPresIDValidL(settingsId))
         {
         //try to find it another way
-        TPtrC8 removedLastSeg = NSmlDmURI::RemoveLastSeg(aUri);
-        TPtrC8 idSegment = NSmlDmURI::LastURISeg(removedLastSeg);
-        TInt settingsId = DesToInt(idSegment);
-        if (!IsPresIDValidL(settingsId))
-            status = CSmlDmAdapter::ENotFound;
-        PRES_DM_LOG(LOG_LIT("   settingsId found local way:%d"), settingsId);
+        if( NSmlDmURI::NumOfURISegs( aUri ) > 1 )
+            {
+            TPtrC8 idSegment = NSmlDmURI::URISeg( aUri, 2 );
+            settingsId = DesToInt(idSegment);
+            if(!IsPresIDValidL(settingsId))
+                {
+                status = CSmlDmAdapter::ENotFound;
+                }
+            PRES_DM_LOG(LOG_LIT("   settingsId found local way:%d"), settingsId);
+            }
         }
     
     // if previous settings id processing was ok
@@ -519,12 +521,16 @@
     if (!IsPresIDValidL(settingsId))
         {
         //try to find it another way
-        TPtrC8 removedLastSeg = NSmlDmURI::RemoveLastSeg(aUri);
-        TPtrC8 idSegment = NSmlDmURI::LastURISeg(removedLastSeg);
-        TInt settingsId = DesToInt(idSegment);
-        if (!IsPresIDValidL(settingsId))
-            status = CSmlDmAdapter::ENotFound; 
-        PRES_DM_LOG(LOG_LIT("   settingsId found local way:%d"), settingsId);
+        if( NSmlDmURI::NumOfURISegs( aUri ) > 1 )
+            {
+            TPtrC8 idSegment = NSmlDmURI::URISeg( aUri, 2 );
+            settingsId = DesToInt(idSegment);
+            if (!IsPresIDValidL(settingsId))
+                {
+                status = CSmlDmAdapter::ENotFound;
+                }
+            PRES_DM_LOG(LOG_LIT("   settingsId found local way:%d"), settingsId);
+            }
         }
     
     // if previous settings id processing was ok
@@ -722,6 +728,7 @@
                                          const TInt aStatusRef )
     {
     // Not supported 
+    PRES_DM_LOG(LOG_LIT("ExecuteCommandL"));    
     Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
     }
 
@@ -736,6 +743,7 @@
                                          const TInt aStatusRef )
     {
     // Not supported
+    PRES_DM_LOG(LOG_LIT("ExecuteCommandL"));
     Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
     }
 
@@ -751,6 +759,7 @@
                                       TInt aStatusRef )
     {
     // Not supported
+    PRES_DM_LOG(LOG_LIT("CopyCommandL"));    
     Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
     }
 
@@ -760,6 +769,7 @@
 //
 void CPresenceDMAdapter::StartAtomicL()
     {
+    PRES_DM_LOG(LOG_LIT("StartAtomicL"));
     // Not supported
     }
 
@@ -769,6 +779,7 @@
 //
 void CPresenceDMAdapter::CommitAtomicL()
     {
+    PRES_DM_LOG(LOG_LIT("CommitAtomicL"));
     // Not supported
     }
 
@@ -778,6 +789,7 @@
 //
 void CPresenceDMAdapter::RollbackAtomicL()
     {
+    PRES_DM_LOG(LOG_LIT("RollbackAtomicL"));
     // Not supported
     }
 
@@ -787,6 +799,7 @@
 //
 TBool CPresenceDMAdapter::StreamingSupport( TInt& /*aItemSize*/ )
     {
+    PRES_DM_LOG(LOG_LIT("StreamingSupport"));    
     return EFalse;
     }
 
@@ -796,6 +809,7 @@
 //
 void CPresenceDMAdapter::StreamCommittedL()
     {
+    PRES_DM_LOG(LOG_LIT("StreamCommittedL"));    
     // Not supported
     }
     
@@ -877,10 +891,10 @@
         aObject.InsertL( 0, *utfValue );
         CleanupStack::PopAndDestroy(utfValue);  // >>> utfValue
         CleanupStack::PopAndDestroy(value);  // >>> value
-        PRES_DM_LOG(LOG_LIT(" return(%d)"),CSmlDmAdapter::EOk);  
+        PRES_DM_LOG(LOG_LIT(" return( EOk )"));  
         return CSmlDmAdapter::EOk;
         }
-    PRES_DM_LOG(LOG_LIT(" return(%d)"),CSmlDmAdapter::ENotFound);      
+    PRES_DM_LOG(LOG_LIT(" return( ENotFound )"));      
     return CSmlDmAdapter::ENotFound;
     }
     
@@ -1056,7 +1070,7 @@
 CSmlDmAdapter::TError CPresenceDMAdapter::GetConRefFromSipIDL( TInt aSipID,
                                                       CBufBase& aObject)
     {
-    PRES_DM_LOG(LOG_LIT(" GetConRefFromSipIDL(%d)"),aSipID);
+    PRES_DM_LOG(LOG_LIT(" GetConRefFromSipIDL(aSipId:%d)"),aSipID);
 
     CSmlDmAdapter::TError status = CSmlDmAdapter::EOk;
     
@@ -1069,12 +1083,14 @@
         
         // Request all the sip settings identifiers 
         Callback().FetchLinkL( KPresDMSipDMNode, *result, status);
+        PRES_DM_LOG(LOG_LIT("   FetchLinkL(SIP) status : %d"), status );
         
         if( status == EOk )
             {
             TPtr8 uriSeg8Ptr = result->Ptr(0);
             
-            HBufC8* uriSegBuffer = uriSeg8Ptr.AllocLC();
+            HBufC8* uriSegBuffer = uriSeg8Ptr.AllocLC(); // << uriSegBuffer
+            PRES_DM_LOG(LOG_LIT8("   uri : '%S'"), uriSegBuffer );
             
             TPtr8 uriSegBufferPtr = uriSegBuffer->Des();
             
@@ -1087,7 +1103,7 @@
                      
             // Check if given SIP set id match with any of found
             // SIP settings identifiers
-            while( numOfUriSegs > 1)
+            while( numOfUriSegs > 0 )
                 {
                 idLinkBuffer = NSmlDmURI::LastURISeg(uriSegBufferPtr);
                 uriSegBufferPtr = NSmlDmURI::RemoveLastSeg(uriSegBufferPtr);
@@ -1102,17 +1118,20 @@
                 //Reqest the ID
                 result->Reset();
                 Callback().FetchLinkL( finalLink, *result, status);
-                        
-                foundId = DesToInt(result->Ptr(0));
-                        
-                if (foundId == aSipID)
+                PRES_DM_LOG(LOG_LIT8("   FetchLinkL(%S) status : %d"), &idLinkBuffer, status );                        
+                if( status == EOk )
                     {
-                    found = ETrue;
-                    aObject.InsertL(0, NSmlDmURI::RemoveLastSeg(finalLink));
+                    foundId = DesToInt(result->Ptr(0));
+                    PRES_DM_LOG(LOG_LIT("   foundId : %d"), foundId );                        
+                    if (foundId == aSipID)
+                        {
+                        found = ETrue;
+                        aObject.InsertL(0, NSmlDmURI::RemoveLastSeg(finalLink));
                         break;
                         }
+                    }
                 
-                numOfUriSegs -= 1;  
+                numOfUriSegs--;  
                 }
             CleanupStack::PopAndDestroy( uriSegBuffer );    // >>> uriSegBuffer
             }
@@ -1137,7 +1156,7 @@
 CSmlDmAdapter::TError CPresenceDMAdapter::GetConRefFromXdmIDL( TInt aXdmID,
                                                       CBufBase& aObject)
     {
-    PRES_DM_LOG(LOG_LIT(" GetConRefFromXdmIDL(%d)"),aXdmID);
+    PRES_DM_LOG(LOG_LIT(" GetConRefFromXdmIDL(aXdmId:%d)"),aXdmID);
 
     CSmlDmAdapter::TError status = CSmlDmAdapter::ENotFound;
     
@@ -1148,6 +1167,7 @@
         
         // Request all the XDM settings identifiers 
         Callback().FetchLinkL( KPresDMXdmDMNode, *result, status);
+        PRES_DM_LOG(LOG_LIT("   FetchLinkL(XDM) status : %d"), status );
         TInt id(KErrNotFound);
         
         TPtrC8 lastUriSegXdm;
@@ -1211,6 +1231,7 @@
     TPresSettingsSet tempSet;
     if ((PresSettingsApi::SettingsSetL(aSetId,tempSet)) == KErrNone)
         return ETrue;
+    PRES_DM_LOG(LOG_LIT8(" IsPresIDValidL - Invalid settings : %d"), aSetId );
     return EFalse;   
     }
     
@@ -1248,8 +1269,7 @@
         
     if( status == EOk )
         {
-        TUint32 id(NULL);
-        id = DesToInt( result->Ptr( 0 ) );
+        TUint32 id = DesToInt( result->Ptr( 0 ) );
         returnId = (TInt)id;       
         }
     CleanupStack::PopAndDestroy( result );   // >>> result