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"
30 class TaskGroupState {
40 TaskGroupState& operator=(TaskGroupState
const&);
41 TaskGroupState(TaskGroupState
const&);
45 class ResourceLoadTaskGroup {
59 ResourceLoadTaskGroup& operator=(ResourceLoadTaskGroup
const&);
60 ResourceLoadTaskGroup(ResourceLoadTaskGroup
const&);
61 ResourceLoadTaskGroup();
66 MCNAPI ::Bedrock::Threading::Async<void>
queue(
68 ::std::function<
void()> mainThreadCallback,
77 ::std::string_view groupName,
78 ::ResourceLoadType loadType,
79 ::std::vector<::ResourceLoadType> dependencies,
99 ResourceLoadManager& operator=(ResourceLoadManager
const&);
100 ResourceLoadManager(ResourceLoadManager
const&);
101 ResourceLoadManager();
107 virtual ~ResourceLoadManager() =
default;
109 virtual ~ResourceLoadManager() ;
117 MCNAPI_C
void _cancel();
119 MCNAPI_C
void _initializeResourceLoadTaskGroups();
124 MCNAPI_C
bool isComplete()
const;
126 MCNAPI_C
bool isComplete(::ResourceLoadType resourceLoadType)
const;
128 MCNAPI_C
void printRunningTasks();
130 MCNAPI ::Bedrock::Threading::Async<void>
queue(
131 ::ResourceLoadType resourceLoadType,
133 ::std::function<
void()> mainThreadCallback,
137 MCNAPI_C ::Bedrock::Threading::Async<void> queueAsync(
138 ::ResourceLoadType resourceLoadType,
143 MCNAPI_C ::Bedrock::Threading::Async<void> queueSync(
144 ::ResourceLoadType resourceLoadType,
149 MCNAPI_C
void registerResourceLoadTaskGroup(
150 ::std::string_view groupName,
151 ::ResourceLoadType resourceLoadType,
152 ::std::vector<::ResourceLoadType> dependencies
157 MCNAPI_C
void sync(::ResourceLoadType resourceLoadType);
159 MCNAPI_C
void update();
167 ::std::function<
void()>&& mainThreadCallback
177 ::std::function<
void()> mainThreadCallback,
Definition EnableNonOwnerReferences.h:7
Definition ResourceLoadManager.h:45
MCAPI ::Bedrock::Threading::Async< void > queue(::brstd::move_only_function<::TaskResult()> threadedCallback, ::std::function< void()> mainThreadCallback, uint taskPriority)
Definition ResourceLoadManager.h:30
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 ResourceLoadManager.h:28