LeviLamina
Loading...
Searching...
No Matches
PriorityDeferredSubscriptionHub.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/threading/MPSCQueue.h"
7#include "mc/deps/core/utility/pub_sub/ConnectPosition.h"
8#include "mc/deps/core/utility/pub_sub/DeferredSubscriptionHub.h"
9#include "mc/deps/core/utility/pub_sub/DeferredSubscriptionHubBase.h"
10#include "mc/platform/brstd/move_only_function.h"
11
12namespace Bedrock::PubSub {
13
15public:
16 // PriorityDeferredSubscriptionHub inner types declare
17 // clang-format off
18 struct DequeuedEntry;
19 struct QueueEntry;
20 // clang-format on
21
22 // PriorityDeferredSubscriptionHub inner types define
24 public:
25 // member variables
26 // NOLINTBEGIN
27 ::ll::TypedStorage<8, 64, ::brstd::move_only_function<void()>> mFunction;
28 ::ll::TypedStorage<4, 4, int> mOrder;
29 // NOLINTEND
30 };
31
32 struct QueueEntry {
33 public:
34 // member variables
35 // NOLINTBEGIN
36 ::ll::TypedStorage<8, 64, ::brstd::move_only_function<void()>> mFunction;
37 ::ll::TypedStorage<4, 8, ::std::optional<int>> mGroup;
38 ::ll::TypedStorage<4, 4, ::Bedrock::PubSub::ConnectPosition> mPosition;
39 // NOLINTEND
40 };
41
42 using DequeuedItemsType = ::std::deque<::Bedrock::PubSub::PriorityDeferredSubscriptionHub::DequeuedEntry>;
43
44 using QueueType = ::Bedrock::MPSCQueue<
46 64,
47 ::std::allocator<::Bedrock::PubSub::PriorityDeferredSubscriptionHub::QueueEntry>,
48 0>;
49
50public:
51 // member variables
52 // NOLINTBEGIN
53 ::ll::TypedStorage<
54 8,
55 560,
58 64,
59 ::std::allocator<::Bedrock::PubSub::PriorityDeferredSubscriptionHub::QueueEntry>,
60 0>>
61 mQueue;
62 ::ll::TypedStorage<8, 40, ::std::deque<::Bedrock::PubSub::PriorityDeferredSubscriptionHub::DequeuedEntry>>
63 mDequeuedItems;
64 // NOLINTEND
65
66public:
67 // virtual functions
68 // NOLINTBEGIN
69 virtual void flushPendingEvents() /*override*/;
70
71 virtual ::Bedrock::PubSub::DeferredSubscriptionHub::HubType getHubType() const /*override*/;
72
73 virtual bool _runOneEvent() /*override*/;
74
75 virtual void _enqueue(
76 ::brstd::move_only_function<void()> fn,
77 ::Bedrock::PubSub::ConnectPosition at,
78 ::std::optional<int> group
79 ) /*override*/;
80
81 virtual void _runDequeuedEntry(::Bedrock::PubSub::PriorityDeferredSubscriptionHub::DequeuedEntry&& entry);
82 // NOLINTEND
83
84public:
85 // virtual function thunks
86 // NOLINTBEGIN
87 MCAPI void $flushPendingEvents();
88
89 MCFOLD ::Bedrock::PubSub::DeferredSubscriptionHub::HubType $getHubType() const;
90
91 MCAPI bool $_runOneEvent();
92
93 MCAPI void $_enqueue(
94 ::brstd::move_only_function<void()> fn,
95 ::Bedrock::PubSub::ConnectPosition at,
96 ::std::optional<int> group
97 );
98
99#ifdef LL_PLAT_S
100 MCAPI void $_runDequeuedEntry(::Bedrock::PubSub::PriorityDeferredSubscriptionHub::DequeuedEntry&& entry);
101#else // LL_PLAT_C
102 MCFOLD void $_runDequeuedEntry(::Bedrock::PubSub::PriorityDeferredSubscriptionHub::DequeuedEntry&& entry);
103#endif
104
105
106 // NOLINTEND
107
108public:
109 // vftables
110 // NOLINTBEGIN
111 MCNAPI static void** $vftable();
112 // NOLINTEND
113};
114
115} // namespace Bedrock::PubSub
Definition MPSCQueue.h:8
Definition DeferredSubscriptionHubBase.h:16
Definition DeferredSubscriptionHub.h:17
Definition PriorityDeferredSubscriptionHub.h:14
Definition move_only_function.h:9
STL namespace.
Definition PriorityDeferredSubscriptionHub.h:23
Definition PriorityDeferredSubscriptionHub.h:32