--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuieng/EngInc/CCAMessageBase.h Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,396 @@
+/*
+* Copyright (c) 2004 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 Base class
+*
+*/
+
+
+#ifndef CCAMESSAGEBASE_H
+#define CCAMESSAGEBASE_H
+
+#include <e32base.h>
+#include <badesca.h>
+
+#include "MCAMessage.h"
+#include "MCALoggerMessage.h"
+#include "MCAMessageCreator.h"
+
+// FORWARD CLASS DECLERATIONS
+class MCAMessageContainerInfo;
+
+// Definitions
+// Version 0: Initial version
+// Version 1: Added TSystemMessage type. See InternalizeL.
+const TUint16 KVersionNum( 1 );
+
+// CLASS DECLARATION
+
+/**
+ * Message Base class
+ *
+ * @lib CAEngine.dll
+ * @since 3.0
+ */
+class CCAMessageBase : public CBase,
+ public MCAMessage,
+ public MCALoggerMessage
+ {
+ public: // Helper definitions
+
+ struct SProcessorObserverPair
+ {
+ MCAContentProcessor* iProcessor;
+ MCAContentProcessObserver* iObserver;
+ };
+
+ public: // Construction
+
+ /**
+ * Destruction
+ */
+ ~CCAMessageBase();
+
+ protected: // Construction
+
+ /**
+ * Constructor
+ */
+ CCAMessageBase();
+
+ /**
+ * Remember to call this one as last line of child ConstructL
+ */
+ void ConstructL( TInt aOpCode,
+ const TDesC& aSender,
+ const TDesC& aRecipient,
+ const MDesCArray* aRecipients,
+ const MDesCArray* aScreenNames );
+
+ protected: // From MCAMessage
+
+ /**
+ * @see MCAMessage
+ */
+ const TTime& TimeStamp() const;
+
+ /**
+ * @see MCAMessage
+ */
+ TMessageType MessageType() const;
+
+ /**
+ * @see MCAMessage
+ */
+ TMessagerType MessagerType() const;
+
+ /**
+ * @see MCAMessage
+ */
+ TInt OperationCode() const;
+
+ /**
+ * @see MCAMessage
+ */
+ void SetOperationCode( TInt aOpId );
+
+ /**
+ * @see MCAMessage
+ */
+ const TDesC& Recipient() const;
+
+ /**
+ * @see MCAMessage
+ */
+ const TDesC& Sender() const;
+
+ /**
+ * @see MCAMessage
+ */
+ const MDesCArray* Recipients() const;
+
+ /**
+ * @see MCAMessage
+ */
+ const MDesCArray* ScreenNames() const;
+
+ /**
+ * @see MCAMessage
+ */
+ void IncreaseOwnerCount();
+
+ /**
+ * @see MCAMessage
+ */
+ TBool DecreaseOwnerCount();
+
+ /**
+ * @see MCAMessage
+ */
+ const TDesC& Text() const;
+
+ /**
+ * @see MCAMessage
+ */
+ const TDesC& ServerAddress() const;
+
+ /**
+ * @see MCAMessage
+ */
+ const TDesC& UserId() const;
+
+ /**
+ * @see MCAMessage
+ */
+ const TDesC& Target() const;
+
+ /**
+ * @see MCAMessage
+ */
+ void SetContainerInfo( MCAMessageContainerInfo* aInfo );
+
+ /**
+ * @see MCAMessage
+ */
+ MCALoggerMessage& LoggerMessage();
+
+ /**
+ * @see MCAMessage
+ */
+ TInt AddContentProcessor( MCAContentProcessor& aProcessor,
+ MCAContentProcessObserver* aObserver );
+
+ /**
+ * @see MCAMessage
+ */
+ void HandleProcessingComplete( MCAContentProcessor& aProcessor,
+ TInt aStatus );
+
+ /**
+ * @see MCAMessage
+ */
+ const TDesC8& MimeType() const;
+
+ /**
+ * @see MCAMessage
+ */
+ const TDesC8& ContentData() const;
+
+ /**
+ * @see MCAMessage
+ */
+ void SetContentData( HBufC8* aNewContent );
+
+ /**
+ * @see MCAMessage
+ */
+ TContentProcessState ContentProcessState() const;
+
+ /**
+ * @see MCAMessage
+ */
+ void SetProcessState( TContentProcessState aNewState );
+
+ /**
+ * @see MCAMessage
+ */
+ void ReleaseTemporaryContentData();
+
+ /**
+ * @see MCAMessage
+ */
+ TInt SizeInBytes() const;
+
+ /**
+ * @see MCAMessage
+ */
+ TBool FailedMessage() const;
+
+ /**
+ * @see MCAMessage
+ */
+ void SetForwardPartL( const HBufC* aFwdPart );
+
+ /**
+ * @see MCAMessage
+ */
+ const HBufC* ForwardPart() const;
+
+ /**
+ * @see MCAMessage
+ */
+ TSystemMessage SystemMessageType();
+
+
+ /**
+ * @see MCAMessage
+ */
+ void SetImageAsSaved( const TBool aSaved );
+
+ /**
+ * @see MCAMessage
+ */
+ TBool IsImageSaved();
+
+ public:
+
+ /**
+ * Set default content process observer which is informed always
+ * when messages has been changed
+ */
+ void SetContentProcessObserver( MCAContentProcessObserver* aObserver );
+
+ protected: // From MCALoggerMessage
+
+ /**
+ * @see MCALoggerMessage
+ */
+ void InternalizeL( RReadStream& aStream );
+
+ /**
+ * @see MCALoggerMessage
+ */
+ void ExternalizeL( RWriteStream& aStream ) const;
+
+ /**
+ * @see MCALoggerMessage
+ */
+ TInt MessageSizeInBytesL() const;
+
+ public: // New methods
+
+ /**
+ * Externalize message to MTM send format
+ * @param aStream Stream where message is externalized to.
+ * @param aShowTimeStamps show or hide the timestamps
+ * @since 2.5
+ */
+ virtual void ExternalizeForMTML( RWriteStream& aStream,
+ TBool aShowTimeStamps ) const;
+
+ /**
+ * Set message type
+ * @param aNewType New message type.
+ */
+ virtual void SetMessageType( TMessageType aNewType );
+
+ /**
+ * Set messager type
+ * @param aNewType New messager type.
+ */
+ virtual void SetMessagerType( TMessagerType aNewType );
+
+ /**
+ * Set message as system message
+ * @param aType Type of system message
+ */
+ void SetSystem( TSystemMessage aType );
+
+ /**
+ * Set version number of message. Version information is used
+ * when reading message data from data streams.
+ * @param aVersion new version number of message
+ */
+ void SetVersionNumber( TUint16 aVersion );
+
+ protected:
+
+ /**
+ * Set failed message
+ */
+ virtual void SetFailed( TBool aFailed = ETrue );
+
+ /**
+ * Launches waiting processing.
+ */
+ void LaunchProcessingL();
+
+ private: // New helper methods
+
+ /**
+ * Resolves type for message
+ */
+ void ResolveMessageType( const MDesCArray* aRecipients,
+ const MDesCArray* iScreenNames );
+
+ protected: // Member variables
+
+ /// Type of message
+ TMessageType iMessageType;
+
+ /// Type of messager
+ TMessagerType iMessagerType;
+
+ /// Owns Message content type
+ HBufC8* iMimeType;
+
+ /// Owns Message sender
+ HBufC* iSender;
+
+ /// Owns Recipient of message
+ HBufC* iRecipient;
+
+ /// Owns Message content
+ HBufC8* iContentData;
+
+ /// Timestamp.
+ TTime iTime;
+
+ /// Operation code
+ TInt iOperationCode;
+
+ /// Ownercount to count owners.
+ TInt iOwnerCount;
+
+ /// Owns. Textual content.
+ HBufC* iText;
+
+ /// Does not own. Container information
+ MCAMessageContainerInfo* iInfo;
+
+ /// Processors for content
+ RArray< SProcessorObserverPair > iProcessors;
+
+ /// Processing state
+ TContentProcessState iContentProcessingState;
+
+ /// Default content process observer
+ MCAContentProcessObserver* iDefaultContentObserver;
+
+ /// Owns. Recipient list.
+ CDesCArrayFlat* iRecipients;
+
+ /// Owns. ScreenNames list.
+ CDesCArrayFlat* iScreenNames;
+
+ /// Is message failed message or not.
+ TBool iFailed;
+
+ /// Owns. Part of message to be forwarded.
+ const HBufC* iForwardPart;
+
+ /// If this is a system message, this defines the type
+ TSystemMessage iSystemMessageType;
+
+ // Message's version used in internalizing/externalizing
+ TUint16 iMessageVersion;
+
+ //this flag is used if message content is image
+ //if the user has chosen to save the image then this value will
+ //be ETrue else EFalse
+ TBool iSaved;
+ };
+
+#endif // CCAMESSAGEBASE_H
+
+// End of File