Revision: 201031
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 18 Aug 2010 10:15:32 +0300
changeset 40 320ec5cd0227
parent 33 61f466445ae5
child 47 d176b53f330f
Revision: 201031 Kit: 201033
messagingfw/msgsrvnstore/server/bwins/v2_MSGSU.DEF
messagingfw/msgsrvnstore/server/eabi/v2_msgsU.def
messagingfw/msgsrvnstore/server/inc/MCLIENT.H
messagingfw/msgsrvnstore/server/inc/MSERVER.H
messagingfw/msgsrvnstore/server/inc/MSVAPI.H
messagingfw/msgsrvnstore/server/inc/MSVIPC.H
messagingfw/msgsrvnstore/server/inc/MSVLOPS.H
messagingfw/msgsrvnstore/server/inc/MSVROPS.H
messagingfw/msgsrvnstore/server/inc/MSVROPS.INL
messagingfw/msgsrvnstore/server/inc/MSVSERV.H
messagingfw/msgsrvnstore/server/inc/MTSR.H
messagingfw/msgsrvnstore/server/inc/msventryfreepool.h
messagingfw/msgsrvnstore/server/loc/msgs.loc
messagingfw/msgsrvnstore/server/src/CMsvCachedStore.cpp
messagingfw/msgsrvnstore/server/src/CMsvPlainBodyText.cpp
messagingfw/msgsrvnstore/server/src/MCLENTRY.CPP
messagingfw/msgsrvnstore/server/src/MCLIENT.CPP
messagingfw/msgsrvnstore/server/src/MSVIPC.CPP
messagingfw/msgsrvnstore/server/src/MSVLOCAL.CPP
messagingfw/msgsrvnstore/server/src/MSVOPERT.CPP
messagingfw/msgsrvnstore/server/src/MSVSESS.CPP
messagingfw/msgsrvnstore/server/src/MTCLBASE.CPP
messagingfw/msgsrvnstore/server/src/MTSR.CPP
messagingfw/msgsrvnstore/server/src/TMsvServerStoreManager.cpp
messagingfw/msgsrvnstore/server/src/cmsvconverterwaiter.cpp
messagingfw/msgsrvnstore/server/src/cmsvversion1version2converter.cpp
messagingfw/msgsrvnstore/server/src/msvcacheindextableentry.Cpp
messagingfw/msgsrvnstore/server/src/msvcachevisiblefolder.Cpp
messagingfw/msgsrvnstore/server/src/msvdbadapter.cpp
messagingfw/msgsrvnstore/server/src/msventryfreepool.cpp
messagingfw/msgsrvnstore/server/src/msvindexadapter.cpp
messagingfw/msgsrvnstore/server/src/msvpreferreddrivelist.cpp
messagingfw/msgsrvnstore/server/src/msvsearchsortcacheentry.cpp
messagingfw/msgsrvnstore/server/src/msvsearchsortcachemanager.cpp
messagingfw/msgsrvnstore/server/src/msvsearchsortdbwrapper.cpp
messagingfw/msgsrvnstore/server/src/msvsearchsortdeltacache.cpp
messagingfw/msgsrvnstore/server/src/msvsearchsortoponheaderbody.cpp
messagingfw/msgsrvnstore/server/test/Unittef/src/t_msv_cache_indextableentry_step.cpp
messagingfw/msgsrvnstore/server/test/Unittef/src/t_msv_dbadapter_step.cpp
messagingfw/msgsrvnstore/server/test/Unittef/src/t_msv_indexadapter_step.cpp
messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentdata.h
messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentfactory.cpp
messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentfactory.h
messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentmanager.cpp
messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentmanager.h
messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentrightsmanager.h
messagingfw/sendas/server/src/csendassender.cpp
messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/intentparser.h
messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/rightscriteriacount.cpp
messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/rightscriteriacount.h
messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/rightscriteriaexpiry.cpp
messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/rightscriteriaexpiry.h
messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentcontent.cpp
messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentcontent.h
messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentdata.cpp
messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentdata.h
messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentfactory.cpp
messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentfactory.h
messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentimportfile.h
messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentmanager.cpp
messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentmanager.h
messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentrightsmanager.h
messagingfw/wappushfw/tpush/RefTestAgent/inc/rightsobject.h
--- a/messagingfw/msgsrvnstore/server/bwins/v2_MSGSU.DEF	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/bwins/v2_MSGSU.DEF	Wed Aug 18 10:15:32 2010 +0300
@@ -719,4 +719,6 @@
 	?UnpackL@TMsvPackedDriveIdOperation@@QAEXAAV?$RArray@W4TDriveNumber@@@@@Z @ 718 NONAME ABSENT ; void TMsvPackedDriveIdOperation::UnpackL(class RArray<enum TDriveNumber> &)
 	?UpdateDrivePriorityL@CMsvSession@@QAEXW4TDriveNumber@@AAI@Z @ 719 NONAME ABSENT ; void CMsvSession::UpdateDrivePriorityL(enum TDriveNumber, unsigned int &)
 	?UpdateDrivePriorityL@RMsvServerSession@@QAEXW4TDriveNumber@@AAI@Z @ 720 NONAME ABSENT ; void RMsvServerSession::UpdateDrivePriorityL(enum TDriveNumber, unsigned int &)
+	?ChangeEntriesL@CBaseServerMtm@@UAEHABVCMsvEntrySelection@@HAAVTRequestStatus@@@Z @ 721 NONAME ; int CBaseServerMtm::ChangeEntriesL(class CMsvEntrySelection const &, int, class TRequestStatus &)
+	?ChangeL@CMsvEntry@@QAEPAVCMsvOperation@@ABVCMsvEntrySelection@@HAAVTRequestStatus@@@Z @ 722 NONAME ; class CMsvOperation * CMsvEntry::ChangeL(class CMsvEntrySelection const &, int, class TRequestStatus &)
 
--- a/messagingfw/msgsrvnstore/server/eabi/v2_msgsU.def	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/eabi/v2_msgsU.def	Wed Aug 18 10:15:32 2010 +0300
@@ -1022,4 +1022,8 @@
 	_ZN26TMsvPackedDriveIdOperationC2ERP6HBufC8 @ 1021 NONAME ABSENT
 	_ZNK9CMsvEntry26ChildrenOfAvailableDrivesLEv @ 1022 NONAME ABSENT
 	_ZN28CMsvSearchsortOpOnHeaderBody4NewLER11CMsvSessioni @ 1023 NONAME
+	_ZN14CBaseServerMtm14ChangeEntriesLERK18CMsvEntrySelectioniR14TRequestStatus @ 1024 NONAME
+	_ZN9CMsvEntry7ChangeLERK18CMsvEntrySelectioniR14TRequestStatus @ 1025 NONAME
+	_ZTI31CMsvLocalChangeEntriesOperation @ 1026 NONAME
+	_ZTV31CMsvLocalChangeEntriesOperation @ 1027 NONAME
 
--- a/messagingfw/msgsrvnstore/server/inc/MCLIENT.H	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/inc/MCLIENT.H	Wed Aug 18 10:15:32 2010 +0300
@@ -99,6 +99,8 @@
 	// Asynchronous messages
 	IMPORT_C void CreateEntryL(const TMsvEntry& aEntry, TMsvOp aOperationId, TSecureId aOwnerId, TRequestStatus& aRequestStatus);
 	IMPORT_C void ChangeEntryL(const TMsvEntry& aEntry, TMsvOp aOperationId, TSecureId aOwnerId, TRequestStatus& aRequestStatus);
+	void ChangeEntriesL(const CMsvEntrySelection& aSelection,TBool aMark, TMsvOp aOperationId, TSecureId aOwnerId, TRequestStatus& aRequestStatus);
+	
 	IMPORT_C void DeleteEntriesL(const CMsvEntrySelection& aSelection, TMsvOp aOperationId, TRequestStatus& aRequestStatus);
 	IMPORT_C void MoveEntriesL(const CMsvEntrySelection& aSelection, TMsvId aTarget, TMsvOp aOperationId, TRequestStatus& aRequestStatus);
 	IMPORT_C void CopyEntriesL(const CMsvEntrySelection& aSelection, TMsvId aTarget, TMsvOp aOperationId, TRequestStatus& aRequestStatus);
@@ -217,7 +219,6 @@
 	void SendCommandDataL(TMsvOp aOperationId, const CMsvEntrySelection& aSelection, TInt aCommand, const TDesC8& aParameter);
 	void TestSlotAvailableL();
 	void PackOperationDataL(const CMsvEntrySelection& aSelection, TInt aParameter1, TInt aParameter2);
-	void DoGetEntryL(TMsvId aId, TMsvId& aService, TMsvEntry& aEntry);
 
 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
 	void DoGetChildrenAllL(TMsvId aId, CArrayPtrFlat<CMsvClientEntry>& aEntries, const TMsvSelectionOrdering& aOrdering);
--- a/messagingfw/msgsrvnstore/server/inc/MSERVER.H	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/inc/MSERVER.H	Wed Aug 18 10:15:32 2010 +0300
@@ -148,7 +148,7 @@
 	EMsvIdWithSortFiled=89,
 	EMsvGetSearchSortProgress=90,
 	EMsvCancelSearchSortOp=91,
-	EMsvUpdateAndSort=92
+	EMsvUpdateAndSort=92,
 	// Code added for PREQ 557.
 	// Macros for preferred drive list APIs.
 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
@@ -162,7 +162,7 @@
     EMsvGetChildIdsALL=101
 #if (defined SYMBIAN_MESSAGESTORE_UNIT_TESTCODE)
 	,EMsvResetRepository=102,
-	EMsvPrintCache=103
+	EMsvPrintCache=103,
 #endif
 #endif		// #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
 
@@ -180,8 +180,9 @@
 	EMsvConvertMessageStore=113,
 	EMsvCancelConversionRequest=114,
 	EMsvGetConvertibleDriveList=115,
-	EMsvGetConversionStatus=116
+	EMsvGetConversionStatus=116,
 #endif
+	EMsvChangeEntries = 117
 	};
 
 
--- a/messagingfw/msgsrvnstore/server/inc/MSVAPI.H	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/inc/MSVAPI.H	Wed Aug 18 10:15:32 2010 +0300
@@ -928,6 +928,7 @@
 	// --- Asynchronous Current Entry functions ---
 	IMPORT_C CMsvOperation* ChangeL(const TMsvEntry& aEntry, TRequestStatus& aStatus);
 	IMPORT_C CMsvOperation* ChangeL(const TMsvEntry& aEntry, TSecureId aOwnerId, TRequestStatus& aStatus);
+	IMPORT_C CMsvOperation* ChangeL(const CMsvEntrySelection& aSelection, TBool aMark,TRequestStatus& aStatus);
 	//
 	// --- Asynchronous Child Entry functions ---
 	IMPORT_C CMsvOperation* CreateL(const TMsvEntry& aEntry, TRequestStatus& aStatus);
--- a/messagingfw/msgsrvnstore/server/inc/MSVIPC.H	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/inc/MSVIPC.H	Wed Aug 18 10:15:32 2010 +0300
@@ -93,6 +93,8 @@
 	IMPORT_C TMsvPackedEntry(HBufC8*& aBuffer);
 	IMPORT_C TInt PackEntry(const TMsvEntry& aEntry);
 	IMPORT_C void UnpackEntry(TMsvEntry& aEntry);
+    TInt PackEntryAndService(const TMsvEntry& aEntry, const TMsvId& aServiceId);
+    void UnpackEntryAndService(TMsvEntry& aEntry, TMsvId& aServiceId);
 private:
 	HBufC8*& iBuffer;
 	};
--- a/messagingfw/msgsrvnstore/server/inc/MSVLOPS.H	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/inc/MSVLOPS.H	Wed Aug 18 10:15:32 2010 +0300
@@ -197,7 +197,43 @@
 	TMsvId iId;
 	TMsvId iParent;
 	};
