// // Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // #ifndef BOOST_MYSQL_DETAIL_ALGO_PARAMS_HPP #define BOOST_MYSQL_DETAIL_ALGO_PARAMS_HPP #include #include #include #include #include #include #include #include #include namespace boost { namespace mysql { class rows_view; class statement; class stage_response; namespace detail { class execution_processor; class execution_state_impl; struct pipeline_request_stage; struct connect_algo_params { const void* server_address; // Points to an any_address or an endpoint for the corresponding stream. For // the templated connection, only valid until the first yield! handshake_params hparams; bool secure_channel; // Are we using UNIX sockets or any other secure channel? using result_type = void; }; struct handshake_algo_params { handshake_params hparams; bool secure_channel; // Are we using UNIX sockets or any other secure channel? using result_type = void; }; struct execute_algo_params { any_execution_request req; execution_processor* proc; using result_type = void; }; struct start_execution_algo_params { any_execution_request req; execution_processor* proc; using result_type = void; }; struct read_resultset_head_algo_params { execution_processor* proc; using result_type = void; }; struct read_some_rows_algo_params { execution_processor* proc; output_ref output; using result_type = std::size_t; }; struct read_some_rows_dynamic_algo_params { execution_state_impl* exec_st; using result_type = rows_view; }; struct prepare_statement_algo_params { string_view stmt_sql; using result_type = statement; }; struct close_statement_algo_params { std::uint32_t stmt_id; using result_type = void; }; struct ping_algo_params { using result_type = void; }; struct reset_connection_algo_params { using result_type = void; }; struct set_character_set_algo_params { character_set charset; using result_type = void; }; struct quit_connection_algo_params { using result_type = void; }; struct close_connection_algo_params { using result_type = void; }; struct run_pipeline_algo_params { span request_buffer; span request_stages; std::vector* response; using result_type = void; }; } // namespace detail } // namespace mysql } // namespace boost #endif