networkcontrol/ipupsplugins/dialogcreator/inc/ipupsdialog.h
changeset 14 b33c3d136b7e
parent 1 a579325b79dd
child 18 39bb7c3571e9
equal deleted inserted replaced
1:a579325b79dd 14:b33c3d136b7e
     1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // Class declaration for Reference dialog creator plug-in for IP.
       
    15 // 
       
    16 //
       
    17 
       
    18 /**
       
    19  @file
       
    20  @internalTechnology 
       
    21  @prototype 
       
    22 */
       
    23 
       
    24 #ifndef IPUPSDIALOG_H
       
    25 #define IPUPSDIALOG_H
       
    26 
       
    27 #include <e32base.h>
       
    28 #include <e32cmn.h>
       
    29 #include <ups/dialogcreator.h>
       
    30 #include <ups/fingerprint.h>
       
    31 #include <ups/upsnotifierutil.h>
       
    32 
       
    33 using namespace UserPromptService;
       
    34 
       
    35 /**
       
    36  Reference implementation of a User Prompt Service dialog creator ECOM plug-in for IP.
       
    37  */
       
    38 NONSHARABLE_CLASS(CIpUpsDialog) : public CDialogCreator
       
    39 	{
       
    40 	public:
       
    41 	typedef enum
       
    42 		{
       
    43 		EIdle,
       
    44 		EPrepareDialog,
       
    45 		EDisplayDialog,
       
    46 		EProcessResult		
       
    47 		} TState;
       
    48 	static CIpUpsDialog* CreateDialogCreatorL();				
       
    49 	~CIpUpsDialog();
       
    50 	
       
    51 protected:
       
    52 	// From CActive
       
    53 	void DoCancel();
       
    54 	void RunL();
       
    55 	TInt RunError(TInt aError);
       
    56 	
       
    57 	// From CDialogCreator
       
    58 	void PrepareDialog(
       
    59 		const CPromptRequest& aRequest, const CPolicy& aPolicy,			
       
    60 		const RPointerArray<CFingerprint>& aFingerprints, const CClientEntity* aClientEntity, 
       
    61 		const TAny* aDialogCreatorParams, TRequestStatus& aStatus);
       
    62 	void DisplayDialog(CPolicy::TOptions& aOptionSelcted, const CFingerprint*& aFingerprint,
       
    63 			TUint& aEvaluatorInfo, TRequestStatus& aStatus);	
       
    64 		
       
    65 private:	
       
    66 	CIpUpsDialog();
       
    67 	void ConstructL();
       
    68 	void ResolveClientNameL(const TSecureId& aSid);
       
    69 	TBool ResolveClientNameFromAppArcL(const TSecureId& aSid);
       
    70 	TBool ResolveClientNameFromSisRegistryL(const TSecureId& aSid);
       
    71 	void ResolveVendorNameL(const TVendorId& aVid);
       
    72 	void DoPrepareDialogL();
       
    73 	void DoDisplayDialogL();
       
    74 	void DoProcessResultL();	
       
    75 	
       
    76 	// Const data from UPS & policy evaluator
       
    77 	const CPromptRequest* iRequest;                         //< Request data from system server
       
    78 	const CPolicy* iPolicy;                                 //< The policy that matches iRequest
       
    79 	const RPointerArray<CFingerprint>* iFingerprints;	//< Fingerprints generated by policy evaluator from iRequest
       
    80 	const TAny* iEvalPrivateData;                           //< Extra data generated by policy evaluator
       
    81 	
       
    82 	TRequestStatus* iClientStatus;                          //< UPS's request object 
       
    83 	
       
    84 	// Return data for DisplayDialog
       
    85 	CPolicy::TOptions* iOptionSelected;                     //< The option selected by the user
       
    86 	const CFingerprint** iFingerprint;			//< The fingerprint for the new decision if Always or Never selected
       
    87 	TUint* iEvaluatorInfo;                                  //< Plug-in specific field in decision record
       
    88 
       
    89 	CPromptData* iPromptData;				//< Data used by notifier to render dialog
       
    90 	RBuf8 iPromptDataDes;					//< Externalized prompt data
       
    91 	TPromptResult iPromptResult;                            //< Response buffer for notifier
       
    92 	TPckg<TPromptResult> iPromptResultPckg;                 //< Packages iPromptResult
       
    93 	RNotifier iNotifier;                                    //< Connection to notifier framework 
       
    94 	TState iState;                                          //< Current state 
       
    95 	TUint iNotifierId;                                     //< User prompting user Id
       
    96 	};
       
    97 #endif // SMSUPSDIALOG_H
       
    98