diff -r 578830873419 -r ecc8def7944a emailservices/emailcommon/src/CFSMailFolder.cpp --- 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 @@ * */ +// +#include +// // -#include #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; +// CFSMailFolderBase::ConstructL( aFolderId ); +// - // get requesthandler pointer - iRequestHandler = static_cast(Dll::Tls()); - - // set folder id - iFolderId = aFolderId; + // get requesthandler pointer + iRequestHandler = static_cast(Dll::Tls()); } // ----------------------------------------------------------------------------- @@ -79,170 +81,179 @@ EXPORT_C CFSMailFolder::~CFSMailFolder() { FUNC_LOG; + } // ----------------------------------------------------------------------------- // CFSMailFolder::ListMessagesL // ----------------------------------------------------------------------------- EXPORT_C MFSMailIterator* CFSMailFolder::ListMessagesL( const TFSMailDetails aDetails, - const RArray& aSorting ) + const RArray& 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& aMessageIds, - TFSMailDetails aDetails, - MFSMailRequestObserver& aObserver ) -{ +EXPORT_C TInt CFSMailFolder::FetchMessagesL( const RArray& 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& aSubFolders ) +EXPORT_C void CFSMailFolder::GetSubFoldersL(RPointerArray& 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 messages; - messages.Reset(); - messages.Append(aMessage); - plugin->DeleteMessagesByUidL(GetMailBoxId(),GetFolderId(),messages); - messages.Close(); - } + if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId())) + { + RArray 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;iGetPluginByUid(GetFolderId())) + { + TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId()); + if(onlineStatus == EFSMailBoxOnline) + { + for(TInt i=0;iGetPluginByUid(GetFolderId())) - { - TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId()); - if(onlineStatus == EFSMailBoxOnline) - { - for(TInt i=0;iGetPluginByUid(GetFolderId())) + { + TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId()); + if(onlineStatus == EFSMailBoxOnline) + { + for(TInt i=0;iGetPluginByUid(GetFolderId()); - // - if(plugin) - //