SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
seqan3::detail::execution_handler_sequential Struct Reference

Handles the sequential execution of algorithms. More...

#include <seqan3/core/algorithm/detail/execution_handler_sequential.hpp>

Public Member Functions

template<std::copy_constructible algorithm_t, std::ranges::input_range algorithm_input_range_t, std::copy_constructible callback_t>
requires std::invocable<algorithm_t, std::ranges::range_reference_t<algorithm_input_range_t>, callback_t>
void bulk_execute (algorithm_t &&algorithm, algorithm_input_range_t &&input_range, callback_t &&callback)
 Sequentially executes the algorithm for every element of the given input range.
 
template<typename algorithm_t , typename algorithm_input_t , typename callback_t >
requires std::invocable<algorithm_t, algorithm_input_t, callback_t>
void execute (algorithm_t &&algorithm, algorithm_input_t &&input, callback_t &&callback)
 Executes the algorithm with the given input and callback.
 
void wait () noexcept
 Waits for the submitted jobs to finish (noop).
 

Detailed Description

Handles the sequential execution of algorithms.

This execution handler implements a blocking execute. This means a call to seqan3::detail::execution_handler_sequential::execute blocks until the call to the algorithm finished. This handler can be used in combination with the seqan3::detail::algorithm_executor_blocking to invoke the algorithms on the given algorithm input.

Member Function Documentation

◆ bulk_execute()

template<std::copy_constructible algorithm_t, std::ranges::input_range algorithm_input_range_t, std::copy_constructible callback_t>
requires std::invocable<algorithm_t, std::ranges::range_reference_t<algorithm_input_range_t>, callback_t>
void seqan3::detail::execution_handler_sequential::bulk_execute ( algorithm_t &&  algorithm,
algorithm_input_range_t &&  input_range,
callback_t &&  callback 
)
inline

Sequentially executes the algorithm for every element of the given input range.

Template Parameters
algorithm_tThe type of the algorithm.
algorithm_input_range_tThe input range type.
callback_tThe type of the callable invoked by the algorithm after generating a new result.
Parameters
[in]algorithmThe algorithm to invoke.
[in]input_rangeThe input range to process sequentially.
[in]callbackA callable which will be invoked on each result generated by the algorithm for a given input.

Effectively calls seqan3::detail::execution_handler_sequential::execute on every element of the given input range.

◆ execute()

template<typename algorithm_t , typename algorithm_input_t , typename callback_t >
requires std::invocable<algorithm_t, algorithm_input_t, callback_t>
void seqan3::detail::execution_handler_sequential::execute ( algorithm_t &&  algorithm,
algorithm_input_t &&  input,
callback_t &&  callback 
)
inline

Executes the algorithm with the given input and callback.

Template Parameters
algorithm_tThe type of the algorithm.
algorithm_input_tThe input type to invoke the algorithm with.
callback_tThe type of the callable invoked by the algorithm after generating a new result.
Parameters
[in]algorithmThe algorithm to invoke.
[in]inputThe input of the algorithm.
[in]callbackA callable which will be invoked on each result generated by the algorithm.

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