epoc32/include/miuthdr.inl
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
parent 0 061f57f2323e
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
williamr@2
     1
// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// 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
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
//
williamr@2
    15
williamr@2
    16
/** Sets the field type.
williamr@2
    17
@param aField Field type */
williamr@2
    18
inline void TImHeaderEncodingInfo::SetField(const TFieldList aField)
williamr@2
    19
	{
williamr@2
    20
	iField = aField;
williamr@2
    21
	}
williamr@2
    22
	
williamr@2
    23
/** Gets the field type.
williamr@2
    24
@return Field type */
williamr@2
    25
inline TImHeaderEncodingInfo::TFieldList TImHeaderEncodingInfo::Field() const
williamr@2
    26
	{
williamr@2
    27
	return iField;
williamr@2
    28
	}
williamr@2
    29
williamr@2
    30
/** Sets the field offset.
williamr@2
    31
@param aOffset Field offset */
williamr@2
    32
inline void TImHeaderEncodingInfo::SetOffset(const TInt aOffset)
williamr@2
    33
	{
williamr@2
    34
	iOffset = (TUint16)aOffset;
williamr@2
    35
	}
williamr@2
    36
williamr@2
    37
/** Gets the field offset.
williamr@2
    38
@return Field offset */
williamr@2
    39
inline TInt TImHeaderEncodingInfo::Offset() const
williamr@2
    40
	{
williamr@2
    41
	return iOffset;
williamr@2
    42
	}
williamr@2
    43
williamr@2
    44
/** Sets the field length.
williamr@2
    45
@param aLength Field length */
williamr@2
    46
inline void TImHeaderEncodingInfo::SetLength(const TInt aLength)
williamr@2
    47
	{
williamr@2
    48
	iLength = (TUint16)aLength;
williamr@2
    49
	}
williamr@2
    50
williamr@2
    51
/** Gets the field length.
williamr@2
    52
@return Field length */
williamr@2
    53
inline TInt TImHeaderEncodingInfo::Length()  const
williamr@2
    54
	{
williamr@2
    55
	return iLength;
williamr@2
    56
	}
williamr@2
    57
williamr@2
    58
/** Sets the character set UID.
williamr@2
    59
@param aUid Character set UID */
williamr@2
    60
void TImHeaderEncodingInfo::SetCharsetUid(const TUint aUid)
williamr@2
    61
	{
williamr@2
    62
	iCharsetUid = aUid;
williamr@2
    63
	}
williamr@2
    64
williamr@2
    65
/** Gets the character set UID.
williamr@2
    66
@return Character set UID */
williamr@2
    67
TUint TImHeaderEncodingInfo::CharsetUid() const
williamr@2
    68
	{
williamr@2
    69
	return iCharsetUid;
williamr@2
    70
	}
williamr@2
    71
williamr@2
    72
/** Sets the encoding type (string).
williamr@2
    73
@param aChar Encoding type */
williamr@2
    74
inline void TImHeaderEncodingInfo::SetEncodingType(const TDesC8& aChar)
williamr@2
    75
	{
williamr@2
    76
	// If invalid, defaults to QPEncoding
williamr@2
    77
	if (aChar[0] == 'b' || aChar[0] == 'B')
williamr@2
    78
		iType = TImHeaderEncodingInfo::EBase64;
williamr@2
    79
	else if (aChar[0] == 'q' || aChar[0] == 'Q')
williamr@2
    80
		iType = TImHeaderEncodingInfo::EQP;
williamr@2
    81
	else
williamr@2
    82
		iType = TImHeaderEncodingInfo::ENoEncoding;
williamr@2
    83
	}
williamr@2
    84
williamr@2
    85
/** Sets the encoding type (enumeration).
williamr@2
    86
@param aType Encoding type */
williamr@2
    87
inline void TImHeaderEncodingInfo::SetEncodingType(const TEncodingType aType)
williamr@2
    88
	{
williamr@2
    89
	iType = aType;
williamr@2
    90
	}
williamr@2
    91
williamr@2
    92
/** Gets the encoding type (enumeration).
williamr@2
    93
@return Encoding type */
williamr@2
    94
inline TImHeaderEncodingInfo::TEncodingType TImHeaderEncodingInfo::EncodingType()  const
williamr@2
    95
	{
williamr@2
    96
	return iType;
williamr@2
    97
	}
williamr@2
    98
williamr@2
    99
/** Sets the array value.
williamr@2
   100
@param aValue Array value */
williamr@2
   101
inline void TImHeaderEncodingInfo::SetArrayValue(const TInt aValue)
williamr@2
   102
	{
williamr@2
   103
	iArrayValue = (TUint16)aValue;
williamr@2
   104
	}
williamr@2
   105
williamr@2
   106
/** Gets the array value.
williamr@2
   107
@return Array value */
williamr@2
   108
inline TInt TImHeaderEncodingInfo::ArrayValue()  const
williamr@2
   109
	{
williamr@2
   110
	return iArrayValue;
williamr@2
   111
	}
williamr@2
   112
williamr@2
   113
/** Sets if a space character needs adding between two adjoining encoded-words.
williamr@2
   114
@param atrueFalse True to add a space character */
williamr@2
   115
inline void TImHeaderEncodingInfo::SetAddSpace(const TBool atrueFalse)
williamr@2
   116
	{
williamr@2
   117
	iAddSpace = atrueFalse;
williamr@2
   118
	}
williamr@2
   119
williamr@2
   120
/** Tests if the add space character flag is set.
williamr@2
   121
@return True for added space characters */
williamr@2
   122
