File indexing completed on 2025-04-09 08:28:00
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 diagnostics;
0029 class statement;
0030 class stage_response;
0031
0032 namespace detail {
0033
0034 class execution_processor;
0035 class execution_state_impl;
0036 struct pipeline_request_stage;
0037
0038 struct connect_algo_params
0039 {
0040 diagnostics* diag;
0041 handshake_params hparams;
0042 bool secure_channel;
0043
0044 using result_type = void;
0045 };
0046
0047 struct handshake_algo_params
0048 {
0049 diagnostics* diag;
0050 handshake_params hparams;
0051 bool secure_channel;
0052
0053 using result_type = void;
0054 };
0055
0056 struct execute_algo_params
0057 {
0058 diagnostics* diag;
0059 any_execution_request req;
0060 execution_processor* proc;
0061
0062 using result_type = void;
0063 };
0064
0065 struct start_execution_algo_params
0066 {
0067 diagnostics* diag;
0068 any_execution_request req;
0069 execution_processor* proc;
0070
0071 using result_type = void;
0072 };
0073
0074 struct read_resultset_head_algo_params
0075 {
0076 diagnostics* diag;
0077 execution_processor* proc;
0078
0079 using result_type = void;
0080 };
0081
0082 struct read_some_rows_algo_params
0083 {
0084 diagnostics* diag;
0085 execution_processor* proc;
0086 output_ref output;
0087
0088 using result_type = std::size_t;
0089 };
0090
0091 struct read_some_rows_dynamic_algo_params
0092 {
0093 diagnostics* diag;
0094 execution_state_impl* exec_st;
0095
0096 using result_type = rows_view;
0097 };
0098
0099 struct prepare_statement_algo_params
0100 {
0101 diagnostics* diag;
0102 string_view stmt_sql;
0103
0104 using result_type = statement;
0105 };
0106
0107 struct close_statement_algo_params
0108 {
0109 diagnostics* diag;
0110 std::uint32_t stmt_id;
0111
0112 using result_type = void;
0113 };
0114
0115 struct ping_algo_params
0116 {
0117 diagnostics* diag;
0118
0119 using result_type = void;
0120 };
0121
0122 struct reset_connection_algo_params
0123 {
0124 diagnostics* diag;
0125
0126 using result_type = void;
0127 };
0128
0129 struct set_character_set_algo_params
0130 {
0131 diagnostics* diag;
0132 character_set charset;
0133
0134 using result_type = void;
0135 };
0136
0137 struct quit_connection_algo_params
0138 {
0139 diagnostics* diag;
0140
0141 using result_type = void;
0142 };
0143
0144 struct close_connection_algo_params
0145 {
0146 diagnostics* diag;
0147
0148 using result_type = void;
0149 };
0150
0151 struct run_pipeline_algo_params
0152 {
0153 diagnostics* diag;
0154 span<const std::uint8_t> request_buffer;
0155 span<const pipeline_request_stage> request_stages;
0156 std::vector<stage_response>* response;
0157
0158 using result_type = void;
0159 };
0160
0161 }
0162 }
0163 }
0164
0165 #endif