IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
Loading...
Searching...
No Matches
task_container.hxx
Go to the documentation of this file.
1
3
4#pragma once
5#include <ice/task.hxx>
6#include <ice/shard.hxx>
7#include <ice/span.hxx>
8#include <ice/array.hxx>
9
10namespace ice
11{
12
14 {
15 virtual ~TaskContainer() noexcept = default;
16
17 virtual auto create_tasks(ice::u32 count, ice::ShardID id) noexcept -> ice::Span<ice::Task<>> = 0;
18
19 virtual auto await_tasks_scheduled_on(ice::TaskScheduler& scheduler, ice::TaskScheduler& resumer) noexcept -> ice::Task<> = 0;
20
21 virtual auto execute_tasks() noexcept -> ice::u32 = 0;
22
23 virtual auto running_tasks() const noexcept -> ice::u32 = 0;
24
25 virtual void wait_tasks() noexcept = 0;
26
27 virtual auto extract_tasks() noexcept -> ice::Array<ice::Task<>> = 0;
28 };
29
30} // namespace ice
Definition task.hxx:12
Definition task_scheduler.hxx:13
SPDX-License-Identifier: MIT.
Definition array.hxx:12
constexpr auto count(T const (&)[Size]) noexcept -> ice::u32
Definition base.hxx:43
std::uint32_t u32
Definition types.hxx:26
A simple container storing items in continuous memory.
Definition array.hxx:24
Definition shard.hxx:107
A view into an array of objects laid out in contiguous memory.
Definition span.hxx:17
Definition task_container.hxx:14
virtual auto running_tasks() const noexcept -> ice::u32=0
virtual auto extract_tasks() noexcept -> ice::Array< ice::Task<> >=0
virtual ~TaskContainer() noexcept=default
virtual void wait_tasks() noexcept=0
virtual auto create_tasks(ice::u32 count, ice::ShardID id) noexcept -> ice::Span< ice::Task<> >=0
virtual auto execute_tasks() noexcept -> ice::u32=0
virtual auto await_tasks_scheduled_on(ice::TaskScheduler &scheduler, ice::TaskScheduler &resumer) noexcept -> ice::Task<>=0