+///
+//**********************************
+// CMsvLocalChangeOperation
+//**********************************
+//
+// Operation used to control server side local change od selection of ids.
+//
 
+class CMsvLocalChangeEntriesOperation : public CMsvLocalOperation
+/**
+@internalComponent
+@released
+*/
+    {
+public:
+    CMsvLocalChangeEntriesOperation(const RMessage2& aMessage, TMsvOp aId, CMsvEntrySelection* aSelection, CMsvServer& aMsvServer, TInt aMark);
+    ~CMsvLocalChangeEntriesOperation();
+    //
+    void StartL(TSecureId aOwnerId, TBool aForcedUpdate);
+    //
+private:
+    void DoCancel();
+    void RunL();
+    void Completed();
+    //
+private:
+    CMsvEntrySelection* iSelection;
+    CMsvEntrySelection* iWorkSelection1;
+    CMsvEntrySelection* iWorkSelection2;
+    CMsvDelete* iDelete;
+    TMsvId iId;
+    TMsvId iParent;
+    TInt iMark;
+    };
+
+
+///
 //**********************************
 // CMsvLocalCreateOperation
 //**********************************
--- a/messagingfw/msgsrvnstore/server/inc/MSVROPS.H	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/inc/MSVROPS.H	Wed Aug 18 10:15:32 2010 +0300
@@ -49,7 +49,8 @@
 						EMtmOpDeleteAll,
 						EMtmOpCreate,
 						EMtmOpChange,
-						EMtmOpCommand};
+						EMtmOpCommand,
+						EMtmOpChangeEntries};
 public:
 	static CMsvMtmOperation* NewL(const RMessage2& aMessage, TMsvOp aId, TUid aMtmUid, TMsvId aServiceId, TInt aSessionId, MMsvOperationObserver& aOpObserver);
 	~CMsvMtmOperation();
@@ -70,6 +71,7 @@
 	inline void DeleteAll(CMsvEntrySelection* aSelection);
 	inline void CreateL(const TMsvEntry& aNewEntry);
 	inline void ChangeL(const TMsvEntry& aNewEntry);
+	inline void ChangeEntriesL(CMsvEntrySelection* aSelection, TInt aMark);
 	inline void StartCommand(CMsvEntrySelection* aSelection, TInt aCommand, HBufC8* aParameter);
 #if (defined SYMBIAN_USER_PROMPT_SERVICE)	
  	inline void SetThreadId(TThreadId aThreadId);
--- a/messagingfw/msgsrvnstore/server/inc/MSVROPS.INL	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/inc/MSVROPS.INL	Wed Aug 18 10:15:32 2010 +0300
@@ -60,6 +60,11 @@
 	StoreParametersL(EMtmOpChange, aNewEntry);
 	}
 
+inline void CMsvMtmOperation::ChangeEntriesL(CMsvEntrySelection* aSelection, TInt aMark)
+    {
+    StoreParameters(EMtmOpChangeEntries, aSelection ,aMark, NULL);
+    }
+
 inline void CMsvMtmOperation::StartCommand(CMsvEntrySelection* aSelection, TInt aCommand, HBufC8* aParameter)
 	{
 	StoreParameters(EMtmOpCommand ,aSelection ,aCommand, aParameter);
--- a/messagingfw/msgsrvnstore/server/inc/MSVSERV.H	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/inc/MSVSERV.H	Wed Aug 18 10:15:32 2010 +0300
@@ -108,7 +108,8 @@
 	EMsvProgressBufferExceeds256=12,
 	EMsvNoEntriesInMoveSelection=13,
 	EMsvNoEntriesInCopySelection=14,
-	EMsvNoEntriesInChangeAttributesSelection=15
+	EMsvNoEntriesInChangeAttributesSelection=15,
+	EMsvNoEntriesInChangeSelection=16
 	};
 
 const TInt KMsvMessageDriveStreamVersionNumber = 3;
@@ -558,8 +559,11 @@
 	void OperationMtmL(const RMessage2 &aMessage);
 	//
 	void ChangeEntryL(const RMessage2 &aMessage);
+	void ChangeEntriesL(const RMessage2 &aMessage);
 	void DoChangeLocalEntryL(const TMsvEntry& aEntry, TMsvOp aOpId, const RMessage2 &aMessage, TSecureId aOwnerId);
 	void DoChangeRemoteEntryL(const TMsvEntry& aEntry, TMsvOp aOpId, const RMessage2 &aMessage);
+	void DoChangeLocalEntriesL(CMsvEntrySelection*& aSelection, TMsvOp aOpId, const RMessage2 &aMessage, TSecureId aOwnerId, TInt aMark);
+	void DoChangeRemoteEntriesL(CMsvEntrySelection*& aSelection, TMsvOp aOpId, const RMessage2 &aMessage,TInt aMark);
 	//
 	void CreateEntryL(const RMessage2 &aMessage);
 	void DoCreateLocalEntryL(const TMsvEntry& aEntry, TMsvOp aOpId, const RMessage2 &aMessage, TSecureId aOwnerId);
@@ -585,7 +589,7 @@
 	void CopyCommandDataL(const RMessage2 &aMessage);
 	HBufC8* RecoverOperationData(TMsvOp aOpId);
 	//
-	void PackEntryAndWriteBufferL(const RMessage2 &aMessage, TInt aParam, const TMsvEntry& aEntry);
+	void PackEntryAndWriteBufferL(const RMessage2 &aMessage, TInt aParam, const TMsvEntry& aEntry, const TMsvId& aServiceId);
 	//
 	void WriteBufferL(const RMessage2 &aMessage, TInt aParam);
 	void WriteL(const RMessage2 &aMessage, TInt aParam, const TDesC8& aDes);
--- a/messagingfw/msgsrvnstore/server/inc/MTSR.H	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/inc/MTSR.H	Wed Aug 18 10:15:32 2010 +0300
@@ -383,7 +383,8 @@
 #endif
 
 	TInt GetNonOperationMtmData(TNonOperationMtmDataType& aMtmDataType, TPtrC8& aResultBuffer);
-
+	
+	IMPORT_C virtual TInt ChangeEntriesL( const CMsvEntrySelection& aSelection,TInt aMark, TRequestStatus& aStatus );
 protected:
 	IMPORT_C CBaseServerMtm(CRegisteredMtmDll& aRegisteredMtmDll, CMsvServerEntry* aServerEntry);
 	/** Handles the completion of any asynchronous requests that it makes. It is called 
--- a/messagingfw/msgsrvnstore/server/inc/msventryfreepool.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/inc/msventryfreepool.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -53,7 +53,7 @@
 public:
 	static CMsvEntryFreePool* Instance();	
 	CMsvCacheEntry* EntryL();
-	void ReleaseEntry(CMsvCacheEntry* aMsvCacheEntry, TBool aBypassTransaction = EFalse);
+	void ReleaseEntryL(CMsvCacheEntry* aMsvCacheEntry, TBool aBypassTransaction = EFalse);
 	void ReleaseEntrySet(RPointerArray<CMsvCacheEntry>& aMsvCacheEntryArray);
 	void DoReleaseEntrySetL(RPointerArray<CMsvCacheEntry>& aMsvCacheEntryArray);
 	void SetEssentialParam(TDblQue<CMsvCacheVisibleFolder>* aEntryCache, CMsvIndexAdapter* aAdapterObj);
--- a/messagingfw/msgsrvnstore/server/loc/msgs.loc	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/loc/msgs.loc	Wed Aug 18 10:15:32 2010 +0300
@@ -2,9 +2,9 @@
 * Copyright (c) 2000 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Symbian Foundation License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
-* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
--- a/messagingfw/msgsrvnstore/server/src/CMsvCachedStore.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/CMsvCachedStore.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -620,16 +620,13 @@
 	RFileWriteStream out(tempStoreFile);
 	out.PushL();
 	WriteToFileStreamL(out);
-	CleanupStack::PopAndDestroy(&out); // close RFileWriteStream out
-	iStoreManager.ReplaceFileStoreL(iEntryId);
 
-	// Need the size
-	RFile storeFile;
-	User::LeaveIfError(iStoreManager.OpenFileStoreForRead(iEntryId, storeFile));
-	CleanupClosePushL(storeFile);
-	User::LeaveIfError(storeFile.Size(iSize));
-	CleanupStack::PopAndDestroy(&storeFile);
+	//get the size of the stream, in previous call the Stream is already commited to the file, the next step simply replace the file with this temp new file so size should be the same
+	//the SizeL in this case will not involve any file i/o calls.
+	iSize=out.Sink()->SizeL();
 	
+    CleanupStack::PopAndDestroy(&out); // close RFileWriteStream out
+    iStoreManager.ReplaceFileStoreL(iEntryId);
 
 	}
 
--- a/messagingfw/msgsrvnstore/server/src/CMsvPlainBodyText.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/CMsvPlainBodyText.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -608,7 +608,7 @@
 			}
 
 		// Push start position of current chunk in to the stack.
-		iStartPosOfEachChunkInFile.Append(iStartPosOfNextChunk);
+		iStartPosOfEachChunkInFile.AppendL(iStartPosOfNextChunk);
 		iStartPosOfNextChunk += numOfBytesInCurrentChunk;
 		iReadChunkLength = numOfBytesInCurrentChunk;
 		}
@@ -919,7 +919,7 @@
 				else
 					{
 					// Push Start position of current chunk in to the stack.
-					iStartPosOfEachChunkInFile.Append(iStartPosOfNextChunk);
+					iStartPosOfEachChunkInFile.AppendL(iStartPosOfNextChunk);
 					iStartPosOfNextChunk += numOfBytesInCurrentChunk;
 					}
 				iReadChunkLength = numOfBytesInCurrentChunk;
--- a/messagingfw/msgsrvnstore/server/src/MCLENTRY.CPP	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/MCLENTRY.CPP	Wed Aug 18 10:15:32 2010 +0300
@@ -920,6 +920,68 @@
 	iEntryPtr = &iEntries->At(0)->Entry();
 	}
 
+/** 
+Update a selection of children to read or Unread asynchronously of the context. 
+The returned CMsvOperation object .
+
+@param	aSelection 
+The selectio of entry values for the context
+
+@param	aMark 
+True : Update selection to UnRead .
+False: Update selection to Read . 
+
+@param aStatus The request status to be completed when the operation has finished .
+
+@leave KErrAccessDenied The entry is locked by another client 
+
+@return
+An operation object controlling the change command
+*/
+EXPORT_C CMsvOperation* CMsvEntry::ChangeL(const CMsvEntrySelection& aSelection,TBool aMark, TRequestStatus& aStatus)
+     {
+#ifndef _NO_SESSION_LOGGING_
+    Log(_L("Asynchronous ChangeL with selection of %d entries"), aSelection.Count()); 
+#endif
+
+    __ASSERT_DEBUG(aSelection.Count(), PanicServer(EMsvEmptySelection));
+
+#if defined(_DEBUG)    
+     
+      TInt aCount = aSelection.Count();
+      while (aCount--)
+          {
+          TMsvEntry aEntry;
+          TMsvId aService;
+          if (iMsvSession.Session().GetEntry(aSelection.At(aCount), aService, aEntry)==KErrNone)
+              {
+              __ASSERT_DEBUG(iState==EValid || iState==EInvalidDeletedContext, PanicServer(EMsvEntryAlreadyChangingContext));
+              __ASSERT_DEBUG(MsvUtils::ValidEntry(aEntry), PanicServer(EMsvChangingToInvalidEntry));
+             
+              // can only change the current context
+              if (!MsvUtils::ValidEntry(aEntry))
+                  User::Leave(KErrArgument);
+              }
+           }
+#endif
+      // cannot change standard folders
+      if (iEntryPtr->StandardFolder())
+          User::Leave(KErrAccessDenied);
+  
+      //// create the operation
+      CMsvEntryOperation* operation = CMsvEntryOperation::NewL(iMsvSession, aStatus);
+      CleanupStack::PushL(operation);
+      User::LeaveIfError(iMsvSession.Session().OperationMtmL(aSelection.At(0), operation->iMtm, operation->iService)); 
+   
+      // start the change operation
+	  iMsvSession.Session().ChangeEntriesL(aSelection, aMark, operation->Id(), RProcess().SecureId(), operation->iStatus);
+     
+      operation->Start();
+      iState = EInvalidChangingContext;
+      CleanupStack::Pop(1); // operation 
+      return operation; 
+      }
+
 
 EXPORT_C CMsvOperation* CMsvEntry::DeleteL(TMsvId aId, TRequestStatus& aStatus)
 //
