/** Copyright (c) 2002-2005 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: Settings manager**/#ifndef CCASETTINGSMANAGER_H#define CCASETTINGSMANAGER_H// INCLUDES#include <e32base.h>#include "MCASettings.h"// FORWARD DECLARATIONSclass MCASettingsObserver;class MCASDCRVariator;class CIMPSSAPSettingsStore;// CLASS DECLARATION/*** Handles all application settings-related operations.*** @lib CAEngine.lib* @since 1.2*/class CCASettingsManager : public CBase, public MCASettings { public: // Constructors and destructor /** * Two-phased constructor. * @param aIdentifier UID of application */ static CCASettingsManager* NewL( TUid aIdentifier ); /** * Destructor. */ virtual ~CCASettingsManager(); public: // From MCASettings /** * From MCASettings. @see MCASettings * @since 1.2 * @param aObserver Settings observer pointer */ void AddObserverL( const MCASettingsObserver* aObserver ); /** * From MCASettings. @see MCASettings * @since 1.2 * @param aObserver Settings observer pointer */ void RemoveObserver( const MCASettingsObserver* aObserver ); /** * From MCASettings. @see MCASettings * @since 1.2 * @param aSetting Settings enumeration that value is returned * @return Value of setting */ TBool Value( TCASettingFlags aSetting, CIMPSSAPSettings* aSap = NULL ); /** * From MCASettings. @see MCASettings * @since 1.2 * @param aSetting Settings enumeration that value is returned * @return Value of setting */ TInt Value( TCASettingIntegers aSetting, CIMPSSAPSettings* aSap = NULL ); /** * From MCASettings. @see MCASettings * Transfers ownership!!! * @since 1.2 * @param aSetting Settings enumeration that value is returned * @return Value of setting */ HBufC* ValueL( TCASettingStrings aSetting, CIMPSSAPSettings* aSap = NULL ); /** * From MCASettings. @see MCASettings * @param aSetting Settings enumeration that value is set * @param aValue Value of setting * @param aIgnoreRollback Don't perform rollback operation on these * errors. NULL if rollback is wanted in every * error situation. */ void SetValueL( TCASettingFlags aSetting, TBool aValue, RArray<TInt>* aIgnoreRollback = NULL, CIMPSSAPSettings* aSap = NULL ); /** * From MCASettings. @see MCASettings * @param aSetting Settings enumeration that value is set * @param aValue Value of setting * @param aIgnoreRollback Don't perform rollback operation on these * errors. NULL if rollback is wanted in every * error situation */ void SetValueL( TCASettingIntegers aSetting, TInt aValue, RArray<TInt>* aIgnoreRollback = NULL, CIMPSSAPSettings* aSap = NULL ); /** * From MCASettings. @see MCASettings * @param aSetting Settings enumeration that value is set * @param aValue Value of setting * @param aIgnoreRollback Don't perform rollback operation on these * errors. NULL if rollback is wanted in every * error situation */ void SetValueL( TCASettingStrings aSetting, const TDesC& aValue, RArray<TInt>* aIgnoreRollback = NULL, CIMPSSAPSettings* aSap = NULL ); /** * From MCASettings. @see MCASettings * @since 1.2 */ void FlushData(); /** * From MCASettings. @see MCASettings * @since 3.1 */ void SetDefaultSapL( CIMPSSAPSettings* aSap ); /** * From MCASettings. @see MCASettings * @since 3.1 */ HBufC* OwnAliasL(); /** * From MCASettings. @see MCASettings * @since 3.1 */ void SetOwnAliasL( const TDesC& aAlias ); private: /** * By default Symbian OS constructor is private. * @param aIdentifier Identifier of setting storage used */ void ConstructL( TUid aIdentifier ); /** * C++ default constructor. */ CCASettingsManager(); /** * Notifies observers about changed setting * @param aEnum Setting that was changed */ void NotifyObserversL( TInt aEnum ); /** * Returns default value for given setting if such exists * @since 1.2 * @param aEnum Setting enumeration * @return Default value for that setting */ TInt DefaultIntegerValue( TInt aEnum ) const; /** * Returns default value for given setting if such exists * @since 1.2 * @param aEnum Setting enumeration * @return Default value for that setting */ TBool DefaultBooleanValue( TInt aEnum ) const; /** * Helper method for setting boolean and integer values * @since 2.1 * @param aSetting Settings enumeration that value is set * @param aValue Value of setting * @param oldValue old value of setting which is set if * observers notifying leaves * @param aIgnoreRollback Don't perform rollback operation on these * errors. NULL if rollback is wanted in every * error situation */ void SetIntValueL( TInt aSetting, TInt aValue, TInt oldValue, RArray<TInt>* aIgnoreRollback = NULL, CIMPSSAPSettings* aSap = NULL ); /** * Converts the settings integer to sap opaque ids * @param aEnum Setting that was changed */ const TDesC& ConvertSettingInteger( TInt aEnum ) const; /** * Get correct SAP. If aSap is NULL and RD_SETTINGS_FACELIFT * is defined will return default SAP. * !!NOTE!! If returns NULL, then there is nothing in * CleanupStack. * @param aSap server */ CIMPSSAPSettings* GetSAPLC( CIMPSSAPSettings* aSap ); /** * Store to SAP or cenrep * @param aSap server (can be NULL) * @param aSetting the setting which we are saving * @param aValue the value of the setting */ void StoreL( CIMPSSAPSettings* aSap, TInt aSetting, TInt aValue ); /** * Store to SAP or cenrep * @param aSap server (can be NULL) * @param aSetting the setting which we are saving * @param aValue the value of the setting */ void StoreL( CIMPSSAPSettings* aSap, TInt aSetting, const TDesC& aValue ); /** * Finds alias for given aUserID inside aAliasTable. * @param aAliasTable string containeing all aliases for different ids * @param aUserId Userid to look for * @param aIndex Position inside aAliasTable, where the wanted alias starts. * Or KErrNotFound * @param aLength aLength length of alias */ void LocateAliasL( const TDesC& aAliasTable, const TDesC& aUserId, TInt& aIndex, TInt& aLength ); private: // Data // Array of observers RPointerArray<MCASettingsObserver> iObserverList; MCASDCRVariator* iSDCRVariator; CIMPSSAPSettingsStore* iSapSettingsStore; CIMPSSAPSettings* iDefaultSap; TBool iSettingsFaceLift; };#endif // CCASETTINGSMANAGER_H// End of File