kokkos-execution
0.0.1
Toggle main menu visibility
Loading...
Searching...
No Matches
sender_concepts.hpp
Go to the documentation of this file.
1
#ifndef KOKKOS_EXECUTION_GRAPH_SENDER_CONCEPTS_HPP
2
#define KOKKOS_EXECUTION_GRAPH_SENDER_CONCEPTS_HPP
3
4
#include "
kokkos-execution/stdexec.hpp
"
5
6
#include "
kokkos-execution/graph/graph_fwd.hpp
"
7
8
namespace
Kokkos::Execution::GraphImpl
{
9
11
template
<
typename
Sndr,
typename
... Env>
12
concept
graph_completing_sender
=
13
stdexec::sender<Sndr>
14
&& stdexec::__is_instance_of<
15
std::invoke_result_t<stdexec::get_completion_scheduler_t<stdexec::set_value_t>, stdexec::env_of_t<Sndr>, Env...>,
16
Scheduler
17
>;
18
19
template
<
typename
Sndr,
typename
... Env>
20
struct
GraphCompletingSender
:
public
std::bool_constant<graph_completing_sender<Sndr, Env...>> { };
21
22
struct
CANNOT_DISPATCH_THIS_ALGORITHM_TO_THE_GRAPH_SCHEDULER;
23
struct
BECAUSE_THERE_IS_NO_GRAPH_SCHEDULER_IN_THE_ENVIRONMENT;
24
30
template
<
typename
Tag,
typename
Sndr,
typename
... Env>
31
auto
no_graph_scheduler_in_env
() noexcept {
32
return
stdexec::__not_a_sender<
33
stdexec::_WHAT_(CANNOT_DISPATCH_THIS_ALGORITHM_TO_THE_GRAPH_SCHEDULER),
34
stdexec::_WHY_(BECAUSE_THERE_IS_NO_GRAPH_SCHEDULER_IN_THE_ENVIRONMENT),
35
stdexec::_WHERE_(stdexec::_IN_ALGORITHM_, Tag),
36
stdexec::_WITH_PRETTY_SENDER_<Sndr>,
37
stdexec::_WITH_ENVIRONMENT_(Env...)
38
>{};
39
}
40
41
}
// namespace Kokkos::Execution::GraphImpl
42
43
#endif
// KOKKOS_EXECUTION_GRAPH_SENDER_CONCEPTS_HPP
Kokkos::Execution::GraphImpl::graph_completing_sender
Concept for a sender whose completion scheduler is Kokkos::Execution::GraphImpl::Scheduler.
Definition
sender_concepts.hpp:12
graph_fwd.hpp
stdexec.hpp
Kokkos::Execution::GraphImpl
Definition
graph.hpp:20
Kokkos::Execution::GraphImpl::no_graph_scheduler_in_env
auto no_graph_scheduler_in_env() noexcept
Show a better compile diagnostic when there is no Kokkos::Execution::GraphImpl::Scheduler found.
Definition
sender_concepts.hpp:31
Kokkos::Execution::GraphImpl::GraphCompletingSender
Definition
sender_concepts.hpp:20
Kokkos::Execution::GraphImpl::Scheduler
Scheduler for a Kokkos::Experimental::Graph.
Definition
graph.hpp:24
kokkos-execution
graph
sender_concepts.hpp
Generated on
for kokkos-execution by
1.18.0