Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:58:19

0001 //
0002 // Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com)
0003 //
0004 // Distributed under the Boost Software License, Version 1.0. (See accompanying
0005 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0006 //
0007 
0008 #ifndef BOOST_MYSQL_DETAIL_ALGO_PARAMS_HPP
0009 #define BOOST_MYSQL_DETAIL_ALGO_PARAMS_HPP
0010 
0011 #include <boost/mysql/character_set.hpp>
0012 #include <boost/mysql/handshake_params.hpp>
0013 #include <boost/mysql/string_view.hpp>
0014 
0015 #include <boost/mysql/detail/any_execution_request.hpp>
0016 #include <boost/mysql/detail/execution_processor/execution_processor.hpp>
0017 
0018 #include <boost/core/span.hpp>
0019 
0020 #include <cstddef>
0021 #include <cstdint>
0022 #include <vector>
0023 
0024 namespace boost {
0025 namespace mysql {
0026 
0027 class rows_view;
0028 class statement;
0029 class stage_response;
0030 
0031 namespace detail {
0032 
0033 class execution_processor;
0034 class execution_state_impl;
0035 struct pipeline_request_stage;
0036 
0037 struct connect_algo_params
0038 {
0039     const void* server_address;  // Points to an any_address or an endpoint for the corresponding stream. For
0040                                  // the templated connection, only valid until the first yield!
0041     handshake_params hparams;
0042     bool secure_channel;  // Are we using UNIX sockets or any other secure channel?
0043 
0044     using result_type = void;
0045 };
0046 
0047 struct handshake_algo_params
0048 {
0049     handshake_params hparams;
0050     bool secure_channel;  // Are we using UNIX sockets or any other secure channel?
0051 
0052     using result_type = void;
0053 };
0054 
0055 struct execute_algo_params
0056 {
0057     any_execution_request req;
0058     execution_processor* proc;
0059 
0060     using result_type = void;
0061 };
0062 
0063 struct start_execution_algo_params
0064 {
0065     any_execution_request req;
0066     execution_processor* proc;
0067 
0068     using result_type = void;
0069 };
0070 
0071 struct read_resultset_head_algo_params
0072 {
0073     execution_processor* proc;
0074 
0075     using result_type = void;
0076 };
0077 
0078 struct read_some_rows_algo_params
0079 {
0080     execution_processor* proc;
0081     output_ref output;
0082 
0083     using result_type = std::size_t;
0084 };
0085 
0086 struct read_some_rows_dynamic_algo_params
0087 {
0088     execution_state_impl* exec_st;
0089 
0090     using result_type = rows_view;
0091 };
0092 
0093 struct prepare_statement_algo_params
0094 {
0095     string_view stmt_sql;
0096 
0097     using result_type = statement;
0098 };
0099 
0100 struct close_statement_algo_params
0101 {
0102     std::uint32_t stmt_id;
0103 
0104     using result_type = void;
0105 };
0106 
0107 struct ping_algo_params
0108 {
0109     using result_type = void;
0110 };
0111 
0112 struct reset_connection_algo_params
0113 {
0114     using result_type = void;
0115 };
0116 
0117 struct set_character_set_algo_params
0118 {
0119     character_set charset;
0120 
0121     using result_type = void;
0122 };
0123 
0124 struct quit_connection_algo_params
0125 {
0126     using result_type = void;
0127 };
0128 
0129 struct close_connection_algo_params
0130 {
0131     using result_type = void;
0132 };
0133 
0134 struct run_pipeline_algo_params
0135 {
0136     span<const std::uint8_t> request_buffer;
0137     span<const pipeline_request_stage> request_stages;
0138     std::vector<stage_response>* response;
0139 
0140     using result_type = void;
0141 };
0142 
0143 }  // namespace detail
0144 }  // namespace mysql
0145 }  // namespace boost
0146 
0147 #endif