imstutils/imconversationview/imcvuiengine/inc/mimcvenginemessage.h
branchRCL_3
changeset 29 9a48e301e94b
parent 0 5e5d6b214f4f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imstutils/imconversationview/imcvuiengine/inc/mimcvenginemessage.h	Wed Sep 01 12:33:36 2010 +0100
@@ -0,0 +1,238 @@
+/*
+* 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:  message interface
+*
+*/
+
+
+#ifndef MIMCVENGINEMESSAGE_H
+#define MIMCVENGINEMESSAGE_H
+
+#include <e32base.h>
+#include <badesca.h>
+
+//	FORWARD CLASS DECLERATIONS
+class MIMCVEngineMessageContainerInfo;
+class TXIMPRequestId;
+// MDesCArray must not be fwd declared, or compiling test code will break
+// since it's a MACRO. hence the include to badesca.h
+
+// CLASS DECLARATION
+
+/**
+ *  Interface for handling one message
+ *
+ *  @lib imcvengine.dll
+ *  @since 5.0
+ */
+class MIMCVEngineMessage
+	{
+	public: // Definitions
+	
+		/** 
+		 * Different message types
+		 */
+		enum TMessageType
+			{
+			EMessagePTOP,
+			EMessageWhisper,
+			EMessageGroup,
+			EMessageSystem,
+			EMessageInvalid
+			};
+	
+        /**
+         * System message enumerations.
+         */			
+	    enum TSystemMessage
+	        {
+	        ESystemMessageNone,
+	        ESystemMessageWelcome,
+	        ESystemMessageNewUsers,
+	        ESystemMessageTopicChanged,
+	        ESystemMessagePrivatChanged,
+	        ESystemMessageLeftUsers,
+	        ESystemMessageDateChange
+	        };
+
+		/**
+		 * Direction of message. Coming or going or other.
+		 */
+		enum TMessagerType
+			{
+			EMessageSent,
+			EMessageReceived,
+			EMessageOther,
+			EMessageStarted
+			};
+		
+		/**
+		 * Different message content types
+		 */
+		enum TContentType
+			{
+			EContentText,
+			EContentPicture,
+			EContentOther,
+			EContentInvalid
+			};
+			
+	    /**
+	     * Content processing states
+	     */
+	    enum TContentProcessState
+	        {
+	        EContentNotProcessed = 0,
+	        EContentNotSupported,
+	        EContentNotSupportedDrm,
+	        EContentCorrupted,
+	        EBitmapDecoded,
+	        EBitmapScaled,
+	        EContentReady,
+	        EContentDecoded,
+	        EThumbnailReady
+	        };
+	
+	public: // General information
+	
+		/**
+		 * Get timestamp when this message has been created.
+		 * For prioritization of message deletion and timestamping
+		 * chat messages
+		 */
+		virtual const TTime& TimeStamp() const = 0;
+
+		/**
+		 * @see MIMMessageBase
+		 */
+		virtual void SetTimeStamp(TTime aTime ) = 0 ;
+		
+		/**
+		 * Message size in bytes.
+		 * @return Size of message in bytes.
+		 */
+		virtual TInt SizeInBytes() const = 0;
+
+    public: // Type of message
+		/**
+		 * Type of message
+		 * @return Type of message. EMessageGroup, EMessagePersonal, 
+		 *         EMessageSystem
+		 */
+		virtual TMessageType MessageType() const = 0;
+
+		/**
+		 * Type of messager
+		 * @return Type of message. EMessageFrom, EMessageTo, EMessageOther 
+		 */
+		virtual TMessagerType MessagerType() const = 0;
+
+		/**
+		 * Type of content of message
+		 * @return Type of message. EMessageText, EMessagePicture
+		 */
+		virtual TContentType ContentType() const = 0;
+		
+		/**
+		 * Is message failed or not
+		 * @return ETrue if is, EFalse if not.
+		 */ 
+        virtual TBool FailedMessage() const = 0;
+				
+		/**
+		 * Returns the type of system message.
+		 * @return type of system message or
+		 *         TSystemMessageNone if not system message
+		 */ 
+		virtual TSystemMessage SystemMessageType() = 0;
+		
+		/**
+	     * Increase owner count. There can be multiply owners for one message. 
+	     * This method is for increasing the count. Every owner class
+	     * must use also DecreaseOwnerCount.
+	     */
+	    virtual void IncreaseOwnerCount() = 0;
+	    
+	    /**
+	     * Decrease owner count. There can be multiply owners for one message.
+	     * This method is for decreasing the count. Every owner class
+	     * must have called IncreaseOwnerCount before calling this method. 
+	     * @return ETrue if owner can delete message. EFalse if not.
+	     */ 
+	    virtual TBool DecreaseOwnerCount() = 0;
+	    
+		
+	public: // Identification of message
+		/**
+		 * Operation code of message. One way to identify message.
+		 * @return Operation code of message.
+		 */
+	    virtual TXIMPRequestId OperationCode() const = 0;
+	    
+	    /**
+	     * Set operation code of message.
+	     * @param aOpId, new operation code for message
+	     */
+	    virtual void SetOperationCode(TXIMPRequestId aRequestId ) = 0;
+	    
+	    
+
+	    /**
+	     * Part of container identifier which contains this message
+	     * @return User id to identify container which contains this message
+	     */
+	    //virtual const TDesC& UserId() const = 0;
+	    
+	   	    
+	    /**
+	     * Set containerinfo of message. Needed for identifying of message.
+	     * @param aInfo. ContainerInfo.
+	     */
+        virtual void SetContainerInfo( MIMCVEngineMessageContainerInfo* aInfo ) = 0;
+	    	    
+    public: // Content of message	    
+	    
+	    /**
+	     * Recipient of message.
+	     * @return Recipient of message. To whom the message is sent.
+	     */
+	    virtual const TDesC& Recipient() const = 0;
+	    
+	    /**
+	     * Sender of message
+	     * @return Sender of message. To who has sent the message.
+	     */
+	    virtual const TDesC& Sender() const = 0;
+
+	    
+	    /**
+	     * Textual content of message
+	     * @return Textual content.
+	     */
+	    virtual const TDesC& Text() const = 0;
+	    
+               
+       
+    public: 
+     
+		/**
+		 * Virtual destructor
+		 */
+		virtual ~MIMCVEngineMessage(){}
+	}; 
+
+#endif      // MIMCVENGINEMESSAGE_H
+
+// End of File
+