diff -r 000000000000 -r 8466d47a6819 emailservices/emailclientapi/inc/emailmessage.h --- /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 +#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& 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 iAttachments; + TDataOwner iOwner; + + }; + +#endif // EMAILMESSAGE_H + +// End of file