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"
14namespace OreUI::Detail {
class Binder; }
16namespace OreUI::Detail {
class IQuery; }
19namespace OreUI::Detail {
34 using FactoryPtr = ::std::unique_ptr<::OreUI::Detail::IHandlerFactory>;
39 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OreUI::Detail::IHandlerFactory>> mHandlerFactory;
40 ::ll::TypedStorage<8, 8, void*> mHandle;
46 MCAPI
void bind(::std::string
const& queryName, ::OreUI::Detail::Binder
const& binder);
53 enum class EQueryState : uint {
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;
73 LiveQuery& operator=(LiveQuery
const&);
74 LiveQuery(LiveQuery
const&);
80 MCAPI LiveQuery(::OreUI::Detail::QueryRegistry::LiveQuery&& other);
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,
91 MCAPI ::OreUI::Detail::QueryRegistry::LiveQuery& operator=(::OreUI::Detail::QueryRegistry::LiveQuery&& other);
99 MCAPI
void* $ctor(::OreUI::Detail::QueryRegistry::LiveQuery&& other);
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,
122 ::ll::TypedStorage<8, 8, ::OreUI::Detail::IdType> id;
123 ::ll::TypedStorage<4, 4, int> rank;
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>>>>
137 using QueryPtr = ::std::unique_ptr<::OreUI::Detail::IQuery>;
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>>
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>>>
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>>>
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;
175 virtual ~QueryRegistry() ;
177 virtual void onReadyForBindings() ;
179 virtual void onSuspend() ;
181 virtual void onBindingsReleased() ;
183 virtual void update(
double const time) ;
189 MCAPI
void _createQuery(
190 ::OreUI::Detail::IdType
const&
id,
191 ::OreUI::ECapabilities capabilities,
192 ::std::unique_ptr<::OreUI::Detail::IQuery> query,
196 MCAPI
void _syncQueries();
208 MCAPI
void $onReadyForBindings();
210 MCAPI
void $onSuspend();
212 MCFOLD
void $onBindingsReleased();
214 MCAPI
void $update(
double const time);
Definition IHandlerFactory.h:7
Definition QueryRegistry.h:19
Definition QueryRegistry.h:17
Definition QueryRegistry.h:7
Definition QueryRegistry.h:25