smsprotocols/smsstack/smsu/inc/smsuset.h
changeset 0 3553901f7fa8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smsprotocols/smsstack/smsu/inc/smsuset.h	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,139 @@
+// 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:
+// contains header file of the SMS settings.
+// 
+//
+
+/**
+ @file
+*/
+
+
+#if !defined (__SMSUSET_H__)
+#define __SMSUSET_H__
+
+#if !defined (__E32STD_H__)
+#include "e32std.h"
+#endif
+
+
+class RReadStream;
+class RWriteStream;
+
+
+/**
+ *  SMS settings.
+ *  
+ *  SMSPROT uses an instance of TSmsSettings to configure the sms stack timeouts.
+ *  
+ *  The SMSPROT calls TSmsSettings' default constructor during initialisation.
+ *  It then parses smswap.sms.esk for customised settings and updates its instance of
+ *  TSmsSettings accordingly.
+ *  
+ *  Customised settings in smswap.sms.esk should comply with the following syntax:
+ *  
+ *  [customTimeoutSettings]
+ *  sendTryTimeout= value
+ *  bootTimerTimeout = value
+ *  
+ *  where the identifier 'value' is to be substituted with an integer value.
+ *  Integer values less than zero will cause the stack to leave.
+ *  
+ *  Only parameters that need to be customised are required in smswap.sms.esk
+ *  
+ *  @publishedAll
+ *  @released
+ */
+class TSmsSettings
+	{
+public:
+	IMPORT_C TSmsSettings();
+
+	inline const TTimeIntervalMicroSeconds32& Timeout() const;
+	inline void SetTimeout(const TTimeIntervalMicroSeconds32& aTimeout);
+	inline TInt SendTryLimit() const;
+	inline void SetSendTryLimit(TInt aLimit);
+	inline TBool DeletePDUsFromSIM() const;
+	inline void SetDeletePDUsFromSIM(TBool aDelete);
+	inline TBool DeletePDUsFromPhoneStores() const;
+	inline void SetDeletePDUsFromPhoneStores(TBool aDelete);
+	inline TBool DeletePDUsFromCombinedStores() const;
+	inline void SetDeletePDUsFromCombinedStores(TBool aDelete);
+	inline const TTimeIntervalMinutes& ReassemblyLifetime() const;
+	inline void SetReassemblyLifetime(const TTimeIntervalMinutes& aReassemblyLifetime);
+	inline TInt KSegmentationLifetimeMultiplier() const;
+	inline void SetKSegmentationLifetimeMultiplier(TInt aKSegmentationLifetimeMultiplier);
+	inline const TTimeIntervalMicroSeconds32& ModemInitializationTimeout() const;
+	inline void SetModemInitializationTimeout(const TTimeIntervalMicroSeconds32& aTimeout);
+	inline const TTimeIntervalMicroSeconds32& SendTryTimeout() const;
+ 	inline void SetSendTryTimeout(const TTimeIntervalMicroSeconds32& aTimeout);
+ 	inline const TTimeIntervalMicroSeconds32& BootTimerTimeout();
+ 	inline void SetBootTimerTimeout(const TTimeIntervalMicroSeconds32& aTimeout);
+
+	IMPORT_C void InternalizeL(RReadStream& aStream);
+	IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+
+private:
+	enum
+		{
+		KDefaultTimeoutMicroSeconds32=60000000 //<60 sec
+		};
+	enum
+		{
+		KDefaultSendTryLimit=4
+		};
+	enum
+		{
+		KDefaultReassemblyLifetime=2*1440 //< two days
+		};
+	enum
+		{
+		KDefaultKSegmentationLifetimeMultiplier=1200  //< 1.2
+		};
+	enum
+		{
+		KDefaultModemInitializationTimeoutMicroSeconds32=30000000 //<30sec
+		};
+	enum
+		{
+		KDefaultSendTryTimeoutMicroSeconds32=60000000 //< 60sec
+		};
+	enum
+	    {
+        KDefaultBootTimerMicroSeconds32=60000000 // 60sec
+	    };
+	enum TSmsSettingsFlags
+		{
+		ESmsFlagDeletePDUsFromSIM=0x01,
+		ESmsFlagDeletePDUsFromPhoneStores=0x02,
+		ESmsFlagDeletePDUsFromCombinedStores=0x04
+		};
+private:
+	TTimeIntervalMicroSeconds32 iTimeoutMicroSeconds32;	//<TimeOut period in microseconds for sending a PDU
+	/**
+	 *  Number of attempts for sending a PDU.
+	 *  	@deprecated 7.0	
+	 */
+	TInt iSendTryLimit;
+	TInt iFlags;								//<Contains TSmsSettingsFlags
+	TTimeIntervalMinutes iReassemblyLifetime;//< Maximum time PDUs making a concatenated message stay in the reassembly store before they have all arrived
+	TInt iKSegmentationLifetimeMultiplier;  //<  Validity period is multiplied by this fraction, 1000=1:1
+	TTimeIntervalMicroSeconds32 iModemInitializationTimeoutMicroSeconds32;//<TimeOut period in microseconds for initialising the modem
+	TTimeIntervalMicroSeconds32 iSendTryTimeoutMicroSeconds32;//< TimeOut period in microseconds for the send operation
+    TTimeIntervalMicroSeconds32 iBootTimerTimeout32; // TimeOut period in microseconds for the boot timer.
+	};
+
+#include "smsuset.inl"
+
+#endif // !defined __SMSUSET_H__