williamr@2: // Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __MSVSCHEDULESETTINGS_H__ williamr@2: #define __MSVSCHEDULESETTINGS_H__ williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: /** williamr@2: Stores the MTM-specific (general) settings for scheduling messages on the williamr@2: Task Scheduler. williamr@2: williamr@2: These settings include the latency (minimum amount of time between now and when williamr@2: the message is scheduled for), the intervals (short, long or variable) to wait williamr@2: for before attempting to re-send the message and the timout value for messages williamr@2: pending conditions to be met. williamr@2: williamr@2: The other MTM scheduling releated settings are stored in CMsvOffPeakTimes williamr@2: and CMsvSendErrorActions. williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: williamr@2: class CMsvScheduleSettings : public CBase williamr@2: { williamr@2: public: williamr@2: williamr@2: IMPORT_C static CMsvScheduleSettings* NewL(); williamr@2: IMPORT_C static CMsvScheduleSettings* NewLC(); williamr@2: IMPORT_C ~CMsvScheduleSettings(); williamr@2: williamr@2: williamr@2: IMPORT_C void Reset(); williamr@2: williamr@2: williamr@2: IMPORT_C void SetPriority(const TInt aPriority); williamr@2: IMPORT_C TInt Priority() const; williamr@2: williamr@2: IMPORT_C void SetValidityPeriod(const TTimeIntervalMinutes& aValidityPeriod); williamr@2: IMPORT_C const TTimeIntervalMinutes& ValidityPeriod() const; williamr@2: williamr@2: IMPORT_C void SetIntervalType(const TIntervalType aIntervalType); williamr@2: IMPORT_C TIntervalType IntervalType() const; williamr@2: williamr@2: IMPORT_C void SetLongInterval(const TTimeIntervalSeconds& aInterval); williamr@2: IMPORT_C const TTimeIntervalSeconds& LongInterval() const; williamr@2: williamr@2: IMPORT_C void SetShortInterval(const TTimeIntervalSeconds& aInterval); williamr@2: IMPORT_C const TTimeIntervalSeconds& ShortInterval() const; williamr@2: williamr@2: IMPORT_C const CArrayFixFlat& VariableIntervals() const; williamr@2: IMPORT_C void SetVariableIntervalsL(const CArrayFixFlat& aIntervals); williamr@2: williamr@2: IMPORT_C const TTimeIntervalMicroSeconds32& Latency() const; williamr@2: IMPORT_C void SetLatency(const TTimeIntervalMicroSeconds32& aLatency); williamr@2: williamr@2: IMPORT_C void SetPendingConditionsTimeout(const TTimeIntervalMinutes& aTimeout); williamr@2: IMPORT_C const TTimeIntervalMinutes& PendingConditionsTimeout() const; williamr@2: williamr@2: /** Default scheduler settings values. */ williamr@2: enum williamr@2: { williamr@2: /** Default priority. */ williamr@2: EDefaultPriority = 27, williamr@2: /** Default validity period: 10080 Minutes in 1 week. */ williamr@2: EDefaultValidityPeriod = 10080, williamr@2: /** Default interval type: EYearly */ williamr@2: EDefaultIntervalType = 3, williamr@2: /** Default short retry interval. */ williamr@2: EDefaultShortInterval = 5, williamr@2: /** Default long retry interval. */ williamr@2: EDefaultLongInterval = 120, williamr@2: /** Default latency. */ williamr@2: EDefaultLatency = 1500000, williamr@2: /** Default timeout. Zero minutes - no timeout. */ williamr@2: EDefaultPendingConditionsTimeout = 0 williamr@2: }; williamr@2: williamr@2: private: williamr@2: CMsvScheduleSettings(); williamr@2: williamr@2: void ConstructL(); williamr@2: williamr@2: williamr@2: TInt iPriority; //Priority of the schedules on the task scheduler williamr@2: TTimeIntervalMinutes iValidityPeriod;//Validity period of message on the task scheduler williamr@2: TIntervalType iIntervalType; //See TIntervalType declaration and Task Scheduler user documentation williamr@2: TTimeIntervalMicroSeconds32 iLatency; //Minimum amount of time between now and when the message is scheduled for. Cannot be negative. williamr@2: TTimeIntervalMinutes iPendingConditionsTimeout; williamr@2: williamr@2: TTimeIntervalSeconds iLongInterval; williamr@2: TTimeIntervalSeconds iShortInterval; williamr@2: CArrayFixFlat* iVariableIntervals; williamr@2: }; williamr@2: williamr@2: #endif // __MSVSCHEDULESETTINGS_H__