LeviLamina
Loading...
Searching...
No Matches
AsyncJoinTaskManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/SubClientId.h"
7#include "mc/deps/core/threading/Async.h"
8#include "mc/deps/core/threading/SharedAsync.h"
9#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
10#include "mc/network/AsyncJoinAllow.h"
11#include "mc/network/AsyncJoinDeny.h"
12#include "mc/network/SourceClientHash.h"
13#include "mc/platform/brstd/move_only_function.h"
14
15// auto generated forward declare list
16// clang-format off
19class TaskGroup;
21// clang-format on
22
23class AsyncJoinTaskManager : public ::Bedrock::EnableNonOwnerReferences {
24public:
25 // AsyncJoinTaskManager inner types declare
26 // clang-format off
28 // clang-format on
29
30 // AsyncJoinTaskManager inner types define
32 public:
33 // member variables
34 // NOLINTBEGIN
35 ::ll::TypedStorage<
36 8,
37 16,
39 ::std::variant<::std::monostate, ::AsyncJoinAllow, ::AsyncJoinDeny>>>>>
40 pendingVerdict;
41 ::ll::TypedStorage<1, 1, bool> disconnected;
42 ::ll::TypedStorage<8, 8, ::SourceClientHash> sourceClientHash;
43 // NOLINTEND
44
45 public:
46 // member functions
47 // NOLINTBEGIN
49 // NOLINTEND
50
51 public:
52 // destructor thunk
53 // NOLINTBEGIN
54 MCFOLD void $dtor();
55 // NOLINTEND
56 };
57
58public:
59 // member variables
60 // NOLINTBEGIN
61 ::ll::TypedStorage<
62 8,
63 16,
64 ::std::map<
65 uint64,
69 ::SubClientId,
70 ::std::shared_ptr<::AsyncVerdictPromise>
71 )>>>
72 mAsyncJoinCallbacks;
73 ::ll::TypedStorage<8, 8, uint64> mNextAsyncJoinCallbackId;
74 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mAsyncJoinCallbacksMutex;
75 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint64, ::AsyncJoinTaskManager::PendingVerdictEntry>>
76 mPendingVerdicts;
77 ::ll::TypedStorage<8, 8, uint64> mNextVerdictID;
78 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::TaskGroup>>> mAsyncJoinTaskGroup;
79 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mVerdictTimeout;
80 ::ll::TypedStorage<8, 56, ::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny>> mDefaultVerdict;
81 // NOLINTEND
82
83public:
84 // prevent constructor by default
85 AsyncJoinTaskManager();
86
87public:
88 // virtual functions
89 // NOLINTBEGIN
90 virtual ~AsyncJoinTaskManager() /*override*/;
91 // NOLINTEND
92
93public:
94 // member functions
95 // NOLINTBEGIN
96 MCAPI AsyncJoinTaskManager(
97 ::std::unique_ptr<::TaskGroup> taskGroup,
98 ::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny> defaultJoinVerdict
99 );
100
101 MCAPI void _expirePendingVerdict(uint64 id);
102
103 MCAPI ::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny> _handleAllVerdictsTaskCompletion(
104 ::SubClientId subClientId,
105 uint64 verdictId,
107 ::std::variant<::std::monostate, ::AsyncJoinAllow, ::AsyncJoinDeny>>> const& results
108 );
109
110 MCAPI ::Bedrock::Threading::Async<::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny>> handleAsyncJoinCallbacks(
111 ::NetworkIdentifier const& source,
112 ::PlayerAuthenticationInfo const& playerInfo,
113 ::SubClientId subClientId
114 );
115
116 MCAPI ::std::unique_ptr<uint64, ::std::function<void(uint64*)>> registerAsyncJoinCallback(
118 ::NetworkIdentifier const&,
120 ::SubClientId,
121 ::std::shared_ptr<::AsyncVerdictPromise>
122 )> callback
123 );
124
125 MCAPI void removeExistingPendingVerdictIfPresent(::SourceClientHash);
126 // NOLINTEND
127
128public:
129 // constructor thunks
130 // NOLINTBEGIN
131 MCAPI void* $ctor(
132 ::std::unique_ptr<::TaskGroup> taskGroup,
133 ::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny> defaultJoinVerdict
134 );
135 // NOLINTEND
136
137public:
138 // destructor thunk
139 // NOLINTBEGIN
140 MCAPI void $dtor();
141 // NOLINTEND
142
143public:
144 // vftables
145 // NOLINTBEGIN
146 MCNAPI static void** $vftable();
147 // NOLINTEND
148};
static MCAPI void ** $vftable()
Definition AsyncVerdictPromise.h:14
Definition EnableNonOwnerReferences.h:7
Definition Async.h:8
Definition SharedAsync.h:8
Definition NetworkIdentifier.h:10
Definition SourceClientHash.h:13
Definition TaskGroup.h:55
Definition move_only_function.h:9
Definition AsyncJoinTaskManager.h:31
Definition PlayerAuthenticationInfo.h:9