--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailclientapi/inc/emailmessage.h Tue Jul 06 14:04:34 2010 +0300
@@ -0,0 +1,200 @@
+/*
+* Copyright (c) 2010 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"
+#include "MFSMailRequestObserver.h"
+#include <QEventLoop>
+
+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 MFSMailRequestObserver
+ {
+public:
+ /**
+ * Creates email message from plugin message
+ */
+ static CEmailMessage* NewL( CPluginData& aPluginData,
+ CFSMailMessage* aFsMessage,
+ const TDataOwner aOwner );
+
+ ~CEmailMessage();
+
+public: // from MEmailInterface
+ TEmailTypeId InterfaceId() const;
+
+ void Release();
+
+public: // from MEmailMessage
+ /**@see MEmailMessage */
+ const TMessageId& MessageId() const;
+
+ /**@see MEmailMessage */
+ MEmailAddress* SenderAddressL() const;
+
+ /**@see MEmailMessage */
+ MEmailAddress* ReplyToAddressL() const;
+
+ /**@see MEmailMessage */
+ void SetReplyToAddressL( const MEmailAddress& aSender );
+
+ /**@see MEmailMessage */
+ TInt GetRecipientsL( const MEmailAddress::TRole aRole,
+ REmailAddressArray& aRecipients ) const;
+
+ /**@see MEmailMessage */
+ void SetRecipientsL( const MEmailAddress::TRole aRole, REmailAddressArray& aRecipients );
+
+ /**@see MEmailMessage */
+ void RemoveRecipientL( const MEmailAddress& aRecipient );
+
+ /**@see MEmailMessage */
+ TPtrC Subject() const;
+
+ /**@see MEmailMessage */
+ void SetSubjectL( const TPtrC& aSubject );
+
+ /**@see MEmailMessage */
+ TTime Date() const;
+
+ /**@see MEmailMessage */
+ TInt Flags() const;
+
+ /**@see MEmailMessage */
+ void SetFlag( const TUint aFlag );
+
+ /**@see MEmailMessage */
+ void ResetFlag( const TUint aFlag );
+
+ /**@see MEmailMessage */
+ MEmailMessageContent* ContentL() const;
+
+ /**@see MEmailMessage */
+ void SetContentL( const MEmailMessageContent* aContent );
+
+ /**@see MEmailMessage */
+ void SetPlainTextBodyL( const TDesC& aPlainText );
+
+ /**@see MEmailMessage */
+ MEmailAttachment* AddAttachmentL( const TDesC& aFullPath );
+
+ /**@see MEmailMessage */
+ MEmailAttachment* AddAttachmentL( RFile& aFile );
+
+ /**@see MEmailMessage */
+ TInt GetAttachmentsL( REmailAttachmentArray& aAttachments );
+
+ /**@see MEmailMessage */
+ void RemoveAttachmentL( const MEmailAttachment& aAttachment );
+
+ /**@see MEmailMessage */
+ const TFolderId& ParentFolderId() const;
+
+ /**@see MEmailMessage */
+ void SaveChangesL();
+
+ /**@see MEmailMessage */
+ void SendL();
+
+ /**@see MEmailMessage */
+ void ShowMessageViewerL();
+
+ /**@see MEmailMessage */
+ void ReplyToMessageL( const TBool aReplyToAll = ETrue );
+
+ /**@see MEmailMessage */
+ void ForwardMessageL();
+
+protected: // From MFSMailRequestObserver
+ void RequestResponseL( TFSProgress aEvent, TInt aRequestId );
+
+private:
+
+ // Copies/moves flag values from iPluginMessage's flags to local flag member variable
+ void InitializeFlagValues();
+
+ CEmailMessage( CPluginData& aPluginData, CFSMailMessage* aMessage, const TDataOwner aOwner );
+
+ void ConstructL();
+
+ void ConvertAddressArrayL( const MEmailAddress::TRole aRole,
+ const RPointerArray<CFSMailAddress>& aSrc,
+ REmailAddressArray& aDst ) const;
+ CEmailAddress* CreateAddressLC( const MEmailAddress::TRole aRole, CFSMailAddress& aFsAddress ) const;
+ TUint MapFlags( const TUint& aFlag );
+
+ TMessageContentId MessageContentId( TEntryId aContentId ) const;
+
+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;
+ QEventLoop iEventLoop;
+ TInt iError;
+
+ };
+//Class for compare email content type
+class TContentType
+{
+public:
+ TContentType( const TDesC& aContentType );
+ // Returns ETrue iff the content type represented by this object
+ // (after parameters have been removed) is equal to the given content type.
+ TBool Equals( const TDesC& aContentType );
+
+private:
+ // Content type (without parameters)
+ TPtrC iContentType;
+};
+
+
+#endif // EMAILMESSAGE_H
+
+// End of file