emailservices/emailstore/base_plugin/inc/BasePlugin.h
branchRCL_3
changeset 63 d189ee25cf9d
parent 24 b5fbb9b25d57
child 64 3533d4323edc
--- a/emailservices/emailstore/base_plugin/inc/BasePlugin.h	Thu Aug 19 09:38:05 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/BasePlugin.h	Tue Aug 31 15:04:17 2010 +0300
@@ -22,20 +22,24 @@
 #include <e32std.h>
 #include <e32base.h>
 
-#include "cfsmailplugin.h"
+#include "CFSMailPlugin.h"
 #include "mmrorganizer.h"
 
 //<cmail>
-#include "msgstorefolderutils.h"
-#include "msgstoremailbox.h"
-#include "msgstoremailboxobserver.h"
-#include "msgstoremessage.h"
-#include "msgstoreobserver.h"
-#include "debuglogmacros.h"
+#include "MsgStoreFolderUtils.h"
+#include "MsgStoreMailBox.h"
+#include "MsgStoreMailBoxObserver.h"
+#include "MsgStoreMessage.h"
+#include "MsgStoreObserver.h"
+#include "DebugLogMacros.h"
 //</cmail>
 
-#include "basemrinfoobject.h"
-#include "map.h"
+//<qmail> Entire CBasePlugin class is exported in 10.1
+#include "baseplugindef.h"
+//</qmail>
+
+#include "BaseMrInfoObject.h"
+#include "Map.h"
 
 
 class CMsgStore;
@@ -46,15 +50,26 @@
 class CMailboxInfo;
 class CSearchHandler;
 class HMailIterator;
+class CDelayedOp;
 class CDelayedOpsManager;
 class MDelayedOpsManager;
 
+//<qmail>
+/**
+* reply/forward message creation parameters
+*/
+struct TReplyForwardParams
+    {
+    HBufC* iHeader; // reply/forward header, ownership stays in UI
+    HBufC* iSmartTag; // smart reply/forward tag, ownership stays in UI
+    };
+//</qmail>
 
 /**
  * Notes for derived classes:
  * GetPluginId - you must override this to return the ECOM id of the plugin.
  */
-class CBasePlugin :
+class BASEPLUGIN_EXPORT CBasePlugin :
     public CFSMailPlugin,
     public MMsgStoreObserver,
     protected MMsgStoreMailBoxObserver
@@ -68,7 +83,11 @@
     //private components.
     friend class CDelayedDeleteMessagesOp;
     friend class CDelayedSetContentOp;
-
+    friend class CDelayedMessageStorerOp;
+	// <qmail>
+    friend class CDelayedAddNewOrRemoveChildPartOp;
+    friend class CDelayedOp;
+	// </qmail>
 	protected:
     struct TOngoingFetchInfo;
     struct TCacheLine
@@ -82,10 +101,10 @@
     public:
         static CBasePlugin* NewL();
         static CBasePlugin* NewLC();
-        IMPORT_C virtual ~CBasePlugin();
+        virtual ~CBasePlugin();
     protected:
-        IMPORT_C CBasePlugin();
-        IMPORT_C void ConstructL();
+         CBasePlugin();
+         void ConstructL();
 
     // CFSMailPlugin //
     public:
@@ -94,90 +113,90 @@
          * This methoed must be called before destruction of 
          * CBasePlugin derived class. To fix bug EIZU-7XVF2Z.
          */