inline  TBool TImHeaderEncodingInfo::AddSpace() const
williamr@2
   123
	{
williamr@2
   124
	return iAddSpace;
williamr@2
   125
	}
williamr@2
   126
williamr@2
   127
/** Sets the encoded length.
williamr@2
   128
@param aLength Encoded length */
williamr@2
   129
inline void TImHeaderEncodingInfo::SetEncodedLength(const TInt aLength)
williamr@2
   130
	{
williamr@2
   131
	iEncodedLength = (TInt8) aLength;
williamr@2
   132
	}
williamr@2
   133
williamr@2
   134
/** Gets the encoded length.
williamr@2
   135
@return Encoded length */
williamr@2
   136
inline TInt TImHeaderEncodingInfo::EncodedLength() const
williamr@2
   137
	{
williamr@2
   138
	return iEncodedLength + (AddSpace() ? 1 : 0);
williamr@2
   139
	}
williamr@2
   140
williamr@2
   141
//----------------------------------------------------------------------------------------
williamr@2
   142
williamr@2
   143
/** Gets a list of "To" recipients.
williamr@2
   144
williamr@2
   145
williamr@2
   146
@return Recipient list */
williamr@2
   147
inline CDesCArray& CImHeader::ToRecipients ()
williamr@2
   148
	{
williamr@2
   149
	return *iTo;
williamr@2
   150
	}
williamr@2
   151
williamr@2
   152
/** Gets a list of "Cc" recipients.
williamr@2
   153
@return Recipient list */
williamr@2
   154
inline CDesCArray& CImHeader::CcRecipients ()
williamr@2
   155
	{
williamr@2
   156
	return *iCc;
williamr@2
   157
	}
williamr@2
   158
	
williamr@2
   159
/** Gets a list of "Bcc" recipients.
williamr@2
   160
@return Recipient list */
williamr@2
   161
inline CDesCArray& CImHeader::BccRecipients()
williamr@2
   162
	{
williamr@2
   163
	return *iBcc;
williamr@2
   164
	}
williamr@2
   165
williamr@2
   166
/** Gets a const list of "To" recipients.
williamr@2
   167
@return Recipient list */
williamr@2
   168
inline const CDesCArray& CImHeader::ToRecipients () const 
williamr@2
   169
	{
williamr@2
   170
	return *iTo;
williamr@2
   171
	}
williamr@2
   172
williamr@2
   173
/** Gets a const list of "Cc" recipients.
williamr@2
   174
@return Recipient list */
williamr@2
   175
inline const CDesCArray& CImHeader::CcRecipients () const
williamr@2
   176
	{
williamr@2
   177
	return *iCc;
williamr@2
   178
	}
williamr@2
   179
	
williamr@2
   180
/** Gets a const list of "Bcc" recipients.
williamr@2
   181
@return Recipient list */
williamr@2
   182
inline const CDesCArray& CImHeader::BccRecipients() const
williamr@2
   183
	{
williamr@2
   184
	return *iBcc;
williamr@2
   185
	}
williamr@2
   186
williamr@2
   187
//-------------------------------------------------------------------------------------
williamr@2
   188
//---------------------------- Used for forwarding an email ---------------------------
williamr@2
   189
williamr@2
   190
inline CDesCArray& CImHeader::ResentToRecipients ()
williamr@2
   191
	{
williamr@2
   192
	return *iResentTo;
williamr@2
   193
	}
williamr@2
   194
williamr@2
   195
inline CDesCArray& CImHeader::ResentCcRecipients ()
williamr@2
   196
	{
williamr@2
   197
	return *iResentCc;
williamr@2
   198
	}
williamr@2
   199
	
williamr@2
   200
inline CDesCArray& CImHeader::ResentBccRecipients()
williamr@2
   201
	{
williamr@2
   202
	return *iResentBcc;
williamr@2
   203
	}
williamr@2
   204
williamr@2
   205
inline const CDesCArray& CImHeader::ResentToRecipients () const 
williamr@2
   206
	{
williamr@2
   207
	return *iResentTo;
williamr@2
   208
	}
williamr@2
   209
williamr@2
   210
inline const CDesCArray& CImHeader::ResentCcRecipients () const
williamr@2
   211
	{
williamr@2
   212
	return *iResentCc;
williamr@2
   213
	}
williamr@2
   214
	
williamr@2
   215
inline const CDesCArray& CImHeader::ResentBccRecipients() const
williamr@2
   216
	{
williamr@2
   217
	return *iResentBcc;
williamr@2
   218
	}
williamr@2
   219
williamr@2
   220
//-------------------------------------------------------------------------------------
williamr@2
   221
//-------------------------------------------------------------------------------------
williamr@2
   222
williamr@2
   223
inline const TUint CImHeader::RemoteSize() const
williamr@2
   224
	{
williamr@2
   225
	return iRemoteSize;
williamr@2
   226
	}
williamr@2
   227
williamr@2
   228
inline void CImHeader::SetRemoteSize( TUint aRemoteSize )
williamr@2
   229
	{
williamr@2
   230
	iRemoteSize = aRemoteSize;
williamr@2
   231
	}
williamr@2
   232
williamr@2
   233
williamr@2
   234
inline const TUint16 CImHeader::Version() const
williamr@2
   235
	{
williamr@2
   236
	return iVersion;
williamr@2
   237
	}
williamr@2
   238
williamr@2
   239
inline void CImHeader::SetVersion( TUint16 aVersion )
williamr@2
   240
	{
williamr@2
   241
	iVersion = aVersion;
williamr@2
   242
	}
williamr@2
   243
williamr@2
   244
