--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailclientapi/src/emailmailbox.cpp Tue Jul 06 14:04:34 2010 +0300
@@ -0,0 +1,662 @@
+/*
+* Copyright (c) 2010 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: This file implements class CEmailMailbox.
+*
+*/
+
+#include <e32cmn.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <viewclipartner.h>
+#include <vwsdefpartner.h>
+#else
+#include <viewcli.h>
+#include <vwsdef.h>
+#endif // SYMBIAN_ENABLE_SPLIT_HEADERS
+
+#include <mmailboxsyncobserver.h>
+#include "emailmailbox.h"
+#include "emailapiutils.h"
+#include "emailaddress.h"
+#include "emailfolder.h"
+#include "emailmessage.h"
+#include "emailmessagesearch.h"
+#include "cfsmailclient.h"
+#include "emailclientapiimpl.h"
+#include "cfsmailplugin.h"
+#include "cfsmailbox.h"
+#include "cfsmailfolder.h"
+#include "emailclientapi.hrh"
+
+#include <XQServiceRequest.h>
+#include "email_services_api.h"
+
+// Constants
+
+#include <QStringList>
+
+_LIT( KNewLine, "\n" );
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+CEmailMailbox* CEmailMailbox::NewL(
+ CPluginData& aPluginData,
+ const TMailboxId& aMailboxId )
+ {
+ CEmailMailbox* self = new ( ELeave ) CEmailMailbox( aPluginData, aMailboxId );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+CEmailMailbox::CEmailMailbox(
+ CPluginData& aPluginData,
+ const TMailboxId& aMailboxId )
+ : iPluginData( aPluginData ),
+ iMailboxId( aMailboxId.iId )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::ConstructL()
+ {
+ iPlugin = iPluginData.ClaimInstanceL();
+ iEventMapper = new ( ELeave ) TObserverEventMapper(
+ iPlugin, iPluginData.Uid(), iMailboxId );
+ iFsMailbox = iPlugin->GetMailBoxByUidL( FsMailboxId() );
+ iSyncObserver = new ( ELeave ) CEmailMailbox::CEmailRequestObserver();
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+CEmailMailbox::~CEmailMailbox()
+ {
+ delete iFsMailbox;
+ delete iEventMapper;
+ delete iAddress;
+ iPluginData.ReleaseInstance();
+ delete iSyncObserver;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+TEmailTypeId CEmailMailbox::InterfaceId() const
+ {
+ return KEmailIFUidMailbox;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::Release()
+ {
+ delete this;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+TMailboxId CEmailMailbox::MailboxId() const
+ {
+ return iMailboxId;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+MEmailAddress* CEmailMailbox::AddressL() const
+ {
+ if ( !iAddress )
+ {
+ iAddress = CEmailAddress::NewL(
+ MEmailAddress::ESender, EAPIOwns );
+ iAddress->SetDisplayNameL( iFsMailbox->GetName() );
+ iAddress->SetAddressL( iFsMailbox->OwnMailAddress().GetEmailAddress() );
+ }
+ return iAddress;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+TPtrC CEmailMailbox::MailboxName() const
+ {
+ return iFsMailbox->GetName();
+ }
+
+// -----------------------------------------------------------------------------
+// Constructs and returns type mailbox id of internal data type TFSMailMsgId
+// -----------------------------------------------------------------------------
+TFSMailMsgId CEmailMailbox::FsMailboxId() const
+ {
+ return FsMsgId( iPluginData, iMailboxId );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+TInt CEmailMailbox::GetFoldersL( RFolderArray& aFolders ) const
+ {
+ TFSMailMsgId rootId = TFSMailMsgId();
+ RPointerArray<CFSMailFolder> folders;
+ CleanupResetAndDestroyPushL( folders );
+ iPlugin->ListFoldersL( FsMailboxId(), rootId, folders );
+ TInt res( folders.Count() );
+ for ( TInt i = 0; i < res; i++ )
+ {
+ const CFSMailFolder* fsfolder = folders[i];
+ const TEntryId id = fsfolder->GetFolderId().Id();
+ const TFolderId folderId( id, iMailboxId );
+ CEmailFolder* folder = CEmailFolder::NewLC( iPluginData, folderId, folders[i] );
+ aFolders.AppendL( folder );
+ CleanupStack::Pop( folder );
+ }
+ CleanupStack::Pop( &folders );
+ folders.Close(); // close but don't delete folders because they are
+ // owned by CEmailFolder
+ return res;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+MEmailFolder* CEmailMailbox::FolderL( const TFolderId& aFolderId ) const
+ {
+ CFSMailFolder* fsFolder = iPlugin->GetFolderByUidL(
+ FsMsgId( iPluginData, iMailboxId ),
+ FsMsgId( iPluginData, aFolderId ) );
+ CleanupStack::PushL( fsFolder );
+
+ CEmailFolder* folder = CEmailFolder::NewL( iPluginData,
+ aFolderId, fsFolder );
+ CleanupStack::Pop( fsFolder );
+
+ return folder;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+MEmailFolder* CEmailMailbox::FolderByTypeL(
+ const TFolderType aFolderType ) const
+ {
+ TFSMailMsgId fsFolderId;
+
+ switch ( aFolderType )
+ {
+ case EInbox:
+ fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSInbox );
+ break;
+ case EOutbox:
+ fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSOutbox );
+ break;
+ case EDrafts:
+ fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSDraftsFolder );
+ break;
+ case EDeleted:
+ fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSDeleted );
+ break;
+ case ESent:
+ fsFolderId = iPlugin->GetStandardFolderIdL( FsMailboxId(), EFSSentFolder );
+ break;
+ case EOther:
+ default:
+ User::Leave( KErrNotFound );
+ break;
+ }
+
+ const TFolderId folderId( fsFolderId.Id(), iMailboxId );
+
+ CFSMailFolder* fsFolder = iPlugin->GetFolderByUidL(
+ FsMsgId( iPluginData, iMailboxId ),
+ fsFolderId );
+ CleanupStack::PushL( fsFolder );
+
+ CEmailFolder* folder = CEmailFolder::NewL( iPluginData,
+ folderId,
+ fsFolder );
+
+ CleanupStack::Pop( fsFolder );
+
+ return folder;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+MEmailMessage* CEmailMailbox::MessageL( const TMessageId& aMessageId )
+ {
+ CFSMailMessage *fsMessage = iPlugin->GetMessageByUidL(
+ FsMsgId( iPluginData, aMessageId.iFolderId.iMailboxId ),
+ FsMsgId( iPluginData, aMessageId.iFolderId ),
+ FsMsgId( iPluginData, aMessageId ),
+ EFSMsgDataEnvelope );
+
+ CleanupStack::PushL( fsMessage );
+ CEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns );
+ CleanupStack::Pop( fsMessage );
+
+ return message;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+MEmailMessage* CEmailMailbox::CreateDraftMessageL() const
+ {
+ CFSMailMessage* fsMessage = iFsMailbox->CreateMessageToSend();
+ User::LeaveIfNull( fsMessage );
+ CleanupStack::PushL( fsMessage );
+ MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns );
+ CleanupStack::Pop( fsMessage );
+
+ return message;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+MEmailMessage* CEmailMailbox::CreateReplyMessageL(
+ const TMessageId& aMessageId, const TBool aReplyToAll ) const
+ {
+ CFSMailMessage* fsMessage = iFsMailbox->CreateReplyMessage(
+ FsMsgId( iPluginData, aMessageId ), aReplyToAll );
+ User::LeaveIfNull( fsMessage );
+ CleanupStack::PushL( fsMessage );
+ MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns );
+ CleanupStack::Pop( fsMessage );
+
+ return message;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+MEmailMessage* CEmailMailbox::CreateForwardMessageL( const TMessageId& aMessageId ) const
+ {
+ CFSMailMessage* fsMessage = iFsMailbox->CreateForwardMessage(
+ FsMsgId( iPluginData, aMessageId ), KNewLine() );
+ User::LeaveIfNull( fsMessage );
+ CleanupStack::PushL( fsMessage );
+ MEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns );
+ CleanupStack::Pop( fsMessage );
+
+ return message;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::SynchroniseL( MMailboxSyncObserver& aObserver )
+ {
+ iSyncObserver->SetObserverL( &aObserver );
+ iRequestId = iFsMailbox->RefreshNowL( *iSyncObserver );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::CancelSynchronise()
+ {
+ iFsMailbox->CancelSearch();
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::RegisterObserverL( MMailboxContentObserver& aObserver )
+ {
+ iEventMapper->AddObserverL( aObserver );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::UnregisterObserver( MMailboxContentObserver& aObserver )
+ {
+ iEventMapper->RemoveObserver( aObserver );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+MEmailMessageSearchAsync* CEmailMailbox::MessageSearchL()
+ {
+ MEmailMessageSearchAsync* searchAPI =
+ CEmailMessageSearchAsync::NewL( iPluginData, iMailboxId );
+ return searchAPI;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::ShowInboxL()
+ {
+ User::Leave( KErrNotSupported );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::EditNewMessageL()
+ {
+ bool syncronous;
+
+ XQServiceRequest request( emailInterfaceNameSend,
+ emailOperationSendMail,
+ syncronous );
+
+ QVariant returnValue;
+ if ( !request.send( returnValue ) )
+ User::Leave( KErrGeneral );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+CEmailMailbox::TObserverEventMapper::TObserverEventMapper(
+ CFSMailPlugin* aPlugin,
+ TUid aPluginUid, const TMailboxId& aMailboxId )
+ : iPlugin( aPlugin ),
+ iFsMailboxId( aPluginUid.iUid, aMailboxId.iId )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+CEmailMailbox::TObserverEventMapper::~TObserverEventMapper()
+ {
+ iClientObservers.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// Adds mailbox observer and subscribes to plugin mailbox events if there
+// were no previous observers.
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::AddObserverL(
+ MMailboxContentObserver& aObserver )
+ {
+ TIdentityRelation<MMailboxContentObserver> relation(
+ &CEmailMailbox::TObserverEventMapper::Equals );
+ if ( iClientObservers.Find( &aObserver, relation ) == KErrNotFound )
+ {
+ const TInt count( iClientObservers.Count() );
+ if ( !count )
+ {
+ iPlugin->SubscribeMailboxEventsL( iFsMailboxId, *this );
+ }
+ iClientObservers.AppendL( &aObserver );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// Removes an observer and removes event subscription if the observer was
+// last in observer array.
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::RemoveObserver(
+ MMailboxContentObserver& aObserver )
+ {
+ TIdentityRelation<MMailboxContentObserver> relation(
+ &CEmailMailbox::TObserverEventMapper::Equals );
+ const TInt index( iClientObservers.Find( &aObserver, relation ) );
+ if ( index != KErrNotFound )
+ {
+ iClientObservers.Remove( index );
+ const TInt count( iClientObservers.Count() );
+ if ( !count )
+ {
+ iPlugin->UnsubscribeMailboxEvents( iFsMailboxId, *this );
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// Maps protocol a plugin event to client event
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::EventL(
+ TFSMailEvent aEvent,
+ TFSMailMsgId aMailbox,
+ TAny* aParam1,
+ TAny* aParam2,
+ TAny* aParam3 )
+ {
+ const TEventMapFunc KMailboxEventHandlers[] = {
+ &CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ &CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ &CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ &CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ &CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ &CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ &CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ &CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ &CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ &CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ &CEmailMailbox::TObserverEventMapper::IgnoreEventL,
+ &CEmailMailbox::TObserverEventMapper::NewMessageL,
+ &CEmailMailbox::TObserverEventMapper::MessageChangedL,
+ &CEmailMailbox::TObserverEventMapper::MessageDeletedL,
+ &CEmailMailbox::TObserverEventMapper::MessageMoved,
+ &CEmailMailbox::TObserverEventMapper::MessageCopiedL,
+ &CEmailMailbox::TObserverEventMapper::NewFolderL,
+ &CEmailMailbox::TObserverEventMapper::FolderChangeL,
+ &CEmailMailbox::TObserverEventMapper::FoldersDeletedL,
+ &CEmailMailbox::TObserverEventMapper::FoldersMovedL,
+ &CEmailMailbox::TObserverEventMapper::ExceptionL
+ };
+
+ TMailboxId id( aMailbox.Id() );
+ // boundary check
+ const TInt index( aEvent );
+ if ( index < sizeof( KMailboxEventHandlers ) / sizeof( KMailboxEventHandlers[ index ] ) )
+ {
+ // call event handler function
+ TEventMapFunc method = KMailboxEventHandlers[ index ];
+ (this->*method)(id, aParam1,aParam2,aParam3 );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::ConvertParamsL(
+ TMailboxId aMailbox, TAny* aParam1, TAny* aParam2,
+ REmailMessageIdArray& aMessageIds, TFolderId& aFolderId )
+ {
+ RArray<TFSMailMsgId>* newEntries( static_cast< RArray<TFSMailMsgId>* >( aParam1 ) );
+ CleanupClosePushL( *newEntries );
+ TFSMailMsgId* parentFolder = static_cast<TFSMailMsgId*>( aParam2 );
+ aFolderId = TFolderId( parentFolder->Id(), aMailbox );
+
+ for ( TInt j = 0; j < newEntries->Count(); j++ )
+ {
+ TFSMailMsgId fsId(( *newEntries )[j] );
+ TMessageId messageId( fsId.Id(), aFolderId.iId, aMailbox );
+ aMessageIds.Append( messageId );
+ }
+
+ CleanupStack::PopAndDestroy( newEntries );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::IgnoreEventL(
+ TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::NewMessageL(
+ TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* /*aParam3*/ )
+ {
+ REmailMessageIdArray messageIds;
+ TFolderId folderId;
+ ConvertParamsL( aMailbox, aParam1, aParam2, messageIds, folderId );
+ CleanupClosePushL( messageIds );
+
+ for ( TInt i = 0; i < iClientObservers.Count(); i++ )
+ {
+ MMailboxContentObserver* observer = iClientObservers[i];
+ if (observer)
+ observer->NewMessageEventL( aMailbox, messageIds, folderId );
+ }
+
+ CleanupStack::PopAndDestroy( &messageIds );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::MessageChangedL(
+ TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* /*aParam3*/ )
+ {
+ REmailMessageIdArray messageIds;
+ TFolderId folderId;
+ ConvertParamsL( aMailbox, aParam1, aParam2, messageIds, folderId );
+ CleanupClosePushL( messageIds );
+
+ for ( TInt i = 0; i < iClientObservers.Count(); i++ )
+ {
+ MMailboxContentObserver* observer = iClientObservers[i];
+ if (observer)
+ observer->MessageChangedEventL( aMailbox, messageIds, folderId );
+ }
+ CleanupStack::PopAndDestroy( &messageIds );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::MessageDeletedL(
+ TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* /*aParam3*/ )
+ {
+ REmailMessageIdArray messageIds;
+ TFolderId folderId;
+ ConvertParamsL( aMailbox, aParam1, aParam2, messageIds, folderId );
+ CleanupClosePushL( messageIds );
+
+ for ( TInt i = 0; i < iClientObservers.Count(); i++ )
+ {
+ MMailboxContentObserver* observer = iClientObservers[i];
+ if (observer)
+ observer->MessageDeletedEventL( aMailbox, messageIds, folderId );
+ }
+
+ CleanupStack::PopAndDestroy( &messageIds );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::MessageMoved(
+ TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::MessageCopiedL(
+ TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::NewFolderL(
+ TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::FolderChangeL(
+ TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::FoldersDeletedL(
+ TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::FoldersMovedL(
+ TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::TObserverEventMapper::ExceptionL(
+ TMailboxId /*aMailbox*/, TAny* /*aParam1*/, TAny* /*aParam2*/, TAny* /*aParam3*/ )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+TBool CEmailMailbox::TObserverEventMapper::Equals(
+ const MMailboxContentObserver& a1, const MMailboxContentObserver& a2 )
+ {
+ return ( &a1 == &a2 );
+ }
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+CEmailMailbox::CEmailRequestObserver::CEmailRequestObserver() : iObserver( NULL )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::CEmailRequestObserver::RequestResponseL(
+ TFSProgress aEvent, TInt /* aRequestId */ )
+ {
+ if ( iObserver && aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestComplete )
+ {
+ iObserver->MailboxSynchronisedL(aEvent.iError);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+void CEmailMailbox::CEmailRequestObserver::SetObserverL( MMailboxSyncObserver* aObserver )
+ {
+ iObserver = aObserver;
+ }
+
+// End of file
+