emailservices/emailclientapi/inc/emailmessage.h
branchRCL_3
changeset 63 d189ee25cf9d
parent 16 4ce476e64c59
child 64 3533d4323edc
equal deleted inserted replaced
61:dcf0eedfc1a3 63: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".
    17 
    17 
    18 #ifndef EMAILMESSAGE_H
    18 #ifndef EMAILMESSAGE_H
    19 #define EMAILMESSAGE_H
    19 #define EMAILMESSAGE_H
    20 
    20 
    21 #include <memailmessage.h>
    21 #include <memailmessage.h>
    22 #include "cfsmailcommon.h"
    22 #include "CFSMailCommon.h"
    23 #include "emailapiutils.h"
    23 #include "emailapiutils.h"
       
    24 #include "MFSMailRequestObserver.h"
       
    25 #include <QEventLoop>
    24 
    26 
    25 using namespace EmailInterface;
    27 using namespace EmailInterface;
    26 
    28 
    27 class CFSMailMessagePart;
    29 class CFSMailMessagePart;
    28 class CFSMailMessage;
    30 class CFSMailMessage;
    32 class CEmailAddress;
    34 class CEmailAddress;
    33 class CEmailAttachment;
    35 class CEmailAttachment;
    34 class CEmailTextContent;
    36 class CEmailTextContent;
    35 class CEmailMultipart;
    37 class CEmailMultipart;
    36 
    38 
    37 NONSHARABLE_CLASS( CEmailMessage ) : public CBase, public MEmailMessage
    39 NONSHARABLE_CLASS( CEmailMessage ) : public CBase, public MEmailMessage, public MFSMailRequestObserver
    38     {
    40     {
    39 public:
    41 public:
    40     /**
    42     /**
    41     * Creates email message from plugin message
    43     * Creates email message from plugin message
    42     */
    44     */
    45                                 const TDataOwner aOwner );
    47                                 const TDataOwner aOwner );
    46 
    48 
    47     ~CEmailMessage();
    49     ~CEmailMessage();
    48 
    50 
    49 public: // from MEmailInterface
    51 public: // from MEmailInterface
    50     virtual TEmailTypeId InterfaceId() const;
    52     TEmailTypeId InterfaceId() const;
    51     
    53     
    52     virtual void Release();
    54     void Release();
    53     
    55     
    54 public: // from MEmailAddress
    56 public: // from MEmailMessage
    55     virtual const TMessageId& MessageId() const;
    57     /**@see MEmailMessage */
    56     
    58     const TMessageId& MessageId() const;
    57     /**@see MEmailMessage */
    59     
    58     virtual MEmailAddress* SenderAddressL() const;
    60     /**@see MEmailMessage */
    59     
    61     MEmailAddress* SenderAddressL() const;
    60     /**@see MEmailMessage */
    62     
    61     virtual MEmailAddress* ReplyToAddressL() const;
    63     /**@see MEmailMessage */
    62     
    64     MEmailAddress* ReplyToAddressL() const;
    63     /**@see MEmailMessage */
    65     
    64     virtual void SetReplyToAddressL( const MEmailAddress& aSender );
    66     /**@see MEmailMessage */
    65     
    67     void SetReplyToAddressL( const MEmailAddress& aSender );
    66     /**@see MEmailMessage */
    68     
    67     virtual TInt GetRecipientsL( const MEmailAddress::TRole aRole,
    69     /**@see MEmailMessage */
       
    70     TInt GetRecipientsL( const MEmailAddress::TRole aRole,
    68         REmailAddressArray& aRecipients ) const;            
    71         REmailAddressArray& aRecipients ) const;            
    69     
    72     
    70     /**@see MEmailMessage */
    73     /**@see MEmailMessage */
    71     virtual void SetRecipientsL( const MEmailAddress::TRole aRole, REmailAddressArray& aRecipients );
    74     void SetRecipientsL( const MEmailAddress::TRole aRole, REmailAddressArray& aRecipients );
    72     
    75     
    73     /**@see MEmailMessage */
    76     /**@see MEmailMessage */
    74     virtual void RemoveRecipientL( const MEmailAddress& aRecipient );
    77     void RemoveRecipientL( const MEmailAddress& aRecipient );
    75     
    78     
    76     /**@see MEmailMessage */
    79     /**@see MEmailMessage */
    77     virtual TPtrC Subject() const;
    80     TPtrC Subject() const;
    78 
    81 
    79     /**@see MEmailMessage */
    82     /**@see MEmailMessage */
    80     virtual void  SetSubjectL( const TPtrC& aSubject);    
    83     void  SetSubjectL( const TPtrC& aSubject );    
    81     
    84     
    82     /**@see MEmailMessage */
    85     /**@see MEmailMessage */
    83     virtual TTime Date() const;
    86     TTime Date() const;
    84 
    87 
    85     /**@see MEmailMessage */
    88     /**@see MEmailMessage */
    86     virtual TInt Flags() const;
    89     TInt Flags() const;
    87     
    90     
    88     /**@see MEmailMessage */
    91     /**@see MEmailMessage */
    89     virtual void SetFlag( const TUint aFlag );
    92     void SetFlag( const TUint aFlag );
    90     
    93     
    91     /**@see MEmailMessage */
    94     /**@see MEmailMessage */
    92     virtual void ResetFlag( const TUint aFlag );
    95     void ResetFlag( const TUint aFlag );
    93 
    96 
    94     /**@see MEmailMessage */
    97     /**@see MEmailMessage */
    95     virtual MEmailMessageContent* ContentL() const;
    98     MEmailMessageContent* ContentL() const;
    96 
    99 
    97     /**@see MEmailMessage */
   100     /**@see MEmailMessage */
    98     virtual void SetContentL( const MEmailMessageContent* aContent );
   101     void SetContentL( const MEmailMessageContent* aContent );
    99     
   102     
   100     /**@see MEmailMessage */
   103     /**@see MEmailMessage */
   101     virtual void SetPlainTextBodyL( const TDesC& aPlainText );
   104     void SetPlainTextBodyL( const TDesC& aPlainText );
   102 
   105 
   103     /**@see MEmailMessage */
   106     /**@see MEmailMessage */
   104     virtual MEmailAttachment* AddAttachmentL( const TDesC& aFullPath );
   107     MEmailAttachment* AddAttachmentL( const TDesC& aFullPath );
   105     
   108     
   106     /**@see MEmailMessage */
   109     /**@see MEmailMessage */
   107     virtual MEmailAttachment* AddAttachmentL( RFile& aFile );
   110     MEmailAttachment* AddAttachmentL( RFile& aFile );
   108     
   111     
   109     /**@see MEmailMessage */
   112     /**@see MEmailMessage */
   110     virtual TInt GetAttachmentsL( REmailAttachmentArray& aAttachments );
   113     TInt GetAttachmentsL( REmailAttachmentArray& aAttachments );
   111     
   114     
   112     /**@see MEmailMessage */
   115     /**@see MEmailMessage */
   113     virtual void RemoveAttachmentL( const MEmailAttachment& aAttachment );
   116     void RemoveAttachmentL( const MEmailAttachment& aAttachment );
   114 
   117 
   115     /**@see MEmailMessage */
   118     /**@see MEmailMessage */
   116     virtual const TFolderId& ParentFolderId() const;
   119     const TFolderId& ParentFolderId() const;
   117 
   120 
   118     /**@see MEmailMessage */
   121     /**@see MEmailMessage */
   119     virtual void SaveChangesL();
   122     void SaveChangesL();
   120 
   123 
   121     /**@see MEmailMessage */
   124     /**@see MEmailMessage */
   122     virtual void SendL();
   125     void SendL();
   123 
   126 
   124     /**@see MEmailMessage */
   127     /**@see MEmailMessage */
   125     virtual void ShowMessageViewerL();
   128     void ShowMessageViewerL();
   126     
   129     
   127     /**@see MEmailMessage */
   130     /**@see MEmailMessage */
   128     virtual void ReplyToMessageL( const TBool aReplyToAll = ETrue );
   131     void ReplyToMessageL( const TBool aReplyToAll = ETrue );
   129     
   132     
   130     /**@see MEmailMessage */
   133     /**@see MEmailMessage */
   131     virtual void ForwardMessageL();
   134     void ForwardMessageL();
   132     
   135     
       
   136 protected: // From MFSMailRequestObserver
       
   137     void RequestResponseL( TFSProgress aEvent, TInt aRequestId );
       
   138 
   133 private:        
   139 private:        
   134 
   140 
   135     // Copies/moves flag values from iPluginMessage's flags to local flag member variable
   141     // Copies/moves flag values from iPluginMessage's flags to local flag member variable
   136     void InitializeFlagValues();
   142     void InitializeFlagValues();
   137     
   143     
   138     CEmailMessage( CPluginData& aPluginData, CFSMailMessage* aMessage, const TDataOwner aOwner );
   144     CEmailMessage( CPluginData& aPluginData, CFSMailMessage* aMessage, const TDataOwner aOwner );
   139     
   145     
   140     void ConstructL();
   146     void ConstructL();
   141 							       
   147 							       
   142     void ConvertAddressArrayL( const MEmailAddress::TRole aRole, 
   148     void ConvertAddressArrayL( const MEmailAddress::TRole aRole, 
   143                                RPointerArray<CFSMailAddress>& aSrc, 
   149                                const RPointerArray<CFSMailAddress>& aSrc, 
   144                                REmailAddressArray& aDst ) const; 
   150                                REmailAddressArray& aDst ) const; 
   145     CEmailAddress* CreateAddressLC( const MEmailAddress::TRole aRole, CFSMailAddress& aFsAddress ) const;
   151     CEmailAddress* CreateAddressLC( const MEmailAddress::TRole aRole, CFSMailAddress& aFsAddress ) const;
   146     TUint MapFlags( const TUint& aFlag );
   152     TUint MapFlags( const TUint& aFlag );
       
   153     
       
   154     TMessageContentId MessageContentId( TEntryId aContentId ) const;
   147         
   155         
   148 private:
   156 private:
   149     CPluginData&    iPluginData;
   157     CPluginData&    iPluginData;
   150     
   158     
   151     CFSMailPlugin*  iPlugin;
   159     CFSMailPlugin*  iPlugin;
   166     
   174     
   167     mutable CEmailTextContent *iTextContent;
   175     mutable CEmailTextContent *iTextContent;
   168     mutable CEmailMultipart* iContent;
   176     mutable CEmailMultipart* iContent;
   169     RPointerArray<CEmailAttachment> iAttachments;
   177     RPointerArray<CEmailAttachment> iAttachments;
   170     TDataOwner iOwner;
   178     TDataOwner iOwner;
       
   179     QEventLoop iEventLoop;
       
   180     TInt iError;
   171 
   181 
   172     };
   182     };
   173 //Class for compare email content type 
   183 //Class for compare email content type 
   174 class TContentType
   184 class TContentType
   175 {
   185 {