paysages3d/src/system/ParallelWorker.h

33 lines
691 B
C
Raw Permalink Normal View History

#pragma once
2014-08-18 10:17:16 +00:00
#include "system_global.h"
namespace paysages {
namespace system {
/**
2016-01-03 18:21:23 +00:00
* Worker that can be used by the ParallelWork object to perform tasks in several threads.
2014-08-18 10:17:16 +00:00
*/
class SYSTEMSHARED_EXPORT ParallelWorker {
public:
2014-08-18 10:17:16 +00:00
ParallelWorker();
virtual ~ParallelWorker();
/**
* Abstract method to reimplement to process a work unit.
*
* This method will be called from any thread in the thread pool used by the ParallelWork.
*/
virtual void processParallelUnit(int unit) = 0;
2014-08-19 07:18:55 +00:00
/**
* Method to reimplement to know when to interrupt the processing of units.
*/
virtual void interrupt();
protected:
2014-08-19 07:18:55 +00:00
bool interrupted;
2014-08-18 10:17:16 +00:00
};
}
}