/** Gets information relating to the encoding of header fields in received email. 
williamr@2
   245
williamr@2
   246
This includes the charset. This information can be used when forwarding the 
williamr@2
   247
email, to re-encode the header fields.
williamr@2
   248
williamr@2
   249
@return Encoding information */
williamr@2
   250
inline CArrayFix<TImHeaderEncodingInfo>& CImHeader::EncodingInfo()
williamr@2
   251
	{
williamr@2
   252
	return *iEncodingInfo;
williamr@2
   253
	}
williamr@2
   254
williamr@2
   255
/** Gets const information relating to the encoding of header fields in received 
williamr@2
   256
email. 
williamr@2
   257
williamr@2
   258
This includes the charset. This information can be used when forwarding the 
williamr@2
   259
email, to re-encode the header fields.
williamr@2
   260
williamr@2
   261
@return Encoding information */
williamr@2
   262
inline const CArrayFix<TImHeaderEncodingInfo>& CImHeader::EncodingInfo() const
williamr@2
   263
	{
williamr@2
   264
	return *iEncodingInfo;
williamr@2
   265
	}
williamr@2
   266
williamr@2
   267
//////////////////////////////////////////////////////////////
williamr@2
   268
//															//
williamr@2
   269
//////////////////////////////////////////////////////////////
williamr@2
   270
williamr@2
   271
/** Tests whether encryption is used.
williamr@2
   272
williamr@2
   273
Not currently used.
williamr@2
   274
williamr@2
   275
@return True if encryption is used */
williamr@2
   276
inline TBool TMsvEmailEntry::Encrypted() const
williamr@2
   277
	{
williamr@2
   278
    if(iMtmData1&KMsvEmailEntryEncryptedFlag)
williamr@2
   279
		{
williamr@2
   280
		return ETrue;
williamr@2
   281
		}
williamr@2
   282
	else
williamr@2
   283
		{
williamr@2
   284
		return EFalse;
williamr@2
   285
		}
williamr@2
   286
	}
williamr@2
   287
williamr@2
   288
/** Sets whether encryption is used.
williamr@2
   289
williamr@2
   290
Not currently used.
williamr@2
   291
williamr@2
   292
@param aFlag True if encryption is used */
williamr@2
   293
inline void TMsvEmailEntry::SetEncrypted(TBool aFlag)
williamr@2
   294
	{
williamr@2
   295
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryEncryptedFlag) | (aFlag?KMsvEmailEntryEncryptedFlag:KMsvEmailEntryClearFlag);
williamr@2
   296
	}
williamr@2
   297
williamr@2
   298
/** Tests whether signing is used.
williamr@2
   299
williamr@2
   300
Not currently used.
williamr@2
   301
williamr@2
   302
@return True if signing is used */
williamr@2
   303
inline TBool TMsvEmailEntry::Signed() const
williamr@2
   304
	{
williamr@2
   305
	if(iMtmData1&KMsvEmailEntrySignedFlag)
williamr@2
   306
		{
williamr@2
   307
		return ETrue;
williamr@2
   308
		}
williamr@2
   309
	else
williamr@2
   310
		{
williamr@2
   311
		return EFalse;
williamr@2
   312
		}
williamr@2
   313
	}
williamr@2
   314
williamr@2
   315
/** Sets whether signing is used.
williamr@2
   316
williamr@2
   317
Not currently used.
williamr@2
   318
williamr@2
   319
@param aFlag True if signing is used */
williamr@2
   320
inline void TMsvEmailEntry::SetSigned(TBool aFlag)
williamr@2
   321
	{
williamr@2
   322
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntrySignedFlag) | (aFlag?KMsvEmailEntrySignedFlag:KMsvEmailEntryClearFlag);
williamr@2
   323
	}
williamr@2
   324
williamr@2
   325
///
williamr@2
   326
/** Returns the flag indicating if the message has an HTML body part.
williamr@2
   327
williamr@2
   328
Note: the flag is for HTML and not only MHTML.
williamr@2
   329
williamr@2
   330
Use CImEmailMessage to retrieve the HTML body part.
williamr@2
   331
williamr@2
   332
@return True if the message has an HTML body part
williamr@2
   333
@see CImEmailMessage
williamr@2
   334
*/
williamr@2
   335
inline TBool TMsvEmailEntry::MHTMLEmail() const
williamr@2
   336
	{
williamr@2
   337
	if(iMtmData1&KMsvEmailEntryMHTMLFlag)
williamr@2
   338
		{
williamr@2
   339
		return ETrue;
williamr@2
   340
		}
williamr@2
   341
	else
williamr@2
   342
		{
williamr@2
   343
		return EFalse;
williamr@2
   344
		}
williamr@2
   345
	}
williamr@2
   346
williamr@2
   347
/** Sets the flag indicating if the message has an HTML body part.
williamr@2
   348
williamr@2
   349
Note: the flag is for HTML and not only MHTML.
williamr@2
   350
williamr@2
   351
Use CImEmailMessage to retrieve the HTML body part.
williamr@2
   352
williamr@2
   353
@param aFlag True if the message has an HTML body part
williamr@2
   354
@see CImEmailMessage
williamr@2
   355
*/
williamr@2
   356
inline void TMsvEmailEntry::SetMHTMLEmail(TBool aFlag)
williamr@2
   357
	{
williamr@2
   358
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryMHTMLFlag) | (aFlag?KMsvEmailEntryMHTMLFlag:KMsvEmailEntryClearFlag);
williamr@2
   359
	}
williamr@2
   360
williamr@2
   361
///
williamr@2
   362
/** Tests if body text is complete.
williamr@2
   363
@return True if body text is complete. */
williamr@2
   364
