Accelerated Computation Engine
ace_analytic_openclrun.h
1
#ifndef ACE_ANALYTIC_OPENCLRUN_H
2
#define ACE_ANALYTIC_OPENCLRUN_H
3
#include <memory>
4
#include <QVector>
5
#include <QQueue>
6
#include "ace_analytic_abstractrun.h"
7
#include "ace_analytic.h"
8
#include "opencl.h"
9
#include "eabstractanalytic.h"
10
//
11
12
13
14
namespace
Ace
15
{
16
namespace
Analytic
17
{
25
class
OpenCLRun
:
public
AbstractRun
26
{
27
Q_OBJECT
28
public
:
29
virtual
void
addWork
(std::unique_ptr<EAbstractAnalytic::Block>&& block)
override
final
;
30
public
:
31
explicit
OpenCLRun
(
EAbstractAnalytic::OpenCL
* opencl,
OpenCL::Device
* device,
AbstractInput
* base, QObject* parent =
nullptr
);
32
virtual
~OpenCLRun
()
override
final
;
33
private
slots:
34
void
blockFinished(
int
index);
35
private
:
36
class
Thread
;
37
private
:
41
OpenCL::Context
* _context;
46
EAbstractAnalytic::OpenCL
* _opencl;
50
AbstractInput
* _base;
55
QVector<Thread*> _threads;
59
QQueue<Thread*> _idle;
60
};
61
}
62
}
63
64
65
66
#endif
Ace::Analytic::OpenCLRun
Definition:
ace_analytic_openclrun.h:25
Ace
Definition:
ace.h:6
OpenCL::Context
Definition:
opencl_context.h:18
Ace::Analytic::OpenCLRun::OpenCLRun
OpenCLRun(EAbstractAnalytic::OpenCL *opencl, OpenCL::Device *device, AbstractInput *base, QObject *parent=nullptr)
Definition:
ace_analytic_openclrun.cpp:65
Ace::Analytic::AbstractInput
Definition:
ace_analytic_abstractinput.h:24
Ace::Analytic::OpenCLRun::addWork
virtual void addWork(std::unique_ptr< EAbstractAnalytic::Block > &&block) override final
Definition:
ace_analytic_openclrun.cpp:31
EAbstractAnalytic::OpenCL
Definition:
eabstractanalytic_opencl.h:16
OpenCL::Device
Definition:
opencl_device.h:19
Ace::Analytic::AbstractRun
Definition:
ace_analytic_abstractrun.h:20
Ace::Analytic::OpenCLRun::~OpenCLRun
virtual ~OpenCLRun() override final
Definition:
ace_analytic_openclrun.cpp:107
Ace::Analytic::OpenCLRun::Thread
Definition:
ace_analytic_openclrun_thread.h:21
Generated by
1.8.14