Library: Foundation
Package: Tasks
Header: Poco/Task.h
Description
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.
Inheritance
Direct Base Classes: Runnable, RefCountedObject
All Base Classes: RefCountedObject, Runnable
Member Summary
Member Functions: cancel, getOwner, isCancelled, name, postNotification, progress, reset, run, runTask, setOwner, setProgress, setState, sleep, state
Inherited Functions: duplicate, referenceCount, release, run
Enumerations
TaskState
Constructors
Task
Task(
    const std::string & name
);
Creates the Task.
Destructor
~Task 
  
 
virtual ~Task();
Destroys the Task.
Member Functions
cancel 
 
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.
isCancelled 
 
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.
name 
 
const std::string & name() const;
Returns the task's name.
progress 
 
float progress() const;
Returns the task's progress. The value will be between 0.0 (just started) and 1.0 (completed).
reset
void reset();
Sets the task's progress to zero and clears the cancel flag.
run 
 
void run();
Calls the task's runTask() method and notifies the owner of the task's start and completion.
See also: Poco::Runnable::run()
runTask 
 
virtual void runTask() = 0;
Do whatever the task needs to do. Must be overridden by subclasses.
state 
 
TaskState state() const;
Returns the task's current state.
getOwner 
  
 
TaskManager * getOwner() const;
Returns the owner of the task, which may be NULL.
postNotification 
  
 
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.
setOwner 
 
void setOwner(
    TaskManager * pOwner
);
Sets the (optional) owner of the task.
setProgress 
 
void setProgress(
    float progress
);
Sets the task's progress. The value should be between 0.0 (just started) and 1.0 (completed).
setState 
 
void setState(
    TaskState state
);
Sets the task's state.
sleep 
 
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().