diff -r 000000000000 -r 72b543305e3a email/imap4mtm/imapsession/src/cimapfolderinfo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imap4mtm/imapsession/src/cimapfolderinfo.cpp Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,200 @@ +// Copyright (c) 2006-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: +// + + +#include "cimapfolderinfo.h" + +#include "imappaniccodes.h" + +EXPORT_C CImapFolderInfo* CImapFolderInfo::NewL() +// static method + { + CImapFolderInfo* self = new(ELeave)CImapFolderInfo(); + return self; + } + +CImapFolderInfo::~CImapFolderInfo() + { + delete iName; + iExpungedMessages.Close(); + } + +EXPORT_C void CImapFolderInfo::SetMsvId(TMsvId aMsvId) + { + iMsvId = aMsvId; + } +EXPORT_C TMsvId CImapFolderInfo::MsvId() const + { + return iMsvId; + } + +EXPORT_C void CImapFolderInfo::SetNameL(const TDesC& aName) + { + HBufC* name = aName.AllocL(); + delete iName; + iName = name; + } +EXPORT_C const TDesC& CImapFolderInfo::Name() const + { + return iName ? *iName : KNullDesC(); + } + +void CImapFolderInfo::SetExists(TInt aExists) + { + iExists = aExists; + } +EXPORT_C TInt CImapFolderInfo::Exists() const + { + return iExists; + } + +EXPORT_C void CImapFolderInfo::SetRecent(TInt aRecent) + { + iRecent = aRecent; + } +EXPORT_C TInt CImapFolderInfo::Recent() const + { + return iRecent; + } + +/** +Appends the message sequence number to the array of expunged messages, +and decrements the overall message count. +*/ +void CImapFolderInfo::AddExpungedMessageL(TUint aMessageSequenceNumber) + { + iExpungedMessages.AppendL(aMessageSequenceNumber); + --iExists; + + __ASSERT_DEBUG(iExists >= 0, TImapServerPanic::ImapPanic(TImapServerPanic::EFolderInfoNegativeExistsCount)); + } + +EXPORT_C void CImapFolderInfo::ResetExpungedMessages() + { + iExpungedMessages.Reset(); + } + +/** +@return A read-only version of the expunged message array. +*/ +EXPORT_C const RArray CImapFolderInfo::ExpungedMessages() + { + return iExpungedMessages; + } + +/** +Sets to ETrue when the IMAP server has indicated that the flags of one or more messages has changed. +Resets to EFalse in order to wait for the next server notification. +@param aMessageFlagsChanged Whether the IMAP server has recently indicated that the flags of one or more messages has changed. +*/ +EXPORT_C void CImapFolderInfo::SetMessageFlagsChanged(TBool aMessageFlagsChanged) + { + iMessageFlagsChanged = aMessageFlagsChanged; + } + +/** +@return Whether the IMAP server has recently indicated that the flags of one or more messages has changed. +*/ +EXPORT_C TBool CImapFolderInfo::MessageFlagsChanged() const + { + return iMessageFlagsChanged; + } + +/** +Returns the value of iUnseen +The meaning of this value depends upon the context in which it is being used. +In response to a SELECT command, iUnseen is the ID of the first unseen message +See section 7.1 of RFC 3501. +The CImapFolderInfo object returned by CImapSession::SelectedFolderInfo() will always +have this meaning. +In response to a STATUS command, iUnseen is the number of unseen messages. +See section 6.3.10 of RFC 3501. +The CImapFolderInfo object populated by CImapSession::StatusL() will always +have this meaning. +@return the value of iUnseen. +*/ +void CImapFolderInfo::SetUnseen(TUint aUnseen) + { + iUnseen = aUnseen; + } +EXPORT_C TUint CImapFolderInfo::Unseen() const + { + return iUnseen; + } + +void CImapFolderInfo::SetUidNext(TUint aUidNext) + { + iUidNext = aUidNext; + } +EXPORT_C TUint CImapFolderInfo::UidNext() const + { + return iUidNext; + } + +void CImapFolderInfo::SetUidValidity(TUint aUidValidity) + { + iUidValidity = aUidValidity; + } +EXPORT_C TUint CImapFolderInfo::UidValidity() const + { + return iUidValidity; + } + +void CImapFolderInfo::SetMessages(TInt aMessages) + { + iMessages = aMessages; + } + +EXPORT_C TInt CImapFolderInfo::Messages() const + { + return iMessages; + } + +void CImapFolderInfo::SetReadWrite(TBool aMailboxWritable) + { + iMailboxWritable = aMailboxWritable; + } + +EXPORT_C TBool CImapFolderInfo::GetReadWrite() const + { + return iMailboxWritable; + } + +/** +Set the flag identified by aFlagId to the value of aValue. +@param aFlagId Identifies which flag to set. +@param aValue The value to apply to the flag. +*/ +void CImapFolderInfo::SetFlag(TIMapMailboxFlags aFlagId, TBool aValue) + { + if (aValue) + { + iFlags |= aFlagId; + } + else + { + iFlags &= ~aFlagId; + } + } + +/** +Retrieve the value of the flag identified by aFlagId. +@param aFlagId Identifies which flag to query. +@return The value of the querried flag. +*/ +EXPORT_C TBool CImapFolderInfo::QueryFlag(TIMapMailboxFlags aFlagId) const + { + return iFlags & aFlagId; + }