--- a/messagingfw/msgsrvnstore/server/src/MCLIENT.CPP	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/MCLIENT.CPP	Wed Aug 18 10:15:32 2010 +0300
@@ -457,6 +457,25 @@
 	User::LeaveIfError(SendReceive(EMsvChangeEntry, TIpcArgs(aOperationId, aOwnerId)));
 	}
 
+/**
+Update the specified Changes to selection of TMsvId (asynchronously).
+
+@param aSelection The IDs of the entry to Change. 
+@param aMark The read/Unread value.  
+@param aOperationId Operation identifier
+@param aOwnerId The ID of the owning process
+@param aRequestStatus Asynchronous request status
+
+*/
+
+void RMsvServerSession::ChangeEntriesL(const CMsvEntrySelection& aSelection, TBool aMark ,TMsvOp aOperationId, TSecureId aOwnerId, TRequestStatus& aRequestStatus)
+    {
+     TestSlotAvailableL();
+     TInt markvalue = (TInt)aMark;
+     SendOperationDataL(aOperationId, aSelection, markvalue);
+     aRequestStatus=KRequestPending;
+     SendReceive(EMsvChangeEntries, TIpcArgs(aOperationId, aOwnerId), aRequestStatus);
+    }
 
 /**
 Gets the index entry with the specified unique id.
@@ -472,30 +491,36 @@
 */
 EXPORT_C TInt RMsvServerSession::GetEntry(TMsvId aId, TMsvId& aService, TMsvEntry& aEntry)
 	{
-	TRAPD(error, DoGetEntryL(aId, aService, aEntry));
-	return error;
-	}
-
-void RMsvServerSession::DoGetEntryL(TMsvId aId, TMsvId& aService, TMsvEntry& aEntry)
-	{
-	// pass the buffer to receive the data through
-	TPtr8 ptr=iBuffer->Des();
-	// get the service the entry i sunder
-	TPckg<TMsvId> service(aService);
+    // pass the buffer and its max length to receive the data through
+    TPtr8 ptr=iBuffer->Des();
+    TInt maxLength = iBuffer->Des().MaxLength();
+    
 	// signal the server
-	TInt error = SendReceive(EMsvGetEntry,TIpcArgs(aId,&ptr,&service));
-	while(error == KErrOverflow)
-		{
-		// increase the size of the buffer and try again
-		iBuffer->Des().SetLength(0);
-		iBuffer = iBuffer->ReAllocL(iBuffer->Des().MaxSize() + KMsvSessionBufferLength);
-		// pass the buffer to receive the data through
-		TPtr8 ptr=iBuffer->Des();
-		error = SendReceive(EMsvGetEntry,TIpcArgs(aId,&ptr,&service));
-		}
-	User::LeaveIfError(error);
-	TMsvPackedEntry packedEntry(iBuffer);
-	packedEntry.UnpackEntry(aEntry);
+    TInt error = SendReceive(EMsvGetEntry,TIpcArgs(aId, &ptr, maxLength));
+    while(error == KErrOverflow)
+        {
+        // increase the size of the buffer and try again
+        iBuffer->Des().SetLength(0);
+        // TRAP here and return if leaving with error
+        TRAP(error, iBuffer = iBuffer->ReAllocL(iBuffer->Des().MaxSize() + KMsvSessionBufferLength));
+        if( error != KErrNone)
+			{
+            break;
+			}
+        // pass the buffer to receive the data through
+        TPtr8 ptr=iBuffer->Des();
+        maxLength = iBuffer->Des().MaxLength();
+        error = SendReceive(EMsvGetEntry,TIpcArgs(aId,&ptr,maxLength));
+        }
+
+    if( error == KErrNone)
+        {
+        TMsvPackedEntry packedEntry(iBuffer);
+        // Unpack the entry and servie id from same buffer
+        packedEntry.UnpackEntryAndService(aEntry, aService);
+        }
+
+    return error;
 	}
 
 /**
--- a/messagingfw/msgsrvnstore/server/src/MSVIPC.CPP	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/MSVIPC.CPP	Wed Aug 18 10:15:32 2010 +0300
@@ -155,6 +155,49 @@
 	DoUnpackEntry(pS, aEntry);
 	}
 
+TInt TMsvPackedEntry::PackEntryAndService(const TMsvEntry& aEntry, const TMsvId& aServiceId)
+    {
+    // find the start and end of the buffer
+    const TUint8* pS = iBuffer->Ptr();
+    const TUint8* pE = PtrAdd(pS, iBuffer->Des().MaxSize());
+
+    TInt error = DoPackEntry(pS, pE, aEntry);
+    if (error==KErrNone)
+        {
+        TInt sizeDes = Align4(sizeof(TMsvId));
+        if ((pS + sizeDes)>pE)
+            {
+            return KErrOverflow;
+            }            
+        // copy the entry and descriptors into the memory area
+        Mem::Copy((void*)pS, &aServiceId, sizeof(TMsvId));
+        pS += sizeDes;
+
+        // update the length of the buffer
+        iBuffer->Des().SetLength(pS-iBuffer->Ptr());
+        }
+
+    return error;    
+    }
+
+void TMsvPackedEntry::UnpackEntryAndService(TMsvEntry& aEntry, TMsvId& aServiceId)
+    {
+#if defined(_DEBUG)
+    // check that the buffer contain a valid package
+    const TMsvEntry* dEntry = (TMsvEntry*) iBuffer->Ptr();
+    const TUint8* dPos = PtrAdd(iBuffer->Ptr(), Align4(sizeof(TMsvEntry)) + Align4(dEntry->iDescription.Size()) + Align4(dEntry->iDetails.Size()) + Align4(sizeof(TMsvId)) );
+    __ASSERT_DEBUG(dPos <= PtrAdd(iBuffer->Ptr(), iBuffer->Des().MaxLength()), PanicServer(EMsvEntryOverrunBuffer));
+#endif
+    
+    TUint8* pS = CONST_CAST(TUint8*, iBuffer->Ptr());
+    DoUnpackEntry(pS, aEntry);
+
+    // get the service id from the current position in the buffer
+    const TMsvId* pServiceId = (TMsvId*)pS;
+    aServiceId = *pServiceId;
+    pS = Align4(pS + sizeof(TMsvId));
+    }
+
 //**********************************
 // TMsvPackedEntryArray
 //**********************************
--- a/messagingfw/msgsrvnstore/server/src/MSVLOCAL.CPP	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/MSVLOCAL.CPP	Wed Aug 18 10:15:32 2010 +0300
@@ -686,6 +686,125 @@
 	SetState(EMsvOperationCompleted);
 	iMessage.Complete(KErrNone);
 	}
+//**********************************
+// CMsvLocalChangeEntriesOperation
+//**********************************
+
+
+CMsvLocalChangeEntriesOperation::CMsvLocalChangeEntriesOperation(const RMessage2& aMessage, TMsvOp aId, CMsvEntrySelection* aSelection, CMsvServer& aMsvServer, TInt aMark)
+: CMsvLocalOperation(aMessage, aId, aMsvServer), iSelection(aSelection), iMark(aMark)
+    {
+    __DECLARE_NAME(_S("CMsvLocalChangeEntriesOperation"));
+    // set up the progress
+    iProgress().iType = TMsvLocalOperationProgress::ELocalChanged;
+    iProgress().iTotalNumberOfEntries = iSelection->Count();;
+    iProgress().iNumberRemaining = iProgress().iTotalNumberOfEntries;
+    CActiveScheduler::Add(this);
+    }
+
+CMsvLocalChangeEntriesOperation::~CMsvLocalChangeEntriesOperation()
+//
+//
+//
+    {
+    Cancel();
+    delete iSelection;
+    delete iDelete;
+    delete iWorkSelection1;
+    delete iWorkSelection2;
+    }
+
+void CMsvLocalChangeEntriesOperation::DoCancel()
+//
+//
+//
+    {
+    __ASSERT_DEBUG(iDelete!=NULL, PanicServer(EMsvChangeEntryBadState));
+    iDelete->Cancel(); 
+    iProgress().iError = KErrCancel;
+    Completed();
+    }
+
+void CMsvLocalChangeEntriesOperation::RunL()
+//
+//
+//
+    {
+    if (iStatus.Int()==KErrNone)
+        {
+        iProgress().iNumberCompleted++;
+        }
+    else
+        {
+        iProgress().iNumberFailed++;
+        iProgress().iError = iStatus.Int();
+        }
+    
+    Completed();
+    }
+
+
+void CMsvLocalChangeEntriesOperation::StartL(TSecureId aOwnerId, TBool aForcedUpdate)
+//
+//
+//
+    {
+    TMsvEntry* entry1;
+ 
+    TInt count = iSelection->Count();
+    while (count--)
+        {
+        iMsvServer.IndexAdapter().GetEntry(iSelection->At(count),entry1);
+        iId = entry1->Id();
+        iParent = entry1->Parent();
+        // check if this is actually a deletion
+        if (entry1->Deleted() && entry1->PcSyncCount()==0)
+            {
+             iDelete = CMsvDelete::NewL(iMsvServer);
+             iWorkSelection1 = new(ELeave)CMsvEntrySelection;
+             iWorkSelection2 = new(ELeave)CMsvEntrySelection;
+
+            iDelete->StartL(entry1->Id(), *iWorkSelection1, *iWorkSelection2, iStatus, ETrue);
+            SetActive();
+            return;
+            }
+        }
+  
+    TInt error  = KErrNone;
+    TMsvEntry* entry;
+    count = iSelection->Count();
+    while (count--)
+        {
+        error = iMsvServer.IndexAdapter().GetEntry(iSelection->At(count),entry);
+        if (error==KErrNone)
+            {
+            error = iMsvServer.IndexAdapter().LockEntry(iSelection->At(count));
+            error = iMsvServer.ChangeEntry(*entry, aOwnerId, aForcedUpdate);
+            error = iMsvServer.IndexAdapter().ReleaseEntry(iSelection->At(count)); // error ignored
+            }
+         }
+
+    if (error==KErrNone)
+        iProgress().iNumberCompleted++;
+    else
+        {
+        iProgress().iNumberFailed++;
+        iProgress().iError = error;
+        }
+    Completed();
+    }
+
+void CMsvLocalChangeEntriesOperation::Completed()
+//
+//
+//
+    {
+    
+    if (iProgress().iError==KErrNone)
+        iMsvServer.NotifyChanged(iDelete==NULL ? EMsvEntriesChanged : EMsvEntriesDeleted, iId, iParent);
+    SetState(EMsvOperationCompleted);
+    iMessage.Complete(KErrNone);
+     }
 
 
 //**********************************
--- a/messagingfw/msgsrvnstore/server/src/MSVOPERT.CPP	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/MSVOPERT.CPP	Wed Aug 18 10:15:32 2010 +0300
@@ -164,6 +164,9 @@
 		case EMtmOpCommand:
 			iServerMtm->StartCommandL(*iSelection, iIntParam, *iDesParam, iStatus);
 			break;
+        case EMtmOpChangeEntries:
+            iServerMtm->ChangeEntriesL(*iSelection,iIntParam,iStatus);
+            break;
 		default:
 			PanicServer(EMsvUnknownMtmOpType);
 			break;
--- a/messagingfw/msgsrvnstore/server/src/MSVSESS.CPP	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/MSVSESS.CPP	Wed Aug 18 10:15:32 2010 +0300
@@ -578,6 +578,9 @@
 			CancelConversionRequestL(aMessage);
 			break;
 #endif	  // #if (defined SYMBIAN_MESSAGESTORE_HEADER_BODY_USING_SQLDB)
+		case EMsvChangeEntries:
+		     ChangeEntriesL(aMessage);
+		     break;
 		default:
 			PanicClient(aMessage, EMsvBadRequest);
 			break;
@@ -696,7 +699,6 @@
 		}
 	}
 
-
 void CMsvServerSession::WriteBufferL(const RMessage2& aMessage, TInt aParam)
 //
 // Copies the packed entry buffer from the client
@@ -945,6 +947,113 @@
 	CleanupStack::PopAndDestroy(); // opData
 	}
 
+//
+// Changes the selection of id.
+//
+
+void CMsvServerSession::ChangeEntriesL(const RMessage2 &aMessage)
+    {
+     // Recover the operation data
+     TMsvOp operationId = aMessage.Int0();
+     HBufC8* opData = RecoverOperationData(operationId);
+     // Check for NULL data entry to be changed, must have been given incorrect id for argument.
+     if(opData == NULL)
+         {
+         aMessage.Complete(KErrArgument);
+         return;
+         }
+     CleanupStack::PushL(opData);
+
+     // unpack the data
+     TMsvPackedOperation packedOperation(opData);
+     
+     CMsvEntrySelection* selection = new (ELeave) CMsvEntrySelection;
+     CleanupStack::PushL(selection);
+     TInt target,temp;
+     packedOperation.UnpackL(*selection, target, temp);
+
+     if (selection->Count() == 0)
+         {
+         PanicClient(aMessage, EMsvNoEntriesInChangeSelection);
+         aMessage.Complete(KErrNotFound);
+         return;
+         }
+     // Find the first entry in the selection which exists
+     TInt count=selection->Count();
+     while (count--)
+         {
+         TBool entryExsists = EFalse;
+         entryExsists = iMsvServer.IndexAdapter().EntryExists(selection->At(count));
+         if (entryExsists)
+             break;
+         }
+ 
+       // Check if the entry is local or the entry is a service
+      TBool local=ETrue;
+      TMsvEntry* entry=NULL;
+      User::LeaveIfError(iMsvServer.IndexAdapter().GetEntry(selection->At(0), entry));
+     
+      // Police request - client must be able to modify the entry.
+      iMsvServer.PoliceModifyEntryL(aMessage, *entry, local, __PLATSEC_DIAGNOSTIC_STRING("Checked by CMsvServerSession::ChangeEntryL"));
+             
+      // For purpose of changing a service entry, it is considered local as an MTM
+      // is not required to do the work.
+      if( entry->iType == KUidMsvServiceEntry )
+          local = ETrue;
+
+      // start the change for local or remote entries
+      if (local)
+          {
+          // Extract the owner ID from the message.
+          TSecureId ownerId = aMessage.Int1();
+
+          DoChangeLocalEntriesL(selection, operationId, aMessage, ownerId, target);
+          }
+      else
+          DoChangeRemoteEntriesL(selection, operationId, aMessage,target);
+
+      CleanupStack::PopAndDestroy(); // opData
+   }
+
+void CMsvServerSession::DoChangeLocalEntriesL(CMsvEntrySelection*& aSelection, TMsvOp aOpId, const RMessage2 &aMessage, TSecureId aOwnerId, TInt mark)
+    {
+    CMsvLocalChangeEntriesOperation* operation = new(ELeave) CMsvLocalChangeEntriesOperation(aMessage, aOpId, aSelection, iMsvServer,mark);
+    CleanupStack::Pop(); // selection
+    CleanupStack::PushL(operation);
+   
+    TBool forcedUpdate = (aOwnerId != aMessage.SecureId());
+    operation->StartL(aOwnerId, forcedUpdate);
+
+    iOperations.AppendL(operation);
+    CleanupStack::Pop(); // operation
+
+    
+    }
+
+void CMsvServerSession::DoChangeRemoteEntriesL(CMsvEntrySelection*& aSelection, TMsvOp aOpId, const RMessage2 &aMessage,TInt mark)
+//
+// Change a selection of entry under a remote service
+//
+    {
+    // make sure that the operation can be added to the list
+     iOperations.SetReserveL(iOperations.Count()+1);
+
+     TMsvEntry* entry=NULL;
+     User::LeaveIfError(iMsvServer.IndexAdapter().GetEntry(aSelection->At(0), entry));
+ 
+     // create the operation
+     CMsvMtmOperation* operation = CMsvMtmOperation::NewL(aMessage, aOpId, entry->iMtm, entry->iServiceId, iSessionId, iMsvServer);
+     CleanupStack::Pop(); // aSelection
+     CleanupStack::PushL(operation);
+     operation->ChangeEntriesL(aSelection,mark);
+     
+     iMsvServer.StartOperationL(*operation, iSessionId, aMessage, ETrue);
+     iOperations.AppendL(operation); // will not fail - see start of function
+     CleanupStack::Pop(); // operation
+   
+    }
+
+
 void CMsvServerSession::DoChangeLocalEntryL(const TMsvEntry& aEntry, TMsvOp aOpId, const RMessage2 &aMessage, TSecureId aOwnerId)
 //
 // Create a local entry in the index
@@ -980,22 +1089,28 @@
 	}
 
 
-void CMsvServerSession::PackEntryAndWriteBufferL(const RMessage2 &aMessage, const TInt aParam, const TMsvEntry& aEntry)
-//
+void CMsvServerSession::PackEntryAndWriteBufferL(const RMessage2 &aMessage, const TInt aParam, const TMsvEntry& aEntry, const TMsvId& aServiceId)
 //
 //
 	{
-	// package the entry
+	// package the entry and service id in same buffer
 	TMsvPackedEntry packedEntry(iBuffer);
-	TInt error = packedEntry.PackEntry(aEntry);
+	TInt error = packedEntry.PackEntryAndService(aEntry, aServiceId);
 	while(error!=KErrNone)
 		{
 		// increase the size of the buffer and try again
 		iBuffer->Des().SetLength(0); // to avoid copying contents
 		iBuffer = iBuffer->ReAllocL(iBuffer->Des().MaxSize() + KMsvSessionBufferLength);
-		error = packedEntry.PackEntry(aEntry);
+		error = packedEntry.PackEntryAndService(aEntry, aServiceId);
 		}
-	WriteBufferL(aMessage, aParam);
+	// max destination length is passed from client
+	TInt maxDesLen = aMessage.Int2();
+    if (maxDesLen < iBuffer->Des().Length())
+		{
+        User::Leave(KErrOverflow);
+		}
+
+    aMessage.WriteL(aParam, iBuffer->Des());
 	}
 
 void CMsvServerSession::GetEntryL(const RMessage2 &aMessage)
@@ -1015,18 +1130,17 @@
 		iMsvServer.PoliceReadEntryL(aMessage, ownerId, __PLATSEC_DIAGNOSTIC_STRING("Checked by CMsvServerSession::GetEntryL"));
 
 		// get the owning service and write that back
-		TPckgBuf<TMsvId> service;
-		if (id==KMsvRootIndexEntryId)
-			service()=KMsvRootIndexEntryId;
+		TMsvId service;
+		if (id == KMsvRootIndexEntryId)
+			service = KMsvRootIndexEntryId;
 		else
 			{
-			iMsvServer.IndexAdapter().OwningService(id, service()); // error ignore as the entry exists
+			iMsvServer.IndexAdapter().OwningService(id, service); // error ignore as the entry exists
 			}
-
-		WriteL(aMessage, 2, service);
 		// write the entry back
-		PackEntryAndWriteBufferL(aMessage, 1, *entryPtr);
+		PackEntryAndWriteBufferL(aMessage, 1, *entryPtr, service);
 		}
+
 	aMessage.Complete(error);
 	}
 
--- a/messagingfw/msgsrvnstore/server/src/MTCLBASE.CPP	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/MTCLBASE.CPP	Wed Aug 18 10:15:32 2010 +0300
@@ -687,10 +687,12 @@
 */	
 EXPORT_C void CBaseMtm::CancelAttachmentOperation()
 	{
-	__ASSERT_ALWAYS(iAttachmentWaiter != NULL, PanicServer(EMsvOperationNotFound));
-	iAttachmentWaiter->Cancel();
-	delete iAttachmentWaiter;
-	iAttachmentWaiter = NULL;
+	if(iAttachmentWaiter)
+		{
+		iAttachmentWaiter->Cancel();
+		delete iAttachmentWaiter;
+		iAttachmentWaiter = NULL;
+		}
 	}
 
 
