diff -r e7aa27f58ae1 -r 578830873419 emailservices/emailcommon/src/CFSMailMessageBase.cpp --- /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 +* +*/ + + +// +#include +#include "emailtrace.h" +#include "CFSMailMessageBase.h" +// + +// +#include "nmmessageenvelope.h" +#include "nmconverter.h" +// + +// ================= 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; +} + +// +// ----------------------------------------------------------------------------- +// 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; +} +// + +// ----------------------------------------------------------------------------- +// CFSMailMessageBase::~CFSMailMessageBase +// ----------------------------------------------------------------------------- +EXPORT_C CFSMailMessageBase::~CFSMailMessageBase() +{ + FUNC_LOG; + if(iSender) + { + delete iSender; + iSender = NULL; + } +} + +// +// ----------------------------------------------------------------------------- +// 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); +} +// + +// ----------------------------------------------------------------------------- +// 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); +} + +// +// ----------------------------------------------------------------------------- +// CFSMailMessageBase::SetSender +// ----------------------------------------------------------------------------- +EXPORT_C void CFSMailMessageBase::SetSender( CFSMailAddress* aSender ) +{ + FUNC_LOG; + if (iSender) + { + delete iSender; + iSender = NULL; + } + iSender = aSender; + iNmPrivateMessageEnvelope->mSender = iSender->GetNmAddress(); +} +// + +// ----------------------------------------------------------------------------- +// CFSMailMessageBase::GetSender +// ----------------------------------------------------------------------------- +EXPORT_C CFSMailAddress* CFSMailMessageBase::GetSender() const +{ + FUNC_LOG; + return iSender; +} + +// ----------------------------------------------------------------------------- +// CFSMailMessageBase::GetToRecipients +// ----------------------------------------------------------------------------- +EXPORT_C RPointerArray CFSMailMessageBase::GetToRecipients() +{ +// + FUNC_LOG; + return NmConverter::toRPointerArray( + iNmPrivateMessageEnvelope->mToRecipients); +// +} + +// ----------------------------------------------------------------------------- +// CFSMailMessageBase::GetCCRecipients +// ----------------------------------------------------------------------------- +EXPORT_C RPointerArray CFSMailMessageBase::GetCCRecipients() +{ +// + FUNC_LOG; + return NmConverter::toRPointerArray( + iNmPrivateMessageEnvelope->mCcRecipients); +// +} + +// ----------------------------------------------------------------------------- +// CFSMailMessageBase::GetBCCRecipients +// ----------------------------------------------------------------------------- +EXPORT_C RPointerArray CFSMailMessageBase::GetBCCRecipients() +{ +// + FUNC_LOG; + return NmConverter::toRPointerArray( + iNmPrivateMessageEnvelope->mBccRecipients); +// +} + +// ----------------------------------------------------------------------------- +// CFSMailMessageBase::AppendToRecipient +// ----------------------------------------------------------------------------- +EXPORT_C void CFSMailMessageBase::AppendToRecipient( + CFSMailAddress* aRecipient ) +{ + FUNC_LOG; +// + iNmPrivateMessageEnvelope->mToRecipients.append( + aRecipient->GetNmAddress()); +// +} + +// ----------------------------------------------------------------------------- +// CFSMailMessageBase::AppendCCRecipient +// ----------------------------------------------------------------------------- +EXPORT_C void CFSMailMessageBase::AppendCCRecipient( CFSMailAddress* aRecipient ) +{ + FUNC_LOG; +// + iNmPrivateMessageEnvelope->mCcRecipients.append( + aRecipient->GetNmAddress()); +// +} + +// ----------------------------------------------------------------------------- +// CFSMailMessageBase::AppendBCCRecipient +// ----------------------------------------------------------------------------- +EXPORT_C void CFSMailMessageBase::AppendBCCRecipient( CFSMailAddress* aRecipient ) +{ + FUNC_LOG; +// + iNmPrivateMessageEnvelope->mBccRecipients.append( + aRecipient->GetNmAddress()); +// +} + +// ----------------------------------------------------------------------------- +// CFSMailMessageBase::ClearToRecipients +// ----------------------------------------------------------------------------- +EXPORT_C void CFSMailMessageBase::ClearToRecipients( ) +{ + FUNC_LOG; +// + iNmPrivateMessageEnvelope->mToRecipients.clear(); +// +} + +// ----------------------------------------------------------------------------- +// CFSMailMessageBase::ClearCcRecipients +// ----------------------------------------------------------------------------- +EXPORT_C void CFSMailMessageBase::ClearCcRecipients( ) +{ + FUNC_LOG; +// + iNmPrivateMessageEnvelope->mCcRecipients.clear(); +// +} + +// ----------------------------------------------------------------------------- +// CFSMailMessageBase::ClearBccRecipients +// ----------------------------------------------------------------------------- +EXPORT_C void CFSMailMessageBase::ClearBccRecipients( ) +{ + FUNC_LOG; +// + iNmPrivateMessageEnvelope->mBccRecipients.clear(); +// +} + +// +// ----------------------------------------------------------------------------- +// CFSMailMessageBase::GetSubject +// ----------------------------------------------------------------------------- +EXPORT_C TDesC& CFSMailMessageBase::GetSubject() const +{ + FUNC_LOG; + iSubjectPtr.Set(reinterpret_cast (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; +} +// + +// ----------------------------------------------------------------------------- +// 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); +} +