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 ::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny> _handleAllVerdictsTaskCompletion(
102 ::SubClientId subClientId,
103 uint64 verdictId,
105 ::std::variant<::std::monostate, ::AsyncJoinAllow, ::AsyncJoinDeny>>> const& results
106 );
107
108 MCAPI ::Bedrock::Threading::Async<::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny>> handleAsyncJoinCallbacks(
109 ::NetworkIdentifier const& source,
110 ::PlayerAuthenticationInfo const& playerInfo,
111 ::SubClientId subClientId
112 );
113
114 MCAPI ::std::unique_ptr<uint64, ::std::function<void(uint64*)>> registerAsyncJoinCallback(
116 ::NetworkIdentifier const&,
118 ::SubClientId,
119 ::std::shared_ptr<::AsyncVerdictPromise>
120 )> callback
121 );
122 // NOLINTEND
123
124public:
125 // constructor thunks
126 // NOLINTBEGIN
127 MCAPI void* $ctor(
128 ::std::unique_ptr<::TaskGroup> taskGroup,
129 ::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny> defaultJoinVerdict
130 );
131 // NOLINTEND
132
133public:
134 // destructor thunk
135 // NOLINTBEGIN
136 MCAPI void $dtor();
137 // NOLINTEND
138
139public:
140 // vftables
141 // NOLINTBEGIN
142 MCNAPI static void** $vftable();
143 // NOLINTEND
144};
static MCAPI void ** $vftable()
Definition AsyncVerdictPromise.h:11
Definition EnableNonOwnerReferences.h:7
Definition Async.h:8
Definition SharedAsync.h:8
Definition NetworkIdentifier.h:10
Definition TaskGroup.h:53
Definition move_only_function.h:9
Definition AsyncJoinTaskManager.h:31
Definition PlayerAuthenticationInfo.h:8