emailservices/emailclientapi/inc/emailmailbox.h
branchRCL_3
changeset 24 d189ee25cf9d
parent 17 67369d1b217f
child 25 3533d4323edc
equal deleted inserted replaced
23:dcf0eedfc1a3 24:d189ee25cf9d
     1 /*
     1 /*
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    16 */
    16 */
    17 
    17 
    18 #ifndef EMAILMAILBOX_H
    18 #ifndef EMAILMAILBOX_H
    19 #define EMAILMAILBOX_H
    19 #define EMAILMAILBOX_H
    20 
    20 
    21 #include "cfsmailcommon.h"
    21 #include "CFSMailCommon.h"
    22 #include <memailmailbox.h>
    22 #include <memailmailbox.h>
    23 #include "mfsmaileventobserver.h"
    23 #include "MFSMailEventObserver.h"
    24 #include "mfsmailrequestobserver.h"
    24 #include "MFSMailRequestObserver.h"
    25 #include "mmailboxcontentobserver.h"
    25 #include "mmailboxcontentobserver.h"
    26 
    26 
    27 using namespace EmailInterface;
    27 using namespace EmailInterface;
    28 
    28 
    29 class CFSMailBox;
    29 class CFSMailBox;
    43         const TMailboxId& aMailboxId );
    43         const TMailboxId& aMailboxId );
    44     
    44     
    45     ~CEmailMailbox();           
    45     ~CEmailMailbox();           
    46 
    46 
    47 public: // from MEmailInterface
    47 public: // from MEmailInterface
    48     virtual TEmailTypeId InterfaceId() const;
    48     TEmailTypeId InterfaceId() const;
    49     
    49     
    50     virtual void Release();
    50     void Release();
    51     
    51     
    52 public:    // from MEmailMailbox
    52 public:    // from MEmailMailbox
    53     /**@see MEmailMailbox */
    53     /**@see MEmailMailbox */
    54     virtual TMailboxId MailboxId() const;
    54     TMailboxId MailboxId() const;
    55     
    55     
    56     /**@see MEmailMailbox */
    56     /**@see MEmailMailbox */
    57     virtual MEmailAddress* AddressL() const;
    57     MEmailAddress* AddressL() const;
    58     
    58     
    59     /**@see MEmailMailbox */
    59     /**@see MEmailMailbox */
    60     virtual TPtrC MailboxName() const;
    60     TPtrC MailboxName() const;
    61     
    61     
    62     /**@see MEmailMailbox */
    62     /**@see MEmailMailbox */
    63     virtual  TInt GetFoldersL( RFolderArray& aFolders ) const;
    63     TInt GetFoldersL( RFolderArray& aFolders ) const;
    64 
    64 
    65     /**@see MEmailMailbox */
    65     /**@see MEmailMailbox */
    66     virtual MEmailFolder* FolderL( const TFolderId& aFolderId ) const;
    66     MEmailFolder* FolderL( const TFolderId& aFolderId ) const;
    67     
    67     
    68     /**@see MEmailMailbox */
    68     /**@see MEmailMailbox */
    69     virtual MEmailFolder* FolderByTypeL( 
    69     MEmailFolder* FolderByTypeL( 
    70         const TFolderType aFolderType ) const;
    70         const TFolderType aFolderType ) const;
    71         
    71         
    72     /**@see MEmailMailbox */
    72     /**@see MEmailMailbox */
    73     virtual MEmailMessage* MessageL( const TMessageId& aMessageId );
    73     MEmailMessage* MessageL( const TMessageId& aMessageId );
    74     
    74     
    75     /**@see MEmailMailbox */
    75     /**@see MEmailMailbox */
    76     virtual MEmailMessage* CreateDraftMessageL() const;
    76     MEmailMessage* CreateDraftMessageL() const;
    77     
    77     
    78     /**@see MEmailMailbox */
    78     /**@see MEmailMailbox */
    79     virtual MEmailMessage* CreateReplyMessageL( const TMessageId& aMessageId, const TBool aReplyToAll = ETrue ) const;
    79     MEmailMessage* CreateReplyMessageL( const TMessageId& aMessageId, const TBool aReplyToAll = ETrue ) const;
    80     
    80     
    81     /**@see MEmailMailbox */
    81     /**@see MEmailMailbox */
    82     virtual MEmailMessage* CreateForwardMessageL( const TMessageId& aMessageId ) const;
    82     MEmailMessage* CreateForwardMessageL( const TMessageId& aMessageId ) const;
    83     
    83     
    84     /**@see MEmailMailbox */
    84     /**@see MEmailMailbox */
    85     virtual void SynchroniseL( MMailboxSyncObserver& aObserver );
    85     void SynchroniseL( MMailboxSyncObserver& aObserver );
    86         
    86         
    87     /**@see MEmailMailbox */
    87     /**@see MEmailMailbox */
    88     virtual void CancelSynchronise();
    88     void CancelSynchronise();
    89     
    89     
    90     /**@see MEmailMailbox */
    90     /**@see MEmailMailbox */
    91     virtual void RegisterObserverL( MMailboxContentObserver& aObserver );
    91     void RegisterObserverL( MMailboxContentObserver& aObserver );
    92         
    92         
    93     /**@see MEmailMailbox */
    93     /**@see MEmailMailbox */
    94     virtual void UnregisterObserver( MMailboxContentObserver& aObserver );
    94     void UnregisterObserver( MMailboxContentObserver& aObserver );
    95     
    95     
    96     /**@see MEmailMailbox */
    96     /**@see MEmailMailbox */
    97     virtual MEmailMessageSearchAsync* MessageSearchL();
    97     MEmailMessageSearchAsync* MessageSearchL();
    98 
    98 
    99     /**@see MEmailMailbox */
    99     /**@see MEmailMailbox */
   100     virtual void ShowInboxL();
   100     void ShowInboxL();
   101 
   101 
   102     /**@see MEmailMailbox */
   102     /**@see MEmailMailbox */
   103     virtual void EditNewMessageL();
   103     void EditNewMessageL();
   104     
   104     
   105 
   105 
   106 public: // new methods
   106 public: // new methods
   107 
   107 
   108 private:       
   108 private:       
   120         TObserverEventMapper( CFSMailPlugin* aPlugin, TUid aPluginUid, const TMailboxId& aMailboxId );
   120         TObserverEventMapper( CFSMailPlugin* aPlugin, TUid aPluginUid, const TMailboxId& aMailboxId );
   121         ~TObserverEventMapper();
   121         ~TObserverEventMapper();
   122         void AddObserverL( MMailboxContentObserver& aObserver );
   122         void AddObserverL( MMailboxContentObserver& aObserver );
   123         void RemoveObserver( MMailboxContentObserver& aObserver );
   123         void RemoveObserver( MMailboxContentObserver& aObserver );
   124     public: // from MFSMailEventObserver
   124     public: // from MFSMailEventObserver
   125         virtual void EventL(TFSMailEvent aEvent, TFSMailMsgId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   125         virtual void EventL( TFSMailEvent aEvent, TFSMailMsgId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   126         typedef void (CEmailMailbox::TObserverEventMapper::*TEventMapFunc)( TMailboxId, TAny*, TAny*, TAny* );
   126         typedef void ( CEmailMailbox::TObserverEventMapper::*TEventMapFunc)( TMailboxId, TAny*, TAny*, TAny* );
   127     private: // mappers, so say we all!
   127     private: // mappers, so say we all!
   128         void ConvertParamsL( TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, REmailMessageIdArray& aMessageIds, TFolderId& aFolderId );
   128         void ConvertParamsL( TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, REmailMessageIdArray& aMessageIds, TFolderId& aFolderId );
   129         void IgnoreEventL( TMailboxId     aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   129         void IgnoreEventL( TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   130         void NewMessageL( TMailboxId     aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   130         void NewMessageL( TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   131         void MessageChangedL( TMailboxId     aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   131         void MessageChangedL( TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   132         void MessageDeletedL( TMailboxId     aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   132         void MessageDeletedL( TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   133         void MessageMoved( TMailboxId     aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   133         void MessageMoved( TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   134         void MessageCopiedL( TMailboxId     aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   134         void MessageCopiedL( TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   135         void NewFolderL( TMailboxId     aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   135         void NewFolderL( TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   136         void FolderChangeL( TMailboxId     aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   136         void FolderChangeL( TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   137         void FoldersDeletedL( TMailboxId     aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   137         void FoldersDeletedL( TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   138         void FoldersMovedL( TMailboxId     aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   138         void FoldersMovedL( TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   139         void ExceptionL( TMailboxId     aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   139         void ExceptionL( TMailboxId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   140     
   140     
   141     private:                                                                                                                         
   141     private:                                                                                                                         
   142         static TBool Equals( const MMailboxContentObserver& a1, const MMailboxContentObserver& a2 );
   142         static TBool Equals( const MMailboxContentObserver& a1, const MMailboxContentObserver& a2 );
   143     private:
   143     private:
   144         CFSMailPlugin*  iPlugin;
   144         CFSMailPlugin*  iPlugin;
   145         //const TUid      iUid;
       
   146         TFSMailMsgId    iFsMailboxId;
   145         TFSMailMsgId    iFsMailboxId;
   147         RPointerArray<MMailboxContentObserver> iClientObservers;
   146         RPointerArray<MMailboxContentObserver> iClientObservers;
   148     };
   147     };
   149     class CEmailRequestObserver: public CBase,
   148     class CEmailRequestObserver: public CBase,
   150                                  public MFSMailRequestObserver                                 
   149                                  public MFSMailRequestObserver                                 
   151         {
   150         {
   152     public:
   151     public:
   153         CEmailRequestObserver();
   152         CEmailRequestObserver();
   154         
   153         
   155         virtual void RequestResponseL( TFSProgress aEvent, TInt aRequestId );
   154         void RequestResponseL( TFSProgress aEvent, TInt aRequestId );
   156         void SetObserverL( MMailboxSyncObserver* aObserver );
   155         void SetObserverL( MMailboxSyncObserver* aObserver );
   157     private:
   156     private:
   158         MMailboxSyncObserver* iObserver;
   157         MMailboxSyncObserver* iObserver;
   159         };
   158         };
   160         
   159