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
46public:
47 // member variables
48 // NOLINTBEGIN
49 ::ll::TypedStorage<
50 8,
51 16,
52 ::std::map<
53 uint64,
57 ::SubClientId,
58 ::std::shared_ptr<::AsyncVerdictPromise>
59 )>>>
60 mAsyncJoinCallbacks;
61 ::ll::TypedStorage<8, 8, uint64> mNextAsyncJoinCallbackId;
62 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mAsyncJoinCallbacksMutex;
63 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint64, ::AsyncJoinTaskManager::PendingVerdictEntry>>
64 mPendingVerdicts;
65 ::ll::TypedStorage<8, 8, uint64> mNextVerdictID;
66 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::TaskGroup>>> mAsyncJoinTaskGroup;
67 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mVerdictTimeout;
68 ::ll::TypedStorage<8, 56, ::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny>> mDefaultVerdict;
69 // NOLINTEND
70
71public:
72 // prevent constructor by default
73 AsyncJoinTaskManager();
74
75public:
76 // virtual functions
77 // NOLINTBEGIN
78 virtual ~AsyncJoinTaskManager() /*override*/ = default;
79 // NOLINTEND
80
81public:
82 // member functions
83 // NOLINTBEGIN
84 MCAPI AsyncJoinTaskManager(
85 ::std::unique_ptr<::TaskGroup> taskGroup,
86 ::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny> defaultJoinVerdict
87 );
88
89 MCAPI ::Bedrock::Threading::Async<::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny>> handleAsyncJoinCallbacks(
90 ::NetworkIdentifier const& source,
91 ::PlayerAuthenticationInfo const& playerInfo,
92 ::SubClientId subClientId
93 );
94
95 MCAPI ::std::unique_ptr<uint64, ::std::function<void(uint64*)>> registerAsyncJoinCallback(
99 ::SubClientId,
100 ::std::shared_ptr<::AsyncVerdictPromise>
101 )> callback
102 );
103 // NOLINTEND
104
105public:
106 // constructor thunks
107 // NOLINTBEGIN
108 MCAPI void* $ctor(
109 ::std::unique_ptr<::TaskGroup> taskGroup,
110 ::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny> defaultJoinVerdict
111 );
112 // NOLINTEND
113};
Definition AsyncVerdictPromise.h:11
Definition EnableNonOwnerReferences.h:7
The game spells this as an AsyncImplBase<T> base subobject holding the handle; a member at the same o...
Definition Async.h:13
Definition SharedAsync.h:10
Definition NetworkIdentifier.h:10
Definition TaskGroup.h:86
Definition move_only_function.h:9
Definition AsyncJoinTaskManager.h:31
Definition PlayerAuthenticationInfo.h:9