Accelerated Computation Engine
eabstractanalytic.h
1 #ifndef EABSTRACTANALYTIC_H
2 #define EABSTRACTANALYTIC_H
3 #include <memory>
4 #include <QObject>
5 //
6 
7 
8 
24 class EAbstractAnalytic : public QObject
25 {
26  Q_OBJECT
27 public:
28  class Block;
29  class Input;
30  class Serial;
31  class OpenCL;
32 public:
40  virtual int size() const = 0;
49  virtual void process(const EAbstractAnalytic::Block* result) = 0;
56  virtual EAbstractAnalytic::Input* makeInput() = 0;
57  virtual std::unique_ptr<EAbstractAnalytic::Block> makeWork(int index) const;
58  virtual std::unique_ptr<EAbstractAnalytic::Block> makeWork() const;
59  virtual std::unique_ptr<EAbstractAnalytic::Block> makeResult() const;
62  virtual void initialize();
63  virtual void initializeOutputs();
64  virtual void finish();
65 protected:
66  static bool isMaster();
67 };
68 
69 
70 
71 #endif
Definition: eabstractanalytic.h:24
virtual EAbstractAnalytic::Input * makeInput()=0
virtual std::unique_ptr< EAbstractAnalytic::Block > makeResult() const
Definition: eabstractanalytic.cpp:73
Definition: eabstractanalytic_input.h:22
virtual void process(const EAbstractAnalytic::Block *result)=0
virtual EAbstractAnalytic::Serial * makeSerial()
Definition: eabstractanalytic.cpp:96
Definition: eabstractanalytic_opencl.h:16
static bool isMaster()
Definition: eabstractanalytic.cpp:180
virtual void initialize()
Definition: eabstractanalytic.cpp:133
virtual int size() const =0
virtual EAbstractAnalytic::OpenCL * makeOpenCL()
Definition: eabstractanalytic.cpp:116
Definition: eabstractanalytic_serial.h:15
virtual void initializeOutputs()
Definition: eabstractanalytic.cpp:149
virtual std::unique_ptr< EAbstractAnalytic::Block > makeWork() const
Definition: eabstractanalytic.cpp:49
virtual void finish()
Definition: eabstractanalytic.cpp:163
Definition: eabstractanalytic_block.h:17
Definition: opencl.h:5