wvuing/wvuiave/AppSrc/CCAReactiveAuthorization.h
branchRCL_3
changeset 13 a941bc465d9f
parent 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuiave/AppSrc/CCAReactiveAuthorization.h	Wed Sep 01 12:31:13 2010 +0100
@@ -0,0 +1,172 @@
+/*
+* Copyright (c) 2006 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:  Reactive authorization handling utilities
+*
+*/
+
+
+#ifndef CCAREACTIVEAUTHORIZATION_H
+#define CCAREACTIVEAUTHORIZATION_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <badesca.h>
+
+#include "mcareactiveauthobserverpc.h"
+
+// FORWARD DECLARATIONS
+class CCAAppUi;
+class CCABlockingUI;
+class MCAReactiveAuthPC;
+
+
+
+
+// CLASS DECLARATION
+
+/**
+ *  Reactive authorization observers and logic
+ *
+ *  @lib chatng.exe
+ *  @since 3.2
+ */
+class CCAReactiveAuthorization : public CBase,
+            public MCAReactiveAuthObserverPC
+    {
+    public:  // constructor
+        /**
+         * Static constructor.
+         * @since 3.2
+         * @param aAppUi Handle to application UI
+         * @param aReactiveAuthPC Handle to Reactive Auth. PC Interface
+         * @return Instance of this class
+         */
+        static CCAReactiveAuthorization* NewLC( CCAAppUi& aAppUi,
+                                                MCAReactiveAuthPC* aReactiveAuthPC );
+
+        /**
+         * Static constructor.
+         * @since 3.2
+         * @param aAppUi Handle to application UI
+         * @param aReactiveAuthPC Handle to Reactive Auth. PC Interface
+         * @return Instance of this class
+         */
+        static CCAReactiveAuthorization* NewL( CCAAppUi& aAppUi,
+                                               MCAReactiveAuthPC* aReactiveAuthPC );
+
+        /**
+         * Destructor
+         */
+        ~CCAReactiveAuthorization();
+
+    public:  //From Base Class MCAReactiveAuthObserverPC
+
+        /**
+         * @see MCAReactiveAuthObserverPC
+         */
+        void HandleRAPendingReqL();
+
+        /**
+         * @see MCAReactiveAuthObserverPC
+         */
+        void HandleRAStatusL();
+
+        /**
+         * @see MCAReactiveAuthObserverPC
+         */
+        void HandleRAError( TInt aError );
+
+    private: // new methods
+
+        /**
+         * CIdle callback for RA request and status
+         * @param aInstance - pointer that is passed to
+         * the callback function when the function is called
+         * @returns ETrue if it is intended to be called again
+         * means if request is pending else EFalse
+         * request consumer
+         */
+        static TInt ConsumerCallback( TAny* aInstance );
+
+        /**
+         * ConsumerCallback calls this function
+         * wrapper for DoConsumerL
+         * @returns ETrue if request is pending else EFalse
+         */
+        TInt Consumer();
+
+        /**
+         * The actual consumer method
+         * Get Pending messages/statuses from IM Presence
+         * @returns ETrue if request is pending else EFalse
+         */
+        TInt DoConsumerL();
+
+        /**
+         * This method does the actual RA request handling
+         * @param aId The WVID contained within the request
+         * @return ETrue if the user accepted this request
+         */
+        TBool DoHandleRAPendingReqL( const TDesC& aId );
+
+        /**
+         * This method does the actual RA status handling
+         * @param aId The WVID contained within the status request
+         */
+        void DoHandleRAStatusL( const TDesC& aId );
+
+        /**
+         * This method does the actual RA error handling
+         */
+        void DoHandleRAError();
+
+    private: // constructors and destructors
+
+        /**
+         * Symbian Second Phased Constructor
+         */
+        void ConstructL();
+
+        /**
+         * Default constructor
+         * @param aAppUI Handle to application UI
+         * @param aReactiveAuthPC Handle to Reactive Auth. PC Interface
+         */
+        CCAReactiveAuthorization( CCAAppUi& aAppUI,
+                                  MCAReactiveAuthPC* aReactiveAuthPC );
+
+    private:    // Data
+
+        // Doesn't own. Handle to appui
+        CCAAppUi& iAppUi;
+
+
+        // Handle to blocking UI. Owned.
+        CCABlockingUI* iBlockingUI;
+
+        // owns, used to launch the actual request/status request
+        // consumer methods
+        CIdle* iIdle;
+
+        // If idle is already running this flag is set to ETrue
+        TBool iRequestPending;
+
+        // Handle to Reactive Auth PC. Doesnt Own
+        MCAReactiveAuthPC* iReactiveAuthPC;
+
+    };
+
+#endif      // CCAREACTIVEAUTHORIZATION_H
+
+// End of File