messagingfw/scheduledsendmtm/schedulesendmtm/inc/MsvScheduledEntry.h
changeset 62 db3f5fa34ec7
parent 0 8e480a14352b
child 58 6c34d0baa0b1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/scheduledsendmtm/schedulesendmtm/inc/MsvScheduledEntry.h	Wed Nov 03 22:41:46 2010 +0530
@@ -0,0 +1,158 @@
+// 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:
+//
+
+#ifndef __MSVSCHEDULEDENTRY_H__
+#define __MSVSCHEDULEDENTRY_H__
+
+#include <msvsenderroraction.h>
+#include <msventryscheduledata.h>
+
+/**
+Abstract base class which stores the schedule data and recipients of a message. 
+
+CMsvScheduledEntry does not force the Server MTM to store the message 
+recipients in a certain way. However, it is recommended that the Server MTM 
+derive its recipients class from CMsvRecipient, because the class already has 
+support for the number of retries to send a message to a recipient. 
+
+CMsvScheduledEntry stores the TMsvEntry to which it relates to provide quick 
+access to the scheduling-related index data without needing calls to 
+CMsvServerEntry::SetEntry(). 
+However, CMsvScheduledEntry does not provide access to all the members of 
+the TMsvEntry. This is to stop the user of the CMsvScheduledEntry from 
+accessing the descriptor members of the TMsvEntry while the server entry is 
+not set to the TMsvEntry. 
+
+@publishedAll
+@released
+*/
+
+class CMsvScheduledEntry : public CBase
+	{
+public:
+	/**
+	Tests if any of the recipients of this message can still be sent to.
+	
+	@param aErrorActions
+	Error-actions
+	
+	@param aAction 
+	Default error-action
+	
+	@return True if at least one of the recipients has not been sent 
+	the message.
+	*/
+	virtual TBool CanSendToAnyRecipients(const CMsvSendErrorActions& aErrorActions, TMsvSendErrorAction& aAction) = 0;
+
+	/**
+	Tests if any of the recipients of this message can still be sent to.
+	
+	@param aAction
+	Default error-action
+	
+	@return True if at least one of the recipients has not been sent 
+	the message.
+	*/
+	virtual TBool CanSendToAnyRecipients(const TMsvSendErrorAction& aAction) = 0;
+	
+	/**
+	Sets all the recipients' retries to zero.
+	*/
+	virtual void RecipientsResetRetries() = 0;
+	
+	/**
+	Increases all the recipients' retries by one.
+	*/
+	virtual void RecipientsIncreaseRetries() = 0;
+	
+	/**
+	Sets all the recipients' flags to sending failed.
+	*/
+	virtual void RecipientsSetFailed() = 0;
+	
+	/**
+	Tests if all recipients of the message have been sent successfully. 
+	
+	@return True if all recipients have been sent successfully.
+	*/
+	virtual TBool RecipientsAllSent() const = 0;
+
+	IMPORT_C virtual void StoreL(CMsvStore& aStore) const;
+	IMPORT_C virtual void RestoreL(CMsvStore& aStore);
+
+	/**
+	Stores the recipients.
+	
+	@param aStore
+	Store to write to.
+	*/
+	virtual void RecipientsStoreL(CMsvStore& aStore) const = 0;
+	
+	/**
+	Restores the recipients.
+	
+	@param aStore
+	Store to read from.
+	*/
+	virtual void RecipientsRestoreL(CMsvStore& aStore) = 0;
+
+	inline const TTime& ScheduleDate() const;
+	inline void SetScheduleDate(const TTime& aDate);
+
+	inline const TBool Scheduled() const;
+	inline void SetScheduled(const TBool aScheduled);
+
+	inline const TInt SendingState() const;
+	inline void SetSendingState(TInt aState);
+
+	inline const TInt Error() const;
+	inline const TMsvId Id() const;
+	inline const TBool OffPeak() const;
+
+	inline void SetFailed(const TBool aFail);
+	inline const TBool Failed() const;
+	
+	IMPORT_C TBool PendingConditions() const;
+	IMPORT_C void SetPendingConditions(TBool aPendingConditions);
+
+	inline const TUid Mtm() const;
+
+	IMPORT_C void Entry(TMsvEntry& aEntry) const;
+
+protected:
+
+	IMPORT_C CMsvScheduledEntry(const TMsvEntry& aEntry);
+
+public:
+
+	/** Message schedule data. */
+	TMsvEntryScheduleData iData;
+
+private:
+
+	TMsvEntry iEntry;
+	};
+
+/**
+Dynamic array of CMsvScheduledEntry objects. 
+
+@publishedAll
+@released
+*/
+typedef CArrayPtrFlat<CMsvScheduledEntry> CMsvScheduledEntries;
+
+#include <msvscheduledentry.inl>
+
+#endif