inline TBool TMsvEmailEntry::BodyTextComplete() const
williamr@2
   365
	{
williamr@2
   366
	if(iMtmData1 & KMsvEmailEntryBodyTextCompleteFlag)
williamr@2
   367
		{
williamr@2
   368
		return ETrue;
williamr@2
   369
		}
williamr@2
   370
	else
williamr@2
   371
		{
williamr@2
   372
		return EFalse;
williamr@2
   373
		}	
williamr@2
   374
	}
williamr@2
   375
williamr@2
   376
/** Sets if body text is complete.
williamr@2
   377
@param aFlag True if body text is complete. */
williamr@2
   378
inline void TMsvEmailEntry::SetBodyTextComplete(TBool aFlag)
williamr@2
   379
	{
williamr@2
   380
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryBodyTextCompleteFlag) | (aFlag?KMsvEmailEntryBodyTextCompleteFlag:KMsvEmailEntryClearFlag);
williamr@2
   381
	}
williamr@2
   382
williamr@2
   383
///
williamr@2
   384
/** Tests if the message contains a VCard attachment.
williamr@2
   385
@return True if the message contains a VCard attachment */
williamr@2
   386
inline TBool TMsvEmailEntry::VCard() const
williamr@2
   387
	{
williamr@2
   388
	if(iMtmData1&KMsvEmailEntryVCardFlag)
williamr@2
   389
		{
williamr@2
   390
		return ETrue;
williamr@2
   391
		}
williamr@2
   392
	else
williamr@2
   393
		{
williamr@2
   394
		return EFalse;
williamr@2
   395
		}	
williamr@2
   396
	}
williamr@2
   397
williamr@2
   398
/** Sets a flag that the message contains a VCard attachment.
williamr@2
   399
@param aFlag True if the message contains a VCard attachment */
williamr@2
   400
inline void TMsvEmailEntry::SetVCard(TBool aFlag)
williamr@2
   401
	{
williamr@2
   402
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryVCardFlag) | (aFlag?KMsvEmailEntryVCardFlag:KMsvEmailEntryClearFlag);
williamr@2
   403
	}
williamr@2
   404
williamr@2
   405
/** Tests if the message contains a VCal attachment.
williamr@2
   406
@return True if the message contains a VCal attachment */
williamr@2
   407
inline TBool TMsvEmailEntry::VCalendar() const
williamr@2
   408
	{
williamr@2
   409
	if(iMtmData1&KMsvEmailEntryVCalendarFlag)
williamr@2
   410
		{
williamr@2
   411
		return ETrue;
williamr@2
   412
		}
williamr@2
   413
	else
williamr@2
   414
		{
williamr@2
   415
		return EFalse;
williamr@2
   416
		}
williamr@2
   417
	}
williamr@2
   418
williamr@2
   419
/** Sets a flag that the message contains a VCal attachment.
williamr@2
   420
@param aFlag True if the message contains a VCal attachment */
williamr@2
   421
inline void TMsvEmailEntry::SetVCalendar(TBool aFlag)
williamr@2
   422
	{
williamr@2
   423
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryVCalendarFlag) | (aFlag?KMsvEmailEntryVCalendarFlag:KMsvEmailEntryClearFlag);
williamr@2
   424
	}
williamr@2
   425
williamr@2
   426
/** Tests if the message contains an iCalendar attachment.
williamr@2
   427
williamr@2
   428
@return True if the message contains an iCalendar attachment 
williamr@2
   429
*/
williamr@2
   430
inline TBool TMsvEmailEntry::ICalendar() const
williamr@2
   431
	{
williamr@2
   432
	if(iMtmData1&KMsvEmailEntryICalendarFlag)
williamr@2
   433
		{
williamr@2
   434
		return ETrue;
williamr@2
   435
		}
williamr@2
   436
	else
williamr@2
   437
		{
williamr@2
   438
		return EFalse;
williamr@2
   439
		}	
williamr@2
   440
	}
williamr@2
   441
williamr@2
   442
/** Sets a flag that the message contains an iCalendar attachment.
williamr@2
   443
williamr@2
   444
@param aFlag True if the message contains an iCalendar attachment 
williamr@2
   445
*/
williamr@2
   446
inline void TMsvEmailEntry::SetICalendar(TBool aFlag)
williamr@2
   447
	{
williamr@2
   448
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryICalendarFlag) | (aFlag?KMsvEmailEntryICalendarFlag:KMsvEmailEntryClearFlag);
williamr@2
   449
	}	
williamr@2
   450
williamr@2
   451
//
williamr@2
   452
/** Tests if the email message requests a receipt.
williamr@2
   453
@return True if the email message requests a receipt */
williamr@2
   454
inline TBool TMsvEmailEntry::Receipt() const
williamr@2
   455
	{
williamr@2
   456
	if(iMtmData1&KMsvEmailEntryReceiptFlag)
williamr@2
   457
		{
williamr@2
   458
		return ETrue;
williamr@2
   459
		}
williamr@2
   460
	else
williamr@2
   461
		{
williamr@2
   462
		return EFalse;
williamr@2
   463
		}	
williamr@2
   464
	}
williamr@2
   465
williamr@2
   466
/** Sets a flag that the email message requests a receipt.
williamr@2
   467
@param aFlag True if the email message requests a receipt */
williamr@2
   468
inline void TMsvEmailEntry::SetReceipt(TBool aFlag)
williamr@2
   469
	{
williamr@2
   470
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryReceiptFlag) | (aFlag?KMsvEmailEntryReceiptFlag:KMsvEmailEntryClearFlag);
williamr@2
   471
	}
