wvuing/wvuieng/EngInc/CCAMessageBase.h
changeset 0 094583676ce7
equal deleted inserted replaced
-1:000000000000 0:094583676ce7
       
     1 /*
       
     2 * Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Message Base class
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef CCAMESSAGEBASE_H
       
    20 #define CCAMESSAGEBASE_H
       
    21 
       
    22 #include <e32base.h>
       
    23 #include <badesca.h>
       
    24 
       
    25 #include "MCAMessage.h"
       
    26 #include "MCALoggerMessage.h"
       
    27 #include "MCAMessageCreator.h"
       
    28 
       
    29 //	FORWARD CLASS DECLERATIONS
       
    30 class MCAMessageContainerInfo;
       
    31 
       
    32 // Definitions
       
    33 // Version 0: Initial version
       
    34 // Version 1: Added TSystemMessage type. See InternalizeL.
       
    35 const TUint16 KVersionNum( 1 );
       
    36 
       
    37 // CLASS DECLARATION
       
    38 
       
    39 /**
       
    40  *  Message Base class
       
    41  *
       
    42  *  @lib CAEngine.dll
       
    43  *  @since 3.0
       
    44  */
       
    45 class CCAMessageBase : public CBase,
       
    46             public MCAMessage,
       
    47             public MCALoggerMessage
       
    48     {
       
    49     public: // Helper definitions
       
    50 
       
    51         struct SProcessorObserverPair
       
    52             {
       
    53             MCAContentProcessor* iProcessor;
       
    54             MCAContentProcessObserver* iObserver;
       
    55             };
       
    56 
       
    57     public: // Construction
       
    58 
       
    59         /**
       
    60          * Destruction
       
    61          */
       
    62         ~CCAMessageBase();
       
    63 
       
    64     protected: // Construction
       
    65 
       
    66         /**
       
    67          * Constructor
       
    68          */
       
    69         CCAMessageBase();
       
    70 
       
    71         /**
       
    72          * Remember to call this one as last line of child ConstructL
       
    73          */
       
    74         void ConstructL(    TInt aOpCode,
       
    75                             const TDesC& aSender,
       
    76                             const TDesC& aRecipient,
       
    77                             const MDesCArray* aRecipients,
       
    78                             const MDesCArray* aScreenNames );
       
    79 
       
    80     protected: // From MCAMessage
       
    81 
       
    82         /**
       
    83          * @see MCAMessage
       
    84          */
       
    85         const TTime& TimeStamp() const;
       
    86 
       
    87         /**
       
    88          * @see MCAMessage
       
    89          */
       
    90         TMessageType MessageType() const;
       
    91 
       
    92         /**
       
    93          * @see MCAMessage
       
    94          */
       
    95         TMessagerType MessagerType() const;
       
    96 
       
    97         /**
       
    98          * @see MCAMessage
       
    99          */
       
   100         TInt OperationCode() const;
       
   101 
       
   102         /**
       
   103          * @see MCAMessage
       
   104          */
       
   105         void SetOperationCode( TInt aOpId );
       
   106 
       
   107         /**
       
   108          * @see MCAMessage
       
   109          */
       
   110         const TDesC& Recipient() const;
       
   111 
       
   112         /**
       
   113          * @see MCAMessage
       
   114          */
       
   115         const TDesC& Sender() const;
       
   116 
       
   117         /**
       
   118          * @see MCAMessage
       
   119          */
       
   120         const MDesCArray* Recipients() const;
       
   121 
       
   122         /**
       
   123          * @see MCAMessage
       
   124          */
       
   125         const MDesCArray* ScreenNames() const;
       
   126 
       
   127         /**
       
   128          * @see MCAMessage
       
   129          */
       
   130         void IncreaseOwnerCount();
       
   131 
       
   132         /**
       
   133          * @see MCAMessage
       
   134          */
       
   135         TBool DecreaseOwnerCount();
       
   136 
       
   137         /**
       
   138          * @see MCAMessage
       
   139          */
       
   140         const TDesC& Text() const;
       
   141 
       
   142         /**
       
   143          * @see MCAMessage
       
   144          */
       
   145         const TDesC& ServerAddress() const;
       
   146 
       
   147         /**
       
   148          * @see MCAMessage
       
   149          */
       
   150         const TDesC& UserId() const;
       
   151 
       
   152         /**
       
   153          * @see MCAMessage
       
   154          */
       
   155         const TDesC& Target() const;
       
   156 
       
   157         /**
       
   158          * @see MCAMessage
       
   159          */
       
   160         void SetContainerInfo( MCAMessageContainerInfo* aInfo );
       
   161 
       
   162         /**
       
   163          * @see MCAMessage
       
   164          */
       
   165         MCALoggerMessage& LoggerMessage();
       
   166 
       
   167         /**
       
   168          * @see MCAMessage
       
   169          */
       
   170         TInt AddContentProcessor( MCAContentProcessor& aProcessor,
       
   171                                   MCAContentProcessObserver* aObserver );
       
   172 
       
   173         /**
       
   174          * @see MCAMessage
       
   175          */
       
   176         void HandleProcessingComplete( MCAContentProcessor& aProcessor,
       
   177                                        TInt aStatus );
       
   178 
       
   179         /**
       
   180          * @see MCAMessage
       
   181          */
       
   182         const TDesC8& MimeType() const;
       
   183 
       
   184         /**
       
   185          * @see MCAMessage
       
   186          */
       
   187         const TDesC8& ContentData() const;
       
   188 
       
   189         /**
       
   190          * @see MCAMessage
       
   191          */
       
   192         void SetContentData( HBufC8* aNewContent );
       
   193 
       
   194         /**
       
   195          * @see MCAMessage
       
   196          */
       
   197         TContentProcessState ContentProcessState() const;
       
   198 
       
   199         /**
       
   200          * @see MCAMessage
       
   201          */
       
   202         void SetProcessState( TContentProcessState aNewState );
       
   203 
       
   204         /**
       
   205          * @see MCAMessage
       
   206          */
       
   207         void ReleaseTemporaryContentData();
       
   208 
       
   209         /**
       
   210          * @see MCAMessage
       
   211          */
       
   212         TInt SizeInBytes() const;
       
   213 
       
   214         /**
       
   215          * @see MCAMessage
       
   216          */
       
   217         TBool FailedMessage() const;
       
   218 
       
   219         /**
       
   220          * @see MCAMessage
       
   221          */
       
   222         void SetForwardPartL( const HBufC* aFwdPart );
       
   223 
       
   224         /**
       
   225          * @see MCAMessage
       
   226          */
       
   227         const HBufC* ForwardPart() const;
       
   228 
       
   229         /**
       
   230          * @see MCAMessage
       
   231          */
       
   232         TSystemMessage SystemMessageType();
       
   233 
       
   234 
       
   235         /**
       
   236          * @see MCAMessage
       
   237          */
       
   238         void SetImageAsSaved( const TBool aSaved );
       
   239 
       
   240         /**
       
   241          * @see MCAMessage
       
   242          */
       
   243         TBool IsImageSaved();
       
   244 
       
   245     public:
       
   246 
       
   247         /**
       
   248          * Set default content process observer which is informed always
       
   249          * when messages has been changed
       
   250          */
       
   251         void SetContentProcessObserver( MCAContentProcessObserver* aObserver );
       
   252 
       
   253     protected: // From MCALoggerMessage
       
   254 
       
   255         /**
       
   256          * @see MCALoggerMessage
       
   257          */
       
   258         void InternalizeL( RReadStream& aStream );
       
   259 
       
   260         /**
       
   261          * @see MCALoggerMessage
       
   262          */
       
   263         void ExternalizeL( RWriteStream& aStream ) const;
       
   264 
       
   265         /**
       
   266          * @see MCALoggerMessage
       
   267          */
       
   268         TInt MessageSizeInBytesL() const;
       
   269 
       
   270     public: // New methods
       
   271 
       
   272         /**
       
   273          *	Externalize message to MTM send format
       
   274          *  @param aStream Stream where message is externalized to.
       
   275          *  @param aShowTimeStamps show or hide the timestamps
       
   276          *  @since 2.5
       
   277          */
       
   278         virtual void ExternalizeForMTML( RWriteStream& aStream,
       
   279                                          TBool aShowTimeStamps ) const;
       
   280 
       
   281         /**
       
   282          * Set message type
       
   283          * @param aNewType New message type.
       
   284          */
       
   285         virtual void SetMessageType( TMessageType aNewType );
       
   286 
       
   287         /**
       
   288          * Set messager type
       
   289          * @param aNewType New messager type.
       
   290          */
       
   291         virtual void SetMessagerType( TMessagerType aNewType );
       
   292 
       
   293         /**
       
   294          * Set message as system message
       
   295          * @param aType Type of system message
       
   296          */
       
   297         void SetSystem( TSystemMessage aType );
       
   298 
       
   299         /**
       
   300          * Set version number of message. Version information is used
       
   301          * when reading message data from data streams.
       
   302          * @param aVersion new version number of message
       
   303          */
       
   304         void SetVersionNumber( TUint16 aVersion );
       
   305 
       
   306     protected:
       
   307 
       
   308         /**
       
   309          * Set failed message
       
   310          */
       
   311         virtual void SetFailed( TBool aFailed = ETrue );
       
   312 
       
   313         /**
       
   314          * Launches waiting processing.
       
   315          */
       
   316         void LaunchProcessingL();
       
   317 
       
   318     private: // New helper methods
       
   319 
       
   320         /**
       
   321          * Resolves type for message
       
   322          */
       
   323         void ResolveMessageType( const MDesCArray* aRecipients,
       
   324                                  const MDesCArray* iScreenNames );
       
   325 
       
   326     protected: // Member variables
       
   327 
       
   328         /// Type of message
       
   329         TMessageType iMessageType;
       
   330 
       
   331         /// Type of messager
       
   332         TMessagerType iMessagerType;
       
   333 
       
   334         /// Owns Message content type
       
   335         HBufC8* iMimeType;
       
   336 
       
   337         /// Owns Message sender
       
   338         HBufC* iSender;
       
   339 
       
   340         /// Owns Recipient of message
       
   341         HBufC* iRecipient;
       
   342 
       
   343         /// Owns Message content
       
   344         HBufC8* iContentData;
       
   345 
       
   346         /// Timestamp.
       
   347         TTime iTime;
       
   348 
       
   349         /// Operation code
       
   350         TInt iOperationCode;
       
   351 
       
   352         /// Ownercount to count owners.
       
   353         TInt iOwnerCount;
       
   354 
       
   355         /// Owns. Textual content.
       
   356         HBufC* iText;
       
   357 
       
   358         /// Does not own. Container information
       
   359         MCAMessageContainerInfo* iInfo;
       
   360 
       
   361         /// Processors for content
       
   362         RArray< SProcessorObserverPair > iProcessors;
       
   363 
       
   364         /// Processing state
       
   365         TContentProcessState iContentProcessingState;
       
   366 
       
   367         /// Default content process observer
       
   368         MCAContentProcessObserver* iDefaultContentObserver;
       
   369 
       
   370         /// Owns. Recipient list.
       
   371         CDesCArrayFlat* iRecipients;
       
   372 
       
   373         /// Owns. ScreenNames list.
       
   374         CDesCArrayFlat* iScreenNames;
       
   375 
       
   376         /// Is message failed message or not.
       
   377         TBool iFailed;
       
   378 
       
   379         /// Owns. Part of message to be forwarded.
       
   380         const HBufC* iForwardPart;
       
   381 
       
   382         /// If this is a system message, this defines the type
       
   383         TSystemMessage iSystemMessageType;
       
   384 
       
   385         // Message's version used in internalizing/externalizing
       
   386         TUint16 iMessageVersion;
       
   387 
       
   388         //this flag is used if message content is image
       
   389         //if the user has chosen to save the image then this value will
       
   390         //be ETrue else EFalse
       
   391         TBool iSaved;
       
   392     };
       
   393 
       
   394 #endif      // CCAMESSAGEBASE_H
       
   395 
       
   396 // End of File