emailservices/emailclientapi/inc/emailmessage.h
changeset 0 8466d47a6819
child 8 e1b6206813b4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailclientapi/inc/emailmessage.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,173 @@
+/*
+* Copyright (c) 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"
+* 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: mail message implementation definition
+*
+*/
+
+#ifndef EMAILMESSAGE_H
+#define EMAILMESSAGE_H
+
+#include <memailmessage.h>
+#include "CFSMailCommon.h"
+#include "emailapiutils.h"
+
+using namespace EmailInterface;
+
+class CFSMailMessagePart;
+class CFSMailMessage;
+class CFSMailAddress;
+class CFSMailPlugin;
+class CPluginData;
+class CEmailAddress;
+class CEmailAttachment;
+class CEmailTextContent;
+class CEmailMultipart;
+
+NONSHARABLE_CLASS( CEmailMessage ) : public CBase, public MEmailMessage
+    {
+public:
+    /**
+    * Creates email message from plugin message
+    */
+    static CEmailMessage* NewL( CPluginData& aPluginData,
+                                CFSMailMessage* aFsMessage,
+                                const TDataOwner aOwner );
+
+    ~CEmailMessage();
+
+public: // from MEmailInterface
+    virtual TEmailTypeId InterfaceId() const;
+    
+    virtual void Release();
+    
+public: // from MEmailAddress
+    virtual const TMessageId& MessageId() const;
+    
+    /**@see MEmailMessage */
+    virtual MEmailAddress* SenderAddressL() const;
+    
+    /**@see MEmailMessage */
+    virtual MEmailAddress* ReplyToAddressL() const;
+    
+    /**@see MEmailMessage */
+    virtual void SetReplyToAddressL( const MEmailAddress& aSender );
+    
+    /**@see MEmailMessage */
+    virtual TInt GetRecipientsL( const MEmailAddress::TRole aRole,
+        REmailAddressArray& aRecipients ) const;            
+    
+    /**@see MEmailMessage */
+    virtual void SetRecipientsL( const MEmailAddress::TRole aRole, REmailAddressArray& aRecipients );
+    
+    /**@see MEmailMessage */
+    virtual void RemoveRecipientL( const MEmailAddress& aRecipient );
+    
+    /**@see MEmailMessage */
+    virtual TPtrC Subject() const;
+
+    /**@see MEmailMessage */
+    virtual void  SetSubjectL( const TPtrC& aSubject);    
+    
+    /**@see MEmailMessage */
+    virtual TTime Date() const;
+
+    /**@see MEmailMessage */
+    virtual TInt Flags() const;
+    
+    /**@see MEmailMessage */
+    virtual void SetFlag( const TUint aFlag );
+    
+    /**@see MEmailMessage */
+    virtual void ResetFlag( const TUint aFlag );
+
+    /**@see MEmailMessage */
+    virtual MEmailMessageContent* ContentL() const;
+
+    /**@see MEmailMessage */
+    virtual void SetContentL( const MEmailMessageContent* aContent );
+    
+    /**@see MEmailMessage */
+    virtual void SetPlainTextBodyL( const TDesC& aPlainText );
+
+    /**@see MEmailMessage */
+    virtual MEmailAttachment* AddAttachmentL( const TDesC& aFullPath );
+    
+    /**@see MEmailMessage */
+    virtual MEmailAttachment* AddAttachmentL( RFile& aFile );
+    
+    /**@see MEmailMessage */
+    virtual TInt GetAttachmentsL( REmailAttachmentArray& aAttachments );
+    
+    /**@see MEmailMessage */
+    virtual void RemoveAttachmentL( const MEmailAttachment& aAttachment );
+
+    /**@see MEmailMessage */
+    virtual const TFolderId& ParentFolderId() const;
+
+    /**@see MEmailMessage */
+    virtual void SaveChangesL();
+
+    /**@see MEmailMessage */
+    virtual void SendL();
+
+    /**@see MEmailMessage */
+    virtual void ShowMessageViewerL();
+    
+    /**@see MEmailMessage */
+    virtual void ReplyToMessageL( const TBool aReplyToAll = ETrue );
+    
+    /**@see MEmailMessage */
+    virtual void ForwardMessageL();
+    
+private:        
+
+    CEmailMessage( CPluginData& aPluginData, CFSMailMessage* aMessage, const TDataOwner aOwner );
+    
+    void ConstructL();
+							       
+    void ConvertAddressArrayL( const MEmailAddress::TRole aRole, 
+                               RPointerArray<CFSMailAddress>& aSrc, 
+                               REmailAddressArray& aDst ) const; 
+    CEmailAddress* CreateAddressLC( const MEmailAddress::TRole aRole, CFSMailAddress& aFsAddress ) const;
+    TUint MapFlags( const TUint& aFlag );
+        
+private:
+    CPluginData&    iPluginData;
+    
+    CFSMailPlugin*  iPlugin;
+
+    TMessageId      iMessageId;
+    
+    TMessageContentId   iMsgContentId;
+                                                                                  
+    mutable CEmailAddress*  iSender;
+    
+    mutable CEmailAddress*  iReplyTo;
+    
+    REmailAddressArray iRecipients;
+    
+    CFSMailMessage* iPluginMessage;
+    
+    TUint        iFlags;
+    
+    mutable CEmailTextContent *iTextContent;
+    mutable CEmailMultipart* iContent;
+    RPointerArray<CEmailAttachment> iAttachments;
+    TDataOwner iOwner;
+
+    };
+
+#endif // EMAILMESSAGE_H
+
+// End of file