--- /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