diff -r 000000000000 -r 094583676ce7 wvuing/wvuieng/EngInc/MCAMessage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuieng/EngInc/MCAMessage.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,353 @@ +/* +* Copyright (c) 2004-2005 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: Interface for handling one message +* +*/ + + +#ifndef MCAMESSAGE_H +#define MCAMESSAGE_H + +#include +#include + +// FORWARD CLASS DECLERATIONS +class MCAMessageContainerInfo; +class MCALoggerMessage; +class MCAContentProcessor; +class MCAContentProcessObserver; + +// 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 CAEngine.dll + * @since 3.0 + */ +class MCAMessage + { + 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 + }; + + /** + * 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; + + /** + * 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; + + public: // Identification of message + /** + * Operation code of message. One way to identify message. + * @return Operation code of message. + */ + virtual TInt OperationCode() const = 0; + + /** + * Set operation code of message. + * @param aOpId, new operation code for message + */ + virtual void SetOperationCode( TInt aOpId ) = 0; + + /** + * Part of container identifier which contains this message + * @return Server address to identify container which contains + * this message + */ + virtual const TDesC& ServerAddress() const = 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; + + /** + * Part of container identifier which contains this message + * @return Identifier to identify container which contains this message + */ + virtual const TDesC& Target() const = 0; + + /** + * Set containerinfo of message. Needed for identifying of message. + * @param aInfo. ContainerInfo. + */ + virtual void SetContainerInfo( MCAMessageContainerInfo* 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; + + /** + * Recipients array. + * @return Array of recipients + */ + virtual const MDesCArray* Recipients() const = 0; + + /** + * Screennames array + */ + virtual const MDesCArray* ScreenNames() const = 0; + + /** + * Textual content of message + * @return Textual content. + */ + virtual const TDesC& Text() const = 0; + + /** + * Mime type of content. + * @return Mime type of content. + */ + virtual const TDesC8& MimeType() const = 0; + + /** + * Content data in decriptor + * @return Content data in descriptor + */ + virtual const TDesC8& ContentData() const = 0; + + /** + * Set content data for message + * @param aContent. Ownership is transferred. + */ + virtual void SetContentData( HBufC8* aContent ) = 0; + + /** + * Current processing state. Might be different for different + * content types + * @return Processing state of message. + */ + virtual TContentProcessState ContentProcessState() const = 0; + + /** + * Set current processing state. + * @aNewState New processing state + */ + virtual void SetProcessState( TContentProcessState aNewState ) = 0; + + /** + * Set the part of message to be forwarded, + * used when forwarding a highlighted item from a message. + * @param aFwdPart pointer to highlighted item descriptor, + * use NULL to clear forward message part. + */ + virtual void SetForwardPartL( const HBufC* aFwdPart ) = 0; + + /** + * Forwarded part of message. + * @return forwarded part of message or NULL if not set + */ + virtual const HBufC* ForwardPart() const = 0; + + public: // Message owner managing. + + /** + * 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: // Log interface of message. + + /** + * Interface for logger. + * @return Interface for logger. + */ + virtual MCALoggerMessage& LoggerMessage() = 0; + + public: // Content processing. + + /** + * Add content processor for message + * @param aProcessor Processor for content. + */ + virtual TInt AddContentProcessor( + MCAContentProcessor& aProcessor, + MCAContentProcessObserver* aObserver ) = 0; + + /** + * Handle processing completion. Called by content processor when + * processing is ready. + * @param aProcessor Processor which made processing. + * @param aStatus, Status of processing. KErrNone -> OK. + */ + virtual void HandleProcessingComplete( MCAContentProcessor& aProcessor, + TInt aStatus ) = 0; + + /** + * Release temporary content data + */ + virtual void ReleaseTemporaryContentData() = 0; + + + public: + //The following API's are used, if message content is a image + //This is part of new implementation required for wvuing + //While merging with wvui20, please make sure you preserve + //this change also. + /** + * API used to set the iSaved Flag to ETrue + * if the image is saved by the user. + * @param aSaved - ETrue if Image is Saved by the user + * @return void + */ + virtual void SetImageAsSaved( const TBool aSaved ) = 0; + + /** + * API used to check whether the image was + * SAVED or not. + * @return TBool - ETrue if the user has already saved the image + * else EFalse + */ + virtual TBool IsImageSaved() = 0; + + public: // For deletion of message + + /** + * Virtual destructor + */ + virtual ~MCAMessage() {} + }; + +#endif // MCAMESSAGE_H + +// End of File +