Iros
Loading...
Searching...
No Matches
scheduler.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/execution/concepts/queryable.h
"
4
#include "
di/execution/concepts/sender.h
"
5
#include "
di/execution/interface/get_env.h
"
6
#include "
di/execution/interface/schedule.h
"
7
#include "
di/execution/receiver/set_error.h
"
8
#include "
di/execution/receiver/set_stopped.h
"
9
#include "
di/execution/receiver/set_value.h
"
10
#include "
di/meta/compare.h
"
11
#include "
di/meta/core.h
"
12
#include "
di/meta/operations.h
"
13
14
namespace
di::execution
{
15
template
<concepts::OneOf<SetValue, SetError, SetStopped> CPO>
16
struct
GetCompletionScheduler
;
17
}
18
19
namespace
di::concepts
{
20
template
<
typename
T>
21
concept
Scheduler
=
22
CopyConstructible<meta::RemoveCVRef<T>
> &&
EqualityComparable<meta::RemoveCVRef<T>
> &&
Queryable<T>
&&
23
requires
(T&& scheduler,
execution::GetCompletionScheduler<execution::SetValue>
const
tag) {
24
{
execution::schedule
(util::forward<T>(scheduler)) } ->
Sender
;
25
{
26
function::tag_invoke
(tag,
execution::get_env
(
execution::schedule
(util::forward<T>(scheduler))))
27
} ->
SameAs<meta::RemoveCVRef<T>
>;
28
};
29
}
30
31
namespace
di
{
32
using
concepts::Scheduler
;
33
}
di::concepts::CopyConstructible
Definition
operations.h:34
di::concepts::EqualityComparable
Definition
compare.h:82
di::concepts::Queryable
Definition
queryable.h:7
di::concepts::SameAs
Definition
core.h:114
di::concepts::Scheduler
Definition
scheduler.h:21
di::concepts::Sender
Definition
sender.h:11
core.h
set_value.h
get_env.h
operations.h
compare.h
di::concepts
Definition
any_storable.h:9
di::execution
Definition
bulk.h:30
di::execution::schedule
constexpr auto schedule
Definition
schedule.h:17
di::execution::get_env
constexpr auto get_env
Definition
get_env.h:27
di::function::tag_invoke_ns::tag_invoke
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition
tag_invoke.h:22
di
Definition
zstring_parser.h:9
queryable.h
schedule.h
sender.h
set_error.h
set_stopped.h
di::execution::GetCompletionScheduler
Definition
get_completion_scheduler.h:10
libs
di
include
di
execution
concepts
scheduler.h
Generated by
1.13.0