emailservices/emailclientapi/src/emailcontent.cpp
author hgs
Thu, 24 Jun 2010 14:32:18 +0300
changeset 47 f83bd4ae1fe3
child 62 a8c646b56683
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: This file implements class CEmailContent.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <apmstd.h>
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include "emailcontent.h"
hgs
parents:
diff changeset
    21
#include "cfsmailclient.h"
hgs
parents:
diff changeset
    22
#include "emailclientapi.hrh"
hgs
parents:
diff changeset
    23
#include "emailapiutils.h"
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    26
// 
hgs
parents:
diff changeset
    27
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    28
CEmailMessageContent* CEmailMessageContent::NewL( 
hgs
parents:
diff changeset
    29
        CPluginData& aPluginData,
hgs
parents:
diff changeset
    30
        const TMessageContentId& aMsgContentId,
hgs
parents:
diff changeset
    31
        CFSMailMessagePart* aPart )    
hgs
parents:
diff changeset
    32
    {
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
    CEmailMessageContent* self = new ( ELeave ) 
hgs
parents:
diff changeset
    35
        CEmailMessageContent( aPluginData, aMsgContentId, aPart );
hgs
parents:
diff changeset
    36
    CleanupStack::PushL( self );
hgs
parents:
diff changeset
    37
    self->ConstructL();
hgs
parents:
diff changeset
    38
    CleanupStack::Pop( self );
hgs
parents:
diff changeset
    39
    return self;
hgs
parents:
diff changeset
    40
    }
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    43
// 
hgs
parents:
diff changeset
    44
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    45
CFSMailMessagePart& CEmailMessageContent::Part()
hgs
parents:
diff changeset
    46
    {
hgs
parents:
diff changeset
    47
    return *iPart;
hgs
parents:
diff changeset
    48
    }
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    51
// 
hgs
parents:
diff changeset
    52
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    53
void CEmailMessageContent::SetPart( CFSMailMessagePart* aPart )
hgs
parents:
diff changeset
    54
    {
hgs
parents:
diff changeset
    55
    iPart = aPart;
hgs
parents:
diff changeset
    56
    }
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    59
// 
hgs
parents:
diff changeset
    60
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    61
CPluginData& CEmailMessageContent::PluginData()
hgs
parents:
diff changeset
    62
    {
hgs
parents:
diff changeset
    63
    return iPluginData;
hgs
parents:
diff changeset
    64
    }
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    67
// 
hgs
parents:
diff changeset
    68
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    69
void CEmailMessageContent::ConstructL()
hgs
parents:
diff changeset
    70
    {
hgs
parents:
diff changeset
    71
    iPlugin = iPluginData.ClaimInstanceL();
hgs
parents:
diff changeset
    72
    }
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    75
// 
hgs
parents:
diff changeset
    76
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    77
CEmailMessageContent::~CEmailMessageContent()
hgs
parents:
diff changeset
    78
    {
hgs
parents:
diff changeset
    79
    iPluginData.ReleaseInstance();
hgs
parents:
diff changeset
    80
    delete iPart;
hgs
parents:
diff changeset
    81
    delete iBuf;
hgs
parents:
diff changeset
    82
    }
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    85
// 
hgs
parents:
diff changeset
    86
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    87
CEmailMessageContent::CEmailMessageContent(
hgs
parents:
diff changeset
    88
        CPluginData& aPluginData,
hgs
parents:
diff changeset
    89
        const TMessageContentId& aMsgContentId,
hgs
parents:
diff changeset
    90
        CFSMailMessagePart* aPart):
hgs
parents:
diff changeset
    91
        iPluginData( aPluginData ), 
hgs
parents:
diff changeset
    92
        iPart( aPart ), 
hgs
parents:
diff changeset
    93
        iMsgContentId( aMsgContentId ), 
hgs
parents:
diff changeset
    94
        iBuf( NULL ), 
hgs
parents:
diff changeset
    95
        iUsed( 0 )
