diff -r bad0cc58d154 -r c74b3d9f6b9e wlansecuritysettings/wepsecuritysettingsui/inc/WEPSecuritySettingsImpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlansecuritysettings/wepsecuritysettingsui/inc/WEPSecuritySettingsImpl.h Wed Sep 01 12:23:57 2010 +0100 @@ -0,0 +1,269 @@ +/* +* Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: Declaration of class CWEPSecuritySettingsImpl. +* +*/ + +/* +* %version: tr1cfwln#19 % +*/ + +#ifndef WEPSECURITYSETTINGSIMPL_H +#define WEPSECURITYSETTINGSIMPL_H + +// INCLUDES +#include + +#include +#include "WepSecuritySettingsDefs.h" + +#include +using namespace CommsDat; + +// FORWARD DECLARATIONS + +class CCommsDatabase; + + +// CLASS DECLARATION + +/** +* WEP Security Settings. +* Implementation behind proxy class CWEPSecuritySettings. +*/ +NONSHARABLE_CLASS( CWEPSecuritySettingsImpl ) : public CBase + { + + public: // Constructors and destructor + + /** + * Two-phased constructor. Leaves on failure. + * @return The constructed CWEPSecuritySettings object. + */ + static CWEPSecuritySettingsImpl* NewL(); + + /** + * Destructor. + */ + virtual ~CWEPSecuritySettingsImpl(); + + protected: // Constructors + + /** + * Constructor. + * @param aEikEnv Eikon environment. + */ + CWEPSecuritySettingsImpl(); + + /** + * Second-phase constructor. + */ + void ConstructL(); + + public: // New methods + + /** + * Load from database. + * @param aIapId Wlan Service Table Id of the IAP to be loaded + * @param aCommsDb Comms database. + */ + void LoadL( TUint32 aIapId, CCommsDatabase& aCommsDb ); + + /** + * Save to database. + * @param aIapId Wlan Service Table Id of the IAP to be saved + * @param aCommsDb Comms database. + */ + void SaveL( TUint32 aIapId, CCommsDatabase& aCommsDb ) const; + + /** + * Tells if the settings are valid and can be saved + * @return ETrue if all the compulsory settings have been entered + */ + TBool IsValid(); + + + /** + * Sets the new data of the key + * @param aElement Index of the element whose data has to be set. + * @param aKeyData The new value for data of the key. + * @param aHex ETrue if data is in Ascii format + */ + TInt SetKeyDataL( const TInt aElement, const TDesC& aKeyData, + const TBool aHex ); + + + /** + * Calculates expected length of hex string of keyData on the base of + * the selected key length. + * @param aKeyLength Chosen key length + * @return Expected length + */ + TInt ExpectedLengthOfKeyData( CWEPSecuritySettings::TWEPKeyLength + aKeyLength ); + + + /** + * Gets Key currently in use + * @return The key in use. + */ + inline CWEPSecuritySettings::TWEPKeyInUse KeyInUse () const; + + /** + * Sets Key currently in use + * @param aKeyInUse The new value for key in use. + */ + inline void SetKeyInUse ( const CWEPSecuritySettings::TWEPKeyInUse + aKeyInUse ); + + + /** + * Gets type of Authentication + * @return The type of Authentication. + */ + inline CWEPSecuritySettings::TWEPAuthentication Authentication () const; + + /** + * Sets type of Authentication + * @param aAuthentication The new value for type of Authentication. + */ + inline void SetAuthentication( + const CWEPSecuritySettings::TWEPAuthentication aAuthentication ); + + + /** + * Gets the length of the key + * @param aElement Index of the element whose length has to be + * retrieved. + * @return The length of the key + */ + inline CWEPSecuritySettings::TWEPKeyLength KeyLength ( + const TInt aElement ) const; + + /** + * Sets the length of the key + * @param aElement Index of the element whose length has to be set. + * @param aKeyLength The new value for length of the key. + */ + inline void SetKeyLength( const TInt aElement, + const CWEPSecuritySettings::TWEPKeyLength aKeyLength ); + + + /** + * Gets the format of the key + * @param aElement Index of the element whose format has to be + * retrieved. + * @return The format of the key + */ + inline CWEPSecuritySettings::TWEPKeyFormat KeyFormat( + const TInt aElement ) const; + + /** + * Sets the format of the key + * @param aElement Index of the element whose format has to be set. + * @param aKeyLength The new value for format of the key. + */ + inline void SetKeyFormat( const TInt aElement, + const CWEPSecuritySettings::TWEPKeyFormat aKeyFormat ); + + + /** + * Gets the key data + * @param aElement Index of the element whose keyData has to be + * retrieved. + * @return The data of the key + */ + inline TDes8* KeyData( const TInt aElement ); + + /** + * Sets the new data of the key + * @param aElement Index of the element whose data has to be set. + * @param aKeyLength The new value for data of the key. + */ + inline void SetKeyData( const TInt aElement, const TDesC8& aKeyData ); + + /** + * Tells if the Wep256 feature is enabled or not + * @return ETrue if the flag is enabled + */ + inline TBool WEP256Enabled() const; + + /** + * Verify if the entered keyData is valid + * @param aTextToTest The text to be verified + * @param aLengthOfKeyData The expected length of the keyData + * @param aWEPKeyFormat The format chosen to enter the keyData + * @return KErrNone if the text is valid, or error code if not. + */ + TInt VerifyKeyData( const TDesC8& aTextToTest, TInt aLengthOfKeyData, + CWEPSecuritySettings::TWEPKeyFormat aWEPKeyFormat ); + + /** + * Converts keyData enetered in Ascii format to hex format + * @param aSource Source string + * @param aDest destination string + */ + void ConvertAsciiToHex( const TDesC8& aSource, HBufC8*& aDest ); + + /** + * Load from database. + * @param aIapId Wlan Service Table Id of the IAP to be loaded + * @param aSession CommsDat session. + */ + void LoadL( TUint32 aIapId, CMDBSession& aSession ); + + /** + * Save to database. + * @param aIapId Wlan Service Table Id of the IAP to be saved + * @param aSession CommsDat session. + */ + void SaveL( TUint32 aIapId, CMDBSession& aSession ) const; + + + private: + + /** + * Sets keyLength parsing data contained in iKeyData + * @param aIndex Index of the element whose length has to be calculated. + */ + void SetLenKeyDataFromText( const TInt aIndex ); + + + private: // Data + + // Index of the key currently in use (EKeyNumber1, EKeyNumber2, + // EKeyNumber3, EKeyNumber4 + CWEPSecuritySettings::TWEPKeyInUse iKeyInUse; + + // Type of authentication (EAuthOpen, EAuthShared) + CWEPSecuritySettings::TWEPAuthentication iAuthentication; + + // Length of the key (E40Bits, E104Bits, E232Bits) + CWEPSecuritySettings::TWEPKeyLength iKeyLength[KMaxNumberofKeys]; + + // Format of the key (EAscii, EHexadecimal) + CWEPSecuritySettings::TWEPKeyFormat iKeyFormat[KMaxNumberofKeys]; + + // Data of the key + TBuf8 iKeyData[KMaxNumberofKeys]; + + // Tells if the Wep256 feature is enabled + TBool iIsWEP256Enabled; + }; + +// Include inline functions +#include "WEPSecuritySettingsImpl.inl" + + +#endif