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@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.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: // contains header file of the SMS settings. williamr@2: // williamr@2: // williamr@2: williamr@2: /** williamr@2: @file williamr@2: */ williamr@2: williamr@2: williamr@2: #if !defined (__SMSUSET_H__) williamr@2: #define __SMSUSET_H__ williamr@2: williamr@2: #if !defined (__E32STD_H__) williamr@2: #include "e32std.h" williamr@2: #endif williamr@2: williamr@2: williamr@2: class RReadStream; williamr@2: class RWriteStream; williamr@2: williamr@2: williamr@2: /** williamr@2: * SMS settings. williamr@2: * williamr@2: * SMSPROT uses an instance of TSmsSettings to configure the sms stack timeouts. williamr@2: * williamr@2: * The SMSPROT calls TSmsSettings' default constructor during initialisation. williamr@2: * It then parses smswap.sms.esk for customised settings and updates its instance of williamr@2: * TSmsSettings accordingly. williamr@2: * williamr@2: * Customised settings in smswap.sms.esk should comply with the following syntax: williamr@2: * williamr@2: * [customTimeoutSettings] williamr@2: * sendTryTimeout= value williamr@2: * bootTimerTimeout = value williamr@2: * williamr@2: * where the identifier 'value' is to be substituted with an integer value. williamr@2: * Integer values less than zero will cause the stack to leave. williamr@2: * williamr@2: * Only parameters that need to be customised are required in smswap.sms.esk williamr@2: * williamr@2: * @publishedAll williamr@2: * @released williamr@2: */ williamr@2: class TSmsSettings williamr@2: { williamr@2: public: williamr@2: IMPORT_C TSmsSettings(); williamr@2: williamr@2: inline const TTimeIntervalMicroSeconds32& Timeout() const; williamr@2: inline void SetTimeout(const TTimeIntervalMicroSeconds32& aTimeout); williamr@2: inline TInt SendTryLimit() const; williamr@2: inline void SetSendTryLimit(TInt aLimit); williamr@2: inline TBool DeletePDUsFromSIM() const; williamr@2: inline void SetDeletePDUsFromSIM(TBool aDelete); williamr@2: inline TBool DeletePDUsFromPhoneStores() const; williamr@2: inline void SetDeletePDUsFromPhoneStores(TBool aDelete); williamr@2: inline TBool DeletePDUsFromCombinedStores() const; williamr@2: inline void SetDeletePDUsFromCombinedStores(TBool aDelete); williamr@2: inline const TTimeIntervalMinutes& ReassemblyLifetime() const; williamr@2: inline void SetReassemblyLifetime(const TTimeIntervalMinutes& aReassemblyLifetime); williamr@2: inline TInt KSegmentationLifetimeMultiplier() const; williamr@2: inline void SetKSegmentationLifetimeMultiplier(TInt aKSegmentationLifetimeMultiplier); williamr@2: inline const TTimeIntervalMicroSeconds32& ModemInitializationTimeout() const; williamr@2: inline void SetModemInitializationTimeout(const TTimeIntervalMicroSeconds32& aTimeout); williamr@2: inline const TTimeIntervalMicroSeconds32& SendTryTimeout() const; williamr@2: inline void SetSendTryTimeout(const TTimeIntervalMicroSeconds32& aTimeout); williamr@2: inline const TTimeIntervalMicroSeconds32& BootTimerTimeout(); williamr@2: inline void SetBootTimerTimeout(const TTimeIntervalMicroSeconds32& aTimeout); williamr@2: williamr@2: IMPORT_C void InternalizeL(RReadStream& aStream); williamr@2: IMPORT_C void ExternalizeL(RWriteStream& aStream) const; williamr@2: williamr@2: private: williamr@2: enum williamr@2: { williamr@4: KDefaultTimeoutMicroSeconds32=60000000 //<60 sec williamr@2: }; williamr@2: enum williamr@2: { williamr@2: KDefaultSendTryLimit=4 williamr@2: }; williamr@2: enum williamr@2: { williamr@4: KDefaultReassemblyLifetime=2*1440 //< two days williamr@2: }; williamr@2: enum williamr@2: { williamr@4: KDefaultKSegmentationLifetimeMultiplier=1200 //< 1.2 williamr@2: }; williamr@2: enum williamr@2: { williamr@4: KDefaultModemInitializationTimeoutMicroSeconds32=30000000 //<30sec williamr@2: }; williamr@2: enum williamr@2: { williamr@4: KDefaultSendTryTimeoutMicroSeconds32=60000000 //< 60sec williamr@2: }; williamr@2: enum williamr@2: { williamr@2: KDefaultBootTimerMicroSeconds32=60000000 // 60sec williamr@2: }; williamr@2: enum TSmsSettingsFlags williamr@2: { williamr@2: ESmsFlagDeletePDUsFromSIM=0x01, williamr@2: ESmsFlagDeletePDUsFromPhoneStores=0x02, williamr@2: ESmsFlagDeletePDUsFromCombinedStores=0x04 williamr@2: }; williamr@2: private: williamr@4: TTimeIntervalMicroSeconds32 iTimeoutMicroSeconds32; //