hgs
parents:
diff changeset
    96
    {
hgs
parents:
diff changeset
    97
    }
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   100
// 
hgs
parents:
diff changeset
   101
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   102
TEmailTypeId CEmailMessageContent::InterfaceId() const
hgs
parents:
diff changeset
   103
    {
hgs
parents:
diff changeset
   104
    return KEmailIFUidMessageContent;
hgs
parents:
diff changeset
   105
    }
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   108
// 
hgs
parents:
diff changeset
   109
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   110
void CEmailMessageContent::Release()
hgs
parents:
diff changeset
   111
    {
hgs
parents:
diff changeset
   112
    delete this;
hgs
parents:
diff changeset
   113
    }
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   116
// 
hgs
parents:
diff changeset
   117
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   118
TMessageContentId CEmailMessageContent::Id() const
hgs
parents:
diff changeset
   119
    {
hgs
parents:
diff changeset
   120
    return iMsgContentId;
hgs
parents:
diff changeset
   121
    }
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   124
// 
hgs
parents:
diff changeset
   125
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   126
TPtrC CEmailMessageContent::ContentType() const
hgs
parents:
diff changeset
   127
    {
hgs
parents:
diff changeset
   128
    if (iPart)
hgs
parents:
diff changeset
   129
        {
hgs
parents:
diff changeset
   130
        return iPart->GetContentType();
hgs
parents:
diff changeset
   131
        } 
hgs
parents:
diff changeset
   132
    else
hgs
parents:
diff changeset
   133
        {
hgs
parents:
diff changeset
   134
        return TPtrC(0,0);
hgs
parents:
diff changeset
   135
        }
hgs
parents:
diff changeset
   136
    }
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   139
// 
hgs
parents:
diff changeset
   140
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   141
void CEmailMessageContent::SetContentType( const TDesC& aContentType )
hgs
parents:
diff changeset
   142
    {
hgs
parents:
diff changeset
   143
    if (iPart)
hgs
parents:
diff changeset
   144
        iPart->SetContentType( aContentType );
hgs
parents:
diff changeset
   145
    }
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   148
// 
hgs
parents:
diff changeset
   149
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   150
TPtrC CEmailMessageContent::ContentId() const
hgs
parents:
diff changeset
   151
    {
hgs
parents:
diff changeset
   152
    if (iPart)
hgs
parents:
diff changeset
   153
        {
hgs
parents:
diff changeset
   154
        return iPart->ContentID();
hgs
parents:
diff changeset
   155
        }
hgs
parents:
diff changeset
   156
    else
hgs
parents:
diff changeset
   157
        {
hgs
parents:
diff changeset
   158
        return TPtrC(0,0);
hgs
parents:
diff changeset
   159
        }
hgs
parents:
diff changeset
   160
    }
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   163
// 
hgs
parents:
diff changeset
   164
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   165
void CEmailMessageContent::SetContentId( const TDesC& aContentId )
hgs
parents:
diff changeset
   166
    {
hgs
parents:
diff changeset
   167
    if (iPart)
hgs
parents:
diff changeset
   168
        TRAP_IGNORE( iPart->SetContentIDL( aContentId ) );
hgs
parents:
diff changeset
   169
    }
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   172
// 
hgs
parents:
diff changeset
   173
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   174
TPtrC CEmailMessageContent::ContentDescription() const
hgs
parents:
diff changeset
   175
    {
hgs
parents:
diff changeset
   176
    if (iPart)
hgs
parents:
diff changeset
   177
        {
hgs
parents:
diff changeset
   178
        return iPart->ContentDescription();
hgs
parents:
diff changeset
   179
        }
hgs
parents:
diff changeset
   180
    else
hgs
parents:
diff changeset
   181
        {
hgs
parents:
diff changeset
   182
        return TPtrC(0,0);
hgs
parents:
diff changeset
   183
        }
hgs
parents:
diff changeset
   184
    }
hgs
parents:
diff changeset
   185
hgs
parents:
diff changeset
   186
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   187
// 
hgs
parents:
diff changeset
   188
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   189
void CEmailMessageContent::SetContentDescription( 
hgs
parents:
diff changeset
   190
    const TDesC& aContentDescription )
hgs
parents:
diff changeset
   191
    {
hgs
parents:
diff changeset
   192
    if (iPart)
hgs
parents:
diff changeset
   193
        iPart->SetContentDescription( aContentDescription );
hgs
parents:
diff changeset
   194
    }
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   197
// 
hgs
parents:
diff changeset
   198
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   199
TPtrC CEmailMessageContent::ContentDisposition() const
hgs
parents:
diff changeset
   200
    {
hgs
parents:
diff changeset
   201
    if (iPart)
hgs
parents:
diff changeset
   202
        {
hgs
parents:
diff changeset
   203
        return iPart->ContentDisposition();
hgs
parents:
diff changeset
   204
        }
hgs
parents:
diff changeset
   205
    else
hgs
parents:
diff changeset
   206
        {
hgs
parents:
diff changeset
   207
        return TPtrC(0,0);
hgs
parents:
diff changeset
   208
        }
hgs
parents:
diff changeset
   209
    }
