diff -r 000000000000 -r 667063e416a2 landmarks/locationlandmarks/localaccess/inc/EPos_CPosLmLocalInternalOpActive.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/landmarks/locationlandmarks/localaccess/inc/EPos_CPosLmLocalInternalOpActive.h Tue Feb 02 01:06:48 2010 +0200 @@ -0,0 +1,140 @@ +/* +* Copyright (c) 2005 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: Active help object for running an internal operation. +* +* +*/ + + +#ifndef CPOSLMLOCALINTERNALOPACTIVE_H +#define CPOSLMLOCALINTERNALOPACTIVE_H + +// INCLUDES +#include + +// CONSTANTS + +// FORWARD DECLARATIONS +class MPosLmLocalInternalOpExecutor; +class CPosLmOperation; + +// CLASS DECLARATION + +/** +* Active help object for running an internal operation. +*/ +NONSHARABLE_CLASS(CPosLmLocalInternalOpActive) : public CActive + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aExecutor An internal operation executor. + * @param aOp An internal operation. + */ + static CPosLmLocalInternalOpActive* NewL( + /* IN */ MPosLmLocalInternalOpExecutor& aExecutor, + /* IN */ CPosLmOperation* aOp + ); + + /** + * Destructor. + */ + virtual ~CPosLmLocalInternalOpActive(); + + public: // New functions + + /** + * Performs a single step of the internal operation asynchronously using + * this active object. + * + * @param aClientStatus Client status; will be sent back to the executor + * when the asynchronous call to the internal operation completes. + * @param aClientProgress Client progress; will be sent back to the + * executor when the asynchronous call to the internal operation + * completes. + */ + void DoNext( + /* IN */ TRequestStatus& aClientStatus, + /* IN */ TReal32& aClientProgress + ); + + /** + * Performs a single step of the internal operation without using this + * active object to run it. + * + * @param aStatus A request status. + * @param aProgress Progress of the internal operation. + */ + void InternalOpNextStep( + /* IN */ TRequestStatus& aStatus, + /* IN */ TReal32& aProgress + ); + + public: // Functions from base classes + + /** + * From CActive. + * + * Implements cancellation of an outstanding request. + */ + void DoCancel(); + + /** + * From CActive. + * + * Handles request completion event. + */ + void RunL(); + + private: + + /** + * C++ default constructor. + * @param aExecutor An internal operation executor. + * @param aOp An internal operation. + */ + CPosLmLocalInternalOpActive( + /* IN */ MPosLmLocalInternalOpExecutor& aExecutor, + /* IN */ CPosLmOperation* aOp + ); + + // Prohibit copy constructor if not deriving from CBase. + CPosLmLocalInternalOpActive( + const CPosLmLocalInternalOpActive&); + // Prohibit assigment operator if not deriving from CBase. + CPosLmLocalInternalOpActive& operator=( + const CPosLmLocalInternalOpActive&); + + private: // Data + + // Internal op executor + MPosLmLocalInternalOpExecutor* iExecutor; + + // Internal op + CPosLmOperation* iOp; + + TReal32 iProgress; + + // Client status + TRequestStatus* iClientStatus; + + // Client progress + TReal32* iClientProgress; + + }; + +#endif // CPOSLMLOCALINTERNALOPACTIVE_H + +// End of File