--- a/messagingfw/msgsrvnstore/server/src/MTSR.CPP	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/MTSR.CPP	Wed Aug 18 10:15:32 2010 +0300
@@ -175,6 +175,15 @@
 		}
 	return ret;
 	}
+// Empty declaration
+EXPORT_C TInt CBaseServerMtm::ChangeEntriesL( const CMsvEntrySelection& /*aSelection*/,TInt /*aMark*/, TRequestStatus& aStatus )
+    {
+    //Empty declaration. Respective MTM implementation should be call .
+    TRequestStatus aEmptyStatus;
+    aEmptyStatus = aStatus ;
+    
+    return KErrNotSupported; // Specific to MTM. Base return Not supported.  
+    }
 
 EXPORT_C CServerMtmDllRegistry* CServerMtmDllRegistry::NewL(RFs& aFs,TTimeIntervalMicroSeconds32 aTimeoutMicroSeconds32)
 	{
--- a/messagingfw/msgsrvnstore/server/src/TMsvServerStoreManager.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/TMsvServerStoreManager.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -381,11 +381,17 @@
 	GetStoreFileName(aEntryId,tempFilePathAndName);
 
 	tempFilePathAndName.Append(KMsvUtilsNewExtension);
-	TInt error = iFs->MkDirAll(tempFilePathAndName);
-	if(error == KErrNone || error == KErrAlreadyExists)
-		error = aFile.Replace(*iFs,tempFilePathAndName,EFileShareExclusive|EFileWrite);
-
+	
+	TInt error= aFile.Replace(*iFs,tempFilePathAndName,EFileShareExclusive|EFileWrite);
+	if (error==KErrPathNotFound)
+		{
+        //only create directory if not found
+        error=iFs->MkDirAll(tempFilePathAndName);
+        if (error==KErrNone)
+            error=aFile.Replace(*iFs,tempFilePathAndName,EFileShareExclusive|EFileWrite);
+		}
 	User::LeaveIfError(error);
+	
 	}
 
 void TMsvServerStoreManager::ReplaceFileStoreL(TMsvId aEntryId)
--- a/messagingfw/msgsrvnstore/server/src/cmsvconverterwaiter.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/cmsvconverterwaiter.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -230,7 +230,7 @@
 			TConversionQueue request;
 			request.iDriveNumber = driveNumber;
 			request.iMessage = aMessage;
-			iConverterQueue.Append(request);
+			iConverterQueue.AppendL(request);
 			}
 	
 		iDriveNumber = driveNumber;
@@ -291,7 +291,7 @@
 			TConversionQueue request;
 			request.iDriveNumber = driveNumber;
 			request.iMessage = aMessage;