williamr@2
   472
williamr@2
   473
williamr@2
   474
/** Gets the state of the unread messages IMAP4 flag.
williamr@2
   475
williamr@2
   476
This flag is set on a folder if the folder contains any
williamr@2
   477
messages with the IMAP \\Seen flag set.
williamr@2
   478
williamr@2
   479
@return Unread messages IMAP4 flag 
williamr@2
   480
@see TMsvEmailEntry::SeenIMAP4Flag()
williamr@2
   481
*/
williamr@2
   482
inline TBool TMsvEmailEntry::UnreadIMAP4Flag() const
williamr@2
   483
	{
williamr@2
   484
	if(iMtmData1&KMsvEmailEntryIMAP4UnreadFlag)
williamr@2
   485
		{
williamr@2
   486
		return ETrue;
williamr@2
   487
		}
williamr@2
   488
	else
williamr@2
   489
		{
williamr@2
   490
		return EFalse;
williamr@2
   491
		}	
williamr@2
   492
	}
williamr@2
   493
williamr@2
   494
/** Sets the state of the unread messages IMAP4 flag.
williamr@2
   495
@param aFlag Unread messages IMAP4 flag */
williamr@2
   496
inline void TMsvEmailEntry::SetUnreadIMAP4Flag(TBool aFlag)
williamr@2
   497
	{
williamr@2
   498
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryIMAP4UnreadFlag) | (aFlag?KMsvEmailEntryIMAP4UnreadFlag:KMsvEmailEntryClearFlag);
williamr@2
   499
	}
williamr@2
   500
williamr@2
   501
/** Gets the state of the \\Seen IMAP4 flag.
williamr@2
   502
williamr@2
   503
This indicates if the message has been read. It is described in RFC3501, 2.3.2.
williamr@2
   504
Flags Message Attribute.
williamr@2
   505
williamr@2
   506
Note that the server MTM creates messages with the TMsvEntry::Unread() flag set. If
williamr@2
   507
on synchronisation a folder contains new messages, the Unread flag will also be
williamr@2
   508
set on the folder.
williamr@2
   509
williamr@2
   510
@return \\Seen IMAP4 flag 
williamr@2
   511
@see CImImap4Settings::UpdatingSeenFlags()
williamr@2
   512
*/
williamr@2
   513
inline TBool TMsvEmailEntry::SeenIMAP4Flag() const
williamr@2
   514
	{
williamr@2
   515
	if(iMtmData1&KMsvEmailEntryIMAP4SeenFlag)
williamr@2
   516
		{
williamr@2
   517
		return ETrue;
williamr@2
   518
		}
williamr@2
   519
	else
williamr@2
   520
		{
williamr@2
   521
		return EFalse;
williamr@2
   522
		}	
williamr@2
   523
	}
williamr@2
   524
williamr@2
   525
/** Sets the state of the \\Seen IMAP4 flag.
williamr@2
   526
@param aFlag \\Seen IMAP4 flag */
williamr@2
   527
inline void TMsvEmailEntry::SetSeenIMAP4Flag(TBool aFlag)
williamr@2
   528
	{
williamr@2
   529
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryIMAP4SeenFlag) | (aFlag?KMsvEmailEntryIMAP4SeenFlag:KMsvEmailEntryClearFlag);
williamr@2
   530
	}
williamr@2
   531
williamr@2
   532
/** Gets the state of the \\Answered IMAP4 flag.
williamr@2
   533
williamr@2
   534
This indicates if the message has been answered. It is described in 
williamr@2
   535
RFC3501, 2.3.2. Flags Message Attribute.
williamr@2
   536
williamr@2
   537
@return \\Answered IMAP4 flag */
williamr@2
   538
inline TBool TMsvEmailEntry::AnsweredIMAP4Flag() const
williamr@2
   539
	{
williamr@2
   540
	if(iMtmData1&KMsvEmailEntryIMAP4AnsweredFlag)
williamr@2
   541
		{
williamr@2
   542
		return ETrue;
williamr@2
   543
		}
williamr@2
   544
	else
williamr@2
   545
		{
williamr@2
   546
		return EFalse;
williamr@2
   547
		}	
williamr@2
   548
	}
williamr@2
   549
williamr@2
   550
/** Sets the state of the \\Answered IMAP4 flag.
williamr@2
   551
@param aFlag \\Answered IMAP4 flag */
williamr@2
   552
inline void TMsvEmailEntry::SetAnsweredIMAP4Flag(TBool aFlag)
williamr@2
   553
	{
williamr@2
   554
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryIMAP4AnsweredFlag) | (aFlag?KMsvEmailEntryIMAP4AnsweredFlag:KMsvEmailEntryClearFlag);
williamr@2
   555
	}
williamr@2
   556
williamr@2
   557
williamr@2
   558
/** Gets the state of the \\Flagged IMAP4 flag.
williamr@2
   559
williamr@2
   560
This indicates if the message is flagged for urgent/special attention. 
williamr@2
   561
It is described in RFC3501, 2.3.2. Flags Message Attribute.
williamr@2
   562
williamr@2
   563
@return \\Flagged IMAP4 flag */
williamr@2
   564
inline TBool TMsvEmailEntry::FlaggedIMAP4Flag() const
williamr@2
   565
	{
williamr@2
   566
	if(iMtmData1&KMsvEmailEntryIMAP4FlaggedFlag)
williamr@2
   567
		{
williamr@2
   568
		return ETrue;
williamr@2
   569
		}
williamr@2
   570
	else
williamr@2
   571
		{
williamr@2
   572
		return EFalse;
williamr@2
   573
		}	
williamr@2
   574
	}
