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