LeviLamina
Loading...
Searching...
No Matches
WorkerPool.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/container/MovePriorityQueue.h"
7#include "mc/deps/core/threading/BackgroundTaskBase.h"
8#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
9#include "mc/deps/profiler/ThreadFrameType.h"
10#include "mc/platform/brstd/flat_set.h"
11
12// auto generated forward declare list
13// clang-format off
15class Scheduler;
16struct WorkerPoolConfig;
17namespace Bedrock::Threading { class Mutex; }
18// clang-format on
19
20class WorkerPool : public ::Bedrock::EnableNonOwnerReferences {
21public:
22 // member variables
23 // NOLINTBEGIN
37 // NOLINTEND
38
39public:
40 // prevent constructor by default
41 WorkerPool& operator=(WorkerPool const&);
42 WorkerPool(WorkerPool const&);
43 WorkerPool();
44
45public:
46 // virtual functions
47 // NOLINTBEGIN
48 virtual ~WorkerPool() /*override*/;
49 // NOLINTEND
50
51public:
52 // member functions
53 // NOLINTBEGIN
54 MCNAPI WorkerPool(::std::string_view name, ::Scheduler& owner);
55
56 MCNAPI
57 WorkerPool(::std::string_view name, ::Core::Profile::ThreadFrameType frameType, ::WorkerPoolConfig const& config);
58
59 MCNAPI bool _checkPendingWork();
60
61#ifdef LL_PLAT_C
62 MCNAPI ::std::vector<::std::thread::id> getThreadIds() const;
63#endif
64
65 MCNAPI void queue(::std::shared_ptr<::BackgroundTaskBase> task, bool queueImmediate);
66
67 MCNAPI uint64 size() const;
68
69 MCNAPI ::std::shared_ptr<::BackgroundTaskBase> tryPop(int minPriority);
70 // NOLINTEND
71
72public:
73 // static functions
74 // NOLINTBEGIN
75 MCNAPI static void _registerPool(::WorkerPool& pool);
76
77 MCNAPI static void _unregisterPool(::WorkerPool& pool);
78 // NOLINTEND
79
80public:
81 // static variables
82 // NOLINTBEGIN
83 MCNAPI static ::brstd::flat_set<::WorkerPool*, ::std::less<::WorkerPool*>, ::std::vector<::WorkerPool*>>&
85
86 MCNAPI static ::Bedrock::Threading::Mutex& sAllPoolsMutex();
87 // NOLINTEND
88
89public:
90 // constructor thunks
91 // NOLINTBEGIN
92 MCNAPI void* $ctor(::std::string_view name, ::Scheduler& owner);
93
94 MCNAPI void*
95 $ctor(::std::string_view name, ::Core::Profile::ThreadFrameType frameType, ::WorkerPoolConfig const& config);
96 // NOLINTEND
97
98public:
99 // destructor thunk
100 // NOLINTBEGIN
101 MCNAPI void $dtor();
102 // NOLINTEND
103
104public:
105 // vftables
106 // NOLINTBEGIN
107 MCNAPI static void** $vftable();
108 // NOLINTEND
109};
Definition BackgroundTaskBase.h:16
Definition EnableNonOwnerReferences.h:7
Definition Mutex.h:10
Definition Scheduler.h:15
MCAPI void queue(::std::shared_ptr<::BackgroundTaskBase > task, bool queueImmediate)
MCAPI void * $ctor(::std::string_view name, ::Core::Profile::ThreadFrameType frameType, ::WorkerPoolConfig const &config)
MCAPI WorkerPool(::std::string_view name, ::Scheduler &owner)
static MCAPI void ** $vftable()
MCAPI ::std::shared_ptr<::BackgroundTaskBase > tryPop(int minPriority)
MCAPI WorkerPool(::std::string_view name, ::Core::Profile::ThreadFrameType frameType, ::WorkerPoolConfig const &config)
static MCAPI ::Bedrock::Threading::Mutex & sAllPoolsMutex()
static MCAPI ::brstd::flat_set<::WorkerPool *, ::std::less<::WorkerPool * >, ::std::vector<::WorkerPool * > > & sAllPools()
static MCAPI void _unregisterPool(::WorkerPool &pool)
MCAPI uint64 size() const
MCAPI void $dtor()
static MCAPI void _registerPool(::WorkerPool &pool)
MCAPI bool _checkPendingWork()
MCAPI void * $ctor(::std::string_view name, ::Scheduler &owner)
Definition WorkerPoolConfig.h:5
Definition Alias.h:14