williamr@2
   575
williamr@2
   576
/** Sets the state of the \\Flagged IMAP4 flag.
williamr@2
   577
@param aFlag \\Flagged IMAP4 flag */
williamr@2
   578
inline void TMsvEmailEntry::SetFlaggedIMAP4Flag(TBool aFlag)
williamr@2
   579
	{
williamr@2
   580
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryIMAP4FlaggedFlag) | (aFlag?KMsvEmailEntryIMAP4FlaggedFlag:KMsvEmailEntryClearFlag);
williamr@2
   581
	}
williamr@2
   582
williamr@2
   583
/** Gets the state of the \\Deleted IMAP4 flag.
williamr@2
   584
williamr@2
   585
This indicates if the message is marked as deleted for removal later. It is described in 
williamr@2
   586
RFC3501, 2.3.2. Flags Message Attribute.
williamr@2
   587
williamr@2
   588
@return \\Deleted IMAP4 flag */
williamr@2
   589
inline TBool TMsvEmailEntry::DeletedIMAP4Flag() const
williamr@2
   590
	{
williamr@2
   591
	if(iMtmData1&KMsvEmailEntryIMAP4DeletedFlag)
williamr@2
   592
		{
williamr@2
   593
		return ETrue;
williamr@2
   594
		}
williamr@2
   595
	else
williamr@2
   596
		{
williamr@2
   597
		return EFalse;
williamr@2
   598
		}	
williamr@2
   599
	}
williamr@2
   600
williamr@2
   601
/** Sets the state of the \\Deleted IMAP4 flag.
williamr@2
   602
@param aFlag \\Deleted IMAP4 flag */
williamr@2
   603
inline void TMsvEmailEntry::SetDeletedIMAP4Flag(TBool aFlag)
williamr@2
   604
	{
williamr@2
   605
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryIMAP4DeletedFlag) | (aFlag?KMsvEmailEntryIMAP4DeletedFlag:KMsvEmailEntryClearFlag);
williamr@2
   606
	}
williamr@2
   607
williamr@2
   608
/** Gets the state of the \\Draft IMAP4 flag.
williamr@2
   609
williamr@2
   610
This indicates if the message has not completed composition. It is described in 
williamr@2
   611
RFC3501, 2.3.2. Flags Message Attribute.
williamr@2
   612
williamr@2
   613
@return \\Draft IMAP4 flag */
williamr@2
   614
inline TBool TMsvEmailEntry::DraftIMAP4Flag() const
williamr@2
   615
	{
williamr@2
   616
	if(iMtmData1&KMsvEmailEntryIMAP4DraftFlag)
williamr@2
   617
		{
williamr@2
   618
		return ETrue;
williamr@2
   619
		}
williamr@2
   620
	else
williamr@2
   621
		{
williamr@2
   622
		return EFalse;
williamr@2
   623
		}	
williamr@2
   624
	}
williamr@2
   625
williamr@2
   626
/** Sets the state of the \\Draft IMAP4 flag.
williamr@2
   627
@param aFlag \\Draft IMAP4 flag */
williamr@2
   628
inline void TMsvEmailEntry::SetDraftIMAP4Flag(TBool aFlag)
williamr@2
   629
	{
williamr@2
   630
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryIMAP4DraftFlag) | (aFlag?KMsvEmailEntryIMAP4DraftFlag:KMsvEmailEntryClearFlag);
williamr@2
   631
	}
williamr@2
   632
williamr@2
   633
/** Gets the state of the \\Recent IMAP4 flag.
williamr@2
   634
williamr@2
   635
This indicates if the message is "recently" arrived in this mailbox.  This session
williamr@2
   636
is the first session to have been notified about this message. For more details, see
williamr@2
   637
see RFC3501, 2.3.2. Flags Message Attribute.
williamr@2
   638
williamr@2
   639
@return \\Recent IMAP4 flag */
williamr@2
   640
inline TBool TMsvEmailEntry::RecentIMAP4Flag() const
williamr@2
   641
	{
williamr@2
   642
	if(iMtmData1&KMsvEmailEntryIMAP4RecentFlag)
williamr@2
   643
		{
williamr@2
   644
		return ETrue;
williamr@2
   645
		}
williamr@2
   646
	else
williamr@2
   647
		{
williamr@2
   648
		return EFalse;
williamr@2
   649
		}	
williamr@2
   650
	}
williamr@2
   651
williamr@2
   652
/** Sets the state of the \\Recent IMAP4 flag.
williamr@2
   653
@param aFlag \\Recent IMAP4 flag */
williamr@2
   654
inline void TMsvEmailEntry::SetRecentIMAP4Flag(TBool aFlag)
williamr@2
   655
	{
williamr@2
   656
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryIMAP4RecentFlag) | (aFlag?KMsvEmailEntryIMAP4RecentFlag:KMsvEmailEntryClearFlag);
williamr@2
   657
	}
williamr@2
   658
williamr@2
   659
williamr@2
   660
/** Tests if the specified folder is the IMAP4 Mailbox.
williamr@2
   661
@return True if the specified folder is the Mailbox */
williamr@2
   662
inline TBool TMsvEmailEntry::Mailbox() const
williamr@2
   663
	{
williamr@2
   664
	if(iMtmData1&KMsvEmailEntryIMAP4MailboxFlag)
williamr@2
   665
		{
williamr@2
   666
		return ETrue;
williamr@2
   667
		}
williamr@2
   668
	else
williamr@2
   669
		{
williamr@2
   670
		return EFalse;
williamr@2
   671
		}	
williamr@2
   672
	}
