--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wlansecuritysettings/wpasecuritysettingsui/inc/WPASecuritySettingsImpl.h Thu Dec 17 08:47:43 2009 +0200
@@ -0,0 +1,302 @@
+/*
+* 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 CWPASecuritySettingsImpl.
+*
+*/
+
+
+#ifndef WPASECURITYSETTINGSIMPL_H
+#define WPASECURITYSETTINGSIMPL_H
+
+// INCLUDES
+#include <e32base.h>
+#include <WlanCdbCols.h>
+
+#include <WPASecuritySettingsUI.h>
+
+#include <metadatabase.h>
+using namespace CommsDat;
+
+
+
+// CONST DECLARATIONS
+#define KWLANEAPLISTLENGTH 1024 // Max length of the EAP Plugin list
+
+
+// FORWARD DECLARATIONS
+class CCommsDatabase;
+class CEAPPluginConfigurationIf;
+
+// CLASS DECLARATION
+
+/**
+* WPA Security Settings.
+* Implementation behind proxy class CWPASecuritySettings.
+*/
+NONSHARABLE_CLASS( CWPASecuritySettingsImpl ) : public CBase
+ {
+
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor. Leaves on failure.
+ * @param aSecurityMode The chosen security mode. It can be
+ * ESecurityMode8021x or ESecurityModeWpa
+ * @return The constructed CWPASecuritySettings object.
+ */
+ static CWPASecuritySettingsImpl* NewL( TSecurityMode aSecurityMode );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CWPASecuritySettingsImpl();
+
+
+ protected: // Constructors
+
+ /**
+ * Constructor.
+ * @param aSecurityMode The chosen security mode. It can be
+ * ESecurityMode8021x or ESecurityModeWpa
+ */
+ CWPASecuritySettingsImpl( TSecurityMode aSecurityMode );
+
+ /**
+ * 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.
+ * @param aTypeOfSaving Tells what kind of AP we are going to save: it
+ * can be ESavingEditedAP, ESavingBrandNewAP, or
+ * ESavingNewAPAsACopy
+ * @param aOldIapId The old Id of the IAP; it is used to save the EAP
+ * configuration, only when aIsNewAP is ETrue
+ */
+ void SaveL( TUint32 aIapId, CCommsDatabase& aCommsDb,
+ TTypeOfSaving aTypeOfSaving, TUint32 aOldIapId );
+
+
+ /**
+ * Delete from database. It actually just removes EAP Configuration.
+ * @param aIapId Id of the IAP to be saved
+ */
+ void DeleteL( TUint32 aIapId );
+
+
+ /**
+ * Tells if the settings are valid and can be saved
+ * @return ETrue if all the compulsory settings have been entered
+ */
+ TBool IsValid();
+
+
+ /**
+ * Sets the Pre-shared key
+ * @param aPreSharedKey The key to be set
+ * @return KErrNone if successful, or an error code
+ */
+ TInt SetWPAPreSharedKey( const TDesC& aPreSharedKey );
+
+ /**
+ * Gets the type of Security set.
+ * @return The security mode in use. It can be ESecurityMode8021x or
+ * ESecurityModeWpa
+ */
+ inline TSecurityMode SecurityMode() const;
+
+
+ /**
+ * Tells if Pre-shared key is in use or not
+ * @return ETrue if Pre-shared key is in use
+ */
+ inline TBool WPAMode() const;
+
+
+ /**
+ * Sets the use of Pre-shared key.
+ * @param aWPAMode ETrue if pre-shared key is in use
+ */
+ inline void SetWPAMode( const TBool aWPAMode );
+
+
+ /**
+ * Tells if it is WPA2 Only mode
+ * @return ETrue if it is WPA2 Only mode
+ */
+ inline TBool Wpa2Only() const;
+
+
+ /**
+ * Sets the WPA2 Only mode enabling variable
+ * @param aAllowed ETrue if WPA2 Only mode is enabled
+ */
+ inline void SetWpa2Only( const TBool aAllowed );
+
+
+ /**
+ * Returns the Pre-shared key
+ * @return The pre-shared key
+ */
+ inline TDes8* WPAPreSharedKey();
+
+
+ /**
+ * Sets the Pre-shared key
+ * @param aPreSharedKey The key to be set
+ */
+ inline void SetWPAPreSharedKey( const TDesC8& aPreSharedKey );
+
+
+ /**
+ * Returns the content of the WlanEapList column of WLANServiceTable
+ * @return The content string
+ */
+ inline TDes* WPAEAPPlugin();
+
+ /**
+ * Returns the content of the WlanEnabledEapList column of
+ * WLANServiceTable
+ * @return The content string. Ownership not passed!
+ */
+ inline HBufC8* WPAEnabledEAPPlugin();
+
+ /**
+ * Returns the content of the WlanDisabledEapList column of
+ * WLANServiceTable
+ * @return The content string. Ownership not passed!
+ */
+ inline HBufC8* WPADisabledEAPPlugin();
+
+ /**
+ * Sets the content of the WlanEapList column of WLANServiceTable
+ * @param aPluginList The content string to be set
+ */
+ inline void SetWPAEAPPlugin( const TDes& aPluginList );
+
+ /**
+ * Sets the content of the WlanEnabledEapList column of WLANServiceTable
+ * (for expanded EAP types)
+ * @param aEnabledPluginList Enumeration of enabled plugins
+ * @return KErrNone if successful, or an error code
+ */
+ TInt SetWPAEnabledEAPPlugin( const TDesC8& aEnabledPluginList );
+
+ /**
+ * Sets the content of the WlanDisabledEapList column of WLANServiceTable
+ * (for expanded EAP types)
+ * @param aDisabledPluginList Enumeration of disabled plugins
+ * @return KErrNone if successful, or an error code
+ */
+ TInt SetWPADisabledEAPPlugin( const TDesC8& aDisabledPluginList );
+
+ /**
+ * Sets the Id of the AP
+ * @param aIapId The Id to be set
+ */
+ inline void SetIapId( const TUint32 aIapId );
+
+ /**
+ * Returns the Id of the AP
+ * @return The Id
+ */
+ inline const TUint32 IapId();
+
+ /**
+ * Returns the pointer to the EAP Configuration plugin
+ * @return The EAP Configuration plugin
+ */
+ inline CEAPPluginConfigurationIf* Plugin();
+
+ /**
+ * 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.
+ * @param aTypeOfSaving Tells what kind of AP we are going to save: it
+ * can be ESavingEditedAP, ESavingBrandNewAP, or
+ * ESavingNewAPAsACopy
+ * @param aOldIapId The old Id of the IAP; it is used to save the EAP
+ * configuration, only when aIsNewAP is ETrue
+ */
+ void SaveL( TUint32 aIapId, CMDBSession& aSession,
+ TTypeOfSaving aTypeOfSaving, TUint32 aOldIapId );
+
+ private:
+ /**
+ * Checks whether the given string is a valid PSK
+ * @since S60 5.0
+ * @param aPsk The string to be checked
+ * @return ETrue if the string is a valid PSK, EFalse otherwise.
+ */
+ TBool IsValidPsk( const TDesC8& aPsk );
+
+ private: // Data
+
+ // Security mode in use
+ TSecurityMode iSecurityMode;
+
+ // Pre-shared key in use or not
+ TBool iWPAMode;
+
+ // The content of the WlanEapList column of WLANServiceTable
+ TBuf<KWLANEAPLISTLENGTH> iWPAEAPPlugin;
+
+ // The pre-shared key
+ TBuf8<KWlanWpaPskLength> iWPAPreSharedKey;
+
+ // The content of the WlanEnabledEapList column of WLANServiceTable.
+ // Owned.
+ HBufC8 *iWPAEnabledEAPPlugin;
+
+ // The content of the WlanDisabledEapList column of WLANServiceTable.
+ // Owned.
+ HBufC8 *iWPADisabledEAPPlugin;
+
+ // WPA2 Only mode enabled or not
+ TBool iWpa2Only;
+
+ // The Id of the AP.
+ TUint32 iIapId;
+
+ // The EAP Configuration plugin. Owned.
+ CEAPPluginConfigurationIf* iPlugin;
+ };
+
+// Include inline functions
+#include "WPASecuritySettingsImpl.inl"
+
+
+#endif