epoc32/include/mw/cmessagedata.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@2
     5
* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     6
* which accompanies this distribution, and is available
williamr@2
     7
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Nokia Corporation - initial contribution.
williamr@2
    11
*
williamr@2
    12
* Contributors:
williamr@2
    13
*
williamr@2
    14
* Description:   Encapsulates the message data for sending services.
williamr@2
    15
*
williamr@2
    16
*/
williamr@2
    17
williamr@2
    18
williamr@2
    19
#ifndef C_MESSAGEDATA_H
williamr@2
    20
#define C_MESSAGEDATA_H
williamr@2
    21
williamr@2
    22
#include <e32Base.h>
williamr@2
    23
#include <badesca.h>
williamr@2
    24
#include <f32file.h>
williamr@2
    25
#include <msvstd.h>
williamr@2
    26
#include "CMessageAddress.h"
williamr@2
    27
williamr@2
    28
class MDesC16Array;
williamr@2
    29
class CRichText;
williamr@2
    30
class CMessageDataImpl;
williamr@2
    31
williamr@2
    32
/**
williamr@2
    33
 *  Encapsulates the message data for sending services.
williamr@2
    34
 *
williamr@2
    35
 *  Encapsulates the message data for sending services. Class supports
williamr@2
    36
 *  externalazation and internalization, which are used to relay message 
williamr@2
    37
 *  to SendUI server application.
williamr@2
    38
 *
williamr@2
    39
 *  @lib sendui
williamr@2
    40
 *  @since S60 v3.0
williamr@2
    41
 */ 
williamr@2
    42
