LeviLamina
Loading...
Searching...
No Matches
EnableFIFOQueueForMainThread.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/minecraft/threading/EnableQueueForMainThread.h"
7#include "mc/platform/threading/Mutex.h"
8
9namespace Bedrock::Threading {
10
11class EnableFIFOQueueForMainThread : public ::Bedrock::Threading::EnableQueueForMainThread {
12public:
13 // EnableFIFOQueueForMainThread inner types define
14 using Task = ::std::function<void()>;
15
16public:
17 // member variables
18 // NOLINTBEGIN
19 ::ll::TypedStorage<8, 40, ::std::deque<::std::function<void()>>> mQueue;
20 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mQueueMutex;
21 // NOLINTEND
22
23#ifdef LL_PLAT_S
24#else // LL_PLAT_C
25public:
26 // prevent constructor by default
27 EnableFIFOQueueForMainThread();
28
29#endif
30public:
31 // member functions
32 // NOLINTBEGIN
33#ifdef LL_PLAT_C
34 MCAPI explicit EnableFIFOQueueForMainThread(::std::string name);
35
36 MCAPI void _runNextTask();
37
38 MCAPI void queueForMainThreadFIFO(::std::function<void()>&& task);
39#endif
40 // NOLINTEND
41
42public:
43 // constructor thunks
44 // NOLINTBEGIN
45#ifdef LL_PLAT_C
46 MCAPI void* $ctor(::std::string name);
47#endif
48 // NOLINTEND
49
50public:
51 // vftables
52 // NOLINTBEGIN
53 MCNAPI static void** $vftable();
54 // NOLINTEND
55};
56
57} // namespace Bedrock::Threading
Definition EnableQueueForMainThread.h:11