|
tess 1.0.0
Performance-first tile and path simulation substrate
|
#include <tess/ops/queued.h>
Public Member Functions | |
| void | reserve_operations (std::size_t count) |
| void | reserve_dirty_records_per_operation (std::size_t count) |
| void | reserve_merged_dirty_records (std::size_t count) |
| void | prepare_for_operation_count (std::size_t count) |
| void | clear () noexcept |
| auto | operation_count () const noexcept -> std::size_t |
| auto | dirty_partitions () const noexcept -> std::span< const PhaseDirtyPartition > |
Friends | |
| template<WritePolicy Policy, typename Executor, typename World, typename Fn> | |
| auto | execute_phase_partitioned_dirty_with (Executor &&executor, World &world, const ExecutionPlan &plan, const ExecutionPhase &phase, PlannedPhaseExecutionScratch &scratch, Fn &&fn) -> PlannedExecutionResult |
| template<WritePolicy Policy, typename Executor, typename World, typename T, typename Fn> | |
| auto | execute_phase_partitioned_dirty_with_results (Executor &&executor, World &world, const ExecutionPlan &plan, const ExecutionPhase &phase, PlannedPhaseExecutionScratch &scratch, ResultChannel< T > &channel, Fn &&fn) -> PlannedExecutionResult |
| Executes one phase while publishing per-operation payloads and completions. | |
| template<typename World> | |
| auto | merge_planned_dirty (World &world, PlannedPhaseExecutionScratch &scratch) -> PlannedDirtyMergeResult |
| template<typename World> | |
| auto | detail::merge_planned_dirty_after_exception (World &world, PlannedPhaseExecutionScratch &scratch) noexcept -> PlannedDirtyMergeResult |
Reusable partitions, results, and merge storage for one execution phase.
|
friend |
Executes a phase with operation-local dirty partitions for concurrency.
|
friend |
Applies phase dirty records through the scratch object's accumulator.
Deliberately NOT noexcept: it reserves the merged accumulator before transferring anything, so it can throw std::bad_alloc. Capacity is checked first and reported as CapacityExceeded, so the throw is an allocation failure rather than a contract violation. See the accumulator overload for the rule.