void nameFactoryRegister(NameFactory< AbstractProduct > &factory)
Registers the string returned by ConcreteProduct::getStaticName() to a function that default-construc...
TaskEngine handles a list of tasks that are to be carried out.
A Task object represents a unit of work that is performed when the method run() is called.
virtual void run(TaskEngine &engine)=0
Does whatever work this task represents.
virtual void dispose()=0
Called when the task is no longer used but run has not and will not be called.