-			iConverterQueue.Append(request);
+			iConverterQueue.AppendL(request);
 			}
 		else
 			{
--- a/messagingfw/msgsrvnstore/server/src/cmsvversion1version2converter.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/cmsvversion1version2converter.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -903,7 +903,7 @@
 			RArray<TMsvId> mimeIdArray;
 			CleanupClosePushL(mimeIdArray);
 			
-			mimeIdArray.Append(iDArray[i]);
+			mimeIdArray.AppendL(iDArray[i]);
 			iDBAdapter.GetAllMimeIdsL(iDArray[i],mimeIdArray);
 						
 			if(mimeIdArray.Count())
@@ -1801,7 +1801,7 @@
 		RReadStream infoMimeHeader(buf);
 		
 		RBuf8 mimeStr;
-		mimeStr.Create(KMaxBufferLength);
+		mimeStr.CreateL(KMaxBufferLength);
 		CleanupClosePushL(mimeStr);
 				
 		TInt version = infoMimeHeader.ReadUint16L();
--- a/messagingfw/msgsrvnstore/server/src/msvcacheindextableentry.Cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/msvcacheindextableentry.Cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -192,11 +192,11 @@
 				{
 				if(!aReplace)
 					{
-					CMsvEntryFreePool::Instance()->ReleaseEntry(aEntry);
+					CMsvEntryFreePool::Instance()->ReleaseEntryL(aEntry);
 					aEntry = (*iBlockPtr)[blockIndex];
 					return;
 					}
-				CMsvEntryFreePool::Instance()->ReleaseEntry((*iBlockPtr)[blockIndex]);
+				CMsvEntryFreePool::Instance()->ReleaseEntryL((*iBlockPtr)[blockIndex]);
 				iBlockPtr->Remove(blockIndex);
 				iBlockPtr->Insert(aEntry, blockIndex);
 				return;
@@ -296,9 +296,9 @@
 				{
 				if(aEntries[listCount+aInitIndex]->GetId() == (*iBlockPtr)[blockIndex]->GetId())
 					{
-					CMsvEntryFreePool::Instance()->ReleaseEntry(aEntries[listCount+aInitIndex]);
+					CMsvEntryFreePool::Instance()->ReleaseEntryL(aEntries[listCount+aInitIndex]);
 					aEntries.Remove(listCount+aInitIndex);
-					aEntries.Insert((*iBlockPtr)[blockIndex], listCount+aInitIndex);
+					aEntries.InsertL((*iBlockPtr)[blockIndex], listCount+aInitIndex);
 					entryFound = ETrue;
 					break;
 					}
@@ -433,7 +433,7 @@
 			if(aForceDelete || (*iBlockPtr)[index]->IsEntryLocked())
 				{
 				aParentIdOfEntry = (*iBlockPtr)[index]->Entry().Parent();
-				CMsvEntryFreePool::Instance()->ReleaseEntry((*iBlockPtr)[index]);
+				CMsvEntryFreePool::Instance()->ReleaseEntryL((*iBlockPtr)[index]);
 				iBlockPtr->Remove(index);
 				// 2.1.1. If the entry deleted was the last entry in the block,
 				//        delete the block.
@@ -728,7 +728,7 @@
 	for(TInt index=0; index<blockSize; ++index)
 		{
 		RBuf text;
-		text.Create(150);
+		text.CreateL(150);
 		text.Append(KId);
 		text.AppendNum((*iBlockPtr)[index]->Entry().Id());
 		text.Append(KParentId);
--- a/messagingfw/msgsrvnstore/server/src/msvcachevisiblefolder.Cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/msvcachevisiblefolder.Cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -379,7 +379,7 @@
 								}
 							else
 								{
-								CMsvEntryFreePool::Instance()->ReleaseEntry((*blockPtr)[count]);
+								CMsvEntryFreePool::Instance()->ReleaseEntryL((*blockPtr)[count]);
 								}
 							}
 						blockPtr->Reset();
@@ -584,7 +584,7 @@
 			{
 			//1.2.1 yes, only few blocks are dirty, so fetch and fill the dirty blocks
 			RBuf8 buf;
-			buf.Create(2000);
+			buf.CreateL(2000);
 			CleanupClosePushL(buf);
 			TBool isDBOperationReqd = EFalse;
 			for(TInt index=0; index < iIndexTable.Count(); ++index)
@@ -694,7 +694,7 @@
 		else
 			{
 			RBuf8 buf;
-			buf.Create(2000);
+			buf.CreateL(2000);
 			CleanupClosePushL(buf);
 			CMsvCacheEntry* childEntry;
 			TBool isDBOperationReqd = EFalse;
@@ -1193,7 +1193,7 @@
 	for(TInt index=0; index < blockCount; index++)
 		{
 		RBuf8 text;
-		text.Create(100);
+		text.CreateL(100);
 		text.Append(KBlock);
 		text.AppendNum(index+1);
 		aLogger.Write(text);
--- a/messagingfw/msgsrvnstore/server/src/msvdbadapter.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/msvdbadapter.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -1251,7 +1251,7 @@
 	   KUidMsvFolderEntryValue == aEntry->Entry().iType.iUid
 	  )
 		{
-		CMsvEntryFreePool::Instance()->ReleaseEntry(aEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(aEntry);
 		User::Leave(KErrNotFound);
 		}
 	
@@ -4308,7 +4308,7 @@
 	
 	while(KSqlAtRow == Idquerystatement.Next())
 		{
-		aIdArray.Append(ColumnInt(Idquerystatement, Idindex));
+		aIdArray.AppendL(ColumnInt(Idquerystatement, Idindex));
 		}
 		
 	CleanupStack::PopAndDestroy(2);  //buf,Idquerystatement
@@ -4358,12 +4358,12 @@
 			type == KUidMsvEmailRtfEntryValue
 			)
 			{
-			aIdArray.Append(childId);
+			aIdArray.AppendL(childId);
 			}
 		// Recursion for alternate folders
 		else if(type == KUidMsvFolderEntryValue)
 			{
-			aIdArray.Append(childId);
+			aIdArray.AppendL(childId);
 			// also get the childs for these messages
 			GetAllMimeIdsL(childId, aIdArray);
 			}
--- a/messagingfw/msgsrvnstore/server/src/msventryfreepool.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/msventryfreepool.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -387,7 +387,7 @@
  * The function resets and appends the passed 
  * entry to freepool so that it can be reused.
  */
-void CMsvEntryFreePool::ReleaseEntry(CMsvCacheEntry* aMsvCacheEntry, TBool aBypassTransaction /* DEFAULT=EFalse*/)
+void CMsvEntryFreePool::ReleaseEntryL(CMsvCacheEntry* aMsvCacheEntry, TBool aBypassTransaction /* DEFAULT=EFalse*/)
 	{
 	if( NULL == aMsvCacheEntry )
 		{
@@ -396,7 +396,7 @@
 	
 	if(isTransactionOpen && (EFalse == aBypassTransaction))
 		{
-		iMsvTmpEntries.Append(aMsvCacheEntry);
+		iMsvTmpEntries.AppendL(aMsvCacheEntry);
 		}
 	else
 		{
@@ -404,7 +404,7 @@
 		aMsvCacheEntry->ResetEntry();
 	
 		// 2. Append entry to the freepool.
-		iMsvEntries->Append(aMsvCacheEntry);
+		iMsvEntries->AppendL(aMsvCacheEntry);
 		}
 	}
 
--- a/messagingfw/msgsrvnstore/server/src/msvindexadapter.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/msvindexadapter.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -109,7 +109,7 @@
         delete folderNode;
         }
     
-    iFreePoolInstance->ReleaseEntry(iRootEntry);
+    iFreePoolInstance->ReleaseEntryL(iRootEntry);
     iRootEntry = NULL;
 
     // 3. Delete internal data structure.
@@ -976,7 +976,7 @@
 	TMsvId parentId = entry->Entry().Parent();
 	if(releaseEntry)
 		{
-		iFreePoolInstance->ReleaseEntry(entry, ETrue);
+		iFreePoolInstance->ReleaseEntryL(entry, ETrue);
 		}
 	CMsvEntrySelection* children = new(ELeave)CMsvEntrySelection;
 	CleanupStack::PushL(children);
@@ -1051,7 +1051,7 @@
 	// Release the entry, since it is not added to cache.
 	if(releaseEntry)
 		{
-		iFreePoolInstance->ReleaseEntry(entry, ETrue);
+		iFreePoolInstance->ReleaseEntryL(entry, ETrue);
 		}
 	User::LeaveIfError(err);
 	CleanupStack::PopAndDestroy(); //children
@@ -1487,7 +1487,7 @@
                                                  newParentEntry,
                                                  descendentList,
                                                  resetOldParentOwnerFlag);
-        iNonCommittedChangedEntryList.Append(entryDetails);
+        iNonCommittedChangedEntryList.AppendL(entryDetails);
         if(descendentList)
             CleanupStack::Pop(descendentList);
         }
@@ -1672,7 +1672,7 @@
 		if(aIsDanglingEntry)
 			{
 			// Release CMsvCacheEntry to freepool.
-			iFreePoolInstance->ReleaseEntry(serverEntry, ETrue);
+			iFreePoolInstance->ReleaseEntryL(serverEntry, ETrue);
 			}		
 		return KErrNone;	
 		}
@@ -3670,7 +3670,7 @@
 	// we need to release the entry explicitly.
 	if(releaseEntry)
 		{
-		iFreePoolInstance->ReleaseEntry(entry, ETrue);
+		iFreePoolInstance->ReleaseEntryL(entry, ETrue);
 		User::LeaveIfError(err);
 		}
 	else
@@ -3703,7 +3703,7 @@
 		);
 	if(releaseEntry)
 		{
-		iFreePoolInstance->ReleaseEntry(entry, ETrue);
+		iFreePoolInstance->ReleaseEntryL(entry, ETrue);
 		}
 	User::LeaveIfError(err);
 	CleanupStack::PopAndDestroy(); //children
@@ -3757,7 +3757,7 @@
     TMsvId parentId = entry->Entry().Parent();
     if(releaseEntry)
         {
-        iFreePoolInstance->ReleaseEntry(entry, ETrue);
+        iFreePoolInstance->ReleaseEntryL(entry, ETrue);
         }
 
     // Find the parent in the cache - we may need to update its owner status flag both in cache and DB.
@@ -3768,7 +3768,7 @@
         updateTheParent = EFalse;
         if(releaseEntry)
             {
-            iFreePoolInstance->ReleaseEntry(entry, ETrue);
+            iFreePoolInstance->ReleaseEntryL(entry, ETrue);
             }
         }
     else
--- a/messagingfw/msgsrvnstore/server/src/msvpreferreddrivelist.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/msvpreferreddrivelist.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,6 +1,6 @@
 // MSVPREFERREDDRIVELIST.CPP
 
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -278,7 +278,7 @@
 	for(TInt index = 0; index < count; ++index)
 		{		
 		RBuf8 text;
-		text.Create(100);
+		text.CreateL(100);
 		text.Append(KLtBracket);
 		text.AppendNum(index);
 		text.Append(KRtBracket);
--- a/messagingfw/msgsrvnstore/server/src/msvsearchsortcacheentry.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/msvsearchsortcacheentry.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -118,7 +118,7 @@
 		iQueryData.iMessagePart = aQuery->iQueryTable[qCount].iMessagePart;
 		iQueryData.iRelationOp = aQuery->iQueryTable[qCount].iRelationOp;
 		iQueryData.iQueryString.Copy(aQuery->iQueryTable[qCount].iQueryString);
-		iMsgQuery.Append(iQueryData);	 
+		iMsgQuery.AppendL(iQueryData);	 
 		}
 	
 		CMSvSearchSortCacheManager::Instance()->GenerateQueryId(*this);
