messagingfw/scheduledsendmtm/schedulesendmtm/inc/MsvScheduleSettings.h
changeset 0 8e480a14352b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/scheduledsendmtm/schedulesendmtm/inc/MsvScheduleSettings.h	Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,118 @@
+// 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 __MSVSCHEDULESETTINGS_H__
+#define __MSVSCHEDULESETTINGS_H__
+
+ 
+
+
+#include <msvrcpt.h>
+#include <schinfo.h>
+#include <msvsenderroraction.h>
+
+
+
+
+
+/**
+Stores the MTM-specific (general) settings for scheduling messages on the
+Task Scheduler. 
+
+These settings include the latency (minimum amount of time between now and when
+the message is scheduled for), the intervals (short, long or variable) to wait 
+for before attempting to re-send the message and the timout value for messages
+pending conditions to be met.
+
+The other MTM scheduling releated settings are stored in CMsvOffPeakTimes 
+and CMsvSendErrorActions. 
+
+@publishedAll
+@released
+*/
+
+class CMsvScheduleSettings : public CBase
+	{
+public:
+
+	IMPORT_C static CMsvScheduleSettings* NewL();
+	IMPORT_C static CMsvScheduleSettings* NewLC();	
+	IMPORT_C ~CMsvScheduleSettings();
+
+
+	IMPORT_C void Reset();
+
+
+	IMPORT_C void SetPriority(const TInt aPriority);
+	IMPORT_C TInt Priority() const;
+
+	IMPORT_C void SetValidityPeriod(const TTimeIntervalMinutes& aValidityPeriod);
+	IMPORT_C const TTimeIntervalMinutes& ValidityPeriod() const;
+
+	IMPORT_C void SetIntervalType(const TIntervalType aIntervalType);
+	IMPORT_C TIntervalType IntervalType() const;
+
+	IMPORT_C void SetLongInterval(const TTimeIntervalSeconds& aInterval);
+	IMPORT_C const TTimeIntervalSeconds& LongInterval() const;
+	
+	IMPORT_C void SetShortInterval(const TTimeIntervalSeconds& aInterval);
+	IMPORT_C const TTimeIntervalSeconds& ShortInterval() const;
+
+	IMPORT_C const CArrayFixFlat<TTimeIntervalSeconds>& VariableIntervals() const;
+	IMPORT_C void SetVariableIntervalsL(const CArrayFixFlat<TTimeIntervalSeconds>& aIntervals);
+
+	IMPORT_C const TTimeIntervalMicroSeconds32& Latency() const;
+	IMPORT_C void SetLatency(const TTimeIntervalMicroSeconds32& aLatency);
+	
+	IMPORT_C void SetPendingConditionsTimeout(const TTimeIntervalMinutes& aTimeout);
+	IMPORT_C const TTimeIntervalMinutes& PendingConditionsTimeout() const;
+
+	/** Default scheduler settings values. */
+	enum
+		{
+		/** Default priority. */
+		EDefaultPriority		= 27,
+		/** Default validity period: 10080 Minutes in 1 week. */
+		EDefaultValidityPeriod	= 10080,
+		/** Default interval type: EYearly */	
+		EDefaultIntervalType	= 3,
+		/** Default short retry interval. */		
+		EDefaultShortInterval	= 5,
+		/** Default long retry interval. */
+		EDefaultLongInterval	= 120,
+		/** Default latency. */
+		EDefaultLatency			= 1500000,
+		/** Default timeout. Zero minutes - no timeout. */
+		EDefaultPendingConditionsTimeout	= 0
+		};
+
+private:
+	CMsvScheduleSettings();
+
+	void ConstructL();
+
+
+	TInt					iPriority;		//Priority of the schedules on the task scheduler
+	TTimeIntervalMinutes	iValidityPeriod;//Validity period of message on the task scheduler
+	TIntervalType			iIntervalType;	//See TIntervalType declaration and Task Scheduler user documentation
+	TTimeIntervalMicroSeconds32 iLatency;		//Minimum amount of time between now and when the message is scheduled for. Cannot be negative.
+	TTimeIntervalMinutes	iPendingConditionsTimeout;
+
+	TTimeIntervalSeconds iLongInterval;
+	TTimeIntervalSeconds iShortInterval;
+	CArrayFixFlat<TTimeIntervalSeconds>* iVariableIntervals;
+	};
+
+#endif	// __MSVSCHEDULESETTINGS_H__