emailservices/emailcommon/src/CFSMailFolder.cpp
changeset 20 ecc8def7944a
parent 18 578830873419
child 30 759dc5235cdb
--- a/emailservices/emailcommon/src/CFSMailFolder.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailFolder.cpp	Mon May 03 12:23:15 2010 +0300
@@ -15,9 +15,11 @@
 *
 */
 
+// <qmail>
+#include <nmcommonheaders.h>
+// </qmail>
 
 //<cmail>
-#include <nmcommonheaders.h>
 #include "emailtrace.h"
 #include "CFSMailFolder.h"
 #include "CFSMailPlugin.h"
@@ -33,10 +35,10 @@
 EXPORT_C CFSMailFolder* CFSMailFolder::NewLC( TFSMailMsgId aFolderId )
 {
     FUNC_LOG;
-    CFSMailFolder* api = new (ELeave) CFSMailFolder();
-    CleanupStack:: PushL(api);
-    api->ConstructL( aFolderId );
-    return api;
+  CFSMailFolder* api = new (ELeave) CFSMailFolder();
+  CleanupStack:: PushL(api);
+  api->ConstructL( aFolderId );
+  return api;
 } 
 
 // -----------------------------------------------------------------------------
@@ -45,9 +47,9 @@
 EXPORT_C CFSMailFolder* CFSMailFolder::NewL( TFSMailMsgId aFolderId )
 {
     FUNC_LOG;
-    CFSMailFolder* api =  CFSMailFolder::NewLC( aFolderId );
-    CleanupStack:: Pop(api);
-    return api;
+  CFSMailFolder* api =  CFSMailFolder::NewLC( aFolderId );
+  CleanupStack:: Pop(api);
+  return api;
 }
 
 // -----------------------------------------------------------------------------
@@ -56,6 +58,7 @@
 CFSMailFolder::CFSMailFolder()
 {
     FUNC_LOG;
+
 }
 
 // -----------------------------------------------------------------------------
@@ -64,13 +67,12 @@
 void CFSMailFolder::ConstructL( TFSMailMsgId aFolderId )
 {
     FUNC_LOG;
+// <qmail>
     CFSMailFolderBase::ConstructL( aFolderId );
+// </qmail>
     
-    // get requesthandler pointer
-    iRequestHandler = static_cast<CFSMailRequestHandler*>(Dll::Tls());
-
-    // set folder id
-    iFolderId = aFolderId;
+	// get requesthandler pointer
+	iRequestHandler = static_cast<CFSMailRequestHandler*>(Dll::Tls());
 }
 
 // -----------------------------------------------------------------------------