--- a/messagingfw/msgsrvnstore/server/src/msvsearchsortcachemanager.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/msvsearchsortcachemanager.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -1020,12 +1020,12 @@
 				{
 				for(TInt ii =0; ii<iSearchSortDeltaCache->iNewEntry.Count(); ii++ )
 					{
-					iDeltaCacheIdArray.Append(iSearchSortDeltaCache->iNewEntry[ii]);
+					iDeltaCacheIdArray.AppendL(iSearchSortDeltaCache->iNewEntry[ii]);
 					}
 			
 				for(TInt ii =0; ii<iSearchSortDeltaCache->iUpdateEntry.Count(); ii++ )
 					{
-					iDeltaCacheIdArray.Append(iSearchSortDeltaCache->iUpdateEntry[ii]);
+					iDeltaCacheIdArray.AppendL(iSearchSortDeltaCache->iUpdateEntry[ii]);
 					}
 				iReturnResultType = KPartialResult;
 				iProgress = KMsvSearchSortOpInProgress;  
--- a/messagingfw/msgsrvnstore/server/src/msvsearchsortdbwrapper.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/msvsearchsortdbwrapper.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -271,7 +271,7 @@
 		
 		RBuf8 queryString;
 		queryString.CleanupClosePushL();
-		queryString.Create(KMaxQuerySize);
+		queryString.CreateL(KMaxQuerySize);
 		
 		//Folderlist for subfolder search
 		RArray<TMsvId> folderIdList;
@@ -282,7 +282,7 @@
 		parentId = aQuery.iParentId;
 	#endif  
 		//Append the parentid on which the search/sort is intiated into the folder list
-		folderIdList.Append(parentId);
+		folderIdList.AppendL(parentId);
 		
 		iSortOnHeader = aSortOnHeader;
 #if (defined SYMBIAN_MESSAGESTORE_HEADER_BODY_USING_SQLDB)	
--- a/messagingfw/msgsrvnstore/server/src/msvsearchsortdeltacache.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/msvsearchsortdeltacache.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -108,7 +108,7 @@
 	{
 	if(aType == ENewMsg ) //New Msg Entry
 		{
-		iMsvSearchSortDeltaCache->iNewEntry.Append(aID);
+		iMsvSearchSortDeltaCache->iNewEntry.AppendL(aID);
 		iMsvSearchSortDeltaCache->iDeltaCacheDirtyFlag = ETrue;
 		}
 	// This conditional statement is required to check if any msg updation is going  on while doing search or not.
@@ -121,14 +121,14 @@
 			if( foundPos < 0 &&
 				iUpdateEntry.Find(aID) == KErrNotFound )
 				{
-				iMsvSearchSortDeltaCache->iUpdateEntry.Append(aID);
+				iMsvSearchSortDeltaCache->iUpdateEntry.AppendL(aID);
 				iMsvSearchSortDeltaCache->iDeltaCacheDirtyFlag = ETrue;
 				}
 							
 			}
 	else if(aType == EDeletedMsg) //Deleted msg Entry.
 		{
-		iMsvSearchSortDeltaCache->iDeleteEntry.Append(aID);
+		iMsvSearchSortDeltaCache->iDeleteEntry.AppendL(aID);
 		iMsvSearchSortDeltaCache->iDeltaCacheDirtyFlag = ETrue;
 		}
 	}
--- a/messagingfw/msgsrvnstore/server/src/msvsearchsortoponheaderbody.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/src/msvsearchsortoponheaderbody.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -104,7 +104,7 @@
 	
 	for (TInt count = 0; count < aIdArray.Count(); ++count)
 		{
-		iIdArray.Append(aIdArray[count]);	
+		iIdArray.AppendL(aIdArray[count]);	
 		}
 	//set initial partList list flags
 	InitializePartList();
@@ -214,7 +214,7 @@
 		{
 		if(iRequestType == EMsvGetEntryForIds)
 			{
-			iEntryArray.Append(iEntry);
+			iEntryArray.AppendL(iEntry);
 			}
 		CompleteSelf();
 		// set the user request to KRequestPending
--- a/messagingfw/msgsrvnstore/server/test/Unittef/src/t_msv_cache_indextableentry_step.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/test/Unittef/src/t_msv_cache_indextableentry_step.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -417,7 +417,7 @@
 	MY_ASSERT_EQUALS(iIndexTableEntry->Size(), aCount);
 	for(index = aCount; index < bulkCount; ++index) //manually release remaining entries
 		{
-		CMsvEntryFreePool::Instance()->ReleaseEntry(entries[index]);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(entries[index]);
 		}
 	
 	//---aCount > aEntries.Count()
@@ -478,8 +478,8 @@
 		MY_ASSERT_TRUE(iIndexTableEntry->EntryExists(entries[index]->GetId()));
 		}
 	MY_ASSERT_EQUALS(iIndexTableEntry->Size(), aCount);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(entries[0]);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(entries[4]);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(entries[0]);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(entries[4]);
 		
 	//---out of bounds index
 	iIndexTableEntry->ReleaseBlock(ETrue);
@@ -511,7 +511,7 @@
 	MY_ASSERT_EQUALS(iIndexTableEntry->Size(), 0);
 	for(index = 0; index < bulkCount; ++index)
 		{
-		CMsvEntryFreePool::Instance()->ReleaseEntry(entries[index]);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(entries[index]);
 		}
 		
 
@@ -908,7 +908,7 @@
 	oEntries.Reset();
 	TRAP_IGNORE(iIndexTableEntry->GetChildrenL(parent->GetId(), oEntries));
 	MY_ASSERT_EQUALS(oEntries.Count(), 11); //entryA + 10 others
-	CMsvEntryFreePool::Instance()->ReleaseEntry(nonimmediateParent);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(nonimmediateParent);
 	
 	
 	// t4. only grandchildren are present in the block
@@ -949,8 +949,8 @@
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(oEntries.Count(), 0);
 	
-	CMsvEntryFreePool::Instance()->ReleaseEntry(nonimmediateParent);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parent);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(nonimmediateParent);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parent);
 	oEntries.Close();
 	tmsvEntries.Close();
 	entries.Close();	
@@ -1044,9 +1044,9 @@
  	TRAP(err, iIndexTableEntry->DeleteEntryL(entryA->GetId(), parentId));
  	MY_ASSERT_EQUALS(err, KErrNotFound);
  	
- 	CMsvEntryFreePool::Instance()->ReleaseEntry(parent);
- 	CMsvEntryFreePool::Instance()->ReleaseEntry(entryA);
- 	CMsvEntryFreePool::Instance()->ReleaseEntry(entryB);
+ 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parent);
+ 	CMsvEntryFreePool::Instance()->ReleaseEntryL(entryA);
+ 	CMsvEntryFreePool::Instance()->ReleaseEntryL(entryB);
  	
  	
  	// t6. bulk additions and deletions
@@ -1084,7 +1084,7 @@
 		}
 	MY_ASSERT_TRUE(iIndexTableEntry->BlockPtr() == NULL);
 	
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parent);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parent);
 	tmsvEntries.Close();
 	entries.Close();
 	}
@@ -1142,7 +1142,7 @@
 	err = oEntries[0]->GetId() - oEntries[1]->GetId(); //successive entries
 	MY_ASSERT_TRUE(err < 0);
 	
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parent);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parent);
 	oEntries.Close();
 	}
 
--- a/messagingfw/msgsrvnstore/server/test/Unittef/src/t_msv_dbadapter_step.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/test/Unittef/src/t_msv_dbadapter_step.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -786,7 +786,7 @@
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
 
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	visibleFolder = NULL;
 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
@@ -836,7 +836,7 @@
 	TRAP(err, iMsvDbAdaptor->UpdateEntryL(cacheEntry->Entry(), visibleFolder)); //parent not changed
 	MY_ASSERT_EQUALS(err, KErrNone);
 	
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	visibleFolder = NULL;
 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
@@ -864,7 +864,7 @@
 	MY_ASSERT_EQUALS(entry->iMtmData2, (long) 120);
 	MY_ASSERT_EQUALS(entry->iMtmData3, (long) 120);
 	
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
 	// 3. Test update on an entry in an attached database.
@@ -921,7 +921,7 @@
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
 
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	visibleFolder = NULL;
 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
@@ -962,7 +962,7 @@
 	TRAP(err, iMsvDbAdaptor->UpdateEntryL(cacheEntry->Entry(), visibleFolder)); //parent not changed
 	MY_ASSERT_EQUALS(err, KErrNone);
 	
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	visibleFolder = NULL;
 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
@@ -982,7 +982,7 @@
 	MY_ASSERT_EQUALS(entry->iMtmData2, (long) 120);
 	MY_ASSERT_EQUALS(entry->iMtmData3, (long) 120);
 	
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 #endif	
 	}
 
@@ -1067,32 +1067,32 @@
 
 	delete data;
 	data = NULL;
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	//TRAP(err, iMsvDbAdaptor->GetEntryL(KMsvLocalServiceIndexEntryId, entry, visibleFolder));
 	TRAP(err, iMsvDbAdaptor->GetEntryL(KMsvLocalServiceIndexEntryId, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvServiceEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	TRAP(err, iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvFolderEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+1, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+2, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvAttachmentEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
 	TInt driveId = (1<<28);
@@ -1103,37 +1103,37 @@
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+100, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+102, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+103, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+201, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+202, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+203, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNotFound);
@@ -1178,19 +1178,19 @@
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId+50, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId+102, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	//A negative test on a non-existent entry.
 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId+103, cacheEntry, visibleFolder));
@@ -1202,13 +1202,13 @@
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+200, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 #endif	
 	}
 
@@ -1218,7 +1218,7 @@
 	{
 	for(int index=0; index<childArray.Count(); index++)
 		{
-		CMsvEntryFreePool::Instance()->ReleaseEntry(childArray[index]);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(childArray[index]);
 		}
 	childArray.Reset();
 	}
@@ -1685,19 +1685,19 @@
 	CMsvCacheEntry* parentEntry = NULL;
 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL(KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), ETrue));
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
 	TRAP(err, iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_TRUE(parentEntry->Entry().Owner());
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
 	
 	//3. Test resetting of the flag
 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL(KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), EFalse));
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
 	MY_ASSERT_FALSE(parentEntry->Entry().Owner());
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
 	
 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
 	// 4. Create and attach a second database. Create entries in it and test.
@@ -1725,32 +1725,32 @@
 	parentEntry = NULL;
 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), ETrue));
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
 	MY_ASSERT_TRUE(parentEntry->Entry().Owner());
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
 	//Flag already set, attempt to set again.
 	parentEntry = NULL;
 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), ETrue));
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
 	MY_ASSERT_TRUE(parentEntry->Entry().Owner());
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
 	//Resetting of the flag.
 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), EFalse));
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
 	MY_ASSERT_FALSE(parentEntry->Entry().Owner());
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
 	//Flag already reset, attempt to reset again.
 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), EFalse));
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
 	MY_ASSERT_FALSE(parentEntry->Entry().Owner());
-	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
 #endif	
 	}
 
@@ -2366,7 +2366,7 @@
 	// (j) Close the database without performing rollback/commit.
 	delete iMsvDbAdaptor;
 	iMsvDbAdaptor = NULL;
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	// (k) Create the DBAdapter again.
 	TRAP_IGNORE(iMsvDbAdaptor = CMsvDBAdapter::NewL());
 	TInt sysDrive = (TInt)RFs::GetSystemDrive();
@@ -2378,7 +2378,7 @@
 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
 	MY_ASSERT_EQUALS(err, KErrNone);
 	MY_ASSERT_EQUALS(cacheEntry->Entry().Parent(), KMsvRootIndexEntryId); //old parent
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
 	
 	
 	// 2. Create an entry and rollback.
