LeviLamina
Loading...
Searching...
No Matches
EnableQueueForThread.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/threading/Async.h"
7
8// auto generated forward declare list
9// clang-format off
10class Scheduler;
11class TaskGroup;
12class WorkerPool;
13// clang-format on
14
15namespace Bedrock::Threading {
16
17class EnableQueueForThread {
18public:
19 // member variables
20 // NOLINTBEGIN
21 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mQueueForThreadTaskGroup;
22 // NOLINTEND
23
24public:
25 // prevent constructor by default
26 EnableQueueForThread();
27
28public:
29 // virtual functions
30 // NOLINTBEGIN
31 virtual ~EnableQueueForThread();
32 // NOLINTEND
33
34public:
35 // member functions
36 // NOLINTBEGIN
37 MCAPI EnableQueueForThread(::WorkerPool& workerPool, ::Scheduler& scheduler, ::std::string name);
38
39 MCAPI void flushThreadTasks();
40
41 MCAPI ::Bedrock::Threading::Async<void> queue(::std::function<void()>&& callback);
42
43#ifdef LL_PLAT_C
44 MCAPI ::Bedrock::Threading::Async<void> queueAutoRequeue(::std::function<bool()>&& callback);
45#endif
46 // NOLINTEND
47
48public:
49 // constructor thunks
50 // NOLINTBEGIN
51 MCAPI void* $ctor(::WorkerPool& workerPool, ::Scheduler& scheduler, ::std::string name);
52 // NOLINTEND
53
54public:
55 // destructor thunk
56 // NOLINTBEGIN
57 MCAPI void $dtor();
58 // NOLINTEND
59
60public:
61 // vftables
62 // NOLINTBEGIN
63 MCNAPI static void** $vftable();
64 // NOLINTEND
65};
66
67} // namespace Bedrock::Threading
Definition Scheduler.h:15
Definition TaskGroup.h:55
Definition WorkerPool.h:20