3 #include <util/threadpool/BuddingTaskDropper.h>
4 #include <PulseThreadPoolInterface.h>
5 #include <scanner/detector/PulseTask.h>
6 #include <scanner/detector/PulseThreadPool.h>
7 #include <noise/RandomnessGenerator.h>
8 #include <noise/NoiseSource.h>
22 PulseThreadPoolInterface,
23 std::vector<std::vector<double>>&,
24 RandomnessGenerator<double>&,
25 RandomnessGenerator<double>&,
48 std::vector<std::vector<double>>&,
61 std::vector<std::vector<double>>&,
69 std::vector<std::vector<double>>&,
The budding task dropper is a task dropper which implements the logic for its own reproduction so bud...
Definition: BuddingTaskDropper.h:78
int delta1
Magnitude of increase/decrease for max tasks.
Definition: BuddingTaskDropper.h:91
char lastSign
Must be at initial instance but then it should be either or .
Definition: BuddingTaskDropper.h:110
int delta2
Magnitude of increase/decrease for .
Definition: BuddingTaskDropper.h:105
int initDelta1
The initial value of .
Definition: BuddingTaskDropper.h:95
Class to handle a noise source.
Definition: NoiseSource.h:17
Class implementing a task dropper to deal with pulse tasks.
Definition: PulseTaskDropper.h:27
PulseTaskDropper(int const maxTasks=32, int const delta1=8, int const initDelta1=8, int const delta2=1, char const lastSign=0)
Default constructor for PulseTaskDropper.
Definition: PulseTaskDropper.h:37
bool tryDrop(PulseThreadPoolInterface &pool) override
Like TaskDropper::tryDrop but dropping all pulse tasks through a pulse thread pool in a non-blocking ...
Definition: PulseTaskDropper.h:91
void drop(PulseThreadPoolInterface &pool) override
Like TaskDropper::drop but dropping all pulse tasks through a pulse thread pool.
Definition: PulseTaskDropper.h:83
Pulse task interface.
Definition: PulseTask.h:13
Interface for thread pools supporting pulse tasks.
Definition: PulseThreadPoolInterface.h:18
virtual void run_pulse_task(TaskDropper< PulseTask, PulseThreadPoolInterface, std::vector< std::vector< double >> &, RandomnessGenerator< double > &, RandomnessGenerator< double > &, NoiseSource< double > & > &dropper)=0
Compute a chunk of pulse tasks in parallel, blocking fashion.
virtual bool try_run_pulse_task(TaskDropper< PulseTask, PulseThreadPoolInterface, std::vector< std::vector< double >> &, RandomnessGenerator< double > &, RandomnessGenerator< double > &, NoiseSource< double > & > &dropper)=0
Compute a chunk of pulse tasks in parallel, non-blocking fashion.
Class to generate random numbers.
Definition: RandomnessGenerator.h:34
Class which handles tasks dropping. It is, executing and then removing each task when dropping.
Definition: TaskDropper.h:22
virtual void drop()
Drop all tasks, one after another.
Definition: TaskDropper.h:127
size_t maxTasks
Specify the maximum number of tasks before forcing a drop.
Definition: TaskDropper.h:39