--- a/messagingfw/msgsrvnstore/server/test/Unittef/src/t_msv_indexadapter_step.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgsrvnstore/server/test/Unittef/src/t_msv_indexadapter_step.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -342,7 +342,7 @@
 		TRAP_IGNORE(dbPtr->GetEntryL(newId+index, cEntry, visibleParentId));
 		MY_ASSERT_EQUALS((long)index, cEntry->Entry().MtmData1());
 		MY_ASSERT_EQUALS(KUidMsvMessageEntry, cEntry->Entry().iType);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		
 		iIndexAdapter->FindEntryInCache(newId+index, cEntry);
 		MY_ASSERT_EQUALS((long)index, cEntry->Entry().MtmData1());
@@ -357,7 +357,7 @@
 		TRAP_IGNORE(dbPtr->GetEntryL(newId+index, cEntry, visibleParentId));
 		MY_ASSERT_EQUALS((long)index, cEntry->Entry().MtmData1());
 		MY_ASSERT_EQUALS(KUidMsvMessageEntry, cEntry->Entry().iType);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		
 		iIndexAdapter->FindEntryInCache(newId+index, cEntry);
 		MY_ASSERT_EQUALS((long)index, cEntry->Entry().MtmData1());
@@ -393,7 +393,7 @@
 		TRAP_IGNORE(dbPtr->GetEntryL(newId+index, cEntry, visibleParentId));
 		MY_ASSERT_EQUALS((long)(index+200), cEntry->Entry().MtmData2());
 		MY_ASSERT_EQUALS(KUidMsvAttachmentEntry, cEntry->Entry().iType);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		
 		iIndexAdapter->FindEntryInCache(newId+index, cEntry);
 		MY_ASSERT_EQUALS((long)(index+200), cEntry->Entry().MtmData2());
@@ -413,7 +413,7 @@
 		TRAP_IGNORE(dbPtr->GetEntryL(newId+index, cEntry, visibleParentId));
 		MY_ASSERT_EQUALS((long)index, cEntry->Entry().MtmData2());
 		MY_ASSERT_EQUALS(KUidMsvFolderEntry, cEntry->Entry().iType);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		
 		iIndexAdapter->FindEntryInCache(newId+index, cEntry);
 		MY_ASSERT_EQUALS((long)index, cEntry->Entry().MtmData2());
@@ -468,7 +468,7 @@
 		MY_ASSERT_EQUALS(KUidMsvAttachmentEntry, cEntry->Entry().iType);
 		MY_ASSERT_EQUALS((long)(newId+1500), cEntry->Entry().Parent());
 		MY_ASSERT_EQUALS((long)(newId+1500), visibleParentId);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		// Check entry in cache.
 		MY_ASSERT_TRUE(TestFolder->GetEntry(newId+index, cEntry));
 		MY_ASSERT_EQUALS(KUidMsvFolderEntry, cEntry->Entry().iType);
@@ -491,7 +491,7 @@
 		MY_ASSERT_EQUALS(KUidMsvAttachmentEntry, cEntry->Entry().iType);
 		MY_ASSERT_EQUALS(newId+1500, cEntry->Entry().Parent());
 		MY_ASSERT_EQUALS(newId+1500, visibleParentId);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		// Check entry in cache.
 		MY_ASSERT_FALSE(TestFolder->GetEntry(newId+index, cEntry));
 		MY_ASSERT_TRUE(NewTestFolder->GetEntry(newId+index, cEntry));
@@ -543,7 +543,7 @@
 		MY_ASSERT_EQUALS(KUidMsvFolderEntry, cEntry->Entry().iType);
 		MY_ASSERT_EQUALS((long)(KMsvLocalServiceIndexEntryId), cEntry->Entry().Parent());
 		MY_ASSERT_EQUALS((long)KMsvLocalServiceIndexEntryId, visibleParentId);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		// Check entry in cache.
 		MY_ASSERT_TRUE(TestFolder->GetEntry(newId+index, cEntry));
 		MY_ASSERT_EQUALS(KUidMsvAttachmentEntry, cEntry->Entry().iType);
@@ -570,7 +570,7 @@
 		MY_ASSERT_EQUALS(KUidMsvAttachmentEntry, cEntry->Entry().iType);
 		MY_ASSERT_EQUALS(newId+1500, cEntry->Entry().Parent());
 		MY_ASSERT_EQUALS(newId+1500, visibleParentId);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		// Check entry in cache.
 		MY_ASSERT_TRUE(TestFolder->GetEntry(newId+index, cEntry));
 		MY_ASSERT_EQUALS(KUidMsvAttachmentEntry, cEntry->Entry().iType);
@@ -662,7 +662,7 @@
 		TRAP_IGNORE(dbPtr->GetEntryL(newId+index, cEntry, visibleParentId));
 		MY_ASSERT_EQUALS((long)(newId+2200), cEntry->Entry().Parent());
 		MY_ASSERT_EQUALS((long)KMsvLocalServiceIndexEntryId, visibleParentId);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		// Check entry in cache.
 		if(index < 2006)
 			{
@@ -705,7 +705,7 @@
 		TRAP_IGNORE(dbPtr->GetEntryL(newId+index, cEntry, visibleParentId));
 		MY_ASSERT_EQUALS(newId+2200, cEntry->Entry().Parent());
 		MY_ASSERT_EQUALS((long)KMsvLocalServiceIndexEntryId, visibleParentId);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		// Check entry in cache.
 		MY_ASSERT_FALSE(TestFolder->GetEntry(newId+index, cEntry));
 		MY_ASSERT_TRUE(NewTestFolder->GetEntry(newId+index, cEntry));
@@ -759,11 +759,11 @@
 		{
 		TRAP_IGNORE(dbPtr->GetEntryL(newId+index+5200, cEntry, visibleParentId));
 		ASSERT_EQUALS(visibleParentId, newId+5000);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		}
 	TRAP_IGNORE(dbPtr->GetEntryL(newId+5100, cEntry, visibleParentId));
 	MY_ASSERT_EQUALS(visibleParentId, newId+5000);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 	
 	//12. Scenario: Local Service has 2 children, newId+6000 and newId+6100.
 	//				newId+6000 is visible and the other is not visible.
@@ -807,15 +807,15 @@
 	dbPtr = iIndexAdapter->GetDbAdapter();
 	TRAP_IGNORE(dbPtr->GetEntryL(newId+6100, cEntry, visibleParentId));
 	MY_ASSERT_EQUALS(visibleParentId, newId+6000);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 	
 	TRAP_IGNORE(dbPtr->GetEntryL(newId+6200, cEntry, visibleParentId));
 	MY_ASSERT_EQUALS(visibleParentId, newId+6000);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 	
 	//TRAP_IGNORE(dbPtr->GetEntryL(newId+6300, cEntry, visibleParentId));
 	//MY_ASSERT_EQUALS(visibleParentId, newId+6200);
-	//CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+	//CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 	
 	//13. Moving a visible folder with children to under a non-visible folder which has
 	//	  a visible parent.
@@ -846,15 +846,15 @@
 	//	   appropriately set.
 	TRAP_IGNORE(dbPtr->GetEntryL(newId+7100, cEntry, visibleParentId));
 	MY_ASSERT_EQUALS(visibleParentId, KMsvRootIndexEntryId);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 	
 	TRAP_IGNORE(dbPtr->GetEntryL(newId+7200, cEntry, visibleParentId));
 	MY_ASSERT_EQUALS(visibleParentId, newId+7100);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 	
 	TRAP_IGNORE(dbPtr->GetEntryL(newId+7300, cEntry, visibleParentId));
 	MY_ASSERT_EQUALS(visibleParentId, newId+7200);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 	}
 	
 	
@@ -3302,10 +3302,10 @@
 
 	RArray<CMsvIndexAdapter::TNonCommittedChangedEntries>& entryList = iIndexAdapter->GetNonComittedChangedEntry();
 	MY_ASSERT_EQUALS(1, entryList.Count());
