LeviLamina
Loading...
Searching...
No Matches
DeferredSubscriptionHub.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/pub_sub/ConnectPosition.h"
7
8// auto generated forward declare list
9// clang-format off
10namespace Bedrock::PubSub { class DeferredSubscription; }
11namespace Bedrock::PubSub { class RawSubscription; }
12// clang-format on
13
14namespace Bedrock::PubSub {
15
17public:
18 // DeferredSubscriptionHub inner types define
19 enum class HubType : int {
20 Priority = 0,
21 Fifo = 1,
22 RecursiveFIFO = 2,
23 };
24
25public:
26 // virtual functions
27 // NOLINTBEGIN
28 virtual ~DeferredSubscriptionHub() = default;
29
30 virtual uint64 runDeferredEvents(uint64 maxToRun) = 0;
31
32 virtual uint64 runDeferredEventsForDuration(::std::chrono::milliseconds msec) = 0;
33
34 virtual void flushPendingEvents() = 0;
35
36 virtual void clear() = 0;
37
38 virtual uint64 erase(::Bedrock::PubSub::RawSubscription& subscription) = 0;
39
40 virtual uint64 size() const = 0;
41
42 virtual bool empty() const = 0;
43
44 virtual ::Bedrock::PubSub::DeferredSubscriptionHub::HubType getHubType() const = 0;
45
46 virtual void _join(::Bedrock::PubSub::DeferredSubscription&& subscription) = 0;
47
48 virtual void
49 _enqueue(::std::function<void()> fn, ::Bedrock::PubSub::ConnectPosition at, ::std::optional<int> group) = 0;
50 // NOLINTEND
51
52public:
53 // virtual function thunks
54 // NOLINTBEGIN
55
56 // NOLINTEND
57
58public:
59 // vftables
60 // NOLINTBEGIN
61 MCNAPI static void** $vftable();
62 // NOLINTEND
63};
64
65} // namespace Bedrock::PubSub
Definition DeferredSubscriptionHub.h:16
Definition DeferredSubscription.h:10
Definition RawSubscription.h:10