Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-09 08:28:00

0001 //
0002 // Copyright (c) 2019-2024 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 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;  // 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     diagnostics* diag;
0050     handshake_params hparams;
0051     bool secure_channel;  // Are we using UNIX sockets or any other 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 }  // namespace detail
0162 }  // namespace mysql
0163 }  // namespace boost
0164 
0165 #endif