omads/omadsextensions/adapters/contacts/src/NSmlContactsDataStore.cpp
branchRCL_3
changeset 8 ad0f53516d84
parent 0 dab8a81a92de
child 14 b922b9936679
--- a/omads/omadsextensions/adapters/contacts/src/NSmlContactsDataStore.cpp	Tue Feb 02 00:02:49 2010 +0000
+++ b/omads/omadsextensions/adapters/contacts/src/NSmlContactsDataStore.cpp	Fri Feb 19 22:40:37 2010 +0200
@@ -1910,12 +1910,61 @@
 		 {
 	 	iWriteStream.Close();
 	 	User::RequestComplete( iCallerStatus, aError );
-		 }
-		else if(iLastOperation == ENSmlRetrieveOp)
-		 {
-		 	User::RequestComplete( iCallerStatus, aError );
-		 }
-	 }
+	 	}
+	else if (iLastOperation == ENSMLUpdateExportOp)
+        {
+        iWriteStream.Close();
+        delete iMergeItem;
+        iMergeItem = NULL;
+        User::RequestComplete( iCallerStatus, aError );
+        }
+	else if (iLastOperation == ENSMLUpdateImportOp)
+        {
+        if(iBatchMode)
+            {
+            iResultArray->Append( aError ); 
+            } 
+        delete iBuf;
+        iBuf = NULL;
+        iReadStream.Close();
+        iIndex++;
+        if(iIndex == iContactsBufferItemList.Count() )
+            {
+            ResetBuffer();
+            User::RequestComplete( iCallerStatus, aError );    
+            }
+        else
+            {
+            _DBG_FILE("VPbkSingleContactOperationFailed, Continuing to complete the Batch Operation");
+            ExecuteBufferL();
+            }
+        }
+	else if(iLastOperation == ENSmlRetrieveOp)
+	    {
+        iRetrieveCount--;	        
+        if(iBatchMode)
+            {
+            iResultArray->AppendL( aError ); 
+            }        
+        iIndex++;
+        if(iIndex == iContactsBufferItemList.Count() )
+            {
+            ResetBuffer();
+            User::RequestComplete( iCallerStatus, aError );    
+            }
+        else if(!iRetrieveCount)
+            {
+            _DBG_FILE("VPbkSingleContactOperationFailed, Continuing to complete the Batch Operation");
+            ExecuteBufferL();
+            }
+	    }
+    else
+        {
+        _DBG_FILE("VPbkSingleContactOperationFailed, No Matching LastOperation Completing the Operation");
+        User::RequestComplete( iCallerStatus, aError );    
+        }	
+	_DBG_FILE("CNSmlContactsDataStore::VPbkSingleContactOperationFailed(): end");
+	}
  // ---------------------------------------------------------------------------
 //  CNSmlContactsDataStore::VPbkSingleContactOperationFailed
 // ---------------------------------------------------------------------------