YOrch 1.0.0
Loading...
Searching...
No Matches
yorch::plan_exec_slots< Plan, LayoutPolicy > Struct Template Reference

Public per-run plan payload storage entry point. More...

#include <plan_exec_slots.hpp>

Inheritance diagram for yorch::plan_exec_slots< Plan, LayoutPolicy >:
Collaboration diagram for yorch::plan_exec_slots< Plan, LayoutPolicy >:

Additional Inherited Members

- Public Types inherited from yorch::detail::plan_exec_slots_impl< Plan, LayoutPolicy >
using layout_type = detail::plan_slot_layout< Plan, LayoutPolicy >
 
using tuple_type = detail::plan_erased_slots_tuple_t< layout_type >
 
template<std::size_t I>
using output_type = typename Plan::template output_type< I >
 
- Public Member Functions inherited from yorch::detail::plan_exec_slots_impl< Plan, LayoutPolicy >
 plan_exec_slots_impl ()=default
 
 plan_exec_slots_impl (const plan_exec_slots_impl &)=delete
 
plan_exec_slots_imploperator= (const plan_exec_slots_impl &)=delete
 
 plan_exec_slots_impl (plan_exec_slots_impl &&)=delete
 
plan_exec_slots_imploperator= (plan_exec_slots_impl &&)=delete
 
 ~plan_exec_slots_impl ()
 
template<std::size_t I>
requires std::is_void_v<output_type<I>>
constexpr bool has_value () const noexcept
 Void-output nodes never have a stored payload value.
 
template<std::size_t I>
requires (!std::is_void_v<output_type<I>>) && (slot_logical_policy<I> != detail::slot_logical_policy::must_payload)
constexpr bool has_value () const noexcept
 Reports whether maybe-payload node I currently stores a value.
 
template<std::size_t I, typename... Args>
requires detail::payload_node<Plan, I>
constexpr auto emplace (Args &&... args) noexcept(noexcept(slot_view_for< I >().emplace(std::forward< Args >(args)...))) -> output_type< I > &
 Constructs node I's payload in its assigned slot.
 
template<std::size_t I>
requires detail::payload_node<Plan, I> && (slot_logical_policy<I> == detail::slot_logical_policy::maybe_payload)
constexpr auto out () &noexcept -> direct_out< output_type< I > >
 Returns a direct-output sink for maybe-payload node I.
 
template<std::size_t I>
requires (!std::is_void_v<output_type<I>>)
constexpr auto get () &noexcept -> output_type< I > &
 Returns node I's stored payload.
 
template<std::size_t I>
requires (!std::is_void_v<output_type<I>>)
constexpr auto get () const &noexcept -> const output_type< I > &
 Returns node I's stored payload from a const slots object.
 
template<std::size_t I>
constexpr void destroy () noexcept
 Destroys node I's payload if the node has one.
 
template<std::size_t I>
constexpr auto prev_view_for () &
 Returns the from_prev view produced by node I's payload.
 
template<std::size_t I>
constexpr auto prev_view_for () const &
 Returns the const from_prev view produced by node I's payload.
 
- Static Public Attributes inherited from yorch::detail::plan_exec_slots_impl< Plan, LayoutPolicy >
template<std::size_t I>
static constexpr detail::output_storage_mode output_storage_mode
 
template<std::size_t I>
static constexpr std::size_t slot_index = Plan::template slot_index<I>
 
template<std::size_t I>
static constexpr detail::slot_logical_policy slot_logical_policy
 Node-local logical slot policy inherited from the compiled plan.
 
static constexpr std::size_t physical_slot_count = layout_type::physical_slot_count
 Number of physical slots allocated by the selected layout.
 
template<std::size_t I>
static constexpr std::size_t physical_slot_index
 Physical slot index assigned to node I.
 
template<std::size_t K>
static constexpr detail::slot_physical_policy slot_physical_policy
 Storage-level policy assigned to physical slot K.
 

Detailed Description

template<typename Plan, typename LayoutPolicy = slot_layout_one_to_one_policy>
requires detail::slot_layout_policy<LayoutPolicy>
struct yorch::plan_exec_slots< Plan, LayoutPolicy >

Public per-run plan payload storage entry point.

The default layout policy is slot_layout_one_to_one_policy, but the public template itself is only a thin wrapper. Concrete storage backends live in detail::plan_exec_slots_impl, where one-to-one uses typed slots and compact layouts use erased slots.

Definition at line 509 of file plan_exec_slots.hpp.


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