OpenLexocad
27.0
ThreadTask.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <
Topo/topo_defines.h
>
4
5
namespace
Topo
6
{
7
class
ShapeTool;
8
9
class
TOPO_EXPORT
ThreadTask
10
{
11
public
:
12
ThreadTask
(){};
13
virtual
~ThreadTask
(){};
14
};
15
16
class
TOPO_EXPORT
MainThreadCallback
17
{
18
public
:
19
MainThreadCallback
(){};
20
virtual
~MainThreadCallback
(){};
21
virtual
void
operator()(
int
done_in_percent)
const
= 0;
22
};
23
24
class
TOPO_EXPORT
ThreadTaskWorker
25
{
26
public
:
27
ThreadTaskWorker
(){};
28
virtual
~ThreadTaskWorker
(){};
29
virtual
void
operator()(
Topo::ThreadTask
* runable)
const
= 0;
30
};
31
32
class
TOPO_EXPORT
ThreadPoolData
33
{
34
};
35
36
class
TOPO_EXPORT
ThreadPool
37
{
38
friend
Topo::ShapeTool
;
39
40
public
:
41
virtual
int
idealThreadCount() = 0;
42
virtual
void
runParallel(
int
threads,
43
const
std::vector<Topo::ThreadTask*>&,
44
const
Topo::ThreadTaskWorker
& worker,
45
const
Topo::MainThreadCallback
& callback) = 0;
46
47
virtual
void
startTask(std::function<
void
()> fun) = 0;
48
virtual
void
stopAndJoinAllTasks() = 0;
49
50
protected
:
51
virtual
~ThreadPool
(){};
52
ThreadPool
(){};
53
};
54
}
// namespace Topo
Topo::ThreadTask::ThreadTask
ThreadTask()
Definition:
ThreadTask.h:12
TOPO_EXPORT
#define TOPO_EXPORT
Definition:
topo_defines.h:8
Topo::ThreadPool::~ThreadPool
virtual ~ThreadPool()
Definition:
ThreadTask.h:51
Topo::MainThreadCallback
Definition:
ThreadTask.h:16
Topo::ThreadTask
Definition:
ThreadTask.h:9
Topo::MainThreadCallback::MainThreadCallback
MainThreadCallback()
Definition:
ThreadTask.h:19
Topo::ThreadTaskWorker::~ThreadTaskWorker
virtual ~ThreadTaskWorker()
Definition:
ThreadTask.h:28
Topo::ShapeTool
Tools for creating, manipulating and querying Shapes.
Definition:
ShapeTool.h:86
Topo::ThreadTaskWorker::ThreadTaskWorker
ThreadTaskWorker()
Definition:
ThreadTask.h:27
Topo
Definition:
Variant.h:70
Topo::MainThreadCallback::~MainThreadCallback
virtual ~MainThreadCallback()
Definition:
ThreadTask.h:20
Topo::ThreadPool::ThreadPool
ThreadPool()
Definition:
ThreadTask.h:52
Topo::ThreadPool
Definition:
ThreadTask.h:36
Topo::ThreadTask::~ThreadTask
virtual ~ThreadTask()
Definition:
ThreadTask.h:13
Topo::ThreadPoolData
Definition:
ThreadTask.h:32
topo_defines.h
Topo::ThreadTaskWorker
Definition:
ThreadTask.h:24
lexocad
Topo
include
Topo
ThreadTask.h
Generated by
1.8.15