3#include "mc/_HeaderOutputPredefine.h"
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"
15namespace OreUI::Detail {
class Binder; }
17namespace OreUI::Detail {
class IQuery; }
20namespace OreUI::Detail {
35 using FactoryPtr = ::std::unique_ptr<::OreUI::Detail::IHandlerFactory>;
40 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OreUI::Detail::IHandlerFactory>> mHandlerFactory;
41 ::ll::TypedStorage<8, 8, void*> mHandle;
48 enum class EQueryState : uint {
57 ::ll::TypedStorage<8, 8, ::OreUI::Detail::IdType> mId;
58 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OreUI::Detail::IQuery>> mQuery;
59 ::ll::TypedStorage<8, 8, ::OreUI::Detail::QueryRegistry*> mRegistry;
60 ::ll::TypedStorage<4, 4, int> mRank;
61 ::ll::TypedStorage<1, 1, ::OreUI::ECapabilities> mCapabilities;
62 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mToken;
63 ::ll::TypedStorage<4, 4, ::OreUI::Detail::QueryRegistry::LiveQuery::EQueryState> mState;
68 LiveQuery& operator=(LiveQuery
const&);
69 LiveQuery(LiveQuery
const&);
75 MCAPI LiveQuery(::OreUI::Detail::QueryRegistry::LiveQuery&& other);
78 ::OreUI::Detail::Binder
const& binder,
79 ::OreUI::Detail::IdType
const&
id,
80 ::OreUI::ECapabilities capabilities,
81 ::std::unique_ptr<::OreUI::Detail::IQuery> query,
82 ::OreUI::Detail::QueryRegistry* registry,
86 MCAPI ::OreUI::Detail::QueryRegistry::LiveQuery& operator=(::OreUI::Detail::QueryRegistry::LiveQuery&& other);
94 MCAPI
void* $ctor(::OreUI::Detail::QueryRegistry::LiveQuery&& other);
97 ::OreUI::Detail::Binder
const& binder,
98 ::OreUI::Detail::IdType
const&
id,
99 ::OreUI::ECapabilities capabilities,
100 ::std::unique_ptr<::OreUI::Detail::IQuery> query,
101 ::OreUI::Detail::QueryRegistry* registry,
117 ::ll::TypedStorage<8, 8, ::OreUI::Detail::IdType> id;
118 ::ll::TypedStorage<4, 4, int> rank;
122 ::std::reference_wrapper<::brstd::flat_map<
123 ::OreUI::Detail::IdType,
124 ::OreUI::Detail::QueryRegistry::LiveQuery,
125 ::std::less<::OreUI::Detail::IdType>,
126 ::std::vector<::OreUI::Detail::IdType>,
127 ::std::vector<::OreUI::Detail::QueryRegistry::LiveQuery>>>>
132 using QueryPtr = ::std::unique_ptr<::OreUI::Detail::IQuery>;
137 ::ll::TypedStorage<8, 8, ::std::reference_wrapper<::OreUI::Detail::Binder>> mBinder;
138 ::ll::TypedStorage<8, 8, void*> mDestroyHandle;
139 ::ll::TypedStorage<1, 1, bool> mPurgeQueries;
140 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::OreUI::Detail::QueryRegistry::QueryTemplate>>
146 ::OreUI::Detail::IdType,
147 ::OreUI::Detail::QueryRegistry::LiveQuery,
148 ::std::less<::OreUI::Detail::IdType>,
149 ::std::vector<::OreUI::Detail::IdType>,
150 ::std::vector<::OreUI::Detail::QueryRegistry::LiveQuery>>>
156 ::OreUI::Detail::IdType,
157 ::OreUI::Detail::QueryRegistry::LiveQuery,
158 ::std::less<::OreUI::Detail::IdType>,
159 ::std::vector<::OreUI::Detail::IdType>,
160 ::std::vector<::OreUI::Detail::QueryRegistry::LiveQuery>>>
162 ::ll::TypedStorage<8, 24, ::std::vector<::OreUI::Detail::QueryRegistry::DirtyQuery>> mDirtyQueries;
163 ::ll::TypedStorage<8, 24, ::std::vector<::OreUI::Detail::QueryRegistry::LiveQuery>> mAdditionQueue;
164 ::ll::TypedStorage<1, 1, bool> mIterating;
174 virtual ~QueryRegistry() ;
176 virtual void onReadyForBindings() ;
178 virtual void onSuspend() ;
180 virtual void onBindingsReleased() ;
182 virtual void update(
double const time) ;
188 MCAPI
explicit QueryRegistry(::OreUI::Detail::Binder& binder);
190 MCAPI
void _createQuery(
191 ::OreUI::Detail::IdType
const&
id,
192 ::OreUI::ECapabilities capabilities,
193 ::std::unique_ptr<::OreUI::Detail::IQuery> query,
197 MCAPI
void _syncQueries();
199 MCAPI ::std::vector<::OreUI::Debug::QueryInformation> getQueryInformation()
const;
205 MCAPI
void* $ctor(::OreUI::Detail::Binder& binder);
217 MCAPI
void $onReadyForBindings();
219 MCAPI
void $onSuspend();
221 MCFOLD
void $onBindingsReleased();
223 MCAPI
void $update(
double const time);
Definition IHandlerFactory.h:7
Definition QueryRegistry.h:19
Definition QueryRegistry.h:17
Definition QueryRegistry.h:7
static MCAPI void ** $vftable()
Definition QueryRegistry.h:25