class Poco::Task
Overview
A Task is a subclass of Runnable that has a name and supports progress reporting and cancellation. More…
#include <Task.h> class Task: public Poco::Runnable, public Poco::RefCountedObject { public: // enums enum TaskState; // construction Task(const std::string& name); // methods const std::string& name() const; float progress() const; virtual void cancel(); bool isCancelled() const; TaskState state() const; void reset(); virtual void runTask() = 0; virtual void run(); protected: // methods bool sleep(long milliseconds); void setProgress(float progress); virtual void postNotification(Notification* pNf); void setOwner(TaskManager* pOwner); TaskManager* getOwner() const; void setState(TaskState state); };
Inherited Members
public: // methods virtual void run() = 0; void duplicate() const; void release() const; int referenceCount() const;
Detailed Documentation
A Task is a subclass of Runnable that has a name and supports progress reporting and cancellation.
A TaskManager object can be used to take care of the lifecycle of a Task.
Methods
const std::string& name() const
Returns the task’s name.
float progress() const
Returns the task’s progress.
The value will be between 0.0 (just started) and 1.0 (completed).
virtual void cancel()
Requests the task to cancel itself.
For cancellation to work, the task’s runTask() method must periodically call isCancelled() and react accordingly.
Can be overridden to implement custom behavior, but the base class implementation of cancel() should be called to ensure proper behavior.
bool isCancelled() const
Returns true if cancellation of the task has been requested.
A Task ‘s runTask() method should periodically call this method and stop whatever it is doing in an orderly way when this method returns true.
TaskState state() const
Returns the task’s current state.
void reset()
Sets the task’s progress to zero and clears the cancel flag.
virtual void runTask() = 0
Do whatever the task needs to do.
Must be overridden by subclasses.
virtual void run()
Calls the task’s runTask() method and notifies the owner of the task’s start and completion.
bool sleep(long milliseconds)
Suspends the current thread for the specified amount of time.
If the task is cancelled while it is sleeping, sleep() will return immediately and the return value will be true. If the time interval passes without the task being cancelled, the return value is false.
A Task should use this method in favor of Thread::sleep().
void setProgress(float progress)
Sets the task’s progress.
The value should be between 0.0 (just started) and 1.0 (completed).
virtual void postNotification(Notification* pNf)
Posts a notification to the task manager’s notification center.
A task can use this method to post custom notifications about its progress.
void setOwner(TaskManager* pOwner)
Sets the (optional) owner of the task.
TaskManager* getOwner() const
Returns the owner of the task, which may be NULL.
void setState(TaskState state)
Sets the task’s state.