eapol/eapol_framework/eapol_symbian/am/eap_notifier/inc/eap_auth_notifier.h
changeset 33 938269283a16
child 34 ad1f037f1ac2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eapol/eapol_framework/eapol_symbian/am/eap_notifier/inc/eap_auth_notifier.h	Fri Jun 11 13:40:22 2010 +0300
@@ -0,0 +1,237 @@
+/*
+* Copyright (c) 2010 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: Eap Dialog implementation
+*
+*/
+
+#ifndef __EAPAUTHNOTIFIER_H__
+#define __EAPAUTHNOTIFIER_H__
+
+#include <e32base.h>
+#include <hb/hbcore/hbdevicedialogsymbian.h>
+
+const TUint KMaxNotifItemLength = 256;
+const TUint KMaxUiDataLength = 1024;
+
+/**
+ * Callback interface
+ */
+class MNotificationCallback
+    {
+    public:
+        virtual void DlgComplete( TInt aStatus ) = 0;
+    };
+
+class TEapExpandedType;
+class CEapAuthObserver;
+
+
+NONSHARABLE_CLASS ( CEapAuthNotifier ): public CBase
+    {
+    public:
+        
+        enum EEapNotifierType
+        {
+            EEapNotifierTypeLEapUsernamePasswordDialog, 
+            EEapNotifierTypeGTCSecurIDPasscodeQueryUidDialog,
+            EEapNotifierTypeGTCQueryDialog,
+            EEapNotifierTypePapAuthQueryDialog,
+            EEapNotifierTypePapChallengeReplyQueryDialog, 
+            EEapNotifierTypeFastInstallPacQueryDialog,
+            EEapNotifierTypeFastPacStorePwQueryDialog,
+            EEapNotifierTypeFastCreateMasterkeyQueryDialog, 
+            EEapNotifierTypeFastPacFilePwQueryDialog, 
+            EEapNotifierTypeFastStartAuthProvWaitNote, 
+            EEapNotifierTypeFastStartUnauthProvWaitNote,
+            EEapNotifierTypePapUsernamePasswordDialog,
+            EEapNotifierTypeFastShowProvNotSuccessNote, 
+            EEapNotifierTypeEapMsChapV2UsernamePasswordDialog,
+            EEapNotifierTypeMsChapV2UsernamePasswordDialog, 
+            EEapNotifierTypeMsChapV2NewPasswordDialog, 
+            EEapNotifierTypeMsChapV2OldPasswordDialog,
+            EEapNotifierTypeMsChapV2PasswordExpiredNote,
+            EEapNotifierTypeGTCUsernamePasswordDialog,
+        }; 
+        
+        struct TEapDialogInfo
+        {
+            TBool iPasswordPromptEnabled;
+            TBool iIsIdentityQuery;
+            TBuf16<KMaxNotifItemLength> iUsername;
+            TBuf16<KMaxNotifItemLength> iPassword;
+            TBuf16<KMaxNotifItemLength> iOldPassword; 
+            TBool iIsFirstQuery;
+            TBuf16<KMaxUiDataLength> iUidata;
+        };
+          
+        /**
+        * Two-phased constructor.
+        */
+        IMPORT_C  static CEapAuthNotifier* NewL( MNotificationCallback& aClient );
+        
+        /**
+        * Destructor
+        */
+        ~CEapAuthNotifier();
+        
+        /**
+        * Start the Notifier
+        * @param  aType            notifier type
+        * @param  aPasswordInfo    data to be filled
+        * @param  aEapType         eap type
+        * return -
+        */
+        IMPORT_C void StartL( EEapNotifierType aType,
+                              TEapDialogInfo* aEapInfo,
+                              TEapExpandedType& aEapType );
+        
+        /**
+        * Cancel() the notifier
+        * @param  -
+        * return -
+        */
+        IMPORT_C void Cancel();
+        
+    public:           
+        /**
+        * CompleteL the notifier is complete
+        * @param  aStatus status
+        * return  -
+        */
+        void CompleteL( TInt aStatus );
+        
+        /**
+        * Sets the selected user name and password of the presented dialog
+        * @param  aPasswordInfo password 
+        * return  -
+        */
+        void SetSelectedUnameAndPwd( TEapDialogInfo& aPasswordInfo );
+                
+        /**
+        * Sets the selected password of the presented dialog
+        * @param  aPasswordInfo password 
+        * return  -
+        */
+        void SetSelectedPassword(
+                TEapDialogInfo& aPasswordInfo );
+        
+        /**
+        * Sets the selected Old password of the presented dialog
+        * @param  aPasswordInfo old password 
+        * return  -
+        */
+        void SetSelectedOldPassword(
+                TEapDialogInfo& aPasswordInfo );
+       
+    private:
+        /**
+        * Constructor
+        */
+        CEapAuthNotifier( MNotificationCallback& aClient );
+        
+        /**
+        * Set data for the UsernamePassword Dialog(s)
+        * @param  aPasswordInfo    data to be filled
+        * @param  aEapType         Eap type to be used
+        * @param  aMap             Pointer to variant data
+        * @param  aAuthMethod      Auth method to be used
+        * return -
+        */
+        void SetUsernamePasswordDataL( 
+            TEapDialogInfo* aPasswordInfo,
+            TEapExpandedType& aEapType,
+            CHbSymbianVariantMap* aMap,
+            TDesC& aAuthMethod );
+                
+        
+        /**
+        * Set data for the query Dialog(s)
+        * @param  aEapInfo         data to be filled
+        * @param  aMap             Pointer to variant data
+        * @param  aAuthMethod      Auth method to be used
+        * return -
+        */
+        void SetQueryDialogDataL( 
+            TEapDialogInfo* aEapInfo,
+            CHbSymbianVariantMap* aMap,
+            TDesC& aAuthMethod );
+        
+       /**
+        * Set data for the Install Pac query Dialog(s)
+        * @param  aEapInfo         data to be filled
+        * @param  aMap             Pointer to variant data
+        * return -
+        */
+        void SetFastInstallPacQueryDialogDataL( 
+            TEapDialogInfo* aEapInfo,
+            CHbSymbianVariantMap* aMap );
+        
+       /**
+        * Set data for the Pac file query Dialog(s)
+        * @param  aEapInfo         data to be filled
+        * @param  aMap             Pointer to variant data
+        * return -
+        */
+        void setFastPacFileQueryPwDialogDataL( 
+            TEapDialogInfo* aEapInfo,
+            CHbSymbianVariantMap* aMap );
+        
+       /**
+        * Set data for the prov wait note Dialog(s)
+        * @param  aMap                  Pointer to variant data
+        * @param  aAuthProvWaitNote     Tells whether aut or unauth 
+        * return -
+        */
+        void setFastProvWaitNoteDialogDataL( 
+            CHbSymbianVariantMap* aMap,
+            TBool aAuthProvWaitNote );
+                    
+       /**
+        * Set data for the Password Dialog(s)
+        * @param  aEapType         Eap type to be used
+        * @param  aMap             Pointer to variant data
+        * @param  aAuthMethod      Auth method to be used
+        * return -
+        */
+        void SetPasswordQueryDataL( 
+            TEapExpandedType& aEapType,
+            CHbSymbianVariantMap* aMap,
+            TDesC& aAuthMethod );
+        
+    private:
+        /** Pointer to the device dialog interface for handling the dialog */
+        CHbDeviceDialogSymbian* iDialog;
+        /** The observer to handle the data received from the orbit dialog */
+        CEapAuthObserver* iObserver;
+        
+        TEapDialogInfo* iEapInfo;
+        
+        // for callback
+        MNotificationCallback& iClient;  
+        
+        /* Information if request was already completed, in case the
+         * observer receives the data signal and the signal about closing the
+         * dialog.
+         */
+        TBool iCompleted;
+        
+        /* Information if request was already cancelled.
+         */
+        TBool iCancelled;
+        
+    
+    };
+
+#endif //__EAPAUTHNOTIFIER_H__
+