class CMessageData : public CBase
williamr@2
    43
{
williamr@2
    44
public:  // Constructors and destructor
williamr@2
    45
williamr@2
    46
   /**
williamr@2
    47
    * Two-phased constructor.
williamr@2
    48
    *
williamr@2
    49
    * @return Pointer to object of CMessageData.
williamr@2
    50
    */
williamr@2
    51
    IMPORT_C static CMessageData* NewL();
williamr@2
    52
    
williamr@2
    53
   /**
williamr@2
    54
    * Two-phased constructor.
williamr@2
    55
    *
williamr@2
    56
    * @return Pointer to object of CMessageData.
williamr@2
    57
    */
williamr@2
    58
    IMPORT_C static CMessageData* NewLC();
williamr@2
    59
williamr@2
    60
   /**
williamr@2
    61
    * Destructor.
williamr@2
    62
    */
williamr@2
    63
    IMPORT_C virtual ~CMessageData();
williamr@2
    64
williamr@2
    65
public: // New functions
williamr@2
    66
williamr@2
    67
   /**
williamr@2
    68
    * Set message subject.
williamr@2
    69
    *
williamr@2
    70
    * @since Series 60 3.0
williamr@2
    71
    * @param aSubject Sets message subject. Does not take ownership.
williamr@2
    72
    * @return None.
williamr@2
    73
    */
williamr@2
    74
    IMPORT_C void SetSubjectL( const TDesC* aSubject );
williamr@2
    75
williamr@2
    76
   /**
williamr@2
    77
    * Returns message subject.
williamr@2
    78
    *
williamr@2
    79
    * @since Series 60 3.0
williamr@2
    80
    * @return Message subject.
williamr@2
    81
    */
williamr@2
    82
    IMPORT_C const TPtrC Subject() const;
williamr@2
    83
williamr@2
    84
   /**
williamr@2
    85
    * Appends attachment file path to the array of attachment file paths. Only a link 
williamr@2
    86
    * to the attachment is stored and compared to AppendAttachmentHandleL less resources 
williamr@2
    87
    * is used during the send operation.
williamr@2
    88
    * 
williamr@2
    89
    * NOTE: Do not add any temporary files as an attachment. Always use 
williamr@2
    90
    * AppendAttachmentHandleL for temporary files.
williamr@2
    91
    *
williamr@2
    92
    * @since Series 60 3.0
williamr@2
    93
    * @param aFilePath File path of the attachment. 
williamr@2
    94
    *                  
williamr@2
    95
    * @return None.
williamr@2
    96
    */
williamr@2
    97
    IMPORT_C void AppendAttachmentL( const TDesC& aFilePath );
williamr@2
    98
williamr@2
    99
   /**
williamr@2
   100
    * Returns the array of attachment file paths.
williamr@2
   101
    *
williamr@2
   102
    * @since Series 60 3.0
williamr@2
   103
    * @return Array of attachment file paths.
williamr@2
   104
    */
williamr@2
   105
    IMPORT_C const CDesCArray& AttachmentArray() const;
williamr@2
   106
    
williamr@2
   107
    /**
williamr@2
   108
    * Clears the array of attachment file paths.
williamr@2
   109
    *
williamr@2
   110
    * @since Series 60 3.0
williamr@2
   111
    * @return Array of attachment file paths.
williamr@2
   112
    */        
williamr@2
   113
    IMPORT_C void ClearAttachmentArray();
williamr@2
   114
williamr@2
   115
   /**
williamr@2
   116
    * Encapsulates address and alias to CMessageAddress and adds to array.
williamr@2
   117
    *
williamr@2
   118
    * @since Series 60 3.0
williamr@2
   119
    * @param aAddress Real address.
williamr@2
   120
    * @param aAlias Alias for the real address.
williamr@2
   121
    * @return None.
williamr@2
   122
    */
williamr@2
   123
    IMPORT_C void AppendToAddressL(
williamr@2
   124
        const TDesC& aAddress,
williamr@2
   125
        const TDesC& aAlias = KNullDesC);
williamr@2
   126
williamr@2
   127
   /**
williamr@2
   128
    * Returns array of addresses and aliases.
williamr@2
   129
    *
williamr@2
   130
    * @since Series 60 3.0
williamr@2
   131
    * @return Array of addresses and aliases.
williamr@2
   132
    */
williamr@2
   133
    IMPORT_C const CMessageAddressArray& ToAddressArray() const;
williamr@2
   134
williamr@2
   135
   /**
williamr@2
   136
    * Encapsulates CC address and alias to CMessageAddress and adds to 
williamr@2
   137
    * array.
williamr@2
   138
    *
williamr@2
   139
    * @since Series 60 3.0
williamr@2
   140
    * @param aCcAddress Real CC-address.
williamr@2
   141
    * @param aCcAlias Alias for the real CC-address.
williamr@2
   142
    * @return None.
williamr@2
   143
    */
williamr@2
   144
    IMPORT_C void AppendCcAddressL(
williamr@2
   145
        const TDesC& aCcAddress,
williamr@2
   146
        const TDesC& aCcAlias = KNullDesC);
williamr@2
   147
williamr@2
   148
   /**
williamr@2
   149
    * Returns array of CC addresses and aliases.
williamr@2
   150
    *
williamr@2
   151
    * @since Series 60 3.0
williamr@2
   152
    * @return Array of cc addresses and aliases.
williamr@2
   153
    */
williamr@2
   154
    IMPORT_C const CMessageAddressArray& CcAddressArray() const;
williamr@2
   155
williamr@2
   156
   /**
williamr@2
   157
    * Encapsulates Bcc address and alias to CMessageAddress and adds to
williamr@2
   158
    * array.
williamr@2
   159
    *
williamr@2
   160
    * @since Series 60 3.0
williamr@2
   161
    * @param aBccAddress Real Bcc-address.
williamr@2
   162
    * @param aBccAlias Alias for the real Bcc-address.
williamr@2
   163
    * @return None.
williamr@2
   164
    */
williamr@2
   165
    IMPORT_C void AppendBccAddressL(
williamr@2
   166
        const TDesC& aBccAddress,
williamr@2
   167
        const TDesC& aBccAlias = KNullDesC);
williamr@2
   168
williamr@2
   169
   /**
williamr@2
   170
    * Returns array of Bcc addresses and aliases.
williamr@2
   171
    *
williamr@2
   172
    * @since Series 60 3.0
williamr@2
   173
    * @return Array of Bcc addresses and aliases.
williamr@2
   174
    */
williamr@2
   175
    IMPORT_C const CMessageAddressArray& BccAddressArray() const;
williamr@2
   176
williamr@2
   177
   /**
williamr@2
   178
    * Set message body text.
williamr@2
   179
    *
williamr@2
   180
    * @since Series 60 3.0
williamr@2
   181
    * @param aBodyText Message body text.
williamr@2
   182
    * @return None.
williamr@2
   183
    */
williamr@2
   184
    IMPORT_C void SetBodyTextL( const CRichText* aBodyText );
williamr@2
   185
williamr@2
   186
   /**
williamr@2
   187
    * Returns message body text.
williamr@2
   188
    *
williamr@2
   189
    * @since Series 60 3.0
williamr@2
   190
    * @return Message body text.
williamr@2
   191
    */
williamr@2
   192
    IMPORT_C const CRichText* BodyText() const;
williamr@2
   193
    
williamr@2
   194
   /**
williamr@2
   195
    * Appends attachment handle to the array of attachment handles. 
williamr@2
   196
    *
williamr@2
   197
    * NOTE: Attachment handles should be opened using ShareProtected()
williamr@2
   198
    * file session, otherwise handles can not be transfered through
williamr@2
   199
    * client-server interface.
williamr@2
   200
    *
williamr@2
   201
    * NOTE: When adding a temporary file as an attachment, always use this method,
williamr@2
   202
    *
williamr@2
   203
    * @since Series 60 3.0
williamr@2
   204
    * @param aFileHandle File handle of the attachment.
williamr@2
   205
    * @return None.
williamr@2
   206
    */
williamr@2
   207
    IMPORT_C void AppendAttachmentHandleL( const RFile& aFileHandle );
williamr@2
   208
williamr@2
   209
    /**
williamr@2
   210
    * Returns the array of attachment handles.
williamr@2
   211
    *
williamr@2
   212
    * @since Series 60 3.0
williamr@2
   213
    * @return Array of attachment handles.
williamr@2
   214
    */
williamr@2
   215
    IMPORT_C const RArray<RFile>& AttachmentHandleArray() const;
williamr@2
   216
williamr@2
   217
   /**
williamr@2
   218
    * Returns data type id.
williamr@2
   219
    *
williamr@2
   220
    * This can be used for interpreting the opaque data.
williamr@2
   221
    * @since Series 60 3.0
williamr@2
   222
    * @return Data type id.
williamr@2
   223
    */
williamr@2
   224
    IMPORT_C TUid DataType() const;
williamr@2
   225
williamr@2
   226
   /**
williamr@2
   227
    * Clears all addressee arrays.
williamr@2
   228
    *
williamr@2
   229
    * @since Series 60 3.0
williamr@2
   230
    * @return None.
williamr@2
   231
    */ 
williamr@2
   232
    IMPORT_C void ClearAddresses();
williamr@2
   233
williamr@2
   234
   /**
williamr@2
   235
    * Externalizes message data to a stream
williamr@2
   236
    *
williamr@2
   237
    * @since Series 60 3.2
williamr@2
   238
    * @return None.
williamr@2
   239
    */ 
williamr@2
   240
   
williamr@2
   241
   IMPORT_C void ExternalizeL( RWriteStream& aStream ) const;
williamr@2
   242
    
williamr@2
   243
   /**
williamr@2
   244
    * Internalizes message data to from a stream
williamr@2
   245
    *
williamr@2
   246
    * @since Series 60 3.2
williamr@2
   247
    * @return None.
williamr@2
   248
    */ 
williamr@2
   249
    IMPORT_C void InternalizeL( RReadStream& aStream );
williamr@2
   250
williamr@2
   251
   /**
williamr@2
   252
    * Set opaque data
williamr@2
   253
    *
williamr@2
   254
    * @since Series 60 3.2
williamr@2
   255
    * @param aData Opaque data.
williamr@2
   256
    * @param aDataType, Identifier for the opaque data.
williamr@2
   257
    * @return None.
williamr@2
   258
    */
williamr@2
   259
    IMPORT_C void SetOpaqueDataL( const TDesC8* aData, TUid aDataType );
williamr@2
   260
    
williamr@2
   261
   /**
williamr@2
   262
    * Get opaque data
williamr@2
   263
    *
williamr@2
   264
    * @since Series 60 3.2
williamr@2
   265
    * @return aData Opaque data.
williamr@2
   266
    */
williamr@2
   267
    IMPORT_C const TPtrC8 OpaqueData() const;
williamr@2
   268
williamr@2
   269
 protected:
williamr@2
   270
williamr@2
   271
   /**
williamr@2
   272
    * C++ default constructor.
williamr@2
   273
    */
williamr@2
   274
    IMPORT_C CMessageData();
williamr@2
   275
williamr@2
   276
   /**
williamr@2
   277
    * By default Symbian 2nd phase constructor is private.
williamr@2
   278
    */
williamr@2
   279
    IMPORT_C void ConstructL();
williamr@2
   280
williamr@2
   281
protected:  // Data
williamr@2
   282
williamr@2
   283
    /**
williamr@2
   284
     * Data type of this message. Normally this is KSenduiMsgDataBase
williamr@2
   285
     * This can be used for interpreting the opaque data.
williamr@2
   286
     */
williamr@2
   287
    TUid iDataType;
williamr@2
   288
williamr@2
   289
private:  // Data
williamr@2
   290
williamr@2
   291
    /**
williamr@2
   292
     *  Message data implementation.
williamr@2
   293
     *  Owned.
williamr@2
   294
     */
williamr@2
   295
    CMessageDataImpl* iMessageDataImpl;
williamr@2
   296
williamr@2
   297
    /**
williamr@2
   298
     *  Reserved.
williamr@2
   299
     */
williamr@2
   300
    TAny* iReserved1;
williamr@2
   301
    TAny* iReserved2;
williamr@2
   302
    TAny* iReserved3;
williamr@2
   303
    TAny* iReserved4;
williamr@2
   304
    TAny* iReserved5;
williamr@2
   305
    RArray<TAny*> iReserved6;
williamr@2
   306
williamr@2
   307
};
williamr@2
   308
williamr@2
   309
#endif      // C_MESSAGEDATA_H
williamr@2
   310
williamr@2
   311
// End of File
williamr@2
   312