hgs
parents:
diff changeset
   210
hgs
parents:
diff changeset
   211
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   212
// 
hgs
parents:
diff changeset
   213
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   214
void CEmailMessageContent::SetContentDisposition( 
hgs
parents:
diff changeset
   215
    const TDesC& aContentDisposition )
hgs
parents:
diff changeset
   216
    {
hgs
parents:
diff changeset
   217
    if (iPart)
hgs
parents:
diff changeset
   218
        iPart->SetContentDisposition( aContentDisposition );
hgs
parents:
diff changeset
   219
    }
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   222
// 
hgs
parents:
diff changeset
   223
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   224
TPtrC CEmailMessageContent::ContentClass() const
hgs
parents:
diff changeset
   225
    {
hgs
parents:
diff changeset
   226
    if (iPart)
hgs
parents:
diff changeset
   227
        {
hgs
parents:
diff changeset
   228
        return iPart->GetContentClass();
hgs
parents:
diff changeset
   229
        }
hgs
parents:
diff changeset
   230
    else
hgs
parents:
diff changeset
   231
        {
hgs
parents:
diff changeset
   232
        return TPtrC(0,0);
hgs
parents:
diff changeset
   233
        }
hgs
parents:
diff changeset
   234
    }
hgs
parents:
diff changeset
   235
hgs
parents:
diff changeset
   236
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   237
// 
hgs
parents:
diff changeset
   238
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   239
void CEmailMessageContent::SetContentClass( const TDesC& aContentClass )
hgs
parents:
diff changeset
   240
    {
hgs
parents:
diff changeset
   241
    if (iPart)
hgs
parents:
diff changeset
   242
        iPart->SetContentClass( aContentClass );
hgs
parents:
diff changeset
   243
    }
hgs
parents:
diff changeset
   244
hgs
parents:
diff changeset
   245
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   246
// 
hgs
parents:
diff changeset
   247
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   248
TInt CEmailMessageContent::AvailableSize() const
hgs
parents:
diff changeset
   249
    {
hgs
parents:
diff changeset
   250
    if (iPart)
hgs
parents:
diff changeset
   251
        {
hgs
parents:
diff changeset
   252
        return iPart->FetchedContentSize();
hgs
parents:
diff changeset
   253
        }
hgs
parents:
diff changeset
   254
    else
hgs
parents:
diff changeset
   255
        {
hgs
parents:
diff changeset
   256
        return 0;
hgs
parents:
diff changeset
   257
        }
hgs
parents:
diff changeset
   258
    }
hgs
parents:
diff changeset
   259
hgs
parents:
diff changeset
   260
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   261
// 
hgs
parents:
diff changeset
   262
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   263
TInt CEmailMessageContent::TotalSize() const
hgs
parents:
diff changeset
   264
    {
hgs
parents:
diff changeset
   265
    if (iPart)
hgs
parents:
diff changeset
   266
        {
hgs
parents:
diff changeset
   267
        return iPart->ContentSize();
hgs
parents:
diff changeset
   268
        }
hgs
parents:
diff changeset
   269
    else
hgs
parents:
diff changeset
   270
        {
hgs
parents:
diff changeset
   271
        return 0;
hgs
parents:
diff changeset
   272
        }
hgs
parents:
diff changeset
   273
    }
hgs
parents:
diff changeset
   274
