--- /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