diff -r 000000000000 -r e6b17d312c8b imservices/instantmessagingcache/imcacheserver/src/cimcachemessageheader.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imservices/instantmessagingcache/imcacheserver/src/cimcachemessageheader.cpp Thu Dec 17 08:54:49 2009 +0200 @@ -0,0 +1,199 @@ +/* +* Copyright (c) 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: implementation of header of all convesation +* +*/ + + +// Include Files + +#include "cimcachemessageheader.h" + +#include "cimcachemessagebase.h" + //logs +#include "imcachedebugtrace.h" + + +// CONSTRUCTION +// ----------------------------------------------------------------------------- +// CIMCacheMessageHeader::NewL +// Static constructor +// ----------------------------------------------------------------------------- +// +CIMCacheMessageHeader* CIMCacheMessageHeader::NewL(TInt aServiceId, const TDesC& aBuddyId ) + { + TRACE( T_LIT( "CIMCacheMessageHeader::NewL begin") ); + CIMCacheMessageHeader* self = new (ELeave) CIMCacheMessageHeader; + CleanupStack::PushL(self); + self->ConstructL( aServiceId, aBuddyId ); + CleanupStack::Pop(); + TRACE( T_LIT( "CIMCacheMessageHeader::NewL end") ); + return self; + } + + +// ----------------------------------------------------------------------------- +// CIMCacheMessageHeader::~CIMCacheMessageHeader +// Destructor (virtual by CBase) +// ----------------------------------------------------------------------------- +// +CIMCacheMessageHeader::~CIMCacheMessageHeader() + { + TRACE( T_LIT( "CIMCacheMessageHeader::~CIMCacheMessageHeader begin") ); + delete iBuddyId; + iMessageArray.ResetAndDestroy() ; // all messages + TRACE( T_LIT( "CIMCacheMessageHeader::~CIMCacheMessageHeader end") ); + } + +// ----------------------------------------------------------------------------- +// CIMCacheMessageHeader::ConstructL +// Second phase construct +// ----------------------------------------------------------------------------- +// +void CIMCacheMessageHeader::ConstructL(TInt aServiceId, const TDesC& aBuddyId ) + { + TRACE( T_LIT( "CIMCacheMessageHeader::ConstructL begin") ); + iServiceId = aServiceId; + iBuddyId = aBuddyId.AllocL(); + TRACE( T_LIT( "CIMCacheMessageHeader::ConstructL end") ); + } + +// ----------------------------------------------------------------------------- +// CIMCacheMessageHeader::CIMCacheMessageHeader +// Constructor +// ----------------------------------------------------------------------------- +// +CIMCacheMessageHeader::CIMCacheMessageHeader(): + iChatStarted( EFalse) + { + TRACE( T_LIT( "CIMCacheMessageHeader::CIMCacheMessageHeader") ); + } + + +// ----------------------------------------------------------------------------- +// CIMCacheMessageHeader::Recipient +// name of history data +// ----------------------------------------------------------------------------- +// +const TDesC& CIMCacheMessageHeader::BuddyId() const + { + TRACE( T_LIT( "CIMCacheMessageHeader::Recipient begin") ); + if( iBuddyId ) + { + return *iBuddyId; + } + TRACE( T_LIT( "CIMCacheMessageHeader::Recipient end") ); + return KNullDesC; + + } + +// ----------------------------------------------------------------------------- +// CIMCacheMessageHeader::ServiceId +// name of history data +// ----------------------------------------------------------------------------- +// + TInt CIMCacheMessageHeader::ServiceId() const + { + return iServiceId; + } + +// ----------------------------------------------------------------------------- +// CIMCacheMessageHeader::MessageCount +// name of history data +// ----------------------------------------------------------------------------- +// + TInt CIMCacheMessageHeader::MessageCount() const + { + return iMessageArray.Count(); + } +// ----------------------------------------------------------------------------- +// CIMCacheMessageHeader::GetMessage +// name of history data +// ----------------------------------------------------------------------------- +// + CIMCacheMessageBase* CIMCacheMessageHeader::GetMessage(TInt aIndex ) + { + return iMessageArray[aIndex]; + } + +// ----------------------------------------------------------------------------- +// CIMCacheMessageHeader::AppendMessageL +// name of history data +// ----------------------------------------------------------------------------- +// +void CIMCacheMessageHeader::AppendMessageL(CIMCacheMessageBase* aMessge) + { + TRACE( T_LIT( "CIMCacheMessageHeader::AppendMessageL begin") ); + + iMessageArray.AppendL( aMessge ); + + TRACE( T_LIT( "CIMCacheMessageHeader::AppendMessageL end") ); + } + +// ----------------------------------------------------------------------------- +// CIMCacheMessageHeader::UnreadMessageCount +// name of history data +// ----------------------------------------------------------------------------- +// +TInt CIMCacheMessageHeader::UnreadMessageCount() const + { + TRACE( T_LIT( "CIMCacheMessageHeader::UnreadMessageCount begin") ); + TInt ret = 0; + TInt msgcount = iMessageArray.Count(); + for(TInt i=0; iIsUnread() ) + { + ret++; + } + } + TRACE( T_LIT( "CIMCacheMessageHeader::UnreadMessageCount end") ); + return ret; + } + +// ----------------------------------------------------------------------------- +// CIMCacheMessageHeader::IsChatStarted +// name of history data +//----------------------------------------------------------------------------- +TBool CIMCacheMessageHeader::IsChatStarted() + { + return iChatStarted; + } + +// ----------------------------------------------------------------------------- +// CIMCacheMessageHeader::SetChatStarted +// name of history data +//----------------------------------------------------------------------------- +void CIMCacheMessageHeader::SetChatStarted(TBool aStarted ) + { + iChatStarted = aStarted; + } + + // ----------------------------------------------------------------------------- +// CIMCacheMessageHeader::MarkAllRead +// name of history data +//----------------------------------------------------------------------------- +void CIMCacheMessageHeader::MarkAllRead() + { + TInt unreadCount = UnreadMessageCount(); + TInt count = MessageCount(); + + for( TInt i = count-1; i >= count- unreadCount; i-- ) + { + iMessageArray[i]->SetRead(); + } + } + +// End of File