File indexing completed on 2025-12-16 09:58:19
0001
0002
0003
0004
0005
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;
0040
0041 handshake_params hparams;
0042 bool secure_channel;
0043
0044 using result_type = void;
0045 };
0046
0047 struct handshake_algo_params
0048 {
0049 handshake_params hparams;
0050 bool 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 }
0144 }
0145 }
0146
0147 #endif