securitydialogs/lockapp/inc/lockappwait.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:19:59 +0100
branchRCL_3
changeset 22 03674e5abf46
parent 0 164170e6151a
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2007 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:  Async-Sync utility class
 *
*/


#ifndef __LOCKAPPWAIT_H
#define __LOCKAPPWAIT_H

//  INCLUDES

#include <e32base.h>
#include <eikappui.h>
#include <coecntrl.h>

//  CLASS DEFINITIONS
class CWait : public CActive
	{
public:
	/**
	 * Creates instance of the CWait class.
	 *
	 * @return Returns the instance just created.
	 */
	static CWait* NewL( );

	/**
	 * Destructor.
	 */
	~CWait( );

	/**
	 * Starts waiting for aReqStatus.
	 */
	TInt WaitForRequestL( );

	/**
	 * Sets active request type.
	 */
	void SetRequestType(TInt aRequestType );
	
	/**
	 * Gets active request type.
	 */
	TInt GetRequestType( );

private:
	
	/**
	 * C++ default constructor.
	 */
	CWait( );
	
	/**
	 * Symbian OS constructor.
	 */
	void ConstructL( );

private: // from CActive

	/** @see CActive::RunL() */
	void RunL( );

	/** @see CActive::DoCancel() */
	void DoCancel( );

private: // data

	RTimer iTimer;

	CActiveSchedulerWait iWait;

	// Used if there is a need to cancel an active request;
	// namely in situations where destructor is called when Wait
	// is active.
	TInt iRequestType;
	};

// ----------------------------------------------------------
// CWaitAbsorbingControl
// absorbs all the key presses.
// ----------------------------------------------------------
//
class CWaitAbsorbingControl : public CCoeControl
	{
public:

	/**
	 * Creates instance of the CWaitAbsorbingControl class.
	 *
	 * @return Returns the instance just created.
	 */
	static CWaitAbsorbingControl* NewLC( );

	/**
	 * Destructor.
	 */
	virtual ~CWaitAbsorbingControl( );

private:

	virtual TKeyResponse OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/, TEventCode /*aType*/);

private:

	CWaitAbsorbingControl( );

	void ConstructL( );

private: // data

	CEikAppUi* iAppUi;

	};

#endif

// End of file