userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
single_threaded_task_processors_pool.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/engine/task/single_threaded_task_processors_pool.hpp
4
/// @brief @copybrief engine::SingleThreadedTaskProcessorsPool
5
6
#
include
<
memory
>
7
#
include
<
vector
>
8
9
#
include
<
userver
/
engine
/
task
/
task_processor_fwd
.
hpp
>
10
11
USERVER_NAMESPACE_BEGIN
12
13
namespace
engine {
14
15
struct
TaskProcessorConfig;
16
17
/// @brief Pool of single-threaded TaskProcessors
18
class
SingleThreadedTaskProcessorsPool
final
{
19
public
:
20
// Do NOT use directly! Use components::SingleThreadedTaskProcessors or for
21
// tests and benchmarks use SingleThreadedTaskProcessorsPool::MakeForTests()
22
explicit
SingleThreadedTaskProcessorsPool(
const
engine::TaskProcessorConfig& config_base);
23
~SingleThreadedTaskProcessorsPool();
24
25
size_t GetSize()
const
noexcept
{
return
processors_.size(); }
26
engine::TaskProcessor& At(size_t idx) {
return
*processors_.at(idx); }
27
28
// For tests and benchmarks only
29
static
SingleThreadedTaskProcessorsPool MakeForTests(std::size_t worker_threads);
30
31
private
:
32
std::vector<std::unique_ptr<engine::TaskProcessor>> processors_;
33
};
34
35
}
// namespace engine
36
37
USERVER_NAMESPACE_END
userver
engine
task
single_threaded_task_processors_pool.hpp
Generated on
for userver by
Doxygen
1.17.0