12 #include "TaskQueue/taskqueuebase.h" 20 TaskQueueBase::~TaskQueueBase() {}
24 for(
auto& task : task_queue ) {
25 task->SetSignal( signal_input, signal_size);
28 if ( task->NeedsToReknew() ) {
29 ReknewSignal( task->ProcessedSignal(),\
30 task->ProcessedSignalBytes(),\
31 task->ProcessedSignalSize() );
36 command_queue.finish();
43 task_queue.push_back( &item );
48 if( std::find(task_queue.begin(), task_queue.end(), &item) != task_queue.end() ) {
49 task_queue.erase(std::remove(task_queue.begin(), task_queue.end(), &item), task_queue.end());
60 for(
const auto& task : task_queue ) {
61 std::cout << get_type_name( task ) << std::endl;
66 void TaskQueueBase::ReknewSignal(cl::Buffer& processed_buff,
size_t processed_bytes,
size_t processed_size ) {
68 cl_int* err_ptr = NULL;
69 signal_input = cl::Buffer ( context, CL_MEM_READ_WRITE, processed_bytes, err_ptr );
72 cl_int err = command_queue.enqueueCopyBuffer( processed_buff, signal_input, 0, 0, processed_bytes );
75 signal_bytes = processed_bytes;
76 signal_size = processed_size;
void PrintContents()
Print all of the current elements in the queue in the order in which they will be executed...
void Execute()
Run all TaskItems that are currently loaded.
void AddTaskItem(TaskItem &item)
Add a new TaskItem into the TaskQueue.
bool RemoveTaskItem(TaskItem &item)
Remove a TaskItem from the queue (if it exists)
Base class for every class that needs access to OpenCL Platforms, Contexts or Devices.
TaskQueueBase(uint platform_number=0, uint device_number=0)
Build a new TaskQueueBase and implicitly initialize OpenCL Context, Platform etc. ...