kokkos-execution 0.0.1
Loading...
Searching...
No Matches
submitted.hpp
Go to the documentation of this file.
1#ifndef KOKKOS_EXECUTION_IMPL_SUBMITTED_HPP
2#define KOKKOS_EXECUTION_IMPL_SUBMITTED_HPP
3
5
8
10
11struct SubmittedReceiverTag : public stdexec::receiver_tag { };
12
13template <typename Rcvr>
15 stdexec::receiver<Rcvr>
16 && std::derived_from<typename std::remove_cvref_t<Rcvr>::receiver_concept, SubmittedReceiverTag>;
17
18template <typename Rcvr>
19concept supports_submitted_order_on = supports_submitted<Rcvr> && requires(Rcvr&& rcvr) {
20 { std::move(rcvr).submitted() } noexcept;
21};
22
23template <typename Rcvr, typename... Execs>
24concept supports_submitted_depend_on = supports_submitted<Rcvr> && (Kokkos::ExecutionSpace<Execs> && ...)
25 && sizeof...(Execs) > 0
26 && requires(Rcvr&& rcvr, OptionalConstEventRef<Execs>... deps) {
27 { std::move(rcvr).submitted(deps...) } noexcept;
28 };
29
30struct SubmittedOperationStateTag : public stdexec::operation_state_tag { };
31
32template <typename Op>
34 stdexec::operation_state<Op>
35 && std::derived_from<typename std::remove_cvref_t<Op>::operation_state_concept, SubmittedOperationStateTag>
36 && requires { typename std::remove_cvref_t<Op>::completion_signal_policy_t; }
38
39} // namespace Kokkos::Execution::Impl
40
41#endif // KOKKOS_EXECUTION_IMPL_SUBMITTED_HPP
OptionalRef< const Event< Exec > > OptionalConstEventRef
Optionally stores a reference to a const Impl::Event.
Definition event.hpp:178