kokkos-execution 0.0.1
Loading...
Searching...
No Matches
Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures > Struct Template Reference

Operation state that adds all closures as a sequence of nodes. More...

#include <operation_state.hpp>

Inheritance diagram for Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >:
Kokkos::Execution::Impl::Immovable Kokkos::Execution::GraphImpl::OpStateBase< FirstClosure::execution_space, Rcvr >

Public Types

using operation_state_concept = Impl::SubmittedOperationStateTag
using execution_space = typename FirstClosure::execution_space
using device_handle_t = typename FirstClosure::device_handle_t
using rcvr_t = Impl::Receiver<OpState, stdexec::env_of_t<Rcvr>>
 Ensure that all closures are on the same execution space type.
using inner_op_state_t = stdexec::connect_result_t<Sndr, rcvr_t>
using graph_composition_policy_t = GraphComposition::policy_t<inner_op_state_t, Rcvr>
using state_t = State<graph_composition_policy_t, execution_space>
using predecessor_t = GraphComposition::node_t<execution_space, inner_op_state_t, Rcvr>
using node_t
Public Types inherited from Kokkos::Execution::GraphImpl::OpStateBase< FirstClosure::execution_space, Rcvr >
using completion_signal_policy_t
using completion_signal_t

Public Member Functions

constexpr OpState (Sndr &&sndr, Rcvr rcvr, FirstClosure clsr, RestOfClosures... clsrs) noexcept(false)
auto get_predecessor () const noexcept -> const predecessor_t &
void complete (stdexec::set_value_t) noexcept
template<typename Error>
void complete (stdexec::set_error_t, Error &&error) noexcept
void complete (stdexec::set_stopped_t) noexcept
void submit () noexcept
auto query (get_node_t) const &noexcept -> const node_t &
auto query (get_graph_t) const &noexcept -> const typename state_t::graph_t &
constexpr auto query (Impl::get_exec_t) const noexcept -> Impl::ExecutionSpaceRef< execution_space >
constexpr auto query (Impl::get_exec_t) const noexcept -> decltype(auto) requires(!is_graph_create)
void start () &noexcept
constexpr auto get_env () const noexcept -> stdexec::env_of_t< Rcvr >
Public Member Functions inherited from Kokkos::Execution::Impl::Immovable
 Immovable ()=default
 Immovable (Immovable &&)=delete
Immovable & operator= (Immovable &&)=delete
 Immovable (const Immovable &)=delete
Immovable & operator= (const Immovable &)=delete
 ~Immovable ()=default
Public Member Functions inherited from Kokkos::Execution::GraphImpl::OpStateBase< FirstClosure::execution_space, Rcvr >
constexpr OpStateBase (Rcvr rcvr) noexcept(std::is_nothrow_constructible_v< completion_signal_t, Rcvr && >)
void complete (stdexec::set_error_t, Error &&error) noexcept

Public Attributes

inner_op_state_t inner_op_state
state_t state
node_t node
Public Attributes inherited from Kokkos::Execution::GraphImpl::OpStateBase< FirstClosure::execution_space, Rcvr >
completion_signal_t completion_signal

Static Public Attributes

static constexpr bool is_graph_create = std::same_as<graph_composition_policy_t, GraphComposition::Create>

Additional Inherited Members

Static Public Member Functions inherited from Kokkos::Execution::GraphImpl::OpStateBase< FirstClosure::execution_space, Rcvr >
static consteval auto select_completion_signal_policy () noexcept

Detailed Description

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
struct Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >

Operation state that adds all closures as a sequence of nodes.

Definition at line 161 of file operation_state.hpp.

Member Typedef Documentation

◆ device_handle_t

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
using Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::device_handle_t = typename FirstClosure::device_handle_t

Definition at line 167 of file operation_state.hpp.

◆ execution_space

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
using Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::execution_space = typename FirstClosure::execution_space

Definition at line 166 of file operation_state.hpp.

◆ graph_composition_policy_t

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
using Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::graph_composition_policy_t = GraphComposition::policy_t<inner_op_state_t, Rcvr>

Definition at line 174 of file operation_state.hpp.

◆ inner_op_state_t

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
using Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::inner_op_state_t = stdexec::connect_result_t<Sndr, rcvr_t>

