diff -r 578830873419 -r ecc8def7944a emailservices/emailcommon/src/CFSMailRequestHandler.cpp --- 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 @@ * */ +// +// Exports removed because entire class is exported from DLL +#include +// -#include #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& aPluginInfo, - RPointerArray& aPlugins ) + RPointerArray& aPluginInfo, + RPointerArray& 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& aPluginInfo, - RPointerArray& aPlugins ) + RPointerArray& aPluginInfo, + RPointerArray& 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 /*aPluginInfo*/, - RPointerArray /*aPlugins*/ ) + RPointerArray /*aPluginInfo*/, + RPointerArray /*aPlugins*/ ) { FUNC_LOG; + + } // ----------------------------------------------------------------------------- // CFSMailRequestHandler::GetPluginByUid // ----------------------------------------------------------------------------- CFSMailPlugin* CFSMailRequestHandler::GetPluginByUid( TFSMailMsgId aObjectId ) -{ + { FUNC_LOG; for(TInt i=0;iiPlugin; } } + + return NULL; -} - + } + // ----------------------------------------------------------------------------- // CFSMailRequestHandler::InitAsyncRequestL // ----------------------------------------------------------------------------- TFSPendingRequest CFSMailRequestHandler::InitAsyncRequestL( - TUid aPluginId, - MFSMailRequestObserver& aOperationObserver ) -{ + TUid aPluginId, + MFSMailRequestObserver& aOperationObserver) + { FUNC_LOG; - TFSPendingRequest newRequest; - for(TInt i=0;iSetUserObserver(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;iCancelL(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;iCancelL(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 RFile CFSMailRequestHandler::GetTempFileL( TFSMailMsgId aContentId, TFileName aFileName ) -// { FUNC_LOG; // get temp dir path - // - if(!iTempDirName) - // + 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; -} + }