3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/oreui/interface/IResourceHandler.h"
7#include "mc/client/gui/oreui/resources/ResourceRequest.h"
8#include "mc/client/gui/oreui/resources/ResourceResponse.h"
9#include "mc/deps/core/threading/MPMCQueue.h"
10#include "mc/deps/core/threading/TaskGroup.h"
11#include "mc/deps/game_refs/WeakRef.h"
12#include "mc/platform/UUID.h"
33 enum class FetchRequestState :
int {
35 ThumbnailFetchPending = 1,
36 ThumbnailReceived = 2,
38 UserImageProcessed = 4,
45 ::ll::TypedStorage<8, 32, ::std::string> mId;
46 ::ll::TypedStorage<8, 136, ::std::pair<::OreUI::ResourceRequest, ::OreUI::ResourceResponse>> mReqResponse;
47 ::ll::TypedStorage<8, 16, ::WeakRef<::Editor::ThumbnailFileBytes>> mThumbnail;
48 ::ll::TypedStorage<4, 4, ::OreUI::StructureResourceHandler::FetchRequestState> mRequestState;
49 ::ll::TypedStorage<4, 4, ::OreUI::IResourceHandler::Status> mStatus;
54 ThumbnailRequest& operator=(ThumbnailRequest
const&);
55 ThumbnailRequest(ThumbnailRequest
const&);
61 MCAPI ThumbnailRequest(::OreUI::StructureResourceHandler::ThumbnailRequest&&);
63 MCAPI ~ThumbnailRequest();
69 MCAPI
void* $ctor(::OreUI::StructureResourceHandler::ThumbnailRequest&&);
79 using ReqResponsePair = ::std::pair<::OreUI::ResourceRequest, ::OreUI::ResourceResponse>;
84 ::ll::TypedStorage<8, 8, ::ResourcePackManager const&> mPackManager;
85 ::ll::TypedStorage<8, 8, ::OreUI::TemporaryTextureHolder&> mTextureHolder;
86 ::ll::TypedStorage<8, 616, ::MPMCQueue<::std::pair<::OreUI::ResourceRequest, ::OreUI::ResourceResponse>>>
87 mStructureRequestsQueue;
88 ::ll::TypedStorage<1, 1, bool> mStructureRequestsQueuePending;
89 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::IClientInstance>> mClient;
90 ::ll::TypedStorage<8, 64, ::std::unordered_map<::mce::UUID, ::OreUI::StructureResourceHandler::ThumbnailRequest>>
92 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mFetchRequestsMutex;
93 ::ll::TypedStorage<8, 336, ::TaskGroup> mTaskGroup;
98 StructureResourceHandler& operator=(StructureResourceHandler
const&);
99 StructureResourceHandler(StructureResourceHandler
const&);
100 StructureResourceHandler();
105 virtual ~StructureResourceHandler() =
default;
107 virtual void update() ;
109 virtual void onViewCreate(::IClientInstance& client) ;
111 virtual ::OreUI::IResourceHandler::Status
112 onResourceRequest(::OreUI::ResourceRequest
const& request, ::OreUI::ResourceResponse& response) ;
114 virtual ::OreUI::IResourceHandler::Status
115 onResourceStreamRequest(::OreUI::ResourceRequest
const&, ::OreUI::ResourceStreamResponse&) ;
121 MCAPI
void _handleFetchRequests();
123 MCAPI
bool _sendFetchAsync(
124 ::std::string_view
id,
125 ::std::pair<::OreUI::ResourceRequest, ::OreUI::ResourceResponse>
const& reqResponsePair
132 MCAPI
void $update();
134 MCAPI
void $onViewCreate(::IClientInstance& client);
136 MCAPI ::OreUI::IResourceHandler::Status
137 $onResourceRequest(::OreUI::ResourceRequest
const& request, ::OreUI::ResourceResponse& response);
139 MCFOLD ::OreUI::IResourceHandler::Status
140 $onResourceStreamRequest(::OreUI::ResourceRequest
const&, ::OreUI::ResourceStreamResponse&);
Definition ThumbnailFileBytes.h:10
Definition IClientInstance.h:5
Definition ResourceStreamResponse.h:7
Definition StructureResourceHandler.h:7
static MCAPI void ** $vftable()
Definition TemporaryTextureHolder.h:7
Definition ResourcePackManager.h:30
Definition StructureResourceHandler.h:17