@@ -79,170 +81,179 @@
 EXPORT_C CFSMailFolder::~CFSMailFolder()
 {
     FUNC_LOG;
+
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailFolder::ListMessagesL
 // -----------------------------------------------------------------------------
 EXPORT_C MFSMailIterator* CFSMailFolder::ListMessagesL( const TFSMailDetails aDetails,
-                    const RArray<TFSMailSortCriteria>& aSorting )
+        						const RArray<TFSMailSortCriteria>& aSorting)
 {
     FUNC_LOG;
 
-    CFSMailIterator* iterator = NULL;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
-        {
-        MFSMailIterator* pluginIterator =
-            plugin->ListMessagesL(GetMailBoxId(),GetFolderId(),aDetails,aSorting);
-        if(pluginIterator)
-            {
-            iterator = CFSMailIterator::NewL(*pluginIterator,iRequestHandler );
-            }
-        }
-    return iterator;
+	CFSMailIterator* iterator = NULL;
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
+		{
+		MFSMailIterator* pluginIterator =
+		plugin->ListMessagesL(GetMailBoxId(),GetFolderId(),aDetails,aSorting);
+		if(pluginIterator)
+			{
+			iterator = CFSMailIterator::NewL(*pluginIterator,iRequestHandler );
+			}
+		}
+	return iterator;
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailFolder::FetchMessagesL
 // -----------------------------------------------------------------------------
-EXPORT_C TInt CFSMailFolder::FetchMessagesL( const RArray<TFSMailMsgId>& aMessageIds,
-                          TFSMailDetails aDetails,
-                          MFSMailRequestObserver& aObserver )
-{
+EXPORT_C TInt CFSMailFolder::FetchMessagesL( 	const RArray<TFSMailMsgId>& aMessageIds,
+     							 				TFSMailDetails aDetails,
+     							 				MFSMailRequestObserver& aObserver )
+	{
     FUNC_LOG;
-    // init asynchronous request
-    CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId());
-  
+	// init asynchronous request
+	CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId());
     TFSPendingRequest request = 
-      iRequestHandler->InitAsyncRequestL( GetFolderId().PluginId(), aObserver );
-      
-    MFSMailRequestObserver* observer = request.iObserver;
-    TRAPD(err,plugin->FetchMessagesL( GetMailBoxId(),
-                      GetFolderId(),
-                      aMessageIds,
-                      aDetails,
-                      *observer,
-                      request.iRequestId));
+    	iRequestHandler->InitAsyncRequestL(	GetFolderId().PluginId(), aObserver );
+
+    TInt err = KErrNone;
+    
+    if (plugin)
+        {
+        MFSMailRequestObserver* observer = request.iObserver;
+        TRAP(err,plugin->FetchMessagesL(	GetMailBoxId(),
+                                            GetFolderId(),
+                                            aMessageIds,
+                                            aDetails,
+                                            *observer,
+                                            request.iRequestId));
+        }
+    else 
+        {
+        err = KErrNotFound;        
+        }
+    
     if(err != KErrNone)
         {
         iRequestHandler->CompleteRequest(request.iRequestId);
         User::Leave(err);
         }
-    return request.iRequestId;  
-}
+    return request.iRequestId;
+    
+	}
 
 
 // -----------------------------------------------------------------------------
 // CFSMailFolder::GetSubFoldersL
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailFolder::GetSubFoldersL( RPointerArray<CFSMailFolder>& aSubFolders )
+EXPORT_C void CFSMailFolder::GetSubFoldersL(RPointerArray<CFSMailFolder>& aSubFolders)
 {
     FUNC_LOG;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
-        {
-        TRAPD(err,plugin->ListFoldersL( GetMailBoxId(), GetFolderId(), aSubFolders));
-        if(err != KErrNone)
-            {
-            aSubFolders.ResetAndDestroy();
-            }
-        }
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
+		{
+		TRAPD(err,plugin->ListFoldersL( GetMailBoxId(), GetFolderId(), aSubFolders));
+		if(err != KErrNone)
+			{
+			aSubFolders.ResetAndDestroy();
+			}
+		}
 }
-  
+	
 // -----------------------------------------------------------------------------
 // CFSMailFolder::RemoveMessageL
 // -----------------------------------------------------------------------------
