emailservices/emailcommon/src/CFSMailRequestHandler.cpp
changeset 20 ecc8def7944a
parent 18 578830873419
child 30 759dc5235cdb
--- a/emailservices/emailcommon/src/CFSMailRequestHandler.cpp	Fri Apr 16 14:51:52 2010 +0300
+++ b/emailservices/emailcommon/src/CFSMailRequestHandler.cpp	Mon May 03 12:23:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -15,14 +15,17 @@
 *
 */
 
+// <qmail>
+// Exports removed because entire class is exported from DLL
+#include <nmcommonheaders.h>
+// </qmail>
 
-#include <nmcommonheaders.h>
 #include "emailtrace.h"
 #include "CFSMailRequestHandler.h"
 #include "CFSMailRequestObserver.h"
 
 
-// ================= MEMBER FUNCTIONS ==========================================  
+// ================= MEMBER FUNCTIONS ==========================================    
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::CFSMailRequestHandler
 // -----------------------------------------------------------------------------
@@ -36,7 +39,7 @@
     // reset 
     iPendingRequests.Reset();
     iPluginList.Reset();
-  
+    
     iTempDirName =NULL;
 }
 
@@ -44,7 +47,7 @@
 // CFSMailRequestHandler::~CFSMailRequestHandler
 // -----------------------------------------------------------------------------
  CFSMailRequestHandler::~CFSMailRequestHandler()
-{
+    {
     FUNC_LOG;
     TRAP_IGNORE( CancelAllRequestsL() );
     RemoveAllRequests();
@@ -57,51 +60,56 @@
         // close file server connection
         iFs.Close();        
         }
-}
+    
+    // clear TLS
+    Dll::FreeTls();
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::NewLC
 // -----------------------------------------------------------------------------
  CFSMailRequestHandler* CFSMailRequestHandler::NewLC( 
-                  RPointerArray<CImplementationInformation>& aPluginInfo,
-                  RPointerArray<CFSMailPlugin>& aPlugins )
+                                    RPointerArray<CImplementationInformation>& aPluginInfo,
+                                    RPointerArray<CFSMailPlugin>& aPlugins )
 {
     FUNC_LOG;
-    CFSMailRequestHandler* pluginHandler = new (ELeave) CFSMailRequestHandler();
-    CleanupStack:: PushL(pluginHandler);
-    pluginHandler->ConstructL( aPluginInfo, aPlugins );
-    return pluginHandler;
+  CFSMailRequestHandler* pluginHandler = new (ELeave) CFSMailRequestHandler();
+  CleanupStack:: PushL(pluginHandler);
+  pluginHandler->ConstructL( aPluginInfo, aPlugins );
+  return pluginHandler;
 } 
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::NewL
 // -----------------------------------------------------------------------------
  CFSMailRequestHandler* CFSMailRequestHandler::NewL( 
-                  RPointerArray<CImplementationInformation>& aPluginInfo,
-                  RPointerArray<CFSMailPlugin>& aPlugins )
+                                    RPointerArray<CImplementationInformation>& aPluginInfo,
+                                    RPointerArray<CFSMailPlugin>& aPlugins )
 {
     FUNC_LOG;
-    CFSMailRequestHandler* pluginHandler =  
-          CFSMailRequestHandler::NewLC( aPluginInfo, aPlugins );
-    CleanupStack:: Pop(pluginHandler);
-    return pluginHandler;
+  CFSMailRequestHandler* pluginHandler =  
+                CFSMailRequestHandler::NewLC( aPluginInfo, aPlugins );
+  CleanupStack:: Pop(pluginHandler);
+  return pluginHandler;
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::ConstructL
 // -----------------------------------------------------------------------------
 void CFSMailRequestHandler::ConstructL( 
-                RPointerArray<CImplementationInformation> /*aPluginInfo*/,
-                RPointerArray<CFSMailPlugin> /*aPlugins*/ )
+                                RPointerArray<CImplementationInformation> /*aPluginInfo*/,
+                                RPointerArray<CFSMailPlugin> /*aPlugins*/ )
 {
     FUNC_LOG;
+
+
 }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::GetPluginByUid
 // -----------------------------------------------------------------------------
  CFSMailPlugin* CFSMailRequestHandler::GetPluginByUid( TFSMailMsgId aObjectId )
-{
+    {
     FUNC_LOG;
 
     for(TInt i=0;i<iPluginList.Count();i++)
@@ -111,48 +119,50 @@
             return iPluginList[i]->iPlugin;
             }
         }
+
+
     return NULL;
