--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/callcontinuity/vccutils/inc/vccspsettings.h Wed Sep 01 12:29:57 2010 +0100
@@ -0,0 +1,609 @@
+/*
+* Copyright (c) 2007-2008 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: SP settings handler functions for Vcc settings.
+*
+*/
+
+
+
+#ifndef C_VCCSPSETTINGS_H
+#define C_VCCSPSETTINGS_H
+
+// INCLUDES
+#include <e32base.h>
+#include <spdefinitions.h>
+
+#include "vccunittesting.h"
+
+class CWPCharacteristic;
+class CSPEntry;
+class CSPProperty;
+class CSPSettings;
+
+/**
+ * CVccSPSettings handles saving of Vcc settings.
+ *
+ * Settings are received from CVccAdapter (an adapter in Provisioning framework)
+ * and VCC DM Adapter and stored to SPsettings
+ *
+ * @code
+ *
+ * _LIT( KServiceName, "VCC" );
+ * _LIT( KVdiValue, "sip:2323" );
+ *
+ * CVccSPSettings* vccSettings = CVccSPSettings::NewL();
+ *
+ * //Store VDI
+ * vccSettings->SetServiceNameL( KServiceName );
+ * vccSettings->SetVdiL( KVdiValue );
+ * vccSettings->StoreL();
+ *
+ * //Read Preferred domain from store
+ * vccSettings->ReadSettingsL( KServiceName );
+ * TInt prefDom = vccSettings->PreferredDomain();
+ *
+ * delete vccSettings;
+ * @endcode
+ *
+ * @lib vccutils.dll
+ * @since S60 v3.2
+ */
+class CVccSPSettings : public CBase
+ {
+
+public:
+
+ /**
+ * Two-phased constructor.
+ */
+ IMPORT_C static CVccSPSettings* NewL();
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CVccSPSettings();
+
+ /**
+ * Saves Vcc settings.
+ *
+ * @since S60 3.2
+ */
+ IMPORT_C void StoreL();
+
+ /**
+ * Returns provider name of stored settings
+ *
+ * @since S60 3.2
+ * @return Constant descriptor reference to name of stored settings
+ */
+ IMPORT_C const TDesC& ProviderId();
+
+ /**
+ * Sets name of stored settings
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetProviderIdL( const TDesC& aValue );
+
+ /**
+ * Sets name of stored settings
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetServiceNameL( const TDesC& aValue );
+
+ /**
+ * Sets name of stored settings
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C const TDesC& ServiceName();
+
+ /**
+ * Sets VDI
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ * @return KErrNone if VDN is valid and set into member variable,
+ * Symbian error code if VDN is not valid thus not set into member
+ * variable, otherwise leaves in system error cases.
+ */
+ IMPORT_C TInt SetVdiL( const TDesC& aValue );
+
+ /**
+ * Sets VDN
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ * @return ETrue if VDN is valid and set into member variable,
+ * EFalse if VDN is not valid thus not set into member variable,
+ * otherwise leaves in system error cases.
+ */
+ IMPORT_C TBool SetVdnL( const TDesC& aValue );
+
+ /**
+ * Sets preferred domain
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetPreferredDomainL( const TDesC& aValue );
+
+ /**
+ * Sets immediate domain transfer
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetImmediateDtL( const TDesC& aValue );
+
+ /**
+ * Sets Domain transfer from CS to Ps is allowed
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetDtCsToPsAllowedL( const TDesC& aValue );
+
+ /**
+ * Sets Domain transfer from PS to CS is allowed
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetDtPsToCsAllowedL( const TDesC& aValue );
+
+ /**
+ * Sets domain transfer allowed while held and waiting calls
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetDtHeldWaitingCallsAllowedL( const TDesC& aValue );
+
+ /**
+ * Sets WLAN handover treshold value
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetDtWlanHoTresholdL( const TDesC& aValue );
+
+ /**
+ * Sets WLAN handover hysteresis value
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetDtWlanHoHysteresisL( const TDesC& aValue );
+
+ /**
+ * Sets WLAN handover hysteresis timer for low limit
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetDtWlanHoHysteresisTimerLowL( const TDesC& aValue );
+
+ /**
+ * Sets WLAN handover hysteresis timer for high limit
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetDtWlanHoHysteresisTimerHighL( const TDesC& aValue );
+
+ /**
+ * Sets CS handover treshold value
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetDtCsHoTresholdL( const TDesC& aValue );
+
+ /**
+ * Sets CS handover hysteresis value
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetDtCsHoHysteresisL( const TDesC& aValue );
+
+ /**
+ * Sets CS handover hysteresis timer for low limit
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetDtCsHoHysteresisTimerLowL( const TDesC& aValue );
+
+ /**
+ * Sets CS handover hysteresis timer for high limit
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetDtCsHoHysteresisTimerHighL( const TDesC& aValue );
+
+ /**
+ * Sets Voip service id
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetVoipServiceIdL( const TDesC& aValue );
+
+ /**
+ * Sets Voip service id
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void SetVoipServiceIdL( TInt aValue );
+
+
+ /**
+ * Converts given TDesC value to TInt.
+ *
+ * @param aValue value to be converted
+ * @return the TInt value
+ */
+ IMPORT_C TInt ConvertToIntL( const TDesC& aValue );
+
+ /**
+ * Finds entry from service provider settings with given service name.
+ *
+ * @param aServiceName name of the service entry
+ * @param aServiceEntry entry which will contain current properties
+ */
+ IMPORT_C void FindServiceEntryL( const TDesC& aServiceName,
+ CSPEntry& aServiceEntry );
+
+ /**
+ * Finds property data from SP Settings table.
+ *
+ * @since S60 3.2
+ * @param aServiceId Service ID
+ * @param aPropertyName name of the property
+ * @param aProperty Property to store data
+ * @return error code
+ */
+ IMPORT_C TInt FindPropertyL( TServiceId aServiceId,
+ TServicePropertyName aPropertyName,
+ CSPProperty& aProperty );
+
+ /**
+ * Searches service entry with given name and sets found values to
+ *
+ *
+ * @since S60 3.2
+ * @param aValue Given value
+ */
+ IMPORT_C void ReadSettingsL( const TDesC& aServiceName );
+
+ /**
+ * Gets preferred domain
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt PreferredDomainL();
+
+ /**
+ * Gets immediate domain transfer
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt ImmediateDtL();
+
+ /**
+ * Gets Domain transfer from CS to Ps is allowed
+ *
+ * @since S60 3.2
+ */
+ IMPORT_C TInt DtCsToPsAllowedL();
+
+ /**
+ * Gets Domain transfer from PS to CS is allowed
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt DtPsToCsAllowedL();
+
+ /**
+ * Gets domain transfer allowed while held and waiting calls
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt DtHeldWaitingCallsAllowedL();
+
+ /**
+ * Threshold for good signal level ? in GSM
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt CsHoTresholdL();
+
+ /**
+ * GSM hysterisis value
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt CsHoHysteresisL();
+
+ /**
+ * GSM hysterisis timer low signal
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt CsHoHysteresisTimerLowL();
+
+ /**
+ * GSM hysterisis timer value for high signal
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt CsHoHysteresisTimerHighL();
+ /**
+ * Threshold for good signal level ? in WLAN
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt PsHoTresholdL();
+
+ /**
+ * WLAN hysterisis value
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt PsHoHysteresisL();
+
+ /**
+ * WLAN hysterisis timer low signal
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt PsHoHysteresisTimerLowL();
+
+ /**
+ * WLAN hysterisis timer value for high signal
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt PsHoHysteresisTimerHighL();
+
+ /**
+ * Voip service which is used by VCC
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt VoipServiceId();
+
+ /**
+ * Is handover allowed when CS originated original call
+ *
+ * @since S60 3.2
+ * @return current value
+ */
+ IMPORT_C TInt DtAllowedWhenCsOriginatedL();
+
+ IMPORT_C void SetDtAllowedWhenCsOriginated( const TDesC& aValue );
+
+private:
+ VCC_UNITTEST( T_WpVccAdapter )
+ VCC_UNITTEST( T_CVccSPSettings )
+
+ /**
+ * Symbian 2nd phase constructor
+ */
+ void ConstructL();
+
+ /**
+ * C++ Constructor
+ */
+ CVccSPSettings();
+
+ /**
+ * Adds new integer type property or updates the old property
+ * of the given service entry
+ *
+ * @param aServiceEntry entry which contains the properties
+ * @param aName name of the property
+ * @param aValue value of the property
+ */
+ void AddOrUpdatePropertyL( CSPEntry& aServiceEntry,
+ const TServicePropertyName aName,
+ TInt aValue );
+ /**
+ * Adds new desc type property or updates the old property
+ * of the given service entry
+ *
+ * @param aServiceEntry entry which contains the properties
+ * @param aName name of the property
+ * @param aValue value of the property
+ */
+ void AddOrUpdatePropertyL( CSPEntry& aServiceEntry,
+ const TServicePropertyName aName,
+ const TDesC& aValue );
+ /**
+ * Finds the given property and extracts it's TInt value.
+ *
+ * @param aServiceEntry entry which contains the properties
+ * @param aPropertyName name of the property
+ * @param aValue value of the property
+ */
+ TInt GetPropertyValue( CSPEntry& aServiceEntry,
+ const TServicePropertyName& aPropertyName,
+ TInt& aValue );
+ TInt GetPropertyValue( CSPEntry& aServiceEntry,
+ const TServicePropertyName& aPropertyName,
+ TDes& aValue );
+ /**
+ * Change provider UID and set bootstrap -bit on in VoIP profile
+ *
+ */
+ void ModifyVoipProfileL();
+
+private:
+
+ VCC_UNITTEST( T_CWPVccItem )
+ VCC_UNITTEST( T_CVccSPSettings )
+
+ /**
+ * Provider id vcc settings
+ * Own.
+ */
+ HBufC* iProviderId;
+
+ /**
+ * service name vcc settings
+ * Own.
+ */
+ HBufC* iServiceName;
+
+ /**
+ * service id
+ */
+ TServiceId iServiceId;
+
+ /**
+ * VDI
+ * Own.
+ */
+ HBufC* iVdi;
+
+ /**
+ * VDI
+ * Own.
+ */
+ HBufC* iVdn;
+
+ /**
+ * Preferred Domain
+ * Own.
+ */
+ HBufC* iPreferredDomain;
+
+ /**
+ * Immediate Domain transfer
+ * Own.
+ */
+ HBufC* iImmediateDt;
+
+ /**
+ * Domain transfer from CS to PS allowed
+ * Own.
+ */
+ HBufC* iDtCsToPsAllowed;
+
+ /**
+ * Domain transfer from PS to CS allowed
+ * Own.
+ */
+ HBufC* iDtPsToCsAllowed;
+
+ /**
+ * Domain transfer allowed while Held/Waiting calls
+ * Own.
+ */
+ HBufC* iDtHeldWaitingCallsAllowed;
+
+ /**
+ * WLAN HO treshold value
+ * Own.
+ */
+ HBufC* iDtWlanHoTreshold;
+
+ /**
+ * WLAN HO hysteresis
+ * Own.
+ */
+ HBufC* iDtWlanHoHysteresis;
+
+ /**
+ * WLAN HO hysteresis timer used for low limit
+ * Own.
+ */
+ HBufC* iDtWlanHoHysteresisTimerLow;
+
+ /**
+ * WLAN HO hysteresis timer used for high limit
+ * Own.
+ */
+ HBufC* iDtWlanHoHysteresisTimerHigh;
+
+ /**
+ * CS HO treshold value
+ * Own.
+ */
+ HBufC* iDtCsHoTreshold;
+
+ /**
+ * CS HO hysteresis
+ * Own.
+ */
+ HBufC* iDtCsHoHysteresis;
+
+ /**
+ * CS HO hysteresis timer used for low limit
+ * Own.
+ */
+ HBufC* iDtCsHoHysteresisTimerLow;
+
+ /**
+ * CS HO hysteresis timer used for high limit
+ * Own.
+ */
+ HBufC* iDtCsHoHysteresisTimerHigh;
+
+ /*
+ * SP settings
+ * Own.
+ */
+ CSPSettings* iSettings;
+
+ /**
+ * Voip service id to be used in conjuction with VCC
+ */
+ TServiceId iVoipServiceId;
+
+ /*
+ * VoIP service ID
+ * Own.
+ */
+ HBufC* iVoipServiceIdString;
+
+ /*
+ * Is handover allowed when call orginated in CS domain
+ * Own.
+ */
+ HBufC* iDtAllowedWhenCsOriginated;
+};
+
+#endif /*C_VCCSPSETTINGS_H*/