gnss-sim/3rdparty/boost/mysql/detail/algo_params.hpp

166 lines
3.0 KiB
C++

//
// Copyright (c) 2019-2024 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 <boost/mysql/character_set.hpp>
#include <boost/mysql/handshake_params.hpp>
#include <boost/mysql/string_view.hpp>
#include <boost/mysql/detail/any_execution_request.hpp>
#include <boost/mysql/detail/execution_processor/execution_processor.hpp>
#include <boost/core/span.hpp>
#include <cstddef>
#include <cstdint>
#include <vector>
namespace boost {
namespace mysql {
class rows_view;
class diagnostics;
class statement;
class stage_response;
namespace detail {
class execution_processor;
class execution_state_impl;
struct pipeline_request_stage;
struct connect_algo_params
{
diagnostics* diag;
handshake_params hparams;
bool secure_channel; // Are we using UNIX sockets or any other secure channel?
using result_type = void;
};
struct handshake_algo_params
{
diagnostics* diag;
handshake_params hparams;
bool secure_channel; // Are we using UNIX sockets or any other secure channel?
using result_type = void;
};
struct execute_algo_params
{
diagnostics* diag;
any_execution_request req;
execution_processor* proc;
using result_type = void;
};
struct start_execution_algo_params
{
diagnostics* diag;
any_execution_request req;
execution_processor* proc;
using result_type = void;
};
struct read_resultset_head_algo_params
{
diagnostics* diag;
execution_processor* proc;
using result_type = void;
};
struct read_some_rows_algo_params
{
diagnostics* diag;
execution_processor* proc;
output_ref output;
using result_type = std::size_t;
};
struct read_some_rows_dynamic_algo_params
{
diagnostics* diag;
execution_state_impl* exec_st;
using result_type = rows_view;
};
struct prepare_statement_algo_params
{
diagnostics* diag;
string_view stmt_sql;
using result_type = statement;
};
struct close_statement_algo_params
{
diagnostics* diag;
std::uint32_t stmt_id;
using result_type = void;
};
struct ping_algo_params
{
diagnostics* diag;
using result_type = void;
};
struct reset_connection_algo_params
{
diagnostics* diag;
using result_type = void;
};
struct set_character_set_algo_params
{
diagnostics* diag;
character_set charset;
using result_type = void;
};
struct quit_connection_algo_params
{
diagnostics* diag;
using result_type = void;
};
struct close_connection_algo_params
{
diagnostics* diag;
using result_type = void;
};
struct run_pipeline_algo_params
{
diagnostics* diag;
span<const std::uint8_t> request_buffer;
span<const pipeline_request_stage> request_stages;
std::vector<stage_response>* response;
using result_type = void;
};
} // namespace detail
} // namespace mysql
} // namespace boost
#endif