-EXPORT_C void CFSMailFolder::RemoveMessageL( TFSMailMsgId aMessage )
+EXPORT_C void CFSMailFolder::RemoveMessageL(TFSMailMsgId aMessage)
 {
     FUNC_LOG;
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
-        {
-        RArray<TFSMailMsgId> messages;
-        messages.Reset();
-        messages.Append(aMessage);
-        plugin->DeleteMessagesByUidL(GetMailBoxId(),GetFolderId(),messages);
-        messages.Close();
-        }
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
+		{
+		RArray<TFSMailMsgId> messages;
+		messages.Reset();
+		messages.Append(aMessage);
+		plugin->DeleteMessagesByUidL(GetMailBoxId(),GetFolderId(),messages);
+		messages.Close();
+		}
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailFolder::SupportsCopyFromL
 // -----------------------------------------------------------------------------
 EXPORT_C TBool CFSMailFolder::SupportsCopyFromL( TFSFolderType aFolderType )
-{
+	{
     FUNC_LOG;
-  
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
-        {
-        TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId());
-        if(onlineStatus == EFSMailBoxOnline)
-            {
-            for(TInt i=0;i<iCopyOnlineBlocked.Count();i++)
-                {
-                if(iCopyOnlineBlocked[i] == aFolderType)
-                    {
-                    return EFalse;
-                    }     
-                }
-            }
-        else if(onlineStatus == EFSMailBoxOffline)
-            {
-            for(TInt i=0;i<iCopyOfflineBlocked.Count();i++)
-                {
-                if(iCopyOfflineBlocked[i] == aFolderType)
-                    {
-                    return EFalse;
-                    }
-                }
-            }
-    }
-    return ETrue;
-}
+	
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
+		{
+		TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId());
+		if(onlineStatus == EFSMailBoxOnline)
+			{
+			for(TInt i=0;i<iCopyOnlineBlocked.Count();i++)
+				{
+				if(iCopyOnlineBlocked[i] == aFolderType)
+					{
+					return EFalse;
+					}			
+				}
+			}
+		else if(onlineStatus == EFSMailBoxOffline)
+			{
+			for(TInt i=0;i<iCopyOfflineBlocked.Count();i++)
+				{
+				if(iCopyOfflineBlocked[i] == aFolderType)
+					{
+					return EFalse;
+					}
+				}
+			}
+		}
+		return ETrue;
+	}
 
 // -----------------------------------------------------------------------------
 // CFSMailFolder::SupportsMoveFromL
 // -----------------------------------------------------------------------------
 EXPORT_C TBool CFSMailFolder::SupportsMoveFromL( TFSFolderType aFolderType )
-{
+	{
     FUNC_LOG;
 
-    if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
-        {
-        TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId());
-        if(onlineStatus == EFSMailBoxOnline)
-            {
-            for(TInt i=0;i<iMoveOnlineBlocked.Count();i++)
-                {
-                if(iMoveOnlineBlocked[i] == aFolderType)
-                    {
-                    return EFalse;
-                    }     
-                }
-            }
-        else if(onlineStatus == EFSMailBoxOffline)
-            {
-            for(TInt i=0;i<iMoveOfflineBlocked.Count();i++)
-                {
-                if(iMoveOfflineBlocked[i] == aFolderType)
-                    {
-                    return EFalse;
-                    }
-                }
-            }
-    }
-    return ETrue;
-}
-
+	if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()))
+		{
+		TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId());
+		if(onlineStatus == EFSMailBoxOnline)
+			{
+			for(TInt i=0;i<iMoveOnlineBlocked.Count();i++)
+				{
+				if(iMoveOnlineBlocked[i] == aFolderType)
+					{
+					return EFalse;
+					}			
+				}
+			}
+		else if(onlineStatus == EFSMailBoxOffline)
+			{
+			for(TInt i=0;i<iMoveOfflineBlocked.Count();i++)
+				{
+				if(iMoveOfflineBlocked[i] == aFolderType)
+					{
+					return EFalse;
+					}
+				}
+			}
+		}
+		return ETrue;
+	
+	}
 // -----------------------------------------------------------------------------
 // CFSMailFolder::RemoveDownLoadedAttachmentsL
 // -----------------------------------------------------------------------------
 EXPORT_C void CFSMailFolder::RemoveDownLoadedAttachmentsL()
-{
+    {
     FUNC_LOG;
     
     CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId());
-    // <qmail>
-    if(plugin)
-    // </qmail
+    if(plugin != NULL)
         {
         MFSMailIterator* iterator = NULL;
 
@@ -273,5 +284,24 @@
             delete iterator;
             }
         }
-}
+    }
 
+// -----------------------------------------------------------------------------
+// CFSMailFolder::ReleaseExtension
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailFolder::ReleaseExtension( CEmailExtension* aExtension )
+    {
+    FUNC_LOG;
+    // no specialized behaviour, call base class
+    CExtendableEmail::ReleaseExtension( aExtension );
+    }
+    
+// -----------------------------------------------------------------------------
+// CFSMailFolder::ExtensionL
+// -----------------------------------------------------------------------------
+EXPORT_C CEmailExtension* CFSMailFolder::ExtensionL( const TUid& aInterfaceUid )
+    {
+    FUNC_LOG;
+    return CExtendableEmail::ExtensionL( aInterfaceUid );
+    }
+