diff -r f742655b05bf -r d38647835c2e callcontinuity/vccutils/inc/vccspsettings.h --- /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 +#include + +#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*/