Definition at line 173 of file operation_state.hpp.

◆ node_t

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
using Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::node_t
Initial value:
decltype(add_nodes(
std::declval<predecessor_t>(),
std::declval<FirstClosure>(),
std::declval<RestOfClosures>()...))

Definition at line 180 of file operation_state.hpp.

◆ operation_state_concept

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
using Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::operation_state_concept = Impl::SubmittedOperationStateTag

Definition at line 164 of file operation_state.hpp.

◆ predecessor_t

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
using Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::predecessor_t = GraphComposition::node_t<execution_space, inner_op_state_t, Rcvr>

Definition at line 176 of file operation_state.hpp.

◆ rcvr_t

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
using Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::rcvr_t = Impl::Receiver<OpState, stdexec::env_of_t<Rcvr>>

Ensure that all closures are on the same execution space type.

Definition at line 172 of file operation_state.hpp.

◆ state_t

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
using Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::state_t = State<graph_composition_policy_t, execution_space>

Definition at line 175 of file operation_state.hpp.

Constructor & Destructor Documentation

◆ OpState()

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::OpState ( Sndr && sndr,
Rcvr rcvr,
FirstClosure clsr,
RestOfClosures... clsrs )
inlineconstexpr
Warning
Unconditionally not noexcept because both graph and node construction may throw.

Definition at line 190 of file operation_state.hpp.

References Kokkos::Execution::GraphImpl::add_nodes(), get_predecessor(), inner_op_state, node, Kokkos::Execution::GraphImpl::OpStateBase< FirstClosure::execution_space, Rcvr >::OpStateBase(), and state.

Member Function Documentation

◆ complete() [1/3]

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
template<typename Error>
void Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::complete ( stdexec::set_error_t ,
Error && error )
inlinenoexcept

◆ complete() [2/3]

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
void Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::complete ( stdexec::set_stopped_t )
inlinenoexcept

◆ complete() [3/3]

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
void Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::complete ( stdexec::set_value_t )
inlinenoexcept

Definition at line 228 of file operation_state.hpp.

References submit().

◆ get_env()

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
auto Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::get_env ( ) const -> stdexec::env_of_t< Rcvr >
inlinenodiscardconstexprnoexcept

◆ get_predecessor()

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
auto Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::get_predecessor ( ) const -> const predecessor_t &
inlinenodiscardnoexcept

◆ query() [1/4]

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
auto Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::query ( get_graph_t ) const & -> const typename state_t::graph_t &
inlinenodiscardnoexcept

◆ query() [2/4]

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
auto Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::query ( get_node_t ) const & -> const node_t &
inlinenodiscardnoexcept

Definition at line 258 of file operation_state.hpp.

References node.

◆ query() [3/4]

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
auto Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::query ( Impl::get_exec_t ) const -> decltype(auto) requires(!is_graph_create)
inlinenodiscardconstexprnoexcept

◆ query() [4/4]

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
auto Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::query ( Impl::get_exec_t ) const -> Impl::ExecutionSpaceRef< execution_space >
inlinenodiscardconstexprnoexcept

Definition at line 273 of file operation_state.hpp.

References is_graph_create, and state.

◆ start()

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
void Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::start ( ) &
inlinenoexcept

Definition at line 284 of file operation_state.hpp.

References inner_op_state.

◆ submit()

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
void Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::submit ( )
inlinenoexcept

Member Data Documentation

◆ inner_op_state

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
inner_op_state_t Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::inner_op_state

Definition at line 185 of file operation_state.hpp.

◆ is_graph_create

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
bool Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::is_graph_create = std::same_as<graph_composition_policy_t, GraphComposition::Create>
staticconstexpr

Definition at line 178 of file operation_state.hpp.

◆ node

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
node_t Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::node

Definition at line 187 of file operation_state.hpp.

◆ state

template<stdexec::sender Sndr, stdexec::receiver Rcvr, Closure FirstClosure, Closure... RestOfClosures>
state_t Kokkos::Execution::GraphImpl::OpState< Sndr, Rcvr, FirstClosure, RestOfClosures >::state

Definition at line 186 of file operation_state.hpp.


The documentation for this struct was generated from the following file: