emailservices/emailclientapi/src/emailmultipart.cpp
branchRCL_3
changeset 63 d189ee25cf9d
parent 16 4ce476e64c59
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".
    20 #include "emailattachment.h"
    20 #include "emailattachment.h"
    21 #include "emailmultipart.h"
    21 #include "emailmultipart.h"
    22 #include "emailmessage.h"
    22 #include "emailmessage.h"
    23 #include "emailclientapi.hrh"
    23 #include "emailclientapi.hrh"
    24 
    24 
    25 
    25 // -----------------------------------------------------------------------------
    26 // -----------------------------------------------------------------------------
    26 // 
    27 // 
    27 // -----------------------------------------------------------------------------
    28 // -----------------------------------------------------------------------------
       
    29 //
       
    30 CEmailMultipart* CEmailMultipart::NewL( 
    28 CEmailMultipart* CEmailMultipart::NewL( 
    31         CPluginData& aPluginData,
    29         CPluginData& aPluginData,
    32         const TMessageContentId& aMsgContentId,
    30         const TMessageContentId& aMsgContentId,
    33         CFSMailMessagePart* aPart,
    31         CFSMailMessagePart* aPart,
    34         const TDataOwner aOwner ) 
    32         const TDataOwner aOwner ) 
    35     {
    33     {
    36     CEmailMultipart* self = new ( ELeave ) CEmailMultipart( aOwner );
    34     CEmailMultipart* self = new ( ELeave ) CEmailMultipart( aOwner );
    37     CleanupStack::PushL( self );
    35     CleanupStack::PushL( self );
    38     self->ConstructL( aPluginData, aMsgContentId, aPart );
    36     self->ConstructL( aPluginData, aMsgContentId, aPart );
    39     CleanupStack::Pop();
    37     CleanupStack::Pop( self );
    40     return self;
    38     return self;
    41     }
    39     }
    42 
    40 
    43 // -----------------------------------------------------------------------------
    41 // -----------------------------------------------------------------------------
    44 // 
    42 // 
    45 // -----------------------------------------------------------------------------
    43 // -----------------------------------------------------------------------------
    46 //
       
    47 void CEmailMultipart::ConstructL(
    44 void CEmailMultipart::ConstructL(
    48         CPluginData& aPluginData,
    45         CPluginData& aPluginData,
    49         const TMessageContentId& aMsgContentId,
    46         const TMessageContentId& aMsgContentId,
    50         CFSMailMessagePart* aPart )
    47         CFSMailMessagePart* aPart )
    51     {
    48     {
    53     }
    50     }
    54 
    51 
    55 // -----------------------------------------------------------------------------
    52 // -----------------------------------------------------------------------------
    56 // 
    53 // 
    57 // -----------------------------------------------------------------------------
    54 // -----------------------------------------------------------------------------
    58 //
       
    59 CEmailMultipart::~CEmailMultipart()
    55 CEmailMultipart::~CEmailMultipart()
    60     {
    56     {
    61     delete iEmailMsgContent;
    57     delete iEmailMsgContent;
    62     iChildParts.Reset();
    58     iChildParts.Reset();
    63     }
    59     }
    64 
    60 
    65 // -----------------------------------------------------------------------------
    61 // -----------------------------------------------------------------------------
    66 // 
    62 // 
    67 // -----------------------------------------------------------------------------
    63 // -----------------------------------------------------------------------------
    68 //
    64 CEmailMultipart::CEmailMultipart( const TDataOwner aOwner ) : iOwner( aOwner )
    69 CEmailMultipart::CEmailMultipart( const TDataOwner aOwner ) : iOwner( aOwner )        
    65     {
    70     {
    66     }
    71     }
    67 
    72 
    68 // -----------------------------------------------------------------------------
    73 // -----------------------------------------------------------------------------
    69 // 
    74 // 
    70 // -----------------------------------------------------------------------------
    75 // -----------------------------------------------------------------------------
       
    76 //
       
    77 TInt CEmailMultipart::PartCountL()
    71 TInt CEmailMultipart::PartCountL()
    78     {
    72     {
    79     iChildParts.Reset();
    73     iChildParts.Reset();
    80     RPointerArray<CFSMailMessagePart> childParts;
    74     RPointerArray<CFSMailMessagePart> childParts;
    81     CleanupResetAndDestroyPushL( childParts );    
    75     CleanupResetAndDestroyPushL( childParts );
    82     iEmailMsgContent->Part().ChildPartsL( childParts );
    76     iEmailMsgContent->Part().ChildPartsL( childParts );
    83     iChildPartCount = childParts.Count();
    77     iChildPartCount = childParts.Count();
    84     
    78 
    85     for (TInt i = 0; i < iChildPartCount; i++)
    79     for ( TInt i = 0; i < iChildPartCount; i++ )
    86         {
    80         {
    87         TFSMailMsgId id = childParts[i]->GetPartId();
    81         TFSMailMsgId id = childParts[i]->GetPartId();
    88         iChildParts.AppendL( id );
    82         iChildParts.AppendL( id );
    89         }
    83         }
    90     CleanupStack::PopAndDestroy();
    84     CleanupStack::PopAndDestroy( &childParts );
    91     return iChildPartCount;
    85     return iChildPartCount;
    92     }
    86     }
    93 
    87 
    94 // -----------------------------------------------------------------------------
    88 // -----------------------------------------------------------------------------
    95 // 
    89 // 
    96 // -----------------------------------------------------------------------------
    90 // -----------------------------------------------------------------------------
    97 //
       
    98 MEmailMessageContent* CEmailMultipart::PartByIndexL( const TUint aIndex ) const
    91 MEmailMessageContent* CEmailMultipart::PartByIndexL( const TUint aIndex ) const
    99     {
    92     {
   100     if (aIndex >= iChildPartCount)
    93     if ( aIndex >= iChildPartCount )
   101         {
    94         {
   102         User::Leave( KErrArgument );        
    95         User::Leave( KErrArgument );
   103         }
    96         }
   104     MEmailMessageContent* content = NULL;
    97     MEmailMessageContent* content = NULL;
   105     TFSMailMsgId partId = iChildParts[aIndex];
    98     TFSMailMsgId partId = iChildParts[aIndex];
   106     CFSMailMessagePart* copy = iEmailMsgContent->Part().ChildPartL( partId );
    99     CFSMailMessagePart* copy = iEmailMsgContent->Part().ChildPartL( partId );
   107     TContentType contentType( copy->GetContentType() ); 
   100     if ( !copy )
       
   101         return content;
       
   102 
       
   103     TContentType contentType( copy->GetContentType() );
   108     TMessageContentId msgContentId = TMessageContentId( 
   104     TMessageContentId msgContentId = TMessageContentId( 
   109             copy->GetPartId().Id(),
   105             copy->GetPartId().Id(),
   110             Id().iMessageId.iId,
   106             Id().iMessageId.iId,
   111             Id().iMessageId.iFolderId.iId,
   107             Id().iMessageId.iFolderId.iId,
   112             Id().iMessageId.iFolderId.iMailboxId ); 
   108             Id().iMessageId.iFolderId.iMailboxId );
   113    
   109 
   114     if ( contentType.Equals( KFSMailContentTypeTextPlain ) || 
   110     if ( contentType.Equals( KFSMailContentTypeTextPlain ) || 
   115          contentType.Equals( KFSMailContentTypeTextHtml ) )
   111          contentType.Equals( KFSMailContentTypeTextHtml ) )
   116         {                                
   112         {
   117         content = CEmailTextContent::NewL( iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns );
   113         content = CEmailTextContent::NewL( 
       
   114             iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns );
   118         }
   115         }
   119     else if ( contentType.Equals( KFSMailContentTypeMultipartMixed ) ||
   116     else if ( contentType.Equals( KFSMailContentTypeMultipartMixed ) ||
   120               contentType.Equals( KFSMailContentTypeMultipartAlternative ) ||
   117               contentType.Equals( KFSMailContentTypeMultipartAlternative ) ||
   121               contentType.Equals( KFSMailContentTypeMultipartDigest ) ||
   118               contentType.Equals( KFSMailContentTypeMultipartDigest ) ||
   122               contentType.Equals( KFSMailContentTypeMultipartRelated ) ||
   119               contentType.Equals( KFSMailContentTypeMultipartRelated ) ||
   123               contentType.Equals( KFSMailContentTypeMultipartParallel ) )
   120               contentType.Equals( KFSMailContentTypeMultipartParallel ) )
   124         {
   121         {
   125         content = CEmailMultipart::NewL( iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns );
   122         content = CEmailMultipart::NewL( 
       
   123             iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns );
   126         }
   124         }
   127     else 
   125     else 
   128         {
   126         {
   129         content = CEmailAttachment::NewL( iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns );
   127         content = CEmailAttachment::NewL( 
   130         }                    
   128             iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns );
   131     return content;    
   129         } 
   132     }
   130     return content;
   133 
   131     }
   134 // -----------------------------------------------------------------------------
   132 
   135 // 
   133 // -----------------------------------------------------------------------------
   136 // -----------------------------------------------------------------------------
   134 // 
   137 //
   135 // -----------------------------------------------------------------------------
   138 void CEmailMultipart::DeletePartL( const TUint aIndex )
   136 void CEmailMultipart::DeletePartL( const TUint aIndex )
   139     {
   137     {
   140     if (aIndex >= iChildPartCount)
   138     if ( aIndex >= iChildPartCount )
   141         {
   139         {
   142         User::Leave( KErrArgument );        
   140         User::Leave( KErrArgument );
   143         }
   141         }
   144     
   142     
   145     TFSMailMsgId partId = iChildParts[aIndex];
   143     TFSMailMsgId partId = iChildParts[aIndex];
   146     iEmailMsgContent->Part().RemoveChildPartL( partId );
   144     iEmailMsgContent->Part().RemoveChildPartL( partId );
   147     iChildParts.Remove( aIndex );
   145     iChildParts.Remove( aIndex );
   149     }
   147     }
   150 
   148 
   151 // -----------------------------------------------------------------------------
   149 // -----------------------------------------------------------------------------
   152 // 
   150 // 
   153 // -----------------------------------------------------------------------------
   151 // -----------------------------------------------------------------------------
   154 //
       
   155 void CEmailMultipart::AddPartL(
   152 void CEmailMultipart::AddPartL(
   156         const MEmailMessageContent& aPart,
   153         const MEmailMessageContent& aPart,
   157         const TUint aPos )
   154         const TUint aPos )
   158     {
   155     {
   159     if (aPos > iChildPartCount)
   156     if ( aPos > iChildPartCount )
   160         {
   157         {
   161         User::Leave( KErrArgument );        
   158         User::Leave( KErrArgument );
   162         }
   159         }
   163     
   160 
   164     TFSMailMsgId insertBefore = TFSMailMsgId();
   161     TFSMailMsgId insertBefore = TFSMailMsgId();
   165     if (aPos <  iChildPartCount)
   162     if ( aPos <  iChildPartCount )
   166         {
   163         {
   167         insertBefore = iChildParts[aPos];
   164         insertBefore = iChildParts[aPos];
   168         }
   165         }
   169     const TDesC& contentType = aPart.ContentType();
   166     const TDesC& contentType = aPart.ContentType();
   170 
   167 
   171     CFSMailMessagePart* newPart = iEmailMsgContent->Part().NewChildPartL( insertBefore, contentType );
   168     CFSMailMessagePart* newPart = 
       
   169         iEmailMsgContent->Part().NewChildPartL( insertBefore, contentType );
   172     CleanupStack::PushL( newPart );
   170     CleanupStack::PushL( newPart );
   173     TFSMailMsgId newPartId = newPart->GetPartId(); 
   171     TFSMailMsgId newPartId = newPart->GetPartId(); 
   174     iChildParts.InsertL( newPartId, aPos );
   172     iChildParts.InsertL( newPartId, aPos );
   175     iChildPartCount = iChildParts.Count();
   173     iChildPartCount = iChildParts.Count();
   176     CleanupStack::Pop();
   174     CleanupStack::Pop( newPart );
   177     
   175     
   178 
   176 
   179     
   177 
   180     return;
   178     return;
   181     }
   179     }
   182 
   180 
   183 // -----------------------------------------------------------------------------
   181 // -----------------------------------------------------------------------------
   184 // 
   182 // 
   185 // -----------------------------------------------------------------------------
   183 // -----------------------------------------------------------------------------
   186 //
       
   187 TEmailTypeId CEmailMultipart::InterfaceId() const
   184 TEmailTypeId CEmailMultipart::InterfaceId() const
   188     {
   185     {
   189     return KEmailIFUidMultipart;
   186     return KEmailIFUidMultipart;
   190     }
   187     }
   191     
   188 
   192 // -----------------------------------------------------------------------------
   189 // -----------------------------------------------------------------------------
   193 // 
   190 // 
   194 // -----------------------------------------------------------------------------
   191 // -----------------------------------------------------------------------------
   195 //
       
   196 void CEmailMultipart::Release()
   192 void CEmailMultipart::Release()
   197     {
   193     {
   198     if ( iOwner == EClientOwns )
   194     if ( iOwner == EClientOwns )
   199         {    
   195         {
   200         delete this;
   196         delete this;
   201         }
   197         }
   202     }
   198     }
   203 
   199 
   204 // -----------------------------------------------------------------------------
   200 // -----------------------------------------------------------------------------
   205 // 
   201 // 
   206 // -----------------------------------------------------------------------------
   202 // -----------------------------------------------------------------------------
   207 //
       
   208 TMessageContentId CEmailMultipart::Id() const
   203 TMessageContentId CEmailMultipart::Id() const
   209     {
   204     {
   210     return iEmailMsgContent->Id(); 
   205     return iEmailMsgContent->Id(); 
   211     }
   206     }
   212 
   207 
   213 // -----------------------------------------------------------------------------
   208 // -----------------------------------------------------------------------------
   214 // 
   209 // 
   215 // -----------------------------------------------------------------------------
   210 // -----------------------------------------------------------------------------
   216 //
       
   217 TPtrC CEmailMultipart::ContentType() const
   211 TPtrC CEmailMultipart::ContentType() const
   218     {
   212     {
   219     return iEmailMsgContent->ContentType();
   213     return iEmailMsgContent->ContentType();
   220     }
   214     }
   221 
   215 
   222 // -----------------------------------------------------------------------------
   216 // -----------------------------------------------------------------------------
   223 // 
   217 // 
   224 // -----------------------------------------------------------------------------
   218 // -----------------------------------------------------------------------------
   225 //
       
   226 void CEmailMultipart::SetContentType( const TDesC& aContentType )
   219 void CEmailMultipart::SetContentType( const TDesC& aContentType )
   227     {
   220     {
   228     iEmailMsgContent->SetContentType( aContentType );
   221     iEmailMsgContent->SetContentType( aContentType );
   229     }
   222     }
   230 
   223 
   231 // -----------------------------------------------------------------------------
   224 // -----------------------------------------------------------------------------
   232 // 
   225 // 
   233 // -----------------------------------------------------------------------------
   226 // -----------------------------------------------------------------------------
   234 //
       
   235 TPtrC CEmailMultipart::ContentId() const
   227 TPtrC CEmailMultipart::ContentId() const
   236     {
   228     {
   237     return iEmailMsgContent->ContentId();    
   229     return iEmailMsgContent->ContentId();
   238     }
   230     }
   239 
   231 
   240 // -----------------------------------------------------------------------------
   232 // -----------------------------------------------------------------------------
   241 // 
   233 // 
   242 // -----------------------------------------------------------------------------
   234 // -----------------------------------------------------------------------------
   243 //
       
   244 void CEmailMultipart::SetContentId( const TDesC& aContentId )
   235 void CEmailMultipart::SetContentId( const TDesC& aContentId )
   245     {
   236     {
   246     iEmailMsgContent->SetContentId(aContentId);
   237     iEmailMsgContent->SetContentId( aContentId );
   247     }
   238     }
   248 
   239 
   249 // -----------------------------------------------------------------------------
   240 // -----------------------------------------------------------------------------
   250 // 
   241 // 
   251 // -----------------------------------------------------------------------------
   242 // -----------------------------------------------------------------------------
   252 //
       
   253 TPtrC CEmailMultipart::ContentDescription() const
   243 TPtrC CEmailMultipart::ContentDescription() const
   254     {
   244     {
   255     return iEmailMsgContent->ContentDescription();    
   245     return iEmailMsgContent->ContentDescription();
   256     }
   246     }
   257 
   247 
   258 // -----------------------------------------------------------------------------
   248 // -----------------------------------------------------------------------------
   259 // 
   249 // 
   260 // -----------------------------------------------------------------------------
   250 // -----------------------------------------------------------------------------
   261 //
       
   262 void CEmailMultipart::SetContentDescription( const TDesC& aContentDescription )
   251 void CEmailMultipart::SetContentDescription( const TDesC& aContentDescription )
   263     {
   252     {
   264     iEmailMsgContent->SetContentDescription(aContentDescription);
   253     iEmailMsgContent->SetContentDescription( aContentDescription );
   265     }
   254     }
   266 
   255 
   267 // -----------------------------------------------------------------------------
   256 // -----------------------------------------------------------------------------
   268 // 
   257 // 
   269 // -----------------------------------------------------------------------------
   258 // -----------------------------------------------------------------------------
   270 //
       
   271 TPtrC CEmailMultipart::ContentDisposition() const
   259 TPtrC CEmailMultipart::ContentDisposition() const
   272     {
   260     {
   273     return iEmailMsgContent->ContentDisposition();
   261     return iEmailMsgContent->ContentDisposition();
   274     }
   262     }
   275 
   263 
   276 // -----------------------------------------------------------------------------
   264 // -----------------------------------------------------------------------------
   277 // 
   265 // 
   278 // -----------------------------------------------------------------------------
   266 // -----------------------------------------------------------------------------
   279 //
       
   280 void CEmailMultipart::SetContentDisposition( const TDesC& aContentDisposition )
   267 void CEmailMultipart::SetContentDisposition( const TDesC& aContentDisposition )
   281     {
   268     {
   282     iEmailMsgContent->SetContentDisposition(aContentDisposition);
   269     iEmailMsgContent->SetContentDisposition( aContentDisposition );
   283     }
   270     }
   284 
   271 
   285 // -----------------------------------------------------------------------------
   272 // -----------------------------------------------------------------------------
   286 // 
   273 // 
   287 // -----------------------------------------------------------------------------
   274 // -----------------------------------------------------------------------------
   288 //
       
   289 TPtrC CEmailMultipart::ContentClass() const
   275 TPtrC CEmailMultipart::ContentClass() const
   290     {
   276     {
   291     return iEmailMsgContent->ContentClass();
   277     return iEmailMsgContent->ContentClass();
   292     }
   278     }
   293 
   279 
   294 // -----------------------------------------------------------------------------
   280 // -----------------------------------------------------------------------------
   295 // 
   281 // 
   296 // -----------------------------------------------------------------------------
   282 // -----------------------------------------------------------------------------
   297 //
       
   298 void CEmailMultipart::SetContentClass( const TDesC& aContentClass )
   283 void CEmailMultipart::SetContentClass( const TDesC& aContentClass )
   299     {
   284     {
   300     iEmailMsgContent->SetContentClass(aContentClass);
   285     iEmailMsgContent->SetContentClass( aContentClass );
   301     }
   286     }
   302 
   287 
   303 // -----------------------------------------------------------------------------
   288 // -----------------------------------------------------------------------------
   304 // 
   289 // 
   305 // -----------------------------------------------------------------------------
   290 // -----------------------------------------------------------------------------
   306 //
       
   307 TInt CEmailMultipart::AvailableSize() const
   291 TInt CEmailMultipart::AvailableSize() const
   308     {
   292     {
   309     return iEmailMsgContent->AvailableSize();
   293     return iEmailMsgContent->AvailableSize();
   310     }
   294     }
   311 
   295 
   312 // -----------------------------------------------------------------------------
   296 // -----------------------------------------------------------------------------
   313 // 
   297 // 
   314 // -----------------------------------------------------------------------------
   298 // -----------------------------------------------------------------------------
   315 //
       
   316 TInt CEmailMultipart::TotalSize() const
   299 TInt CEmailMultipart::TotalSize() const
   317     {
   300     {
   318     return iEmailMsgContent->TotalSize();
   301     return iEmailMsgContent->TotalSize();
   319     }
   302     }
   320 
   303 
   321 // -----------------------------------------------------------------------------
   304 // -----------------------------------------------------------------------------
   322 // 
   305 // 
   323 // -----------------------------------------------------------------------------
   306 // -----------------------------------------------------------------------------
   324 //
       
   325 TPtrC CEmailMultipart::ContentL() const
   307 TPtrC CEmailMultipart::ContentL() const
   326     {
   308     {
   327     User::Leave(KErrNotSupported);
   309     User::Leave(KErrNotSupported);
   328     return iEmailMsgContent->ContentL();
   310     return iEmailMsgContent->ContentL();
   329     }
   311     }
   330 
   312 
   331 // -----------------------------------------------------------------------------
   313 // -----------------------------------------------------------------------------
   332 // 
   314 // 
   333 // -----------------------------------------------------------------------------
   315 // -----------------------------------------------------------------------------
   334 //
       
   335 void CEmailMultipart::SetContentL( const TDesC& aContent )
   316 void CEmailMultipart::SetContentL( const TDesC& aContent )
   336     {
   317     {
   337     iEmailMsgContent->SetContentL( aContent );
   318     iEmailMsgContent->SetContentL( aContent );
   338     }
   319     }
   339 
   320 
   340 // -----------------------------------------------------------------------------
   321 // -----------------------------------------------------------------------------
   341 // 
   322 // 
   342 // -----------------------------------------------------------------------------
   323 // -----------------------------------------------------------------------------
   343 //
       
   344 void CEmailMultipart::FetchL( MEmailFetchObserver& aObserver )
   324 void CEmailMultipart::FetchL( MEmailFetchObserver& aObserver )
   345     {
   325     {
   346     iEmailMsgContent->FetchL(aObserver);
   326     iEmailMsgContent->FetchL( aObserver );
   347     }
   327     }
   348 
   328 
   349 // -----------------------------------------------------------------------------
   329 // -----------------------------------------------------------------------------
   350 // 
   330 // 
   351 // -----------------------------------------------------------------------------
   331 // -----------------------------------------------------------------------------
   352 //
       
   353 void CEmailMultipart::CancelFetch()
   332 void CEmailMultipart::CancelFetch()
   354     {
   333     {
   355     iEmailMsgContent->CancelFetch();
   334     iEmailMsgContent->CancelFetch();
   356     }
   335     }
   357 
   336 
   358 // -----------------------------------------------------------------------------
   337 // -----------------------------------------------------------------------------
   359 // 
   338 // 
   360 // -----------------------------------------------------------------------------
   339 // -----------------------------------------------------------------------------
   361 //
       
   362 void CEmailMultipart::SaveToFileL( const TDesC& aPath )
   340 void CEmailMultipart::SaveToFileL( const TDesC& aPath )
   363     {
   341     {
   364     iEmailMsgContent->SaveToFileL(aPath);
   342     iEmailMsgContent->SaveToFileL( aPath );
   365     }
   343     }
   366 
   344 
   367 // -----------------------------------------------------------------------------
   345 // -----------------------------------------------------------------------------
   368 // 
   346 // 
   369 // -----------------------------------------------------------------------------
   347 // -----------------------------------------------------------------------------
   370 //
       
   371 MEmailMultipart* CEmailMultipart::AsMultipartOrNull() const
   348 MEmailMultipart* CEmailMultipart::AsMultipartOrNull() const
   372     {    
   349     {
   373     const MEmailMultipart* ptr = this;
   350     const MEmailMultipart* ptr = this;
   374     return const_cast<MEmailMultipart*>(ptr);
   351     return const_cast<MEmailMultipart*>( ptr );
   375     }
   352     }
   376 
   353 
   377 // -----------------------------------------------------------------------------
   354 // -----------------------------------------------------------------------------
   378 // 
   355 // 
   379 // -----------------------------------------------------------------------------
   356 // -----------------------------------------------------------------------------
   380 //
       
   381 MEmailTextContent* CEmailMultipart::AsTextContentOrNull() const
   357 MEmailTextContent* CEmailMultipart::AsTextContentOrNull() const
   382     {
   358     {
   383     return NULL;
   359     return NULL;
   384     }
   360     }
   385 
   361 
   386 // -----------------------------------------------------------------------------
   362 // -----------------------------------------------------------------------------
   387 // 
   363 // 
   388 // -----------------------------------------------------------------------------
   364 // -----------------------------------------------------------------------------
   389 //
       
   390 MEmailAttachment* CEmailMultipart::AsAttachmentOrNull() const
   365 MEmailAttachment* CEmailMultipart::AsAttachmentOrNull() const
   391     {
   366     {
   392     return NULL;
   367     return NULL;
   393     }
   368     }
   394 
   369 
   395 // -----------------------------------------------------------------------------
   370 // -----------------------------------------------------------------------------
   396 // 
   371 // 
   397 // -----------------------------------------------------------------------------
   372 // -----------------------------------------------------------------------------
   398 //
       
   399 void CEmailMultipart::SetOwner( const TDataOwner aOwner )
   373 void CEmailMultipart::SetOwner( const TDataOwner aOwner )
   400     {
   374     {
   401     iOwner = aOwner;
   375     iOwner = aOwner;
   402     }
   376     }
       
   377 
       
   378 // End of file