LeviLamina
Loading...
Searching...
No Matches
EditorCoroutineServiceProvider.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/editor/Generator.h"
7#include "mc/common/editor/Task.h"
8#include "mc/common/editor/TaskCompletionStatus.h"
9#include "mc/platform/brstd/move_only_function.h"
10
11// auto generated forward declare list
12// clang-format off
13namespace Editor { struct CoroutineStatus; }
14namespace Editor::Coroutine { class CoroutineTaskContext; }
15namespace Editor::Coroutine { struct CoroutineTaskOptions; }
16namespace Editor::Coroutine { struct OwnerMetadata; }
17namespace Editor::Coroutine { struct TaskHandle; }
18namespace Editor::Coroutine { struct TaskSnapshot; }
19namespace brstd { struct source_location; }
20// clang-format on
21
22namespace Editor::Services {
23
25public:
26 // virtual functions
27 // NOLINTBEGIN
28 virtual ~EditorCoroutineServiceProvider() = default;
29
30 virtual ::Editor::Coroutine::TaskHandle queue(
31 ::std::string name,
33 ::std::function<void(uint64, ::Editor::Coroutine::TaskCompletionStatus)> onComplete,
34 uint64 ownerId,
35 ::brstd::source_location creationSite
36 ) = 0;
37
38 virtual ::Editor::Coroutine::TaskHandle queueTask(
39 ::std::string name,
41 ::std::function<void(uint64, ::Editor::Coroutine::TaskCompletionStatus)> onComplete,
42 uint64 ownerId,
43 ::brstd::source_location creationSite
44 ) = 0;
45
46 virtual bool cancel(::Editor::Coroutine::TaskHandle handle) = 0;
47
48 virtual void cancelAll() = 0;
49
50 virtual uint64 cancelForOwner(uint64 ownerId) = 0;
51
52 virtual uint64 allocateOwnerId() = 0;
53
54 virtual bool updateOwnerMetadata(::Editor::Coroutine::OwnerMetadata metadata) = 0;
55
56 virtual void releaseOwnerId(uint64 ownerId) = 0;
57
58 virtual uint64 activeTaskCount() const = 0;
59
60 virtual uint64 activeTaskCountForOwner(uint64 ownerId) const = 0;
61
62 virtual bool hasActiveTasks() const = 0;
63
64 virtual ::Editor::CoroutineStatus const* getTaskStatus(::Editor::Coroutine::TaskHandle handle) const = 0;
65
66 virtual ::std::string const* getTaskName(::Editor::Coroutine::TaskHandle handle) const = 0;
67
68 virtual ::std::vector<::Editor::Coroutine::TaskSnapshot> getTaskSnapshots() const = 0;
69
70 virtual uint64 pump(::std::chrono::microseconds budget) = 0;
71
72 virtual ::Editor::Coroutine::TaskHandle _queueTaskFactory(
73 ::std::string name,
77 ::std::function<void(uint64, ::Editor::Coroutine::TaskCompletionStatus)> onComplete,
78 uint64 ownerId,
79 ::brstd::source_location creationSite
80 ) = 0;
81 // NOLINTEND
82};
83
84} // namespace Editor::Services
Definition CoroutineTaskContext.h:7
Definition Generator.h:8
Definition EditorCoroutineServiceProvider.h:24
Definition Task.h:8
Definition move_only_function.h:9
Definition CoroutineStatus.h:7
Definition CoroutineTaskOptions.h:7
Definition OwnerMetadata.h:7
Definition TaskHandle.h:7
Definition TaskSnapshot.h:7
Definition source_location.h:7