clientprovisioning/cpqtsp/inc/CWPBioControl.h
author hgs
Thu, 28 Oct 2010 03:48:30 +0530
changeset 71 a6c938002837
parent 52 6e38e48ee756
permissions -rw-r--r--
201043
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     1
/*
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     3
* All rights reserved.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     8
*
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     9
* Initial Contributors:
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    11
*
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    12
* Contributors:
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    13
*
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    14
* Description: 
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    15
*     Bio control for Provisioning documents.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    16
*
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    17
*/
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    18
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    19
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    20
#ifndef CWPBIOCONTROL_H
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    21
#define CWPBIOCONTROL_H
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    22
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    23
// INCLUDES
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    24
#include <e32cmn.h>
52
hgs
parents: 45
diff changeset
    25
#include <CWPNameValue.h>
45
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    26
#include <hbsymbianvariant.h>
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    27
#include <hbdevicedialogsymbian.h>
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    28
#include <CWPBootstrap.h>
52
hgs
parents: 45
diff changeset
    29
#include "ProvisioningUIDs.h"
hgs
parents: 45
diff changeset
    30
#include "CpMessage.h"
45
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    31
#include "CWPSaver.h"
52
hgs
parents: 45
diff changeset
    32
#include "CpQtSpView.h"
45
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    33
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    34
class CWPEngine;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    35
class CWPNameValue;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    36
class CWPPushMessage;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    37
class CWPBootstarp;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    38
class CpMessage;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    39
class CpQtSp;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    40
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    41
const TInt KMaxPinSize = 20;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    42
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    43
// CLASS DECLARATION
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    44
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    45
/**
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    46
 * Bio control for OMA Provisioning messages.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    47
 * @since 2.0
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    48
 */
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    49
 
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    50
 class CDummyObserver : public CBase, public MMsvSessionObserver
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    51
{
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    52
public:
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    53
        void HandleSessionEventL(TMsvSessionEvent, TAny*, TAny*, TAny*) {};
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    54
};
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    55
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    56
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    57
class CWPBioControl: public CActive, MHbDeviceDialogObserver
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    58
{
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    59
    public:  // Constructor and destructor
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    60
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    61
        /**
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    62
        * Two-phased constructor.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    63
        * @param aObserver Reference to the Bio control observer.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    64
        * @param aSession Reference to Message Server session.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    65
        * @param aId Id of the message.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    66
        * @param aEditorOrViewerMode Enum for the mode, is it as editor or viewer.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    67
        * @param aFileName The newly created object.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    68
        * @param aFile file handle to provisioning content.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    69
        */
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    70
        IMPORT_C static CWPBioControl* NewL( CMsvSession* aSession,TMsvId aId,CpQtSp* sp);
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    71
       ~CWPBioControl();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    72
        RPointerArray<CWPNameValue>* CollectItemsLC() const;        
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    73
	    
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    74
	    void SaveSettingsL();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    75
	    void DoSaveL();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    76
	    void RestoreMsgL();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    77
	    TInt getAuth();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    78
          // from MHbDeviceDialogObserver
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    79
	    void DataReceived( CHbSymbianVariantMap& aData );
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    80
	    void DeviceDialogClosed(TInt aCompletionCode);
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    81
	    void SaveSettingStatus();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    82
	    void saveDefaultSetting();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    83
	    void postAuthetication();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    84
	    void updateAuthetication();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    85
	    void authenticationFailed();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    86
	    void senderUnknownContinue();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    87
	    void senderUnknownCancel();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    88
    protected:  // from CActive
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    89
            void DoCancel();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    90
            void RunL();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    91
            
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    92
    private: // Constructors
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    93
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    94
        /**
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    95
        * Constructor is prohibited.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    96
        * @param aObserver Reference to the Bio control observer.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    97
        * @param aSession Reference to Message Server session.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    98
        * @param aId Id of the message in Message Server.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    99
        * @param aEditorOrViewerMode Enum for the mode, is it as editor or viewer.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   100
        * @param aFileName The newly created object.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   101
        * @param aFile file handle to provisioning content.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   102
        */
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   103
        CWPBioControl( CMsvSession* aSession,TMsvId aId);
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   104
        void ConstructL(CMsvSession* aSession,TMsvId aId,CpQtSp* sp);
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   105
	
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   106
    private: 
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   107
        
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   108
        void AddItemsL();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   109
        void CollateAndAddItemsL( RPointerArray<CWPNameValue>& aItems );        
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   110
        TBool AuthenticateL( CWPPushMessage& aMessage );
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   111
        static TInt Compare( const CWPNameValue& aImpl1,const CWPNameValue& aImpl2 );
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   112
        void SetCenrepKeyL(const TDesC8& aValue);
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   113
        void SaveMessageL();        
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   114
        static void Cleanup( TAny* aAny );
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   115
        TInt WaitUntilDeviceDialogClosed();        
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   116
    private: 
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   117
        CWPEngine*      iEngine;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   118
        CWPPushMessage* iMessage;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   119
        CDummyObserver* iObserver;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   120
        CMsvSession* iSession;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   121
        TMsvId iId;   
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   122
        TMsvEntry iEntry;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   123
 		TInt ireturnkey;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   124
        CHbDeviceDialogSymbian* iDevDialog;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   125
        CWPBootstrap* ibootstrap;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   126
        TInt itries;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   127
        TInt iAuth;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   128
        CActiveSchedulerWait* iWait;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   129
        TBool iIsDisplayingDialog;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   130
        TInt iCompletionCode;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   131
        CpMessage* iMsg;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   132
        CpQtSp* iSp;
71
hgs
parents: 52
diff changeset
   133
        TBool iPreAuthenticated;
45
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   134
    };
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   135
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   136
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   137
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   138
#endif // CWPBIOCONTROL_H
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   139
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   140
// End of File