-	CMsvEntryFreePool::Instance()->ReleaseEntry(entryList[0].iBkpEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(entryList[0].iBkpEntry);
 	entryList.Reset();
 	
-	CMsvEntryFreePool::Instance()->ReleaseEntry(testentry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(testentry);
 	
 	//4. change Entry 
 	//a. Open Transaction
@@ -3370,7 +3370,7 @@
 	TRAP_IGNORE(iIndexAdapter->OpenclosedL(openFilename));
 	
 	MY_ASSERT_EQUALS(1, entryList.Count());
-	CMsvEntryFreePool::Instance()->ReleaseEntry(entryList[0].iBkpEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(entryList[0].iBkpEntry);
 	entryList.Reset();
 	
 	iIndexAdapter->GetEntry(KFirstFreeEntryId+200, entry2);
@@ -3431,7 +3431,7 @@
 	MY_ASSERT_TRUE(entry2->Visible());
 	MY_ASSERT_EQUALS(entry2->Id(), KFirstFreeEntryId+700);
 
-	CMsvEntryFreePool::Instance()->ReleaseEntry(testentry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(testentry);
 	
 	/* TEST Code added after changes in DOChangeEntry for rollback */
 	// 6. Modifying 10 entries using no-commit.
@@ -3462,7 +3462,7 @@
 		TRAP_IGNORE(dbPtr->GetEntryL(KFirstFreeEntryId+index, cEntry, visibleParentId));
 		MY_ASSERT_EQUALS((long)index, cEntry->Entry().MtmData1());
 		MY_ASSERT_EQUALS(KUidMsvMessageEntry, cEntry->Entry().iType);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		
 		iIndexAdapter->FindEntryInCache(KFirstFreeEntryId+index, cEntry);
 		MY_ASSERT_EQUALS((long)index, cEntry->Entry().MtmData1());
@@ -3477,7 +3477,7 @@
 		TRAP_IGNORE(dbPtr->GetEntryL(KFirstFreeEntryId+index, cEntry, visibleParentId));
 		MY_ASSERT_EQUALS((long)index, cEntry->Entry().MtmData1());
 		MY_ASSERT_EQUALS(KUidMsvMessageEntry, cEntry->Entry().iType);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		
 		iIndexAdapter->FindEntryInCache(KFirstFreeEntryId+index, cEntry);
 		MY_ASSERT_EQUALS((long)index, cEntry->Entry().MtmData1());
@@ -3513,7 +3513,7 @@
 		TRAP_IGNORE(dbPtr->GetEntryL(KFirstFreeEntryId+index, cEntry, visibleParentId));
 		MY_ASSERT_EQUALS((long)(index+200), cEntry->Entry().MtmData2());
 		MY_ASSERT_EQUALS(KUidMsvAttachmentEntry, cEntry->Entry().iType);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		
 		iIndexAdapter->FindEntryInCache(KFirstFreeEntryId+index, cEntry);
 		MY_ASSERT_EQUALS((long)(index+200), cEntry->Entry().MtmData2());
@@ -3533,7 +3533,7 @@
 		TRAP_IGNORE(dbPtr->GetEntryL(KFirstFreeEntryId+index, cEntry, visibleParentId));
 		MY_ASSERT_EQUALS((long)index, cEntry->Entry().MtmData2());
 		MY_ASSERT_EQUALS(KUidMsvFolderEntry, cEntry->Entry().iType);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		
 		iIndexAdapter->FindEntryInCache(KFirstFreeEntryId+index, cEntry);
 		MY_ASSERT_EQUALS((long)index, cEntry->Entry().MtmData2());
@@ -3589,7 +3589,7 @@
 		MY_ASSERT_EQUALS(KUidMsvAttachmentEntry, cEntry->Entry().iType);
 		MY_ASSERT_EQUALS((long)(KFirstFreeEntryId+1500), cEntry->Entry().Parent());
 		MY_ASSERT_EQUALS((long)(KFirstFreeEntryId+1500), visibleParentId);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		// Check entry in cache.
 		MY_ASSERT_TRUE(TestFolder->GetEntry(KFirstFreeEntryId+index, cEntry));
 		MY_ASSERT_FALSE(KUidMsvAttachmentEntry==cEntry->Entry().iType);
@@ -3616,7 +3616,7 @@
 		MY_ASSERT_EQUALS(KUidMsvAttachmentEntry, cEntry->Entry().iType);
 		MY_ASSERT_EQUALS(KFirstFreeEntryId+1500, cEntry->Entry().Parent());
 		MY_ASSERT_EQUALS(KFirstFreeEntryId+1500, visibleParentId);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		// Check entry in cache.
 		MY_ASSERT_FALSE(TestFolder->GetEntry(KFirstFreeEntryId+index, cEntry));
 		MY_ASSERT_TRUE(NewTestFolder->GetEntry(KFirstFreeEntryId+index, cEntry));
@@ -3669,7 +3669,7 @@
 		MY_ASSERT_EQUALS(KUidMsvFolderEntry, cEntry->Entry().iType);
 		MY_ASSERT_EQUALS((long)(KMsvGlobalInBoxIndexEntryId), cEntry->Entry().Parent());
 		MY_ASSERT_EQUALS((long)KMsvGlobalInBoxIndexEntryId, visibleParentId);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		// Check entry in cache.
 		MY_ASSERT_TRUE(TestFolder->GetEntry(KFirstFreeEntryId+index, cEntry));
 		MY_ASSERT_FALSE(KUidMsvFolderEntry==cEntry->Entry().iType);
@@ -3701,7 +3701,7 @@
 		MY_ASSERT_EQUALS(KUidMsvAttachmentEntry, cEntry->Entry().iType);
 		MY_ASSERT_EQUALS(KFirstFreeEntryId+1500, cEntry->Entry().Parent());
 		MY_ASSERT_EQUALS(KFirstFreeEntryId+1500, visibleParentId);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		// Check entry in cache.
 		MY_ASSERT_TRUE(TestFolder->GetEntry(KFirstFreeEntryId+index, cEntry));
 		MY_ASSERT_EQUALS(KUidMsvAttachmentEntry, cEntry->Entry().iType);
@@ -3794,7 +3794,7 @@
 		TRAP_IGNORE(dbPtr->GetEntryL(KFirstFreeEntryId+index, cEntry, visibleParentId));
 		MY_ASSERT_EQUALS((long)(KFirstFreeEntryId+2200), cEntry->Entry().Parent());
 		MY_ASSERT_EQUALS((long)KMsvRootIndexEntryIdValue, visibleParentId);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		// Check entry in cache.
 		if(index < 2006)
 			{
@@ -3839,7 +3839,7 @@
 		TRAP_IGNORE(dbPtr->GetEntryL(KFirstFreeEntryId+index, cEntry, visibleParentId));
 		MY_ASSERT_EQUALS(KFirstFreeEntryId+2200, cEntry->Entry().Parent());
 		MY_ASSERT_EQUALS((long)KMsvRootIndexEntryIdValue, visibleParentId);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		// Check entry in cache.
 		MY_ASSERT_FALSE(TestFolder->GetEntry(KFirstFreeEntryId+index, cEntry));
 		MY_ASSERT_TRUE(NewTestFolder->GetEntry(KFirstFreeEntryId+index, cEntry));
@@ -3893,11 +3893,11 @@
 		{
 		TRAP_IGNORE(dbPtr->GetEntryL(KFirstFreeEntryId+index+5200, cEntry, visibleParentId));
 		ASSERT_EQUALS(visibleParentId, KFirstFreeEntryId+5000);
-		CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+		CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 		}
 	TRAP_IGNORE(dbPtr->GetEntryL(KFirstFreeEntryId+5100, cEntry, visibleParentId));
 	MY_ASSERT_EQUALS(visibleParentId, KFirstFreeEntryId+5000);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 	
 	//12. Scenario: Root has 2 children, KFirstFreeEntryId+6000 and KFirstFreeEntryId+6100.
 	//				KFirstFreeEntryId+6000 is visible and the other is not visible.
@@ -3941,11 +3941,11 @@
 	dbPtr = iIndexAdapter->GetDbAdapter();
 	TRAP_IGNORE(dbPtr->GetEntryL(KFirstFreeEntryId+6100, cEntry, visibleParentId));
 	MY_ASSERT_EQUALS(visibleParentId, KFirstFreeEntryId+6000);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 	
 	TRAP_IGNORE(dbPtr->GetEntryL(KFirstFreeEntryId+6200, cEntry, visibleParentId));
 	MY_ASSERT_EQUALS(visibleParentId, KFirstFreeEntryId+6000);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 	
 	//13. Moving a visible folder with children to under a non-visible folder which has
 	//	  a visible parent.
@@ -3976,15 +3976,15 @@
 	//	   appropriately set.
 	TRAP_IGNORE(dbPtr->GetEntryL(KFirstFreeEntryId+7100, cEntry, visibleParentId));
 	MY_ASSERT_EQUALS(visibleParentId, KMsvRootIndexEntryId);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 	
 	TRAP_IGNORE(dbPtr->GetEntryL(KFirstFreeEntryId+7200, cEntry, visibleParentId));
 	MY_ASSERT_EQUALS(visibleParentId, KFirstFreeEntryId+7100);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);
 	
 	TRAP_IGNORE(dbPtr->GetEntryL(KFirstFreeEntryId+7300, cEntry, visibleParentId));
 	MY_ASSERT_EQUALS(visibleParentId, KFirstFreeEntryId+7200);
-	CMsvEntryFreePool::Instance()->ReleaseEntry(cEntry);	
+	CMsvEntryFreePool::Instance()->ReleaseEntryL(cEntry);	
 	}
 	
 
--- a/messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentdata.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentdata.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2003-2010 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"
@@ -23,7 +23,7 @@
 #ifndef __TESTAGENTDATA_H__
 #define __TESTAGENTDATA_H__
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include <caf/agentinterface.h>
 #include "TestAgentFileInterface.h"
 
--- a/messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentfactory.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentfactory.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-2010 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"
@@ -13,7 +13,7 @@
 // Description:
 //
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include "testagentfactory.h"
 #include "testagentcontent.h"
 #include "testagentdata.h"
--- a/messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentfactory.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentfactory.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,6 +1,6 @@
 //testagentfactory.h
 
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-2010 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"
@@ -19,7 +19,7 @@
 #ifndef __TESTAGENTFACTORY_H__
 #define __TESTAGENTFACTORY_H__
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include <caf/agentfactory.h>
 
 using namespace ContentAccess;
--- a/messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentmanager.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentmanager.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-2010 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"
@@ -13,7 +13,7 @@
 // Description:
 //
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include <caf/dirstreamable.h>
 #include "testagentmanager.h"
 #include "testagentattributes.h"
--- a/messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentmanager.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentmanager.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,6 +1,6 @@
 // testagentmanager.h
 
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-2010 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"
@@ -18,8 +18,8 @@
 #ifndef __TESTAGENTMANAGER_H__
 #define __TESTAGENTMANAGER_H__
 
-#include <caf/caf.h>
-#include <caf\agentinterface.h>
+#include <caf/cafplatform.h>
+#include <caf/agentinterface.h>
 
 using namespace ContentAccess;
 
--- a/messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentrightsmanager.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/msgtest/testutils/caf2/test/TestAgent/testagentrightsmanager.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-2010 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"
@@ -16,8 +16,8 @@
 #ifndef __TESTAGENTRIGHTSMANAGER_H__
 #define __TESTAGENTRIGHTSMANAGER_H__
 
-#include <caf/caf.h>
-#include <caf\agentinterface.h>
+#include <caf/cafplatform.h>
+#include <caf/agentinterface.h>
 
 using namespace ContentAccess;
 
--- a/messagingfw/sendas/server/src/csendassender.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/sendas/server/src/csendassender.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -120,7 +120,7 @@
  	_LIT16(KComma, ",");
  		
  	RBuf16 buffer;
- 	buffer.Create(size+ rcptCount);
+ 	buffer.CreateL(size+ rcptCount);
  	CleanupClosePushL(buffer);
  	if(rcptCount > 0)
  		{
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/intentparser.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/intentparser.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -23,7 +23,7 @@
 #ifndef __INTENTPARSER_H__
 #define __INTENTPARSER_H__
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include "parsehandlerbase.h"
 #include "stringparser.h"
 
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/rightscriteriacount.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/rightscriteriacount.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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,7 +14,7 @@
 //
 
 #include <s32strm.h>
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include "rightscriteriacount.h"
 
 
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/rightscriteriacount.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/rightscriteriacount.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -23,7 +23,7 @@
 #define __RIGHTSCRITERIACOUNT_H__
 
 #include <f32file.h>
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include "intent.h"
 
 class RReadStream;
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/rightscriteriaexpiry.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/rightscriteriaexpiry.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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,7 +14,7 @@
 //
 
 #include <s32strm.h>
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include "rightscriteriaexpiry.h"
 
 
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/rightscriteriaexpiry.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RTAParser/rightscriteriaexpiry.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -23,7 +23,7 @@
 #define __RIGHTSCRITERIAEXPIRY_H__
 
 #include <f32file.h>
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include "intent.h"
 
 class RReadStream;
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentcontent.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentcontent.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -13,7 +13,7 @@
 // Description:
 //
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include "Reftestagentcontent.h"
 #include "rtacontent.h"
 
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentcontent.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentcontent.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -17,7 +17,7 @@
 #define __REFTESTAGENTCONTENT_H__
 
 #include <f32file.h>
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include <caf/agentinterface.h>
 #include "rtacontent.h"
 
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentdata.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentdata.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -13,7 +13,7 @@
 // Description:
 //
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include "Reftestagentdata.h"
 #include "drmfiles.h"
 
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentdata.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentdata.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -16,7 +16,7 @@
 #ifndef __REFTESTAGENTDATA_H__
 #define __REFTESTAGENTDATA_H__
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include <caf/agentinterface.h>
 #include "rtaArchive.h"
 #include "drmfilecontent.h"
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentfactory.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentfactory.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-2010 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"
@@ -13,7 +13,7 @@
 // Description:
 //
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include "Reftestagentfactory.h"
 #include "Reftestagentcontent.h"
 #include "Reftestagentdata.h"
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentfactory.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentfactory.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -17,7 +17,7 @@
 #ifndef __REFTESTAGENTFACTORY_H__
 #define __REFTESTAGENTFACTORY_H__
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include <caf/agentfactory.h>
 
 using namespace ContentAccess;
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentimportfile.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentimportfile.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -16,7 +16,7 @@
 #ifndef __REFTESTAGENTIMPORTFILE_H__
 #define __REFTESTAGENTIMPORTFILE_H__
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include <caf/agentinterface.h>
 #include "rtaImport.h"
 
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentmanager.cpp	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentmanager.cpp	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -13,7 +13,7 @@
 // Description:
 //
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include <http.h>
 #include <http/rhttpheaders.h>
 #include <stringpool.h>
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentmanager.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentmanager.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -16,7 +16,7 @@
 #ifndef __REFTESTAGENTMANAGER_H__
 #define __REFTESTAGENTMANAGER_H__
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include <caf/agentinterface.h>
 
 #include "rtamanager.h"
--- a/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentrightsmanager.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent/Reftestagentrightsmanager.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -16,7 +16,7 @@
 #ifndef __REFTESTAGENTRIGHTSMANAGER_H__
 #define __REFTESTAGENTRIGHTSMANAGER_H__
 
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 #include <caf/agentinterface.h>
 #include "rtarights.h"
 
--- a/messagingfw/wappushfw/tpush/RefTestAgent/inc/rightsobject.h	Tue Jul 06 14:48:25 2010 +0300
+++ b/messagingfw/wappushfw/tpush/RefTestAgent/inc/rightsobject.h	Wed Aug 18 10:15:32 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -23,7 +23,7 @@
 #define __RIGHTSOBJECT_H__
 
 #include <f32file.h>
-#include <caf/caf.h>
+#include <caf/cafplatform.h>
 
 class RReadStream;
 class RWriteStream;