-        IMPORT_C void DeleteDelayedOpsManager();
-
-        IMPORT_C virtual void ListMailBoxesL(
+         void DeleteDelayedOpsManager();
+         virtual void ListMailBoxesL(
             RArray<TFSMailMsgId>& aMailboxes );
 
-        IMPORT_C virtual CFSMailBox* GetMailBoxByUidL(
+         virtual CFSMailBox* GetMailBoxByUidL(
             const TFSMailMsgId& aMailBox);
 
-	    IMPORT_C virtual void DeleteMailBoxByUidL(
+	     virtual void DeleteMailBoxByUidL(
 	        const TFSMailMsgId& aMailBoxId,
 	        MFSMailRequestObserver& aOperationObserver,
 			const TInt aRequestId );
 
-        IMPORT_C virtual TDesC& GetBrandingIdL(
+         virtual TDesC& GetBrandingIdL(
             const TFSMailMsgId& aMailboxId );
 
-        IMPORT_C virtual void MoveMessagesL(
+         virtual void MoveMessagesL(
             const TFSMailMsgId& aMailBoxId,
             const RArray<TFSMailMsgId>& aMessageIds,
             const TFSMailMsgId& aSourceFolderId,
             const TFSMailMsgId& aDestinationFolderId );
 
-        IMPORT_C virtual void CopyMessagesL(
+         virtual void CopyMessagesL(
             const TFSMailMsgId& aMailBoxId,
             const RArray<TFSMailMsgId>& aMessageIds,
             RArray<TFSMailMsgId>& aNewMessages,
             const TFSMailMsgId& aSourceFolderId,
             const TFSMailMsgId& aDestinationFolderId );
 
-        IMPORT_C MDesCArray* GetMrusL(
+         MDesCArray* GetMrusL(
             const TFSMailMsgId& aMailBoxId );
 
-        IMPORT_C void SetMrusL(
+         void SetMrusL(
             const TFSMailMsgId& aMailBoxId,
             MDesCArray* aNewMruList );
 
-        IMPORT_C void GoOnlineL(
+         void GoOnlineL(
             const TFSMailMsgId& aMailBoxId );
 
-        IMPORT_C void GoOfflineL(
+         void GoOfflineL(
             const TFSMailMsgId& aMailBoxId );
 
-        IMPORT_C const TFSProgress GetLastSyncStatusL(
+         const TFSProgress GetLastSyncStatusL(
             const TFSMailMsgId& aMailBoxId );
 
-        IMPORT_C void RefreshNowL(
+         void RefreshNowL(
             const TFSMailMsgId& aMailBoxId,
          	MFSMailRequestObserver& aOperationObserver,
-         	TInt aRequestId );
+         	TInt aRequestId,
+         	const TBool aSilentConnection=EFalse );
 
-        IMPORT_C virtual CFSMailFolder* GetFolderByUidL(
+         virtual CFSMailFolder* GetFolderByUidL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aFolderId );
 
-        IMPORT_C virtual CFSMailFolder* CreateFolderL(
+         virtual CFSMailFolder* CreateFolderL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aFolderId,
             const TDesC& aFolderName,
             const TBool aSync );
 
-        IMPORT_C virtual void DeleteFolderByUidL(
+         virtual void DeleteFolderByUidL(
             const TFSMailMsgId& aMailBox,
             const TFSMailMsgId& aFolder );
 
-        IMPORT_C virtual void ListFoldersL(
+         virtual void ListFoldersL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aFolderId,
             RPointerArray<CFSMailFolder>& aFolderList );
 
-        IMPORT_C virtual void ListFoldersL(
+         virtual void ListFoldersL(
             const TFSMailMsgId& aMailBoxId,
             RPointerArray<CFSMailFolder>& aFolderList );
 
-        IMPORT_C virtual TFSMailMsgId GetStandardFolderIdL(
+         virtual TFSMailMsgId GetStandardFolderIdL(
             const TFSMailMsgId& aMailBoxId,
             const TFSFolderType aFolderType );
 
-        IMPORT_C virtual MFSMailIterator* ListMessagesL(
+         virtual MFSMailIterator* ListMessagesL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aFolderId,
             const TFSMailDetails aDetails,
             const RArray<TFSMailSortCriteria>& aSorting );
 
-        IMPORT_C virtual CFSMailMessage* GetMessageByUidL(
+         virtual CFSMailMessage* GetMessageByUidL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aFolderId,
             const TFSMailMsgId& aMessageId,
@@ -187,30 +206,51 @@
          * The delete is executed asynchronously. The base plugin will queue
          * the request and return immediately.
          */
-        IMPORT_C virtual void DeleteMessagesByUidL(
+         virtual void DeleteMessagesByUidL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aFolderId,
             const RArray<TFSMailMsgId>& aMessages );
 
-        IMPORT_C virtual CFSMailMessage* CreateMessageToSendL(
+         virtual CFSMailMessage* CreateMessageToSendL(
             const TFSMailMsgId& aMailBox );
+// <qmail>
+        virtual void CreateMessageToSendL(
+            const TFSMailMsgId& aMailBoxId,
+            MFSMailRequestObserver& aOperationObserver,
+            const TInt aRequestId );
+// </qmail>
 
-        IMPORT_C virtual CFSMailMessage* CreateForwardMessageL(
+         virtual CFSMailMessage* CreateForwardMessageL(
             const TFSMailMsgId& aMailBox,
             const TFSMailMsgId& aOriginal,
             const TDesC& aHeaderDescriptor );
 
-        IMPORT_C virtual CFSMailMessage* CreateReplyMessageL(
+         virtual CFSMailMessage* CreateReplyMessageL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aOriginalMessageId,
             const TBool aReplyToAll,
             const TDesC& aHeaderDescriptor );
 
-        IMPORT_C virtual void StoreMessageL(
+         virtual void StoreMessageL(
             const TFSMailMsgId& aMailBoxId,
             CFSMailMessage& aMessage );
-
-        IMPORT_C virtual void FetchMessagesL(
+        
+// <qmail>
+         void StoreMessagesL(
+                const TFSMailMsgId& aMailBoxId,
+                RPointerArray<CFSMailMessage> &messages,
+                MFSMailRequestObserver& aOperationObserver,
+                const TInt aRequestId );
+// </qmail>
+        
+// <qmail>
+        virtual void StoreMessagePartsL(
+               RPointerArray<CFSMailMessagePart>& aMessageParts,
+               MFSMailRequestObserver& aOperationObserver,
+               const TInt aRequestId);
+// <//qmail>
+		
+         virtual void FetchMessagesL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aFolderId,
             const RArray<TFSMailMsgId>& aMessageIds,
@@ -218,7 +258,7 @@
             MFSMailRequestObserver& aObserver,
             TInt aRequestId );
 
-        IMPORT_C virtual void FetchMessagePartsL(
+         virtual void FetchMessagePartsL(
             const TFSMailMsgId& aMailBoxId,
      		const TFSMailMsgId& aFolderId,
      		const TFSMailMsgId& aMessageId,
@@ -227,21 +267,21 @@
 			const TInt aRequestId,
         	const TUint aPreferredByteCount );
 
-        IMPORT_C virtual void GetMessagesL(
+         virtual void GetMessagesL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aParentFolderId,
             const RArray<TFSMailMsgId>& aMessageIds,
             RPointerArray<CFSMailMessage>& aMessageList,
             TFSMailDetails aDetails );
 
-        IMPORT_C virtual void ChildPartsL(
+         virtual void ChildPartsL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aParentFolderId,
 			const TFSMailMsgId& aMessageId,
      		const TFSMailMsgId& aParentId,
      		RPointerArray<CFSMailMessagePart>& aParts );
 
-        IMPORT_C virtual CFSMailMessagePart* NewChildPartL(
+         virtual CFSMailMessagePart* NewChildPartL(
             const TFSMailMsgId& aMailBoxId,
         	const TFSMailMsgId& aParentFolderId,
 			const TFSMailMsgId& aMessageId,
@@ -249,7 +289,7 @@
         	const TFSMailMsgId& aInsertBefore,
         	const TDesC& aContentType );
 
-        IMPORT_C virtual CFSMailMessagePart* CopyMessageAsChildPartL(
+         virtual CFSMailMessagePart* CopyMessageAsChildPartL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aParentFolderId,
 			const TFSMailMsgId& aMessageId,
@@ -257,47 +297,57 @@
         	const TFSMailMsgId& aInsertBefore,
         	const CFSMailMessage& aMessage );
 
-        IMPORT_C virtual void RemoveChildPartL(
+         virtual void RemoveChildPartL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aParentFolderId,
         	const TFSMailMsgId& aMessageId,
             const TFSMailMsgId& aParentPartId,
             const TFSMailMsgId& aPartId );
+         // <qmail>
+         virtual void RemoveChildPartL(
+             const TFSMailMsgId& aMailBoxId,
+             const TFSMailMsgId& aParentFolderId,
+             const TFSMailMsgId& aMessageId,
+             const TFSMailMsgId& aParentPartId,
+             const TFSMailMsgId& aPartId,
+             MFSMailRequestObserver& aOperationObserver,
+             const TInt aRequestId );
+         // </qmail>
 
-        IMPORT_C virtual void SetPartContentFromFileL(
+         virtual void SetPartContentFromFileL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aParentFolderId,
             const TFSMailMsgId& aMessageId,
             const TFSMailMsgId& aMessagePartId,
             const TDesC& aFilePath );
 
-        IMPORT_C virtual void StoreMessagePartL(
+         virtual void StoreMessagePartL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aParentFolderId,
          	const TFSMailMsgId& aMessageId,
          	CFSMailMessagePart& aMessagePart );
 
-        IMPORT_C virtual CFSMailMessagePart* MessagePartL(
+         virtual CFSMailMessagePart* MessagePartL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aParentFolderId,
             const TFSMailMsgId& aMessageId,
             const TFSMailMsgId& aMessagePartId );
 
-        IMPORT_C virtual TInt GetMessagePartFileL(
+         virtual TInt GetMessagePartFileL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aParentFolderId,
             const TFSMailMsgId& aMessageId,
             const TFSMailMsgId& aMessagePartId,
             RFile& aFileHandle );
 
-        IMPORT_C virtual void CopyMessagePartFileL(
+         virtual void CopyMessagePartFileL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aParentFolderId,
             const TFSMailMsgId& aMessageId,
             const TFSMailMsgId& aMessagePartId,
             const TDesC& aFilePath );
 
-	    IMPORT_C virtual void GetContentToBufferL(
+	     virtual void GetContentToBufferL(
 	        const TFSMailMsgId& aMailBoxId,
 	        const TFSMailMsgId& aParentFolderId,
 	 		const TFSMailMsgId& aMessageId,
@@ -305,72 +355,72 @@
 	 		TDes& aBuffer,
 	 		TUint aStartOffset );
 
-	    IMPORT_C virtual void SetContentL(
+	     virtual void SetContentL(
 	        const TDesC& aBuffer,
 	        const TFSMailMsgId& aMailBoxId,
 	        const TFSMailMsgId& aParentFolderId,
             const TFSMailMsgId& aMessageId,
             const TFSMailMsgId& aMessagePartId);
 
-        IMPORT_C virtual void RemovePartContentL(
+         virtual void RemovePartContentL(
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aParentFolderId,
             const TFSMailMsgId& aMessageId,
             const RArray<TFSMailMsgId>& aPartIds );
 
-	    IMPORT_C virtual void SearchL(
+	     virtual void SearchL(
 	        const TFSMailMsgId& aMailBoxId,
 			const RArray<TFSMailMsgId>& aFolderIds,
 			const RPointerArray<TDesC>& aSearchStrings,
 			const TFSMailSortCriteria& aSortCriteria,
 			MFSMailBoxSearchObserver& aSearchObserver );
 
-    	IMPORT_C virtual void CancelSearch(
+    	 virtual void CancelSearch(
     	    const TFSMailMsgId& aMailBoxId );
 
-        IMPORT_C virtual void ClearSearchResultCache(
+         virtual void ClearSearchResultCache(
             const TFSMailMsgId& aMailBoxId );
 
-        IMPORT_C virtual void AddObserverL(
+         virtual void AddObserverL(
             MFSMailEventObserver& aObserver );
 
-        IMPORT_C virtual void RemoveObserver(
+         virtual void RemoveObserver(
             MFSMailEventObserver& aObserver );
 
-        IMPORT_C virtual void UnregisterRequestObserver(
+         virtual void UnregisterRequestObserver(
             TInt aRequestId );
 
-        IMPORT_C virtual void SendMessageL(
+         virtual void SendMessageL(
             CFSMailMessage& aMessage );
 
-        IMPORT_C virtual TFSProgress StatusL(
+         virtual TFSProgress StatusL(
             TInt aRequestId );
 
-        IMPORT_C virtual void CancelL(
+         virtual void CancelL(
             TInt aRequestId );
 
-        IMPORT_C virtual void SubscribeMailboxEventsL(
+         virtual void SubscribeMailboxEventsL(
             const TFSMailMsgId& aMailboxId,
             MFSMailEventObserver& aObserver );
 
-        IMPORT_C virtual void UnsubscribeMailboxEvents(
+         virtual void UnsubscribeMailboxEvents(
             const TFSMailMsgId& aMailboxId,
             MFSMailEventObserver& aObserver );
-
-        IMPORT_C virtual TSSMailSyncState CurrentSyncState(
+//<qmail>
+         virtual TSSMailSyncState CurrentSyncState(
+            const TFSMailMsgId& aMailboxId );
+//</qmail>
+         virtual TFSMailBoxStatus GetMailBoxStatus(
             const TFSMailMsgId& aMailboxId );
 
-        IMPORT_C virtual TFSMailBoxStatus GetMailBoxStatus(
-            const TFSMailMsgId& aMailboxId );
-
-        IMPORT_C virtual TBool MailboxHasCapabilityL(
+         virtual TBool MailboxHasCapabilityL(
             TFSMailBoxCapabilities aCapability,
 	 		TFSMailMsgId aMailBoxId );
 
 	    /**
 	     * Create a new ChildPart using a file path
 	     */
-	    IMPORT_C virtual CFSMailMessagePart* NewChildPartFromFileL(
+	     virtual CFSMailMessagePart* NewChildPartFromFileL(
 		    const TFSMailMsgId& aMailBoxId,
 		    const TFSMailMsgId& aParentFolderId,
 		    const TFSMailMsgId& aMessageId,
@@ -383,45 +433,55 @@
          *  NOTE 1: RFs.ShareProtected() must have been called already before calling this method.
          *  NOTE 2: The ownersip of the RFile handle (aFile) is transferred to this method.
 	     */
-	    IMPORT_C virtual CFSMailMessagePart* NewChildPartFromFileL(
+	     virtual CFSMailMessagePart* NewChildPartFromFileL(
 		    const TFSMailMsgId& aMailBoxId,
 		    const TFSMailMsgId& aParentFolderId,
 		    const TFSMailMsgId& aMessageId,
 		    const TFSMailMsgId& aParentPartId,
 			const TDesC& aContentType,
 		    RFile& aFile );
+	     // <qmail>
+	     virtual void NewChildPartFromFileL(
+	         const TFSMailMsgId& aMailBoxId,
+	         const TFSMailMsgId& aParentFolderId,
+	         const TFSMailMsgId& aMessageId,
+	         const TFSMailMsgId& aParentPartId,
+	         const TDesC& aContentType,
+	         const TDesC& aFilePath, 
+	         MFSMailRequestObserver& aOperationObserver,
+	         const TInt aRequestId );
+	     // </qmail>
+         virtual TInt WizardDataAvailableL();
 
-        IMPORT_C virtual TInt WizardDataAvailableL();
-
-        IMPORT_C virtual void AuthenticateL(
+         virtual void AuthenticateL(
             MFSMailRequestObserver& aOperationObserver,
             TInt aRequestId );
 
-        IMPORT_C virtual void SetCredentialsL(
+         virtual void SetCredentialsL(
             const TFSMailMsgId& aMailBoxId,
             const TDesC& aUsername,
             const TDesC& aPassword );
 
-        IMPORT_C virtual TInt CancelSyncL(
+         virtual TInt CancelSyncL(
         	const TFSMailMsgId& aMailBoxId );
 
-        IMPORT_C virtual void SetMailboxName(
+         virtual void SetMailboxName(
             const TFSMailMsgId& /*aMailboxId*/,
             const TDesC& /*aMailboxName*/ );
 
     // MMsgStoreObserver //
     public:
-        IMPORT_C virtual void SystemEventNotify(
+         virtual void SystemEventNotify(
             TMsgStoreSystemEvent aEvent );
 
-        IMPORT_C virtual void AccountEventNotify(
+         virtual void AccountEventNotify(
             TMsgStoreAccountEvent aEvent,
     		TInt32 aOwnerId,
             const TDesC& aName,
     		const TDesC& aNewName,
     		TMsgStoreId aMailboxId );
 
-        IMPORT_C virtual void ModificationNotify(
+         virtual void ModificationNotify(
             TMsgStoreId aMailBoxId,
             TMsgStoreOperation aOperation,
             TMsgStoreContainerType aType,
@@ -432,18 +492,18 @@
 
     protected:
 
-        IMPORT_C CFSMailAddress* FetchEmailAddressL(
+         CFSMailAddress* FetchEmailAddressL(
             CMsgStorePropertyContainer& aMessage,
             TUint aIdx );
 
-        IMPORT_C CMailboxInfo& GetMailboxInfoL(
+         CMailboxInfo& GetMailboxInfoL(
             TMsgStoreId aId );
 
         void GetMailboxDisplayNameL(
             TMsgStoreId aId,
             RBuf& aDisplayName );
 
-        IMPORT_C virtual TUint GetPluginId();
+         virtual TUint GetPluginId();
 
         /**
          * Get signature string from protocol specific subclass.
@@ -473,7 +533,7 @@
             }
 
 
-        IMPORT_C virtual void TranslateMsgStorePropsL(
+         virtual void TranslateMsgStorePropsL(
             const TFSMailMsgId& aMailBoxId,
             CMsgStorePropertyContainer& aMessage,
             CFSMailMessagePart& aFsMsg,
@@ -484,7 +544,7 @@
          * objects.
          * Sync plugins might be interested in extending the default behavior.
          */
-        IMPORT_C virtual void TranslateMsgStoreMrL(
+         virtual void TranslateMsgStoreMrL(
             const TFSMailMsgId& aMailBoxId,
             CMsgStorePropertyContainer& aMessage,
             CMsgStorePropertyContainer& aCalendar,
@@ -499,16 +559,16 @@
          * @param aSrc input/source Freestyle message.
          * @param aDst output/destination MessageStore message.
          */
-        IMPORT_C virtual void TranslateEmailFwMessageL(
+         virtual void TranslateEmailFwMessageL(
             CFSMailMessagePart& aSrc,
             CMsgStoreMessagePart& aDst,
             TBool aInInbox );
 
-        IMPORT_C virtual void TranslateEmailFwMrL(
+         virtual void TranslateEmailFwMrL(
             MMRInfoObject& aSrc,
             CMsgStorePropertyContainer& aDst );
 
-        IMPORT_C void TranslateEmailFwAttendeeL(
+         void TranslateEmailFwAttendeeL(
             MMROrganizer& aSrc,
             RMsgStoreAddress& aDst );
 
@@ -532,7 +592,7 @@
             TAny* aParam2 = NULL,
             TAny* aParam3 = NULL );
 
-        IMPORT_C virtual void NotifyMailboxEventL(
+         virtual void NotifyMailboxEventL(
                 TFSMailEvent aEvent,
                 TFSMailMsgId aMailBox,
                 TAny* aParam1 = NULL,
@@ -544,7 +604,7 @@
          * looks for the text/plain part.
          * @return the main body text part or NULL if one can not be found.
          */
-        IMPORT_C CMsgStoreMessagePart* GetBodyPartL(
+         CMsgStoreMessagePart* GetBodyPartL(
             CMsgStoreMessage& aMessage,
             const TDesC& aContentType = KFSMailContentTypeTextPlain() );
 
@@ -557,7 +617,7 @@
          * truncated message.
          * @param aKeepAttachments true if the original message attachments are to be kept.
          */
-        IMPORT_C CFSMailMessage* CreateForwardReplyMessageL(
+         CFSMailMessage* CreateForwardReplyMessageL(
             const TFSMailMsgId& aMailBox,
             const TFSMailMsgId& aOriginal,
             const TBool aReplyToAll,
@@ -569,20 +629,20 @@
          * Recursively looks for the part with id aPartId in the part container
          * aParent.
          */
-        IMPORT_C CMsgStoreMessagePart* FindMessagePartL(
+         CMsgStoreMessagePart* FindMessagePartL(
             CMsgStoreMessagePart& aParent,
             TMsgStoreId aPartId );
 
         /**
          * Get MsgStore account object for the specified mailbox id.
          */
-        IMPORT_C CMsgStoreAccount* GetAccountForMsgBoxL(
+         CMsgStoreAccount* GetAccountForMsgBoxL(
             const TFSMailMsgId& aMailboxId );
 
         /**
          * Create a MR reply message.
          */
-        IMPORT_C virtual CFSMailMessage* CreateMrReplyMessageL(
+         virtual CFSMailMessage* CreateMrReplyMessageL(
             const TFSMailMsgId& aMailBoxId,
             MMRInfoObject& aMeetingRequest,
             const TFSMailMsgId& aOriginalMessageId );
@@ -590,7 +650,7 @@
        /**
         * Applyed when an account was deleted for proper cleanup.
         */
-       IMPORT_C  virtual void HandleMailboxDeleteL(
+         virtual void HandleMailboxDeleteL(
            const TFSMailMsgId& aMailboxId );
 
 
@@ -628,11 +688,11 @@
             const TDesC8& aDstProperty,
             RPointerArray<CFSMailAddress>& aRecipients );
 
-        IMPORT_C static void RemoveAllPropertiesL(
+        static void RemoveAllPropertiesL(
             CMsgStorePropertyContainer& aContainer,
             const TDesC8& aName );
 
-        IMPORT_C CMailboxInfo& RefreshMailboxCacheL( TMsgStoreId aMailBoxId );
+         CMailboxInfo& RefreshMailboxCacheL( TMsgStoreId aMailBoxId );
 
         void UnsubscribeMailboxEventsL(
             const TFSMailMsgId& aMailboxId,
@@ -672,7 +732,7 @@
 	    /**
 	     * Called by RemovePartContentL for each part that needs its content removed.
 	     */
-	    IMPORT_C virtual void HandleRemovePartContentL(
+	     virtual void HandleRemovePartContentL(
 	    	CMsgStoreMessage& aMsg,
 	    	CMsgStoreMessagePart& aPart );
 
@@ -692,7 +752,7 @@
          */
 	    void RefreshCachedMailBoxDisplayNameL( TBool& aMailBoxNameHasChanged, const TMsgStoreId& aMailBoxId );
 
-	    IMPORT_C virtual void ReportRequestStatusL(
+	     virtual void ReportRequestStatusL(
             TMsgStoreId aMailBox,
             TMsgStoreId aOtherId,
             TMsgStoreId aMsgId,
@@ -703,24 +763,24 @@
 	     * Finds the corresponding download request object for the part with id
 	     * of aPartId identified by also the mailbox and the message ids.
 	     */
-	    IMPORT_C TBool FindFetchRequestL(
+	     TBool FindFetchRequestL(
 	    	TMsgStoreId aMailBox,
 	    	TMsgStoreId aOtherId,
 	    	TMsgStoreId aMsgId,
 	    	TMsgStoreId aPartId,
 	    	CBasePlugin::TOngoingFetchInfo& aOngoingFetchInfo );
 
-	    IMPORT_C TBool DeleteFetchRequestForPart(
+	     TBool DeleteFetchRequestForPart(
 	    	TOngoingFetchInfo& aFetchInfo );
 
-	    IMPORT_C void DeleteFetchRequest(
+	     void DeleteFetchRequest(
 	    	TOngoingFetchInfo& aFetchInfo );
 
 
     protected:
-	    IMPORT_C void ResetCache();
+	     void ResetCache();
 
-	    IMPORT_C void ResetBodyCache();
+	     void ResetBodyCache();
 
 	    /**
 	     * This method retrieves the specified message store message from a
@@ -733,23 +793,23 @@
 	     * @param aMailBoxId
 	     * @param aMsgId
 	     */
-	    IMPORT_C CMsgStoreMessage* GetCachedMsgL(
+	     CMsgStoreMessage* GetCachedMsgL(
 	        TMsgStoreId aMailBoxId,
 	        TMsgStoreId aMsgId );
 
-	    IMPORT_C CMsgStoreMessagePart* GetCachedBodyL(
+	     CMsgStoreMessagePart* GetCachedBodyL(
 	        TMsgStoreId aPartId );
 
-	    IMPORT_C RPointerArray<CMsgStoreMessagePart>& GetCachedMsgChildrenL();
+	     RPointerArray<CMsgStoreMessagePart>& GetCachedMsgChildrenL();
 
-	    IMPORT_C RPointerArray<CMsgStoreMessagePart>& GetCachedBodyChildrenL();
+	     RPointerArray<CMsgStoreMessagePart>& GetCachedBodyChildrenL();
 
-	    IMPORT_C void InvalidateCacheIfNecessary(
+	     void InvalidateCacheIfNecessary(
 	        TMsgStoreId aId,
 	        TMsgStoreId aParentId,
 	        TMsgStoreId aOtherId );
 	    
-	    IMPORT_C virtual const TDesC& CBasePlugin::CalendarFileName() const;
+	     virtual const TDesC& CBasePlugin::CalendarFileName() const;
 
     public:
 
@@ -758,7 +818,7 @@
 	     * instance. The FW's SendMessageL method internally uses this method
 	     * after translating the FW message to the MsgStore format.
 	     */
-	    IMPORT_C void SendMessageL(
+	     void SendMessageL(
             CMsgStoreMailBox& aMailBox,
             CMsgStoreMessage& aMsg,
             const TTime& aSentTime );
@@ -767,7 +827,7 @@
 	     * The delayed ops manager is used to queue asynchronous processing of
 	     * plugin requests.
 	     */
-	    IMPORT_C MDelayedOpsManager& GetDelayedOpsManager();
+	     MDelayedOpsManager& GetDelayedOpsManager();
 
     protected:
 
@@ -777,7 +837,8 @@
         //does not actually own the observers.
         RPointerArray<MFSMailEventObserver> iObservers;
         //async fetch reqs.
-        RPointerArray<CFetchRequester> iReqs;
+        RPointerArray<CFetchRequester> iReqs;       
+        RPointerArray<CDelayedOp> iDelayedOpReqs;
 
         TCacheLine iCacheLine;
 
@@ -812,7 +873,7 @@
  * the FSEF representation and the MsgStore one. This entity groups
  * it in one place.
  */
-class CMailboxInfo : public CBase
+NONSHARABLE_CLASS( CMailboxInfo ) : public CBase
     {
     public:
         CMailboxInfo( CBasePlugin* aBasePlugin )