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