-}
-  
+    }
+    
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::InitAsyncRequestL
 // -----------------------------------------------------------------------------
  TFSPendingRequest CFSMailRequestHandler::InitAsyncRequestL( 
-                          TUid aPluginId,
-                          MFSMailRequestObserver& aOperationObserver )
-{
+                                                    TUid aPluginId,
+                                                    MFSMailRequestObserver& aOperationObserver)
+    {
     FUNC_LOG;
-    TFSPendingRequest newRequest;
-    for(TInt i=0;i<iPendingRequests.Count();i++)
-        {
-        if(iPendingRequests[i].iRequestStatus != TFSPendingRequest::EFSRequestPending)
+        TFSPendingRequest newRequest;
+        for(TInt i=0;i<iPendingRequests.Count();i++)
             {
-            iPendingRequests[i].iPluginId = aPluginId;
-            iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestPending;
-            iPendingRequests[i].iObserver->SetUserObserver(aOperationObserver);     
-            newRequest = iPendingRequests[i];
-            return newRequest;
+            if(iPendingRequests[i].iRequestStatus != TFSPendingRequest::EFSRequestPending)
+                {
+                iPendingRequests[i].iPluginId = aPluginId;
+                iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestPending;
+                iPendingRequests[i].iObserver->SetUserObserver(aOperationObserver);         
+                newRequest = iPendingRequests[i];
+                return newRequest;
+                }
             }
-        }
 
-    newRequest.iRequestId = iPendingRequests.Count();
-    newRequest.iPluginId = aPluginId;
-    newRequest.iRequestStatus = TFSPendingRequest::EFSRequestPending;     
-    CFSMailRequestObserver* observer = 
+        newRequest.iRequestId = iPendingRequests.Count();
+        newRequest.iPluginId = aPluginId;
+        newRequest.iRequestStatus = TFSPendingRequest::EFSRequestPending;           
+        CFSMailRequestObserver* observer = 
             CFSMailRequestObserver::NewL(*this, aOperationObserver);
-    newRequest.iObserver = observer;
-    iPendingRequests.Append(newRequest);
-      
-    return newRequest;
-}
+        newRequest.iObserver = observer;
+        iPendingRequests.Append(newRequest);
+        
+        return newRequest;
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::CompleteRequest
 // -----------------------------------------------------------------------------
  void CFSMailRequestHandler::CompleteRequest( TInt aRequestId )
-{
+    {
     FUNC_LOG;
-    for(TInt i=0;i<iPendingRequests.Count();i++)
+        for(TInt i=0;i<iPendingRequests.Count();i++)
         {
         if(iPendingRequests[i].iRequestId == aRequestId)
             {
@@ -160,85 +170,87 @@
             break;
             }
         }
-}
-  
+
+    }
+    
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::CancelRequestL
 // -----------------------------------------------------------------------------
  void CFSMailRequestHandler::CancelRequestL( TInt aRequestId )
-{
+    {
     FUNC_LOG;
-    for(TInt i=0;i<iPendingRequests.Count();i++)
+        for(TInt i=0;i<iPendingRequests.Count();i++)
         {
-        if(iPendingRequests[i].iRequestId == aRequestId 
-            && iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending)
+        if(iPendingRequests[i].iRequestId == aRequestId &&
+            iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending)
             {
             TFSMailMsgId pluginId(iPendingRequests[i].iPluginId,0);
-            CFSMailPlugin* plugin = GetPluginByUid(pluginId);
-            plugin->CancelL(aRequestId);
+            if(CFSMailPlugin* plugin = GetPluginByUid(pluginId))
+                {
+                plugin->CancelL(aRequestId);
+                }
             iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestCancelled;
             break;
             }
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::CancelAllRequestsL
 // -----------------------------------------------------------------------------
  void CFSMailRequestHandler::CancelAllRequestsL( )
-{
+    {
     FUNC_LOG;
-    for(TInt i=0;i<iPendingRequests.Count();i++)
+        for(TInt i=0;i<iPendingRequests.Count();i++)
         {
-        if(iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending)
-            {
-            TFSMailMsgId pluginId(iPendingRequests[i].iPluginId,0);
-            CFSMailPlugin* plugin = GetPluginByUid(pluginId);
-            plugin->CancelL(iPendingRequests[i].iRequestId);
-            iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestCancelled;
-            }
+            if(iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending)
+                {
+                TFSMailMsgId pluginId(iPendingRequests[i].iPluginId,0);
+                if(CFSMailPlugin* plugin = GetPluginByUid(pluginId))
+                    {
+                    plugin->CancelL(iPendingRequests[i].iRequestId);
+                    }
+                iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestCancelled;
+                }
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::AddPluginL
 // -----------------------------------------------------------------------------
  void CFSMailRequestHandler::AddPluginL( TUid aPluginId, CFSMailPlugin* aPlugin )
-{
+    {
     FUNC_LOG;
 
     CFSMailPluginData* pluginData = new (ELeave) CFSMailPluginData;
     pluginData->iPluginId = aPluginId;
     pluginData->iPlugin = aPlugin;
-    iPluginList.Append(pluginData);       
-}
+    iPluginList.Append(pluginData);             
+
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::RemoveAllRequests
 // -----------------------------------------------------------------------------
 void CFSMailRequestHandler::RemoveAllRequests()
-{
+    {
     FUNC_LOG;
     for(TInt i=0;i<iPendingRequests.Count();i++)
         {
         delete iPendingRequests[i].iObserver;
         iPendingRequests[i].iObserver = NULL;
         }
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::GetTempFileL( )
 // -----------------------------------------------------------------------------
-// <qmail>
  RFile CFSMailRequestHandler::GetTempFileL( TFSMailMsgId aContentId, TFileName aFileName )
-// </qmail>
 {
     FUNC_LOG;
     
     // get temp dir path
-    // <qmail>
-    if(!iTempDirName)
-    // </qmail>
+    if(iTempDirName == NULL)
         {
         // open file server connection
         User::LeaveIfError(iFs.Connect());
@@ -255,22 +267,22 @@
     aFileName.AppendNum(aContentId.Id());
     file.Replace(iFs,aFileName,EFileWrite);
     return file;
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::CleanTempDirL
 // -----------------------------------------------------------------------------
  void CFSMailRequestHandler::CleanTempDirL( )
-{
+    {
     FUNC_LOG;
-}
+    }
 
 // -----------------------------------------------------------------------------
 // CFSMailRequestHandler::GetTempDirL
 // -----------------------------------------------------------------------------
  TDesC& CFSMailRequestHandler::GetTempDirL( )
-{
+    {
     FUNC_LOG;
     return *iTempDirName;
-}
+    }