diff -r 000000000000 -r 2014ca87e772 imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailtask.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailtask.h Tue Jan 26 15:18:05 2010 +0200 @@ -0,0 +1,210 @@ +/* +* Copyright (c) 2006-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: Base class for thumbnail server tasks + * +*/ + + +#ifndef THUMBNAILTASK_H +#define THUMBNAILTASK_H + +#include "thumbnailmanager.h" // TThumbnailRequestId +#include "thumbnailmanagerconstants.h" // TThumbnailServerRequestId + + +class CThumbnailTaskProcessor; +class CThumbnailServerSession; + +/** + * Base class for thumbnail server tasks. + * + * @since S60 v5.0 + */ +class CThumbnailTask: public CActive + { +public: + /** + * Task state. + * @since S60 v5.0 + */ + enum TTaskState + { + /** + * This task is waiting to be run. + */ + EIdle, + + /** + * This task is currently running. + */ + ERunning, + + /** + * This task has completed and can be destroyed. + */ + EComplete + }; + +public: + + /** + * C++ default constructor + * + * @since S60 v5.0 + * @param aProcessor Processor object for running tasks. + * @param aPriority Priority of the task. + * @return New CThumbnailTask instance. + */ + CThumbnailTask( CThumbnailTaskProcessor& aProcessor, TInt aPriority ); + + /** + * Destructor + * + * @since S60 v5.0 + */ + virtual ~CThumbnailTask(); + +public: + + /** + * Returns priority of task. + * + * @since S60 v5.0 + * @return Priority of the task. + */ + TInt Priority()const; + + /** + * Returns state of task. + * + * @since S60 v5.0 + * @return State. + */ + TTaskState State()const; + + /** + * SetMessageData + * + * @since S60 v5.0 + * @param aRequestId Request ID. + * @param aMessage Message. + */ + virtual void SetMessageData( const TThumbnailServerRequestId& aRequestId, + const RMessage2& aMessage ); + + /** + * SetMessageData if message is not needed to complete + * + * @since S60 v5.0 + * @param aRequestId Request ID. + */ + virtual void SetMessageData( const TThumbnailServerRequestId& aRequestId ); + + /** + * Resets message data. + * + * @since S60 v5.0 + */ + virtual void ResetMessageData(); + + /** + * Cancels message. + * + * @since S60 v5.0 + */ + virtual void CancelMessage(); + + /** + * Returns ID of specific task. + * + * @since S60 v5.0 + * @return Request ID. + */ + virtual TThumbnailServerRequestId RequestId()const; + + /** + * Changes priority of the task. + * + * @since S60 v5.0 + * @param aNewPriority New priority. + */ + virtual void ChangeTaskPriority( TInt aNewPriority ); + + /** + * StartL + * + * @since S60 v5.0 + */ + virtual void StartL(); + + /** + * Implements cancellation of an outstanding request. + * + * @since S60 v5.0 + */ + virtual void DoCancel(); + + /** + * StartError + * + * @since S60 v5.0 + * @param aError Error code. + */ + virtual void StartError( TInt aError ); + + /** + * Complete + * + * @since S60 v5.0 + * @param aReason Status code. + */ + virtual void Complete( TInt aReason ); + + /** + * Continue without deleting task + * + * @since S60 v5.0 + */ + virtual void Continue(); + +protected: + // data + + /** + * Processor. + */ + CThumbnailTaskProcessor& iProcessor; + + /** + * Priority of the task. + */ + TInt iPriority; + + /** + * State of the task. + */ + TTaskState iState; + + /** + * Id of the request. + */ + TThumbnailServerRequestId iRequestId; + + /** + * Message. + */ + RMessage2 iMessage; +}; + +#endif // THUMBNAILTASK_H