3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/oreui/interface/IResourceHandler.h"
7#include "mc/client/gui/oreui/interface/ResourceHandlerStatus.h"
8#include "mc/client/gui/oreui/resources/ResourceRequest.h"
9#include "mc/client/gui/oreui/resources/ResourceResponse.h"
10#include "mc/deps/core/threading/MPMCQueue.h"
11#include "mc/deps/core/threading/TaskGroup.h"
12#include "mc/deps/game_refs/WeakRef.h"
13#include "mc/platform/UUID.h"
34 enum class FetchRequestState :
int {
36 ThumbnailFetchPending = 1,
37 ThumbnailReceived = 2,
39 UserImageProcessed = 4,
46 ::ll::TypedStorage<8, 32, ::std::string> mId;
47 ::ll::TypedStorage<8, 136, ::std::pair<::Gameface::ResourceRequest, ::Gameface::ResourceResponse>> mReqResponse;
48 ::ll::TypedStorage<8, 16, ::WeakRef<::Editor::ThumbnailFileBytes>> mThumbnail;
49 ::ll::TypedStorage<4, 4, ::OreUI::StructureResourceHandler::FetchRequestState> mRequestState;
50 ::ll::TypedStorage<4, 4, ::Gameface::ResourceHandlerStatus> mStatus;
56 MCAPI ~ThumbnailRequest();
66 using ReqResponsePair = ::std::pair<::Gameface::ResourceRequest, ::Gameface::ResourceResponse>;
71 ::ll::TypedStorage<8, 8, ::ResourcePackManager const&> mPackManager;
72 ::ll::TypedStorage<8, 8, ::Gameface::TemporaryTextureHolder&> mTextureHolder;
73 ::ll::TypedStorage<8, 616, ::MPMCQueue<::std::pair<::Gameface::ResourceRequest, ::Gameface::ResourceResponse>>>
74 mStructureRequestsQueue;
75 ::ll::TypedStorage<1, 1, bool> mStructureRequestsQueuePending;
76 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::IClientInstance>> mClient;
77 ::ll::TypedStorage<8, 64, ::std::unordered_map<::mce::UUID, ::OreUI::StructureResourceHandler::ThumbnailRequest>>
79 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mFetchRequestsMutex;
80 ::ll::TypedStorage<8, 336, ::TaskGroup> mTaskGroup;
85 StructureResourceHandler& operator=(StructureResourceHandler
const&);
86 StructureResourceHandler(StructureResourceHandler
const&);
87 StructureResourceHandler();
92 virtual ~StructureResourceHandler() ;
94 virtual void update() ;
96 virtual void onViewCreate(::IClientInstance& client) ;
98 virtual ::Gameface::ResourceHandlerStatus
99 onResourceRequest(::Gameface::ResourceRequest
const& request, ::Gameface::ResourceResponse& response) ;
101 virtual ::Gameface::ResourceHandlerStatus
102 onResourceStreamRequest(::Gameface::ResourceRequest
const&, ::Gameface::ResourceStreamResponse&) ;
108 MCAPI StructureResourceHandler(
109 ::ResourcePackManager
const& packManager,
110 ::Gameface::TemporaryTextureHolder& textureHolder
113 MCAPI
void _handleFetchRequests();
115 MCAPI
bool _sendFetchAsync(
116 ::std::string_view
id,
117 ::std::pair<::Gameface::ResourceRequest, ::Gameface::ResourceResponse>
const& reqResponsePair
124 MCAPI
void* $ctor(::ResourcePackManager
const& packManager, ::Gameface::TemporaryTextureHolder& textureHolder);
136 MCAPI
void $update();
138 MCAPI
void $onViewCreate(::IClientInstance& client);
140 MCAPI ::Gameface::ResourceHandlerStatus
141 $onResourceRequest(::Gameface::ResourceRequest
const& request, ::Gameface::ResourceResponse& response);
143 MCFOLD ::Gameface::ResourceHandlerStatus
144 $onResourceStreamRequest(::Gameface::ResourceRequest
const&, ::Gameface::ResourceStreamResponse&);
Definition ThumbnailFileBytes.h:15
Definition ResourceStreamResponse.h:7
Definition TemporaryTextureHolder.h:7
Definition IClientInstance.h:5
Definition StructureResourceHandler.h:7
static MCAPI void ** $vftable()
Definition ResourcePackManager.h:35
Definition StructureResourceHandler.h:17