policymanagement/policyengine/policyengineui/inc/PolicyEngineUi.h
changeset 0 b497e44ab2fc
child 44 39aa16f3fdc2
child 58 4af31167ea77
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/policymanagement/policyengine/policyengineui/inc/PolicyEngineUi.h	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) 2002-2004 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: Implementation of policymanagement components
+*
+*
+*/
+
+
+#ifndef POLICTY_ENGINE_UI_HEADER_
+#define POLICTY_ENGINE_UI_HEADER_
+
+//  INCLUDES
+#include <e32base.h>
+#include <eiknotapi.h>
+
+//  CONSTANTS
+
+_LIT8( KUserAcceptMark, "A");
+_LIT8( KUserDenyMark, "D");
+const TUint KDelimeterChar = '|';
+
+enum TUserResponse
+	{
+	EUserAccept,
+	EUserDeny,
+	};
+
+//  FORWARD DECLARATIONS
+
+class CCoeEnv;
+class CPolicyEngineUi;
+
+
+class CPolicyEngineNotifier : public CBase, public MEikSrvNotifierBase2
+	{
+	public:
+	
+		CPolicyEngineNotifier();
+		~CPolicyEngineNotifier();
+		static CPolicyEngineNotifier* NewL();
+		void ConstructL();
+		
+		void Complete( TUserResponse aResponse);
+		
+    public: //From MEikSrvNotifierBase2
+    
+		void Release();
+		TNotifierInfo RegisterL();
+		TNotifierInfo Info() const;
+		TPtrC8 StartL(const TDesC8& aBuffer);
+		void StartL(const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage);
+		void Cancel();
+		TPtrC8 UpdateL(const TDesC8& aBuffer); 
+		  
+	private:
+		CPolicyEngineUi * iPolicyEngineUi;
+		
+        /**
+        * refers connections is intialized or not
+        */
+        TNotifierInfo         iInfo;             ///< Notifier info
+        
+        TInt iReplySlot;
+        RMessagePtr2 iMessage;
+	};
+
+
+
+/**
+* This class provides a wrapper for some common dialogs for the policy engine
+*
+* @lib policyengineui.lib
+*/
+class CPolicyEngineUi : public CActive
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Constructor.
+        */
+        CPolicyEngineUi();
+
+        /**
+        * Two-phased constructor.
+        */
+        static CPolicyEngineUi* NewL();
+    
+        /**
+        * Destructor.
+        */
+        virtual ~CPolicyEngineUi();
+        
+        void ActivateL( const TDesC8& aCorporate, const TDesC8& aRandomPart, CPolicyEngineNotifier* iNotifier); 
+    
+		void RunL();
+		void DoCancel();
+
+	public:
+
+        /**
+        * Execute corporate policy question chain, which user deny or accept. One response generated.
+        * @param aCorporate - Corparate name used in queries
+        * @param aRandomPart - Random part of certificate, which user must know.
+        * @return TUserResponse - Response value for user
+        */
+        
+        TUserResponse ShowCorporateConfirmationDialogL( const TDesC8& aCorporate,
+        										   		 const TDesC8& aRandomPart);
+	private:
+	
+		//private enums
+		enum TDialog
+			{
+			EControl = 0, 
+			EQuestion,
+			ERemove,
+			EDenied,
+			EUnMatch
+			};
+		
+		enum TDlgResp
+			{
+			EOkResp,
+			ECancelResp
+			};
+		
+	private:
+	
+        /**
+        * Two-phased constructor.
+        */
+		void ConstructL();
+
+	
+		TInt ShowDialogL( const TDialog& aDialog);
+		TDlgResp ShowConfirmationQueryL( const TDesC& aText, const TBool& aWithCancel );
+		TDlgResp ShowPossessionMessageQueryL();
+		TDlgResp DataQueryL( const TDesC& aText, TDes& aInput );
+
+    private: // Data
+    
+    	HBufC * iCorporate;
+    	HBufC * iRandomPart;
+    	TInt iState;
+    	CPolicyEngineNotifier * iNotifier;
+    	
+	    TInt iResourceFileOffset;
+        CCoeEnv* iCoeEnv;  // not owned
+        };
+
+
+#endif      // POLICTY_ENGINE_UI_HEADER_
+            
+// End of File