williamr@2
   673
williamr@2
   674
/** Sets if the specified folder is the IMAP4 Mailbox.
williamr@2
   675
@param aFlag True if the specified folder is the Mailbox */
williamr@2
   676
inline void TMsvEmailEntry::SetMailbox(TBool aFlag)
williamr@2
   677
	{
williamr@2
   678
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryIMAP4MailboxFlag) | (aFlag?KMsvEmailEntryIMAP4MailboxFlag:KMsvEmailEntryClearFlag);
williamr@2
   679
	}
williamr@2
   680
williamr@2
   681
williamr@2
   682
/** Gets the IMAP4 orphaned state for the specified message/folder.
williamr@2
   683
williamr@2
   684
The concept of an orphan is no longer used, so this function should not be used.
williamr@2
   685
williamr@2
   686
@return True if the specified entry is orphaned */
williamr@2
   687
inline TBool TMsvEmailEntry::Orphan() const
williamr@2
   688
	{
williamr@2
   689
	if(iMtmData1&KMsvEmailEntryOrphanFlag)
williamr@2
   690
		{
williamr@2
   691
		return ETrue;
williamr@2
   692
		}
williamr@2
   693
	else
williamr@2
   694
		{
williamr@2
   695
		return EFalse;
williamr@2
   696
		}	
williamr@2
   697
	}
williamr@2
   698
williamr@2
   699
/** Sets the IMAP4 orphaned state for the specified message/folder.
williamr@2
   700
williamr@2
   701
The concept of an orphan is no longer used, so this function should not be used.
williamr@2
   702
williamr@2
   703
@param aFlag True if the specified entry is orphaned */
williamr@2
   704
inline void TMsvEmailEntry::SetOrphan(TBool aFlag)
williamr@2
   705
	{
williamr@2
   706
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryOrphanFlag) | (aFlag?KMsvEmailEntryOrphanFlag:KMsvEmailEntryClearFlag);
williamr@2
   707
	}
williamr@2
   708
williamr@2
   709
williamr@2
   710
/** Gets the IMAP4 UID (unique identifier) validity for the specified folder.
williamr@2
   711
@return True if IMAP4 UID validity is set */
williamr@2
   712
inline TBool TMsvEmailEntry::ValidUID() const
williamr@2
   713
	{
williamr@2
   714
	if(iMtmData1&KMsvEmailEntryIMAP4ValidUIDFlag)
williamr@2
   715
		{
williamr@2
   716
		return ETrue;
williamr@2
   717
		}
williamr@2
   718
	else
williamr@2
   719
		{
williamr@2
   720
		return EFalse;
williamr@2
   721
		}	
williamr@2
   722
	}
williamr@2
   723
williamr@2
   724
/** Sets the IMAP4 UID (unique identifier) validity for the specified folder.
williamr@2
   725
@param aFlag True if IMAP4 UID validity is set */
williamr@2
   726
inline void TMsvEmailEntry::SetValidUID(TBool aFlag)
williamr@2
   727
	{
williamr@2
   728
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryIMAP4ValidUIDFlag) | (aFlag?KMsvEmailEntryIMAP4ValidUIDFlag:KMsvEmailEntryClearFlag);
williamr@2
   729
	}
williamr@2
   730
williamr@2
   731
williamr@2
   732
/** Gets the IMAP4 subscription state for the specified folder.
williamr@2
   733
@return IMAP4 subscription state */
williamr@2
   734
inline TBool TMsvEmailEntry::Subscribed() const
williamr@2
   735
	{
williamr@2
   736
	if(iMtmData1&KMsvEmailEntryIMAP4SubscribedFlag)
williamr@2
   737
		{
williamr@2
   738
		return ETrue;
williamr@2
   739
		}
williamr@2
   740
	else
williamr@2
   741
		{
williamr@2
   742
		return EFalse;
williamr@2
   743
		}	
williamr@2
   744
	}
williamr@2
   745
williamr@2
   746
/** Sets the IMAP4 subscription state for the specified folder.
williamr@2
   747
@param aFlag IMAP4 subscription state */
williamr@2
   748
inline void TMsvEmailEntry::SetSubscribed(TBool aFlag)
williamr@2
   749
	{
williamr@2
   750
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryIMAP4SubscribedFlag) | (aFlag?KMsvEmailEntryIMAP4SubscribedFlag:KMsvEmailEntryClearFlag);
williamr@2
   751
	}
williamr@2
   752
williamr@2
   753
williamr@2
   754
/** Gets the IMAP4 local subscription state for the specified folder.
williamr@2
   755
williamr@2
   756
@return IMAP4 local subscription state */
williamr@2
   757
inline TBool TMsvEmailEntry::LocalSubscription() const
williamr@2
   758
	{
williamr@2
   759
	if(iMtmData1&KMsvEmailEntryIMAP4LocalSubFlag)
williamr@2
   760
		{	
williamr@2
   761
		return ETrue;
williamr@2
   762
		}
williamr@2
   763
	else
williamr@2
   764
		{
williamr@2
   765
		return EFalse;
williamr@2
   766
		}	
williamr@2
   767
	}
williamr@2
   768
williamr@2
   769
/** Sets the IMAP4 local subscription state for the specified folder.
williamr@2
   770
williamr@2
   771
Depending on other settings, setting a folder to be locally subscribed can mean:
williamr@2
   772
williamr@2
   773
- that the folder is synchronised as part of synchronisation operations 
williamr@2
   774
  (depending on the value of CImImap4Settings::Synchronise())
williamr@2
   775
- that the folder will be set as subscribed on the remote server 
williamr@2
   776
  (depending on the value of CImImap4Settings::SetSuscribe())
williamr@2
   777
williamr@2
   778
Note that clients can use the #KIMAP4MTMLocalSubscribe command to set
williamr@2
   779
this flag and save the change to the entry.
williamr@2
   780
williamr@2
   781
@param aFlag IMAP4 local subscription state */
williamr@2
   782
