HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PyImathTask.h
Go to the documentation of this file.
1 //
2 // SPDX-License-Identifier: BSD-3-Clause
3 // Copyright Contributors to the OpenEXR Project.
4 //
5 
6 // clang-format off
7 
8 #ifndef _PyImathTask_h_
9 #define _PyImathTask_h_
10 
11 #include <cstddef>
12 #include "PyImathExport.h"
13 
14 namespace PyImath {
15 
16 struct Task
17 {
18  PYIMATH_EXPORT virtual ~Task() {}
19  PYIMATH_EXPORT virtual void execute(size_t start,size_t end) = 0;
20  PYIMATH_EXPORT virtual void execute(size_t start,size_t end, int tid) {execute(start,end);}
21 };
22 
23 struct WorkerPool
24 {
26  PYIMATH_EXPORT virtual size_t workers() const = 0;
27  PYIMATH_EXPORT virtual void dispatch(Task &task,size_t length) = 0;
28  PYIMATH_EXPORT virtual bool inWorkerThread() const = 0;
29 
32 };
33 
34 PYIMATH_EXPORT void dispatchTask(Task &task,size_t length);
35 PYIMATH_EXPORT size_t workers();
36 
37 }
38 
39 #endif
virtual PYIMATH_EXPORT void dispatch(Task &task, size_t length)=0
PYIMATH_EXPORT size_t workers()
GLuint start
Definition: glcorearb.h:475
GLuint GLsizei GLsizei * length
Definition: glcorearb.h:795
virtual PYIMATH_EXPORT void execute(size_t start, size_t end)=0
virtual PYIMATH_EXPORT bool inWorkerThread() const =0
virtual PYIMATH_EXPORT ~Task()
Definition: PyImathTask.h:18
#define PYIMATH_EXPORT
Definition: PyImathExport.h:25
GLuint GLuint end
Definition: glcorearb.h:475
virtual PYIMATH_EXPORT ~WorkerPool()
Definition: PyImathTask.h:25
PYIMATH_EXPORT void dispatchTask(Task &task, size_t length)
virtual PYIMATH_EXPORT void execute(size_t start, size_t end, int tid)
Definition: PyImathTask.h:20
static PYIMATH_EXPORT void setCurrentPool(WorkerPool *pool)
static PYIMATH_EXPORT WorkerPool * currentPool()
virtual PYIMATH_EXPORT size_t workers() const =0
**Note that the tasks the is the thread number *for the pool
Definition: thread.h:646