IceShard
1
A personal game engine project, with development focused on 2D/2.5D games.
Toggle main menu visibility
Loading...
Searching...
No Matches
tasks
public
ice
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
10
namespace
ice
11
{
12
13
struct
TaskContainer
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
ice::Task
Definition
task.hxx:12
ice::TaskScheduler
Definition
task_scheduler.hxx:13
array.hxx
ice
SPDX-License-Identifier: MIT.
Definition
array.hxx:12
ice::count
constexpr auto count(T const (&)[Size]) noexcept -> ice::u32
Definition
base.hxx:43
ice::u32
std::uint32_t u32
Definition
types.hxx:26
shard.hxx
span.hxx
ice::Array
A simple container storing items in continuous memory.
Definition
array.hxx:24
ice::ShardID
Definition
shard.hxx:107
ice::Span
A view into an array of objects laid out in contiguous memory.
Definition
span.hxx:17
ice::TaskContainer
Definition
task_container.hxx:14
ice::TaskContainer::running_tasks
virtual auto running_tasks() const noexcept -> ice::u32=0
ice::TaskContainer::extract_tasks
virtual auto extract_tasks() noexcept -> ice::Array< ice::Task<> >=0
ice::TaskContainer::~TaskContainer
virtual ~TaskContainer() noexcept=default
ice::TaskContainer::wait_tasks
virtual void wait_tasks() noexcept=0
ice::TaskContainer::create_tasks
virtual auto create_tasks(ice::u32 count, ice::ShardID id) noexcept -> ice::Span< ice::Task<> >=0
ice::TaskContainer::execute_tasks
virtual auto execute_tasks() noexcept -> ice::u32=0
ice::TaskContainer::await_tasks_scheduled_on
virtual auto await_tasks_scheduled_on(ice::TaskScheduler &scheduler, ice::TaskScheduler &resumer) noexcept -> ice::Task<>=0
task.hxx
Generated by
1.18.0