inline void TMsvEmailEntry::SetLocalSubscription(TBool aFlag)
williamr@2
   783
	{
williamr@2
   784
	iMtmData1 = (iMtmData1 & ~KMsvEmailEntryIMAP4LocalSubFlag) | (aFlag?KMsvEmailEntryIMAP4LocalSubFlag:KMsvEmailEntryClearFlag);
williamr@2
   785
	}
williamr@2
   786
williamr@2
   787
williamr@2
   788
/** Gets the IMAP4 UID (unique identifier) for the specified message/folder.
williamr@2
   789
@return IMAP4 UID */
williamr@2
   790
inline TUint32 TMsvEmailEntry::UID() const
williamr@2
   791
	{
williamr@2
   792
	return (TUint32)iMtmData2;	// hide the casting away from the caller
williamr@2
   793
	}
williamr@2
   794
williamr@2
   795
/** Sets the IMAP4 UID (unique identifier) for the specified message/folder.
williamr@2
   796
@param aUID IMAP4 UID */
williamr@2
   797
inline void TMsvEmailEntry::SetUID(TUint32 aUID)
williamr@2
   798
	{
williamr@2
   799
	iMtmData2 = (TInt32) aUID;	// hide the casting away from the user
williamr@2
   800
	}
williamr@2
   801
williamr@2
   802
/** Gets the number of messages stored in the remote folder.
williamr@2
   803
@return Number of messages */
williamr@2
   804
inline TInt TMsvEmailEntry::RemoteFolderEntries() const
williamr@2
   805
	{
williamr@2
   806
	return iMtmData3&KMsvRemoteFolderEntriesMask;
williamr@2
   807
	}
williamr@2
   808
williamr@2
   809
/** Sets the number of messages stored in the remote folder.
williamr@2
   810
@param aEntries Number of messages */
williamr@2
   811
inline void TMsvEmailEntry::SetRemoteFolderEntries(TInt aEntries)
williamr@2
   812
	{
williamr@2
   813
	iMtmData3 = (TInt32) ((iMtmData3 & ~KMsvRemoteFolderEntriesMask) | (aEntries & KMsvRemoteFolderEntriesMask));
williamr@2
   814
	}
williamr@2
   815
williamr@2
   816
//////////////////////////////////////////////////////////////
williamr@2
   817
//				CImMimeHeader inlines						//
williamr@2
   818
//////////////////////////////////////////////////////////////
williamr@2
   819
williamr@2
   820
/** Gets the const Content-Type parameters and their associated values.
williamr@2
   821
@return Parameters and associated values */
williamr@2
   822
inline const CDesC8Array& CImMimeHeader::ContentTypeParams() const 
williamr@2
   823
	{
williamr@2
   824
	return *iContentTypeParams;
williamr@2
   825
	}
williamr@2
   826
williamr@2
   827
williamr@2
   828
/** Gets the const Content-Disposition parameters and their associated values.
williamr@2
   829
@return Parameters and associated values */
williamr@2
   830
inline const CDesC8Array& CImMimeHeader::ContentDispositionParams() const
williamr@2
   831
	{
williamr@2
   832
	return *iContentDispositionParams;
williamr@2
   833
	}
williamr@2
   834
williamr@2
   835
williamr@2
   836
/** Gets the const MIME header parameters and their associated values.
williamr@2
   837
This can be used by any MIME header fields.
williamr@2
   838
@return Parameters and associated values */
williamr@2
   839
inline const CDesC8Array& CImMimeHeader::XTypeParams() const
williamr@2
   840
	{
williamr@2
   841
	return *iXTypeParams;
williamr@2
   842
	}
williamr@2
   843
williamr@2
   844
williamr@2
   845
/** Gets the Content-Type parameters and their associated values.
williamr@2
   846
@return Parameters and associated values */
williamr@2
   847
inline CDesC8Array& CImMimeHeader::ContentTypeParams()
williamr@2
   848
	{
williamr@2
   849
	return *iContentTypeParams;
williamr@2
   850
	}
williamr@2
   851
williamr@2
   852
williamr@2
   853
/** Gets the Content-Disposition parameters and their associated values.
williamr@2
   854
@return Parameters and associated values */
williamr@2
   855
inline CDesC8Array& CImMimeHeader::ContentDispositionParams()
williamr@2
   856
	{
williamr@2
   857
	return *iContentDispositionParams;
williamr@2
   858
	}
williamr@2
   859
williamr@2
   860
williamr@2
   861
/** Gets the MIME header parameters and their associated values.
williamr@2
   862
This can be used by any MIME header fields.
williamr@2
   863
@return Parameters and associated values */
williamr@2
   864
inline CDesC8Array& CImMimeHeader::XTypeParams()
williamr@2
   865
	{
williamr@2
   866
	return *iXTypeParams;
williamr@2
   867
	}
williamr@2
   868
williamr@2
   869
williamr@2
   870
inline const TUint16 CImMimeHeader::Version() const
williamr@2
   871
	{
williamr@2
   872
	return iVersion;
williamr@2
   873
	}
williamr@2
   874
williamr@2
   875
inline void CImMimeHeader::SetVersion( TUint16 aVersion )
williamr@2
   876
	{
williamr@2
   877
	iVersion = aVersion;
williamr@2
   878
	}