diff -r 3104fc151679 -r 9a48e301e94b imstutils/imconversationview/imcvuiengine/inc/mimcvenginemessage.h --- /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 +#include + +// 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 +