diff -r 000000000000 -r 094583676ce7 wvuing/IMPSConnectionUI/OperationStepSrc/CCnUiLogoutUiCntrlStep.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/IMPSConnectionUI/OperationStepSrc/CCnUiLogoutUiCntrlStep.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,232 @@ +/* +* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Symbian Foundation License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Logout UI control. +* +*/ + +#ifndef __CCNUILOGOUTUICNTRLSTEP_H +#define __CCNUILOGOUTUICNTRLSTEP_H + +// INCLUDES +#include +#include "MCnUiCntrlStep.h" +#include "MCnUiOpProgressStateObserver.h" + + + +//FORWARD DECLARATION +class MCnUiUiControlContext; +class MCnUiConnWaitNote; +class CCnUiConnCloser; +class CPEngNWSessionSlotID2; + + +// CLASS DECLARATION +/** + * Logout UI control. + * Performs logout using the CCnUiConnCloser. + * + * This class behaviour can be extended by deriving. + * + * @since 2.1 + */ +NONSHARABLE_CLASS( CCnUiLogoutUiCntrlStep ) : public CBase, + public MCnUiCntrlStep, + public MCnUiOpProgressStateObserver + { +protected: //own enumerations + /** + * Return status for succesful logout init. + */ + enum TCnUiLogoutInitStatus + { + ECnUiLogoutInitContinue = 1 //must be positive to distinguish from KErrXXX error codes + }; + +public: // Two-phased constructors and destructor + + /** + * Two-phased constructor. + */ + static CCnUiLogoutUiCntrlStep* NewLC( MCnUiUiControlContext& aCCntxt, + CIMPSSAPSettings& aLogoutSap, + const CPEngNWSessionSlotID2& aNWSessionSlotID ); + + + /** + * Destructor. + */ + virtual ~CCnUiLogoutUiCntrlStep(); + + +protected: //protected to allow derivation + + /** + * C++ constructor. + */ + CCnUiLogoutUiCntrlStep( MCnUiUiControlContext& aCCntxt, + CIMPSSAPSettings& aLogoutSap ); + + + /** + * Symbian OS constructor. + */ + void ConstructL( const CPEngNWSessionSlotID2& aNWSessionSlotID ); + + + +public: // New functions from MCnUiCntrlStep + + + /** + * Runs logout operation. + * Uses virtual DoInitLogoutStepL() + * to setup logout data and virtual + * DoHandleLogoutStatusL() to handle logout + * status code. + * + * @since 2.1 + * @return Errorcode from logout. + */ + TInt RunStepL(); + + + /** + * Handles logout complete. + * + * If there isn't anymore active network + * connection, issues connection restore + * for previously dropped network connections + * if needed. + * + * @since 2.1 + * @return Always ECnUiStepContinueTeardown. + */ + TCnUiHandleCompleteStatus HandleCompleteL(); + + + /** + * Undo step. + * + * @since 2.1 + */ + void UndoStepL(); + + + +public: // New functions from MCnUiOpProgressStateObserver + + /** + * Notification method to get notifications from + * MCnUiOpProgressStateObserver events. + * + * Sets up proper wait note by using the + * DoShowLogoutStateSpecificWaitnoteL(); + * + * @param aStateId The state id from CCnUiConnCloser. + * @param aClient The accessed client. + * @since 2.1 + */ + void HandleProgressStateEnter( TInt aStateId, + TIMPSConnectionClient aClient ); + + + +protected: // New helper & template functions for derived class use + + + /** + * Shows error note from simultaneous + * login operation. + * + * @since 2.1 + */ + void ShowSimultaneousLoginOperationNoteL(); + + + /** + * Framework method. + * Virtual method to initializes the logout operation. + * + * @since 2.1 + * + * @param aClient Init has to initialize the aClient + * with the client id to log in. + * + * @return Error status from init. If init returns something + * else than ECnUiLogoutInitContinue login operation RunStepL() + * is breaked with return value. + */ + virtual TInt DoInitLogoutStepL( TIMPSConnectionClient& aClient ); + + + /** + * Framework method. + * + * Virtual method to show proper wait note for + * logout state. + * + * @since 2.1 + * @param aStateId State id from CCnUiConnCloser. + * @param aClient The accessed client. + */ + virtual void DoShowLogoutStateSpecificWaitnoteL( TInt aStateId, + TIMPSConnectionClient aClient ); + + + + /** + * Framework method. + * + * Virtual method to show proper note for + * successful logout. + * + * @since 2.1 + * @param aClient The accessed client. + */ + virtual void DoShowLogoutOkNoteL( TIMPSConnectionClient aClient ); + + + /** + * Gets the current client information from TLS + * + * @since 3.0 + */ + virtual TIMPSConnectionClient ConnectionClient(); + +protected: // protected data shared with derived classes + + ///