hgs
parents:
diff changeset
   275
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   276
// 
hgs
parents:
diff changeset
   277
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   278
TPtrC CEmailMessageContent::ContentL() const
hgs
parents:
diff changeset
   279
    {
hgs
parents:
diff changeset
   280
    TInt size = AvailableSize();
hgs
parents:
diff changeset
   281
    TPtr16 ptr( 0, size );
hgs
parents:
diff changeset
   282
    if ( size != 0 )
hgs
parents:
diff changeset
   283
        {
hgs
parents:
diff changeset
   284
        if ( !iBuf )
hgs
parents:
diff changeset
   285
            {
hgs
parents:
diff changeset
   286
            iBuf = HBufC::NewL( size );
hgs
parents:
diff changeset
   287
            }
hgs
parents:
diff changeset
   288
        
hgs
parents:
diff changeset
   289
        if ( size > ptr.MaxLength() )
hgs
parents:
diff changeset
   290
            {
hgs
parents:
diff changeset
   291
            iBuf = iBuf->ReAlloc( size );
hgs
parents:
diff changeset
   292
            }
hgs
parents:
diff changeset
   293
        ptr.Set( iBuf->Des() );
hgs
parents:
diff changeset
   294
        iPart->GetContentToBufferL( ptr, iUsed );
hgs
parents:
diff changeset
   295
        iUsed += size;
hgs
parents:
diff changeset
   296
        }
hgs
parents:
diff changeset
   297
    return ptr;
hgs
parents:
diff changeset
   298
    }
hgs
parents:
diff changeset
   299
hgs
parents:
diff changeset
   300
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   301
// 
hgs
parents:
diff changeset
   302
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   303
void CEmailMessageContent::SetContentL( const TDesC& aContent )
hgs
parents:
diff changeset
   304
    {
hgs
parents:
diff changeset
   305
    User::LeaveIfNull( iPart );
hgs
parents:
diff changeset
   306
    iPart->SetContentSize( aContent.Length() );
hgs
parents:
diff changeset
   307
    iPart->SetFetchedContentSize( aContent.Length() );
hgs
parents:
diff changeset
   308
    iPlugin->SetContentL( aContent, 
hgs
parents:
diff changeset
   309
            FsMsgId( iPluginData, iMsgContentId.iMessageId.iFolderId.iMailboxId ),
hgs
parents:
diff changeset
   310
            FsMsgId( iPluginData, iMsgContentId.iMessageId.iFolderId ),
hgs
parents:
diff changeset
   311
            FsMsgId( iPluginData, iMsgContentId.iMessageId ),
hgs
parents:
diff changeset
   312
            FsMsgId( iPluginData, iMsgContentId ) );
hgs
parents:
diff changeset
   313
    }
hgs
parents:
diff changeset
   314
hgs
parents:
diff changeset
   315
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   316
// 
hgs
parents:
diff changeset
   317
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   318
void CEmailMessageContent::FetchL( MEmailFetchObserver&  aObserver )
hgs
parents:
diff changeset
   319
    {
hgs
parents:
diff changeset
   320
    User::LeaveIfNull( iPart );
hgs
parents:
diff changeset
   321
    const TFSMailMsgId fsId = FsMsgId(iPluginData, iMsgContentId);
hgs
parents:
diff changeset
   322
    if ( !iFetchObserver )
hgs
parents:
diff changeset
   323
        {
hgs
parents:
diff changeset
   324
        iFetchObserver = new ( ELeave ) CContentRequestObserver( *this );
hgs
parents:
diff changeset
   325
        }
hgs
parents:
diff changeset
   326
    iFetchObserver->SetObserverL( &aObserver );
hgs
parents:
diff changeset
   327
    iRequestId = iPart->FetchMessagePartL( fsId, *iFetchObserver, TUint( 0 ) );
hgs
parents:
diff changeset
   328
hgs
parents:
diff changeset
   329
    }
hgs
parents:
diff changeset
   330
hgs
parents:
diff changeset
   331
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   332
// 
hgs
parents:
diff changeset
   333
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   334
void CEmailMessageContent::CancelFetch()
hgs
parents:
diff changeset
   335
    {
hgs
parents:
diff changeset
   336
    TRAP_IGNORE( iPlugin->CancelL( iRequestId ) );
hgs
parents:
diff changeset
   337
    }
hgs
parents:
diff changeset
   338
hgs
parents:
diff changeset
   339
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   340
// 
hgs
parents:
diff changeset
   341
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   342
void CEmailMessageContent::SaveToFileL( const TDesC& aPath )
hgs
parents:
diff changeset
   343
    {
hgs
parents:
diff changeset
   344
    iPlugin->CopyMessagePartFileL(
hgs
parents:
diff changeset
   345
        FsMsgId( iPluginData, iMsgContentId.iMessageId.iFolderId.iMailboxId ),
hgs
parents:
diff changeset
   346
        FsMsgId( iPluginData, iMsgContentId.iMessageId.iFolderId ),
hgs
parents:
diff changeset
   347
        FsMsgId( iPluginData, iMsgContentId.iMessageId ),
hgs
parents:
diff changeset
   348
        FsMsgId( iPluginData, iMsgContentId ),
hgs
parents:
diff changeset
   349
        aPath );
hgs
parents:
diff changeset
   350
    }
