2
0
mirror of https://github.com/boostorg/mysql.git synced 2026-02-15 01:02:17 +00:00
Files
mysql/include/mysql/impl/query.hpp
2020-01-13 10:45:50 +00:00

71 lines
1.5 KiB
C++

#ifndef MYSQL_ASIO_IMPL_QUERY_HPP
#define MYSQL_ASIO_IMPL_QUERY_HPP
#include "mysql/resultset.hpp"
#include "mysql/impl/capabilities.hpp"
#include <string_view>
namespace mysql
{
namespace detail
{
template <typename ChannelType>
using channel_stream_type = typename ChannelType::stream_type;
template <typename ChannelType>
using channel_resultset_type = resultset<channel_stream_type<ChannelType>>;
enum class fetch_result
{
error,
row,
eof
};
template <typename ChannelType>
void execute_query(
ChannelType& channel,
std::string_view query,
channel_resultset_type<ChannelType>& output,
error_code& err
);
template <typename ChannelType, typename CompletionToken>
BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, void(error_code, channel_resultset_type<ChannelType>))
async_execute_query(
ChannelType& channel,
std::string_view query,
CompletionToken&& token
);
template <typename ChannelType>
fetch_result fetch_text_row(
ChannelType& channel,
const std::vector<field_metadata>& meta,
bytestring& buffer,
std::vector<value>& output_values,
ok_packet& output_ok_packet,
error_code& err
);
template <typename ChannelType, typename CompletionToken>
BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, void(error_code, fetch_result))
async_fetch_text_row(
ChannelType& channel,
const std::vector<field_metadata>& meta,
bytestring& buffer,
std::vector<value>& output_values,
ok_packet& output_ok_packet,
CompletionToken&& token
);
}
}
#include "mysql/impl/query.ipp"
#endif