imservices/instantmessagingcache/imcacheserver/inc/cimcachemessageheader.h
changeset 0 e6b17d312c8b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imservices/instantmessagingcache/imcacheserver/inc/cimcachemessageheader.h	Thu Dec 17 08:54:49 2009 +0200
@@ -0,0 +1,142 @@
+/*
+* 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:   a header of all convesation
+*
+*/
+
+
+#ifndef CIMCACHEMESSAGEHEADER_H
+#define CIMCACHEMESSAGEHEADER_H
+
+#include <e32base.h>
+#include "mimcachemessageheader.h"
+
+// CLASS DECLARATION
+
+/**
+ *  Message header for history data
+ *
+ *  @lib imcacheserver.exe
+ *  @since 5.0
+ */
+ 
+class CIMCacheMessageHeader : public CBase, 
+							  public MIMCacheMessageHeader
+    {
+    public: // Constructors and destructors
+
+		/**
+		 * NewL for CIMCacheMessageHeader
+         * Two-phase constructor
+		 * @param aServiceId , a service id .
+		 * @param aBuddyId a buddy. 
+		 * @return Instance of CIMCacheMessageHeader with header information.
+		 */        
+		static CIMCacheMessageHeader* NewL(TInt aServiceId, const TDesC& aBuddyId );
+
+		/**
+		 * Virtual destructor	
+		 */
+        virtual ~CIMCacheMessageHeader();
+
+    private:	// Constructors
+
+		/**
+		 * Default constructor	
+		 */
+        CIMCacheMessageHeader();
+
+		/**
+		 * ConstructL for CIMCacheMessageHeader
+		 * Part of Two-phase construction
+         * @param aServiceId , a service id .
+		 * @param aSender sender 
+		 * @param aBuddyId a recipient 
+		 */
+        void ConstructL(TInt aServiceId, const TDesC& aBuddyId );
+    
+
+	public: //new MIMCacheMessageHeader
+
+		/**
+		 *	service id
+		 *	@return a service id
+		 */
+		 TInt ServiceId() const;
+		
+		/**
+		 *	user id of recipient 
+		 *	@return recipient user id
+		 */
+		const TDesC& BuddyId() const;
+		
+		/**
+		 *	return total message count
+		 */
+		TInt MessageCount() const ;
+
+		/**
+		 * get message at given index 
+		 * @param aIndex index
+		 */
+		CIMCacheMessageBase* GetMessage(TInt aIndex ) ;
+
+		/**
+		 * append message
+		 * @param aMessge message to append
+		 */
+		void AppendMessageL(CIMCacheMessageBase* aMessge)  ; 	
+		
+		/**
+		 * UnreadMessageCount 
+		 * @return unread message count
+		 */
+        TInt UnreadMessageCount() const ; 
+        
+        /**
+        * check wheather chat started or not
+        * @return ETrue started
+        */
+        TBool IsChatStarted();
+        
+		/**
+        * set chat started 
+        * @param aStarted, a boolean value to set
+         */
+        void SetChatStarted(TBool aStarted );
+       
+      	/**
+        * mark all message read
+        */
+        void MarkAllRead();
+        
+    private:  // Data
+	
+        //owned, recipient
+		HBufC* iBuddyId;
+		
+		//service id
+		TInt iServiceId ;
+		
+		//owned,  array of all messages
+		RPointerArray< CIMCacheMessageBase > iMessageArray;
+		
+		//true if streaming is not completely done.
+		TBool iChatStarted;
+			
+	};
+
+#endif      // CIMCACHEMESSAGEHEADER_H
+
+// End of File