hgs
parents:
diff changeset
   351
hgs
parents:
diff changeset
   352
/* Dummy implementations, not ever called */
hgs
parents:
diff changeset
   353
MEmailMultipart* CEmailMessageContent::AsMultipartOrNull() const 
hgs
parents:
diff changeset
   354
    {
hgs
parents:
diff changeset
   355
    return NULL;
hgs
parents:
diff changeset
   356
    }
hgs
parents:
diff changeset
   357
hgs
parents:
diff changeset
   358
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   359
// 
hgs
parents:
diff changeset
   360
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   361
MEmailTextContent* CEmailMessageContent::AsTextContentOrNull() const
hgs
parents:
diff changeset
   362
    {
hgs
parents:
diff changeset
   363
    return NULL;
hgs
parents:
diff changeset
   364
    }
hgs
parents:
diff changeset
   365
hgs
parents:
diff changeset
   366
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   367
// 
hgs
parents:
diff changeset
   368
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   369
MEmailAttachment* CEmailMessageContent::AsAttachmentOrNull() const
hgs
parents:
diff changeset
   370
    {
hgs
parents:
diff changeset
   371
    return NULL;
hgs
parents:
diff changeset
   372
    }
hgs
parents:
diff changeset
   373
hgs
parents:
diff changeset
   374
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   375
// 
hgs
parents:
diff changeset
   376
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   377
CEmailMessageContent::CContentRequestObserver::CContentRequestObserver( 
hgs
parents:
diff changeset
   378
    CEmailMessageContent& aParent ) : iObserver( NULL ), iParent( aParent )
hgs
parents:
diff changeset
   379
    {
hgs
parents:
diff changeset
   380
    }
hgs
parents:
diff changeset
   381
hgs
parents:
diff changeset
   382
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   383
// 
hgs
parents:
diff changeset
   384
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   385
void CEmailMessageContent::CContentRequestObserver::RequestResponseL( 
hgs
parents:
diff changeset
   386
    TFSProgress aEvent, TInt /* aRequestId */ )
hgs
parents:
diff changeset
   387
    {
hgs
parents:
diff changeset
   388
    if ( aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestComplete )
hgs
parents:
diff changeset
   389
        {
hgs
parents:
diff changeset
   390
        delete iParent.iPart;
hgs
parents:
diff changeset
   391
        iParent.iPart = NULL;
hgs
parents:
diff changeset
   392
        CFSMailMessagePart *part = iParent.iPlugin->MessagePartL( 
hgs
parents:
diff changeset
   393
            FsMsgId( iParent.iPluginData, iParent.iMsgContentId.iMessageId.iFolderId.iMailboxId ),
hgs
parents:
diff changeset
   394
            FsMsgId( iParent.iPluginData, iParent.iMsgContentId.iMessageId.iFolderId ),
hgs
parents:
diff changeset
   395
            FsMsgId( iParent.iPluginData, iParent.iMsgContentId.iMessageId ),
hgs
parents:
diff changeset
   396
            FsMsgId( iParent.iPluginData, iParent.iMsgContentId ) );
hgs
parents:
diff changeset
   397
        iParent.SetPart( part );
hgs
parents:
diff changeset
   398
hgs
parents:
diff changeset
   399
        if ( iObserver ) 
hgs
parents:
diff changeset
   400
            iObserver->DataFetchedL( aEvent.iError );
hgs
parents:
diff changeset
   401
        }
hgs
parents:
diff changeset
   402
    }
hgs
parents:
diff changeset
   403
hgs
parents:
diff changeset
   404
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   405
// 
hgs
parents:
diff changeset
   406
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   407
void CEmailMessageContent::CContentRequestObserver::SetObserverL( MEmailFetchObserver* aObserver )
hgs
parents:
diff changeset
   408
    {
hgs
parents:
diff changeset
   409
    iObserver = aObserver;
hgs
parents:
diff changeset
   410
    }
hgs
parents:
diff changeset
   411
hgs
parents:
diff changeset
   412
// End of file