|
YOrch 1.0.0
|
Public per-run plan payload storage entry point. More...
#include <plan_exec_slots.hpp>


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_impl & | operator= (const plan_exec_slots_impl &)=delete |
| plan_exec_slots_impl (plan_exec_slots_impl &&)=delete | |
| plan_exec_slots_impl & | operator= (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. | |
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.