3 #include <scanner/detector/PulseThreadPool.h>
4 #include <scanner/detector/PulseWarehouseThreadPool.h>
5 #include <scanner/detector/PulseThreadPoolInterface.h>
6 #include <util/HeliosException.h>
90 ss <<
"Unexpected parallelization strategy: "
102 return std::make_shared<PulseThreadPool>(
114 inline std::shared_ptr<PulseWarehouseThreadPool>
116 return std::make_shared<PulseWarehouseThreadPool>(
Base class for Helios exceptions.
Definition: HeliosException.h:12
Factory to build different types of pulse thread pools.
Definition: PulseThreadPoolFactory.h:19
int chunkSize
The size of chunks handled by the thread pool, if needed.
Definition: PulseThreadPoolFactory.h:44
int warehouseFactor
The warehouse factor for the thread pool, if needed. The maximum number of tasks for a TaskWarehouse ...
Definition: PulseThreadPoolFactory.h:51
std::shared_ptr< PulseWarehouseThreadPool > makePulseWarehouseThreadPool() const
Build a warehouse based pulse thread pool.
Definition: PulseThreadPoolFactory.h:115
std::shared_ptr< PulseThreadPool > makeBasicPulseThreadPool() const
Build a basic pulse thread pool.
Definition: PulseThreadPoolFactory.h:101
std::size_t poolSize
How many threads the thread pool should use.
Definition: PulseThreadPoolFactory.h:34
int parallelizationStrategy
The parallelization strategy defining the thread pool.
Definition: PulseThreadPoolFactory.h:29
double deviceAccuracy
The accuracy of the detector in meters.
Definition: PulseThreadPoolFactory.h:39
PulseThreadPoolFactory(int const parallelizationStrategy, std::size_t const poolSize, double const deviceAccuracy, int const chunkSize, int const warehouseFactor=1)
Default constructor.
Definition: PulseThreadPoolFactory.h:59
std::shared_ptr< PulseThreadPoolInterface > makePulseThreadPool()
Build the pulse thread pool corresponding with current factory configuration/state.
Definition: PulseThreadPoolFactory.h:81