diff -r 000000000000 -r 8466d47a6819 emailservices/emailclientapi/src/emailattachment.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/emailclientapi/src/emailattachment.cpp Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,199 @@ +/* +* Copyright (c) 2009 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" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: This file implements class CEmailAttachment. +* +*/ + +#include "emailattachment.h" +#include "emailcontent.h" +#include "emailclientapi.hrh" + +CEmailAttachment::CEmailAttachment( const TDataOwner aOwner) : iOwner( aOwner ) + { + } + +CEmailAttachment::~CEmailAttachment() + { + delete iEmailMsgContent; + } + +CEmailAttachment* CEmailAttachment::NewLC( + CPluginData& aPluginData, + const TMessageContentId& aMsgContentId, + CFSMailMessagePart *aAtt, + const TDataOwner aOwner ) + { + CEmailAttachment* self = new (ELeave) CEmailAttachment( aOwner ); + CleanupStack::PushL( self ); + self->ConstructL( aPluginData, aMsgContentId, aAtt ); + + return self; + } + +CEmailAttachment* CEmailAttachment::NewL( + CPluginData& aPluginData, + const TMessageContentId& aMsgContentId, + CFSMailMessagePart *aAtt, + const TDataOwner aOwner ) + { + CEmailAttachment* self = CEmailAttachment::NewLC(aPluginData, aMsgContentId, aAtt, aOwner ); + CleanupStack::Pop(); // self; + + return self; + } + +void CEmailAttachment::ConstructL( + CPluginData& aPluginData, + const TMessageContentId& aMsgContentId, + CFSMailMessagePart *aAtt) + { + iEmailMsgContent = CEmailMessageContent::NewL( aPluginData, aMsgContentId, aAtt ); + } + + +TInt CEmailAttachment::AvailableSize() const +{ + return iEmailMsgContent->AvailableSize(); +} + +void CEmailAttachment::CancelFetch() +{ + iEmailMsgContent->CancelFetch(); +} + +TPtrC CEmailAttachment::ContentL() const +{ + User::Leave(KErrNotSupported); + return iEmailMsgContent->ContentL(); +} + +TPtrC CEmailAttachment::ContentClass() const +{ + return iEmailMsgContent->ContentClass(); +} + +TPtrC CEmailAttachment::ContentDescription() const +{ + return iEmailMsgContent->ContentDescription(); +} + +TPtrC CEmailAttachment::ContentDisposition() const +{ + return iEmailMsgContent->ContentDisposition(); +} + +TPtrC CEmailAttachment::ContentId() const +{ + return iEmailMsgContent->ContentId(); +} + +TPtrC CEmailAttachment::ContentType() const +{ + return iEmailMsgContent->ContentType(); +} + +void CEmailAttachment::FetchL(MEmailFetchObserver & aObserver) +{ + iEmailMsgContent->FetchL(aObserver); +} + +TMessageContentId CEmailAttachment::Id() const +{ + return iEmailMsgContent->Id(); +} + +TEmailTypeId CEmailAttachment::InterfaceId() const + { + return KEmailIFUidAttachment; + } + +void CEmailAttachment::Release() + { + if ( iOwner == EClientOwns ) + { + delete this; + } + } + +void CEmailAttachment::SaveToFileL(const TDesC & aPath) +{ + iEmailMsgContent->SaveToFileL(aPath); +} + +void CEmailAttachment::SetContentClass(const TDesC & aContentClass) +{ + iEmailMsgContent->SetContentClass(aContentClass); +} + +void CEmailAttachment::SetContentDescription(const TDesC & aContentDescription) +{ + iEmailMsgContent->SetContentDescription(aContentDescription); +} + +void CEmailAttachment::SetContentDisposition(const TDesC & aContentDisposition) +{ + iEmailMsgContent->SetContentDisposition(aContentDisposition); +} + +void CEmailAttachment::SetContentId(const TDesC & aContentId) +{ + iEmailMsgContent->SetContentId(aContentId); +} + +void CEmailAttachment::SetContentL(const TDesC & aContent) +{ + iEmailMsgContent->SetContentL(aContent); +} + +void CEmailAttachment::SetContentType(const TDesC & aContentType) +{ + iEmailMsgContent->SetContentType(aContentType); +} + +TInt CEmailAttachment::TotalSize() const +{ + return iEmailMsgContent->TotalSize(); +} + +MEmailMultipart* CEmailAttachment::AsMultipartOrNull() const + { + return NULL; + } + +MEmailTextContent* CEmailAttachment::AsTextContentOrNull() const + { + return NULL; + } + +MEmailAttachment* CEmailAttachment::AsAttachmentOrNull() const + { + const MEmailAttachment* ptr = this; + return const_cast(ptr); + } + +// CEmailAttachment +RFile CEmailAttachment::FileL() const + { + return iEmailMsgContent->Part().GetContentFileL(); + } + +void CEmailAttachment::SetFileNameL( const TDesC& aFileName ) + { + iEmailMsgContent->Part().SetAttachmentNameL(aFileName); + } + +TPtrC CEmailAttachment::FileNameL() const + { + return iEmailMsgContent->Part().AttachmentNameL(); + }