--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailcommon/src/CFSMailMessageBase.cpp Fri Apr 16 14:51:52 2010 +0300
@@ -0,0 +1,440 @@
+/*
+* Copyright (c) 2007-2008 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: common email base object
+*
+*/
+
+
+//<cmail>
+#include <nmcommonheaders.h>
+#include "emailtrace.h"
+#include "CFSMailMessageBase.h"
+//</cmail>
+
+//<qmail>
+#include "nmmessageenvelope.h"
+#include "nmconverter.h"
+//</qmail>
+
+// ================= MEMBER FUNCTIONS ==========================================
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::NewLC
+// -----------------------------------------------------------------------------
+EXPORT_C CFSMailMessageBase * CFSMailMessageBase::NewLC( TFSMailMsgId aMessageId )
+{
+ FUNC_LOG;
+ CFSMailMessageBase* message = new (ELeave) CFSMailMessageBase();
+ CleanupStack:: PushL(message);
+ message->ConstructL(aMessageId);
+ return message;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::NewL
+// -----------------------------------------------------------------------------
+EXPORT_C CFSMailMessageBase * CFSMailMessageBase::NewL( TFSMailMsgId aMessageId )
+{
+ FUNC_LOG;
+ CFSMailMessageBase* message = CFSMailMessageBase::NewLC(aMessageId);
+ CleanupStack:: Pop(message);
+ return message;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::CFSMailMessageBase
+// -----------------------------------------------------------------------------
+CFSMailMessageBase::CFSMailMessageBase(): iSender(NULL)
+{
+ FUNC_LOG;
+}
+
+//<qmail>
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::ConstructL
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::ConstructL( TFSMailMsgId aMessageId )
+{
+ FUNC_LOG;
+
+ // Construction of shared data object
+ iNmPrivateMessageEnvelope = new NmMessageEnvelopePrivate();
+
+ // typedef long int TInt32 -> typedef unsigned int quint32
+ iNmPrivateMessageEnvelope->mId.setId32((quint32)aMessageId.Id() );
+
+ // typedef unsigned int TUint -> typedef unsigned int quint32
+ iNmPrivateMessageEnvelope->mId.setPluginId32((quint32)aMessageId.PluginId().iUid);
+
+ // construct the CFSMailAddress object and connect it with NmAddress private data
+ iSender = CFSMailAddress::NewL(iNmPrivateMessageEnvelope->mSender);
+ //iSender->ShareNmAddressPrivate(iNmPrivateMessageEnvelope->mSender);
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::ConstructL
+// -----------------------------------------------------------------------------
+void CFSMailMessageBase::ConstructL(
+ const NmMessageEnvelope &aMessageEnvelope )
+{
+ FUNC_LOG;
+
+ iNmPrivateMessageEnvelope = aMessageEnvelope.d;
+}
+//</qmail>
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::~CFSMailMessageBase
+// -----------------------------------------------------------------------------
+EXPORT_C CFSMailMessageBase::~CFSMailMessageBase()
+{
+ FUNC_LOG;
+ if(iSender)
+ {
+ delete iSender;
+ iSender = NULL;
+ }
+}
+
+//<qmail>
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::GetMessageId
+// -----------------------------------------------------------------------------
+EXPORT_C TFSMailMsgId CFSMailMessageBase::GetMessageId( ) const
+{
+ FUNC_LOG;
+ //For message
+ TFSMailMsgId id = TFSMailMsgId(iNmPrivateMessageEnvelope->mId);
+
+ //For message part
+ if(id.IsNullId()){
+ id = TFSMailMsgId(iNmPrivateMessageEnvelope->mParentId);
+ }
+
+ return id;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::SetMessageId
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::SetMessageId( const TFSMailMsgId aMessageId )
+{
+ // typedef long int TInt32 -> typedef unsigned int quint32
+ iNmPrivateMessageEnvelope->mId.setId32( aMessageId.Id() );
+
+ // typedef unsigned int TUint -> typedef unsigned int quint32
+ iNmPrivateMessageEnvelope->mId.setPluginId32((unsigned int)aMessageId.PluginId().iUid);
+}
+//</qmail>
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::GetFolderId
+// -----------------------------------------------------------------------------
+EXPORT_C TFSMailMsgId CFSMailMessageBase::GetFolderId( ) const
+{
+ FUNC_LOG;
+ return NmConverter::nmIdToMailMsgId(iNmPrivateMessageEnvelope->mParentId);
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::SetFolderId
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::SetFolderId( const TFSMailMsgId aFolderId )
+{
+ FUNC_LOG;
+ iNmPrivateMessageEnvelope->mParentId =
+ NmConverter::mailMsgIdToNmId(aFolderId);
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::GetMailBoxId
+// -----------------------------------------------------------------------------
+EXPORT_C TFSMailMsgId CFSMailMessageBase::GetMailBoxId( ) const
+{
+ FUNC_LOG;
+ return NmConverter::nmIdToMailMsgId(iNmPrivateMessageEnvelope->mMailboxId);
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::SetMailBoxId
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::SetMailBoxId( const TFSMailMsgId aMailBoxId )
+{
+ FUNC_LOG;
+ iNmPrivateMessageEnvelope->mMailboxId = NmConverter::mailMsgIdToNmId(aMailBoxId);
+}
+
+//<qmail>
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::SetSender
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::SetSender( CFSMailAddress* aSender )
+{
+ FUNC_LOG;
+ if (iSender)
+ {
+ delete iSender;
+ iSender = NULL;
+ }
+ iSender = aSender;
+ iNmPrivateMessageEnvelope->mSender = iSender->GetNmAddress();
+}
+//</qmail>
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::GetSender
+// -----------------------------------------------------------------------------
+EXPORT_C CFSMailAddress* CFSMailMessageBase::GetSender() const
+{
+ FUNC_LOG;
+ return iSender;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::GetToRecipients
+// -----------------------------------------------------------------------------
+EXPORT_C RPointerArray<CFSMailAddress> CFSMailMessageBase::GetToRecipients()
+{
+// <qmail>
+ FUNC_LOG;
+ return NmConverter::toRPointerArray(
+ iNmPrivateMessageEnvelope->mToRecipients);
+// </qmail>
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::GetCCRecipients
+// -----------------------------------------------------------------------------
+EXPORT_C RPointerArray<CFSMailAddress> CFSMailMessageBase::GetCCRecipients()
+{
+// <qmail>
+ FUNC_LOG;
+ return NmConverter::toRPointerArray(
+ iNmPrivateMessageEnvelope->mCcRecipients);
+// </qmail>
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::GetBCCRecipients
+// -----------------------------------------------------------------------------
+EXPORT_C RPointerArray<CFSMailAddress> CFSMailMessageBase::GetBCCRecipients()
+{
+// <qmail>
+ FUNC_LOG;
+ return NmConverter::toRPointerArray(
+ iNmPrivateMessageEnvelope->mBccRecipients);
+// </qmail>
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::AppendToRecipient
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::AppendToRecipient(
+ CFSMailAddress* aRecipient )
+{
+ FUNC_LOG;
+// <qmail>
+ iNmPrivateMessageEnvelope->mToRecipients.append(
+ aRecipient->GetNmAddress());
+// </qmail>
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::AppendCCRecipient
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::AppendCCRecipient( CFSMailAddress* aRecipient )
+{
+ FUNC_LOG;
+// <qmail>
+ iNmPrivateMessageEnvelope->mCcRecipients.append(
+ aRecipient->GetNmAddress());
+// </qmail>
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::AppendBCCRecipient
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::AppendBCCRecipient( CFSMailAddress* aRecipient )
+{
+ FUNC_LOG;
+// <qmail>
+ iNmPrivateMessageEnvelope->mBccRecipients.append(
+ aRecipient->GetNmAddress());
+// </qmail>
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::ClearToRecipients
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::ClearToRecipients( )
+{
+ FUNC_LOG;
+// <qmail>
+ iNmPrivateMessageEnvelope->mToRecipients.clear();
+// </qmail>
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::ClearCcRecipients
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::ClearCcRecipients( )
+{
+ FUNC_LOG;
+// <qmail>
+ iNmPrivateMessageEnvelope->mCcRecipients.clear();
+// </qmail>
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::ClearBccRecipients
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::ClearBccRecipients( )
+{
+ FUNC_LOG;
+// <qmail>
+ iNmPrivateMessageEnvelope->mBccRecipients.clear();
+// </qmail>
+}
+
+//<qmail>
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::GetSubject
+// -----------------------------------------------------------------------------
+EXPORT_C TDesC& CFSMailMessageBase::GetSubject() const
+{
+ FUNC_LOG;
+ iSubjectPtr.Set(reinterpret_cast<const TUint16*> (iNmPrivateMessageEnvelope->mSubject.utf16()),
+ iNmPrivateMessageEnvelope->mSubject.length());
+ return iSubjectPtr;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::GetDate
+// -----------------------------------------------------------------------------
+EXPORT_C TTime CFSMailMessageBase::GetDate() const
+{
+ FUNC_LOG;
+ return NmConverter::toTTime(iNmPrivateMessageEnvelope->mSentTime);
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::SetDate
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::SetDate( const TTime aDate )
+{
+ FUNC_LOG;
+ iNmPrivateMessageEnvelope->mSentTime = NmConverter::toQDateTime(aDate);
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::SetSubject
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::SetSubject( const TDesC& aSubject )
+{
+ FUNC_LOG;
+ QString qtSubject = QString::fromUtf16(aSubject.Ptr(), aSubject.Length());
+ iNmPrivateMessageEnvelope->mSubject = qtSubject;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::GetFlags
+// -----------------------------------------------------------------------------
+EXPORT_C TInt CFSMailMessageBase::GetFlags( ) const
+{
+ FUNC_LOG;
+ return (TInt)iNmPrivateMessageEnvelope->flags();
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::SetFlag
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::SetFlag( const TInt aFlag )
+{
+ FUNC_LOG;
+ iNmPrivateMessageEnvelope->setFlags((NmMessageFlags)aFlag, true);
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::ResetFlag
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::ResetFlag( const TInt aFlag )
+{
+ FUNC_LOG;
+ iNmPrivateMessageEnvelope->setFlags((NmMessageFlags)aFlag, false);
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::IsFlagSet
+// -----------------------------------------------------------------------------
+EXPORT_C TBool CFSMailMessageBase::IsFlagSet( const TInt aFlag ) const
+{
+ FUNC_LOG;
+ TBool result = EFalse;
+ if (iNmPrivateMessageEnvelope->isFlagSet((NmMessageFlag)aFlag))
+ {
+ result = ETrue;
+ }
+ return result;
+}
+//</qmail>
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::IsRelatedTo
+// -----------------------------------------------------------------------------
+EXPORT_C TFSMailMsgId CFSMailMessageBase::IsRelatedTo() const
+{
+ FUNC_LOG;
+ return iRelatedTo;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::SetRelatedTo
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::SetRelatedTo( const TFSMailMsgId aMessageId )
+{
+ FUNC_LOG;
+ iRelatedTo = aMessageId;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::SetReplyToAddress
+// -----------------------------------------------------------------------------
+EXPORT_C void CFSMailMessageBase::SetReplyToAddress( CFSMailAddress* aReplyToAddress )
+{
+ FUNC_LOG;
+ // store sender
+ if (iReplyTo)
+ {
+ delete iReplyTo;
+ }
+ iReplyTo = aReplyToAddress;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::GetReplyToAddress
+// -----------------------------------------------------------------------------
+EXPORT_C const CFSMailAddress& CFSMailMessageBase::GetReplyToAddress()
+{
+ FUNC_LOG;
+ return *iReplyTo;
+}
+
+// -----------------------------------------------------------------------------
+// CFSMailMessageBase::GetNmMessageEnvelope
+// -----------------------------------------------------------------------------
+EXPORT_C NmMessageEnvelope* CFSMailMessageBase::GetNmMessageEnvelope()
+{
+ FUNC_LOG;
+ return new NmMessageEnvelope(iNmPrivateMessageEnvelope);
+}
+