messagingappbase/smsmtm/servermtm/src/SMSSchSend.cpp
changeset 25 84d9eb65b26f
parent 23 238255e8b033
child 27 e4592d119491
child 37 518b245aa84c
child 79 2981cb3aa489
--- a/messagingappbase/smsmtm/servermtm/src/SMSSchSend.cpp	Fri Apr 16 14:56:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,293 +0,0 @@
-// Copyright (c) 1999-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:
-//
-
-#ifdef _DEBUG
-#undef _MSG_NO_LOGGING
-#endif
-
-#include <msvstd.h>
-#include <msventry.h>
-
-#include "SMSSchSend.h"
-#include <smutset.h>
-
-#ifndef _MSG_NO_LOGGING
-#include <flogger.h>
-#endif
-
-/*
- *	CSmsScheduleSend Implementation
- */
- 
-CSmsScheduleSend* CSmsScheduleSend::NewL(CMsvServerEntry& aServerEntry)
-	{
-	CSmsScheduleSend* self = new (ELeave) CSmsScheduleSend(aServerEntry);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CSmsScheduleSend::CSmsScheduleSend(CMsvServerEntry& aServerEntry)
-	: CMsvScheduleSend(aServerEntry)
-	{
-	}
-
-/*
-Returns a pointer to a newly created CSmsScheduledEntry for a specified message.
-
-The CSmsScheduledEntry encapsulates the scheduling and recipient information
-relating to the message identified by aId.
-
-@param	Id
-The ID for the specified message.
-
-@return
-A pointer to the created CSmsScheduledEntry object,
-*/
-CMsvScheduledEntry* CSmsScheduleSend::GetMessageL(const TMsvId aId) const
-	{
-	//Set the iServerEntry to the message identified by aId
-	User::LeaveIfError(iServerEntry.SetEntry(aId));
-	
-	//Create a new CSmsScheduledEntry
-	CSmsScheduledEntry* entry = CSmsScheduledEntry::NewL(iServerEntry.Entry());
-	CleanupStack::PushL(entry);
-	CMsvStore* store = iServerEntry.ReadStoreL();
-	CleanupStack::PushL(store);
-	//Restore the entry from the message's store.
-	entry->RestoreL(*store);
-
-	CleanupStack::PopAndDestroy(store);
-	CleanupStack::Pop(entry);
-
-	return entry;
-	}
-
-/*
- *	CSmsScheduledEntry Implementation
- */
-
-CSmsScheduledEntry* CSmsScheduledEntry::NewL(const TMsvEntry& aEntry)
-	{
-	CSmsScheduledEntry* self = new (ELeave) CSmsScheduledEntry(aEntry);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CSmsScheduledEntry::CSmsScheduledEntry(const TMsvEntry& aEntry)
-	: CMsvScheduledEntry(aEntry)
-	{
-	}
-
-void CSmsScheduledEntry::ConstructL()
-	{
-	iParaLayer = CParaFormatLayer::NewL();
-	iCharLayer = CCharFormatLayer::NewL();
-	iRichText = CRichText::NewL( iParaLayer, iCharLayer, CEditableText::EFlatStorage, 256 );
-	iHeader = CSmsHeader::NewL(CSmsPDU::ESmsSubmit,*iRichText);
-	}
-
-CSmsScheduledEntry::~CSmsScheduledEntry()
-	{
-	// don't delete iRecipient
-	delete iHeader;
-	delete iRichText;
-	delete iCharLayer;
-	delete iParaLayer;
-	}
-
-void CSmsScheduledEntry::RecipientsStoreL(CMsvStore& aStore) const
-	{
-	iHeader->StoreL(aStore);
-	}
-
-void CSmsScheduledEntry::RecipientsRestoreL(CMsvStore& aStore)
-	{
-	iHeader->RestoreL(aStore);
-	}
-
-TBool CSmsScheduledEntry::CanSendToAnyRecipients(const TMsvSendErrorAction& aAction)
-	{
-	CArrayPtrFlat<CSmsNumber>& numbers = iHeader->Recipients();
-	TInt count = numbers.Count();
-
-	TBool retVal = EFalse;
-
-	while (count--)
-		{
-		CSmsNumber* rcpt = numbers[count];
-
-		retVal |= CheckRecipient(*rcpt, aAction);
-		}
-
-	return retVal;
-	}
-
-TBool CSmsScheduledEntry::RecipientsAllSent() const
-	{
-	//Returns whether all recipients of this SMS have sent successfully.
-	//If there are NO recipients, then returns EFalse.
-
-	CArrayPtrFlat<CSmsNumber>& numbers = iHeader->Recipients();
-	TInt count = numbers.Count();
-	TBool retVal = count;
-
-	while (retVal && count--)
-		{
-		CSmsNumber* rcpt = numbers[count];
-		retVal &= (rcpt->Status() == CMsvRecipient::ESentSuccessfully);
-		}
-
-	return retVal;
-	}
-
-TBool CSmsScheduledEntry::CheckRecipient(CSmsNumber& aRcpt, const TMsvSendErrorAction& aAction)
-	{
-#ifndef _MSG_NO_LOGGING
-	TPtrC address(aRcpt.Address());
-	RFileLogger::WriteFormat(KSchSendLogDir, KSchSendLogFile, EFileLoggingModeAppend,
-		_L("\t\tCSmsScheduledEntry::CheckRecipient() aRcpt %S: Status %d Retries %d, aAction: Action %d Retries %d MaxRetries %d"),
-		&address,
-		aRcpt.Status(),
-		aRcpt.Retries(),
-		aAction.iAction,
-		aAction.iRetries,
-		aAction.MaxRetries());
-#endif
-
-	TBool retVal = EFalse;
-
-	if (aRcpt.Status() != CMsvRecipient::ESentSuccessfully)
-		{
-		if (aAction.iAction == ESendActionSentAlready)
-			{
-			aRcpt.SetStatus(CMsvRecipient::ESentSuccessfully);
-			}
-		else if (aAction.iAction == ESendActionFail)
-			{
-			aRcpt.SetStatus(CMsvRecipient::EFailedToSend);
-			}
-		else if (aAction.iRetries == ESendRetriesInfinite || aRcpt.Retries() < aAction.MaxRetries())
-			{
-			aRcpt.SetStatus(CMsvRecipient::ENotYetSent);
-			retVal = ETrue;
-			}
-		else
-			{
-			aRcpt.SetStatus(CMsvRecipient::EFailedToSend);
-			}
-		}
-
-	return retVal;
-	}
-
-/**
-Returns ETrue if the message can still sent to any of its recipients.
-Otherwise returns EFalse.
-
-The appropriate error action is also returned. The error action determines if a
-particular recipient can be re-scheduled. The appropriate error action is given
-from the list of error actions, which defines the action for a particular error
-code.
-
-@param	aErrorActions
-The list of error actions that define what re-schedule is required for particular
-error codes.
-
-@param	aAction
-An output argument with the error action appropriate for the recipient send error.
-
-@return
-A boolean value indicatinng whether the message can be sent to any of its
-recipients.
-*/
-TBool CSmsScheduledEntry::CanSendToAnyRecipients(const CMsvSendErrorActions& aErrorActions, TMsvSendErrorAction& aAction)
-	{
-	CArrayPtrFlat<CSmsNumber>& numbers = iHeader->Recipients();
-	TInt count = numbers.Count();
-
-	TBool retVal = EFalse;
-
-	while (count--)
-		{
-		CSmsNumber* rcpt = numbers[count];
-
-		TMsvSendErrorAction action;
-
-		if (aErrorActions.GetSendErrorAction(rcpt->Error(), action) != KErrNone)
-			{
-			action = aErrorActions.Default();
-			}
-
-		if (CheckRecipient(*rcpt, action))
-			{
-			retVal = ETrue;
-			aAction = action;
-			}
-		}
-
-	return retVal;
-	}
-
-void CSmsScheduledEntry::RecipientsResetRetries()
-	{
-	CArrayPtrFlat<CSmsNumber>& numbers = iHeader->Recipients();
-	TInt count = numbers.Count();
-
-	while (count--)
-		{
-		CSmsNumber* rcpt = numbers[count];
-		
-		if (rcpt->Status() != CMsvRecipient::ESentSuccessfully)
-			{
-			rcpt->ResetRetries();
-			}
-		}
-	}
-
-void CSmsScheduledEntry::RecipientsIncreaseRetries()
-	{
-	CArrayPtrFlat<CSmsNumber>& numbers = iHeader->Recipients();
-	TInt count = numbers.Count();
-
-	while (count--)
-		{
-		CSmsNumber* rcpt = numbers[count];
-		
-		if (rcpt->Status() != CMsvRecipient::ESentSuccessfully)
-			{
-			rcpt->IncreaseRetries();
-			}
-		}
-	}
-
-void CSmsScheduledEntry::RecipientsSetFailed()
-	{
-	CArrayPtrFlat<CSmsNumber>& numbers = iHeader->Recipients();
-	TInt count = numbers.Count();
-
-	while (count--)
-		{
-		CSmsNumber* rcpt = numbers[count];
-		
-		if (rcpt->Status() != CMsvRecipient::ESentSuccessfully)
-			{
-			rcpt->SetStatus(CMsvRecipient::EFailedToSend);
-			}
-		}
-	}