3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/threading/Async.h"
7#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
8#include "mc/platform/brstd/move_only_function.h"
9#include "mc/resources/ResourceLoadType.h"
31 class TaskGroupState {
41 TaskGroupState& operator=(TaskGroupState
const&);
42 TaskGroupState(TaskGroupState
const&);
46 class ResourceLoadTaskGroup {
60 ResourceLoadTaskGroup& operator=(ResourceLoadTaskGroup
const&);
61 ResourceLoadTaskGroup(ResourceLoadTaskGroup
const&);
62 ResourceLoadTaskGroup();
68 MCNAPI ResourceLoadTaskGroup(
69 ::std::string_view groupName,
71 ::ResourceLoadType loadType,
72 ::std::vector<::ResourceLoadType> dependencies,
78 MCNAPI ::Bedrock::Threading::Async<void>
queue(
80 ::std::function<
void()> mainThreadCallback,
90 ::std::string_view groupName,
92 ::ResourceLoadType loadType,
93 ::std::vector<::ResourceLoadType> dependencies,
114 ResourceLoadManager& operator=(ResourceLoadManager
const&);
115 ResourceLoadManager(ResourceLoadManager
const&);
116 ResourceLoadManager();
122 virtual ~ResourceLoadManager() =
default;
124 virtual ~ResourceLoadManager() ;
133 MCNAPI
void _cancel();
135 MCNAPI
void _initializeResourceLoadTaskGroups();
142 MCNAPI
bool isComplete()
const;
144 MCNAPI
bool isComplete(::ResourceLoadType resourceLoadType)
const;
146 MCNAPI
void printRunningTasks();
149 MCNAPI ::Bedrock::Threading::Async<void>
queue(
150 ::ResourceLoadType resourceLoadType,
152 ::std::function<
void()> mainThreadCallback,
157 MCNAPI ::Bedrock::Threading::Async<void> queueAsync(
158 ::ResourceLoadType resourceLoadType,
163 MCNAPI ::Bedrock::Threading::Async<void> queueSync(
164 ::ResourceLoadType resourceLoadType,
169 MCNAPI
void registerResourceLoadTaskGroup(
170 ::std::string_view groupName,
172 ::ResourceLoadType resourceLoadType,
173 ::std::vector<::ResourceLoadType> dependencies
180 MCNAPI
void sync(::ResourceLoadType resourceLoadType);
182 MCNAPI
void update();
191 ::std::function<
void()>&& mainThreadCallback
201 ::std::function<
void()> mainThreadCallback,
Definition EnableNonOwnerReferences.h:7
Definition ResourceLoadManager.h:46
MCAPI ::Bedrock::Threading::Async< void > queue(::brstd::move_only_function<::TaskResult()> threadedCallback, ::std::function< void()> mainThreadCallback, uint taskPriority)
Definition ResourceLoadManager.h:31
MCAPI bool softCancel(::ResourceLoadType resourceLoadType)
static MCAPI void ** $vftable()
static MCAPI void queueChild(::brstd::move_only_function<::TaskResult()> threadedCallback, ::std::function< void()> mainThreadCallback, uint taskPriority)
MCAPI void _prepareTaskGroupToRunAgain(::gsl::not_null<::ResourceLoadManager::ResourceLoadTaskGroup * > resourceLoadTaskGroup)
static MCAPI ::std::function< void()> _wrapMainThreadCallback(::ResourceLoadManager::ResourceLoadTaskGroup &resourceLoadTaskGroup, ::std::function< void()> &&mainThreadCallback)
static MCAPI ::brstd::move_only_function<::TaskResult()> _wrapTaskCallback(::ResourceLoadManager::ResourceLoadTaskGroup &resourceLoadTaskGroup, ::brstd::move_only_function<::TaskResult()> &&threadedCallback)
MCAPI ::Bedrock::Threading::Async< void > queue(::ResourceLoadType resourceLoadType, ::brstd::move_only_function<::TaskResult()> threadedCallback, ::std::function< void()> mainThreadCallback, uint taskPriority)
Definition Scheduler.h:14
Definition TaskResult.h:5
Definition WorkerPool.h:19
Definition move_only_function.h:9
Definition PredeclaredAnnotation.h:7
Definition ResourceLoadManager.h:29