LeviLamina
Loading...
Searching...
No Matches
QueryRegistry.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/oreui/binding/ECapabilities.h"
7#include "mc/client/gui/oreui/binding/IdType.h"
8#include "mc/client/gui/oreui/binding/interface/IBindable.h"
9#include "mc/deps/core/utility/pub_sub/Subscription.h"
10#include "mc/platform/brstd/flat_map.h"
11
12// auto generated forward declare list
13// clang-format off
14namespace OreUI::Detail { class Binder; }
15namespace OreUI::Detail { class IHandlerFactory; }
16namespace OreUI::Detail { class IQuery; }
17// clang-format on
18
19namespace OreUI::Detail {
20
21class QueryRegistry : public ::OreUI::Detail::IBindable {
22public:
23 // QueryRegistry inner types declare
24 // clang-format off
25 class QueryTemplate;
26 class LiveQuery;
27 struct DirtyQuery;
28 // clang-format on
29
30 // QueryRegistry inner types define
31 class QueryTemplate {
32 public:
33 // QueryTemplate inner types define
34 using FactoryPtr = ::std::unique_ptr<::OreUI::Detail::IHandlerFactory>;
35
36 public:
37 // member variables
38 // NOLINTBEGIN
39 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OreUI::Detail::IHandlerFactory>> mHandlerFactory;
40 ::ll::TypedStorage<8, 8, void*> mHandle;
41 // NOLINTEND
42
43 public:
44 // member functions
45 // NOLINTBEGIN
46 MCAPI void bind(::std::string const& queryName, ::OreUI::Detail::Binder const& binder);
47 // NOLINTEND
48 };
49
50 class LiveQuery {
51 public:
52 // LiveQuery inner types define
53 enum class EQueryState : uint {
54 Unknown = 0,
55 Active = 1,
56 Deleted = 2,
57 };
58
59 public:
60 // member variables
61 // NOLINTBEGIN
62 ::ll::TypedStorage<8, 8, ::OreUI::Detail::IdType> mId;
63 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OreUI::Detail::IQuery>> mQuery;
64 ::ll::TypedStorage<8, 8, ::OreUI::Detail::QueryRegistry*> mRegistry;
65 ::ll::TypedStorage<4, 4, int> mRank;
66 ::ll::TypedStorage<1, 1, ::OreUI::ECapabilities> mCapabilities;
67 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mToken;
68 ::ll::TypedStorage<4, 4, ::OreUI::Detail::QueryRegistry::LiveQuery::EQueryState> mState;
69 // NOLINTEND
70
71 public:
72 // prevent constructor by default
73 LiveQuery& operator=(LiveQuery const&);
74 LiveQuery(LiveQuery const&);
75 LiveQuery();
76
77 public:
78 // member functions
79 // NOLINTBEGIN
80 MCAPI LiveQuery(::OreUI::Detail::QueryRegistry::LiveQuery&& other);
81
82 MCAPI LiveQuery(
83 ::OreUI::Detail::Binder const& binder,
84 ::OreUI::Detail::IdType const& id,
85 ::OreUI::ECapabilities capabilities,
86 ::std::unique_ptr<::OreUI::Detail::IQuery> query,
87 ::OreUI::Detail::QueryRegistry* registry,
88 int rank
89 );
90
91 MCAPI ::OreUI::Detail::QueryRegistry::LiveQuery& operator=(::OreUI::Detail::QueryRegistry::LiveQuery&& other);
92
93 MCAPI ~LiveQuery();
94 // NOLINTEND
95
96 public:
97 // constructor thunks
98 // NOLINTBEGIN
99 MCAPI void* $ctor(::OreUI::Detail::QueryRegistry::LiveQuery&& other);
100
101 MCAPI void* $ctor(
102 ::OreUI::Detail::Binder const& binder,
103 ::OreUI::Detail::IdType const& id,
104 ::OreUI::ECapabilities capabilities,
105 ::std::unique_ptr<::OreUI::Detail::IQuery> query,
106 ::OreUI::Detail::QueryRegistry* registry,
107 int rank
108 );
109 // NOLINTEND
110
111 public:
112 // destructor thunk
113 // NOLINTBEGIN
114 MCAPI void $dtor();
115 // NOLINTEND
116 };
117
118 struct DirtyQuery {
119 public:
120 // member variables
121 // NOLINTBEGIN
122 ::ll::TypedStorage<8, 8, ::OreUI::Detail::IdType> id;
123 ::ll::TypedStorage<4, 4, int> rank;
124 ::ll::TypedStorage<
125 8,
126 8,
127 ::std::reference_wrapper<::brstd::flat_map<
128 ::OreUI::Detail::IdType,
129 ::OreUI::Detail::QueryRegistry::LiveQuery,
130 ::std::less<::OreUI::Detail::IdType>,
131 ::std::vector<::OreUI::Detail::IdType>,
132 ::std::vector<::OreUI::Detail::QueryRegistry::LiveQuery>>>>
133 container;
134 // NOLINTEND
135 };
136
137 using QueryPtr = ::std::unique_ptr<::OreUI::Detail::IQuery>;
138
139public:
140 // member variables
141 // NOLINTBEGIN
142 ::ll::TypedStorage<8, 8, ::std::reference_wrapper<::OreUI::Detail::Binder>> mBinder;
143 ::ll::TypedStorage<8, 8, void*> mDestroyHandle;
144 ::ll::TypedStorage<1, 1, bool> mPurgeQueries;
145 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::OreUI::Detail::QueryRegistry::QueryTemplate>>
146 mQueryTemplates;
147 ::ll::TypedStorage<
148 8,
149 48,
150 ::brstd::flat_map<
151 ::OreUI::Detail::IdType,
152 ::OreUI::Detail::QueryRegistry::LiveQuery,
153 ::std::less<::OreUI::Detail::IdType>,
154 ::std::vector<::OreUI::Detail::IdType>,
155 ::std::vector<::OreUI::Detail::QueryRegistry::LiveQuery>>>
156 mReactiveQueries;
157 ::ll::TypedStorage<
158 8,
159 48,
160 ::brstd::flat_map<
161 ::OreUI::Detail::IdType,
162 ::OreUI::Detail::QueryRegistry::LiveQuery,
163 ::std::less<::OreUI::Detail::IdType>,
164 ::std::vector<::OreUI::Detail::IdType>,
165 ::std::vector<::OreUI::Detail::QueryRegistry::LiveQuery>>>
166 mDynamicQueries;
167 ::ll::TypedStorage<8, 24, ::std::vector<::OreUI::Detail::QueryRegistry::DirtyQuery>> mDirtyQueries;
168 ::ll::TypedStorage<8, 24, ::std::vector<::OreUI::Detail::QueryRegistry::LiveQuery>> mAdditionQueue;
169 ::ll::TypedStorage<1, 1, bool> mIterating;
170 // NOLINTEND
171
172public:
173 // virtual functions
174 // NOLINTBEGIN
175 virtual ~QueryRegistry() /*override*/;
176
177 virtual void onReadyForBindings() /*override*/;
178
179 virtual void onSuspend() /*override*/;
180
181 virtual void onBindingsReleased() /*override*/;
182
183 virtual void update(double const time) /*override*/;
184 // NOLINTEND
185
186public:
187 // member functions
188 // NOLINTBEGIN
189 MCAPI void _createQuery(
190 ::OreUI::Detail::IdType const& id,
191 ::OreUI::ECapabilities capabilities,
192 ::std::unique_ptr<::OreUI::Detail::IQuery> query,
193 int rank
194 );
195
196 MCAPI void _syncQueries();
197 // NOLINTEND
198
199public:
200 // destructor thunk
201 // NOLINTBEGIN
202 MCAPI void $dtor();
203 // NOLINTEND
204
205public:
206 // virtual function thunks
207 // NOLINTBEGIN
208 MCAPI void $onReadyForBindings();
209
210 MCAPI void $onSuspend();
211
212 MCFOLD void $onBindingsReleased();
213
214 MCAPI void $update(double const time);
215 // NOLINTEND
216};
217
218} // namespace OreUI::Detail
Definition Binder.h:7
Definition IHandlerFactory.h:7
Definition IQuery.h:7
Definition QueryRegistry.h:19
Definition QueryRegistry.h:17
Definition QueryRegistry.h:7
Definition QueryRegistry.h:25