emailservices/emailclientapi/src/emailmultipart.cpp
branchRCL_3
changeset 63 d189ee25cf9d
parent 16 4ce476e64c59
child 64 3533d4323edc
--- a/emailservices/emailclientapi/src/emailmultipart.cpp	Thu Aug 19 09:38:05 2010 +0300
+++ b/emailservices/emailclientapi/src/emailmultipart.cpp	Tue Aug 31 15:04:17 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -22,11 +22,9 @@
 #include "emailmessage.h"
 #include "emailclientapi.hrh"
 
-
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 CEmailMultipart* CEmailMultipart::NewL( 
         CPluginData& aPluginData,
         const TMessageContentId& aMsgContentId,
@@ -36,14 +34,13 @@
     CEmailMultipart* self = new ( ELeave ) CEmailMultipart( aOwner );
     CleanupStack::PushL( self );
     self->ConstructL( aPluginData, aMsgContentId, aPart );
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
     return self;
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::ConstructL(
         CPluginData& aPluginData,
         const TMessageContentId& aMsgContentId,
@@ -55,7 +52,6 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 CEmailMultipart::~CEmailMultipart()
     {
     delete iEmailMsgContent;
@@ -65,56 +61,57 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
-CEmailMultipart::CEmailMultipart( const TDataOwner aOwner ) : iOwner( aOwner )        
+CEmailMultipart::CEmailMultipart( const TDataOwner aOwner ) : iOwner( aOwner )
     {
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 TInt CEmailMultipart::PartCountL()
     {
     iChildParts.Reset();
     RPointerArray<CFSMailMessagePart> childParts;
-    CleanupResetAndDestroyPushL( childParts );    
+    CleanupResetAndDestroyPushL( childParts );
     iEmailMsgContent->Part().ChildPartsL( childParts );
     iChildPartCount = childParts.Count();
-    
-    for (TInt i = 0; i < iChildPartCount; i++)
+
+    for ( TInt i = 0; i < iChildPartCount; i++ )
         {
         TFSMailMsgId id = childParts[i]->GetPartId();
         iChildParts.AppendL( id );
         }
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy( &childParts );
     return iChildPartCount;
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 MEmailMessageContent* CEmailMultipart::PartByIndexL( const TUint aIndex ) const
     {
-    if (aIndex >= iChildPartCount)
+    if ( aIndex >= iChildPartCount )
         {
-        User::Leave( KErrArgument );        
+        User::Leave( KErrArgument );
         }
     MEmailMessageContent* content = NULL;
     TFSMailMsgId partId = iChildParts[aIndex];
     CFSMailMessagePart* copy = iEmailMsgContent->Part().ChildPartL( partId );
-    TContentType contentType( copy->GetContentType() ); 
+    if ( !copy )
+        return content;
+
+    TContentType contentType( copy->GetContentType() );
     TMessageContentId msgContentId = TMessageContentId( 
             copy->GetPartId().Id(),
             Id().iMessageId.iId,
             Id().iMessageId.iFolderId.iId,
-            Id().iMessageId.iFolderId.iMailboxId ); 
-   
+            Id().iMessageId.iFolderId.iMailboxId );
+
     if ( contentType.Equals( KFSMailContentTypeTextPlain ) || 
          contentType.Equals( KFSMailContentTypeTextHtml ) )
-        {                                
-        content = CEmailTextContent::NewL( iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns );
+        {
+        content = CEmailTextContent::NewL( 
+            iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns );
         }
     else if ( contentType.Equals( KFSMailContentTypeMultipartMixed ) ||
               contentType.Equals( KFSMailContentTypeMultipartAlternative ) ||
@@ -122,24 +119,25 @@
               contentType.Equals( KFSMailContentTypeMultipartRelated ) ||
               contentType.Equals( KFSMailContentTypeMultipartParallel ) )
         {
-        content = CEmailMultipart::NewL( iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns );
+        content = CEmailMultipart::NewL( 
+            iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns );
         }
     else 
         {
-        content = CEmailAttachment::NewL( iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns );
-        }                    
-    return content;    
+        content = CEmailAttachment::NewL( 
+            iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns );
+        } 
+    return content;
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::DeletePartL( const TUint aIndex )
     {
-    if (aIndex >= iChildPartCount)
+    if ( aIndex >= iChildPartCount )
         {
-        User::Leave( KErrArgument );        
+        User::Leave( KErrArgument );
         }
     
     TFSMailMsgId partId = iChildParts[aIndex];
@@ -151,52 +149,50 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::AddPartL(
         const MEmailMessageContent& aPart,
         const TUint aPos )
     {
-    if (aPos > iChildPartCount)
+    if ( aPos > iChildPartCount )
         {
-        User::Leave( KErrArgument );        
+        User::Leave( KErrArgument );
         }
-    
+
     TFSMailMsgId insertBefore = TFSMailMsgId();
-    if (aPos <  iChildPartCount)
+    if ( aPos <  iChildPartCount )
         {
         insertBefore = iChildParts[aPos];
         }
     const TDesC& contentType = aPart.ContentType();
 
-    CFSMailMessagePart* newPart = iEmailMsgContent->Part().NewChildPartL( insertBefore, contentType );
+    CFSMailMessagePart* newPart = 
+        iEmailMsgContent->Part().NewChildPartL( insertBefore, contentType );
     CleanupStack::PushL( newPart );
     TFSMailMsgId newPartId = newPart->GetPartId(); 
     iChildParts.InsertL( newPartId, aPos );
     iChildPartCount = iChildParts.Count();
-    CleanupStack::Pop();
+    CleanupStack::Pop( newPart );
     
 
-    
+
     return;
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 TEmailTypeId CEmailMultipart::InterfaceId() const
     {
     return KEmailIFUidMultipart;
     }
-    
+
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::Release()
     {
     if ( iOwner == EClientOwns )
-        {    
+        {
         delete this;
         }
     }
@@ -204,7 +200,6 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 TMessageContentId CEmailMultipart::Id() const
     {
     return iEmailMsgContent->Id(); 
@@ -213,7 +208,6 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 TPtrC CEmailMultipart::ContentType() const
     {
     return iEmailMsgContent->ContentType();
@@ -222,7 +216,6 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::SetContentType( const TDesC& aContentType )
     {
     iEmailMsgContent->SetContentType( aContentType );
@@ -231,43 +224,38 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 TPtrC CEmailMultipart::ContentId() const
     {
-    return iEmailMsgContent->ContentId();    
+    return iEmailMsgContent->ContentId();
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::SetContentId( const TDesC& aContentId )
     {
-    iEmailMsgContent->SetContentId(aContentId);
+    iEmailMsgContent->SetContentId( aContentId );
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 TPtrC CEmailMultipart::ContentDescription() const
     {
-    return iEmailMsgContent->ContentDescription();    
+    return iEmailMsgContent->ContentDescription();
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::SetContentDescription( const TDesC& aContentDescription )
     {
-    iEmailMsgContent->SetContentDescription(aContentDescription);
+    iEmailMsgContent->SetContentDescription( aContentDescription );
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 TPtrC CEmailMultipart::ContentDisposition() const
     {
     return iEmailMsgContent->ContentDisposition();
@@ -276,16 +264,14 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::SetContentDisposition( const TDesC& aContentDisposition )
     {
-    iEmailMsgContent->SetContentDisposition(aContentDisposition);
+    iEmailMsgContent->SetContentDisposition( aContentDisposition );
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 TPtrC CEmailMultipart::ContentClass() const
     {
     return iEmailMsgContent->ContentClass();
@@ -294,16 +280,14 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::SetContentClass( const TDesC& aContentClass )
     {
-    iEmailMsgContent->SetContentClass(aContentClass);
+    iEmailMsgContent->SetContentClass( aContentClass );
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 TInt CEmailMultipart::AvailableSize() const
     {
     return iEmailMsgContent->AvailableSize();
@@ -312,7 +296,6 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 TInt CEmailMultipart::TotalSize() const
     {
     return iEmailMsgContent->TotalSize();
@@ -321,7 +304,6 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 TPtrC CEmailMultipart::ContentL() const
     {
     User::Leave(KErrNotSupported);
@@ -331,7 +313,6 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::SetContentL( const TDesC& aContent )
     {
     iEmailMsgContent->SetContentL( aContent );
@@ -340,16 +321,14 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::FetchL( MEmailFetchObserver& aObserver )
     {
-    iEmailMsgContent->FetchL(aObserver);
+    iEmailMsgContent->FetchL( aObserver );
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::CancelFetch()
     {
     iEmailMsgContent->CancelFetch();
@@ -358,26 +337,23 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::SaveToFileL( const TDesC& aPath )
     {
-    iEmailMsgContent->SaveToFileL(aPath);
+    iEmailMsgContent->SaveToFileL( aPath );
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 MEmailMultipart* CEmailMultipart::AsMultipartOrNull() const
-    {    
+    {
     const MEmailMultipart* ptr = this;
-    return const_cast<MEmailMultipart*>(ptr);
+    return const_cast<MEmailMultipart*>( ptr );
     }
 
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 MEmailTextContent* CEmailMultipart::AsTextContentOrNull() const
     {
     return NULL;
@@ -386,7 +362,6 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 MEmailAttachment* CEmailMultipart::AsAttachmentOrNull() const
     {
     return NULL;
@@ -395,8 +370,9 @@
 // -----------------------------------------------------------------------------
 // 
 // -----------------------------------------------------------------------------
-//
 void CEmailMultipart::SetOwner( const TDataOwner aOwner )
     {
     iOwner = aOwner;
     }
+
+// End of file