// IMCVSEND.INL
//
// Copyright (c) 1998 Symbian Ltd.  All rights reserved. 
//

inline CImHeader* CImSendConvert::Header() const 
	{
	return iOutputHeader;
	}

inline TInt CImSendConvert::BodySize()
	{
	return iBodySize;
	}

inline TInt CImSendConvert::MimeHeaderNextLine(TDes8& rOutputLine, TInt& rPaddingCount)
	{
	__ASSERT_DEBUG( iMimeSend!=NULL, gPanic(KPanicNoBody) );
	return iMimeSend->HeaderNextLine(rOutputLine, rPaddingCount);
	}

inline TInt CImSendConvert::BodyHeaderNextLine(TDes8& rOutputLine, TInt& rPaddingCount)
	{
	__ASSERT_DEBUG( iAttachmentConversion!=NULL, gPanic(KPanicNoBody) );
	return iAttachmentConversion->BodyHeaderNextLine(rOutputLine, rPaddingCount);
	}

inline TInt CImSendConvert::BodyNextLine(TDes8& rOutputLine, TInt& rPaddingCount)
	{
	return iBodyConversion->NextLine(rOutputLine, rPaddingCount);
	}

inline TInt CImSendConvert::AttachmentNextLine(TDes8& rOutputLine, TInt& rPaddingCount)
	{
	__ASSERT_DEBUG( iAttachmentConversion!=NULL, gPanic(KPanicNoBody) );
	return iAttachmentConversion->NextLine(rOutputLine, rPaddingCount);
	}

inline TInt CImSendConvert::XMailerL(TDes8& rOutputLine)
	{
	rOutputLine = KImcvXMailer;
	rOutputLine.Append(*iProductName);
	return 1;
	}

inline TInt CImSendConvert::MessageIdL( TDes8& rOutputLine )
	{
	if ( iOutputHeader->ImMsgId().Length() )
		{
		PrepareBufferL(  KImcvMessageIdPrompt, iOutputHeader->ImMsgId());
		return SendOutput( rOutputLine );
		}
	else
		return 1;
	}

inline TInt CImSendConvert::ToL(TDes8& rOutputLine)
	{
	return DoRecipientsL(rOutputLine, KImcvToPrompt, iOutputHeader->ToRecipients());
	}

inline TInt CImSendConvert::CcL(TDes8& rOutputLine)
	{
	return DoRecipientsL(rOutputLine, KImcvCcPrompt, iOutputHeader->CcRecipients());
	}

inline TInt CImSendConvert::BccL(TDes8& rOutputLine)
	{
	return DoRecipientsL(rOutputLine, KImcvBccPrompt, iOutputHeader->BccRecipients());
	}

inline TInt CImSendConvert::FromL( TDes8& rOutputLine )
	{
	PrepareBufferL( KImcvFromPrompt, iOutputHeader->From(), ETrue);
	return SendOutput( rOutputLine );
	}

inline TInt CImSendConvert::ReplyToL( TDes8& rOutputLine )
	{
	if ( iOutputHeader->ReplyTo().Length() )
		{
		PrepareBufferL(  KImcvReplyToPrompt, iOutputHeader->ReplyTo(), ETrue );
		return SendOutput( rOutputLine );
		}
	else
		return 1;
	}

inline TInt CImSendConvert::SubjectL( TDes8& rOutputLine )
	{
	PrepareBufferL(  KImcvSubjectPrompt, iOutputHeader->Subject(), ETrue );
	return SendOutput( rOutputLine );	
	}

inline TBool CImSendConvert::IsLineCRLF( TDesC8& aOutputLine )
	{
	TInt length = aOutputLine.Length();
	if ( length < 2 || (aOutputLine[length-2] != KImcvCR || aOutputLine[length-1] != KImcvLF) )
		return EFalse;
	return ETrue;
	}

inline TInt CImSendConvert::ReturnReceiptsL(TDes8& rOutputLine)
	{
	if (iOutputHeader->ReceiptAddress().Length())
		{
		PrepareBufferL( KImcvReturnReceiptToPrompt, iOutputHeader->ReceiptAddress(), ETrue );
		return SendOutput( rOutputLine );
		}
	return 1;
	}


inline TInt CImCalculateMsgSize::MessageSize() const
	{
	return iSize;
	}

inline void CImCalculateMsgSize::Progress(TInt& rCurrentSize, TInt& rTotalSize)
	{
	rCurrentSize=iSize;
	rTotalSize=iTotal;
	}
