8#include <boost/redis/connection.hpp>
9#include <boost/redis/request.hpp>
11#include <boost/asio/deferred.hpp>
12#include <boost/asio/detached.hpp>
13#include <boost/asio/use_future.hpp>
18using namespace std::chrono_literals;
20namespace boost::redis {
22class sync_connection {
26 , conn_{std::make_shared<connection>(ioc_)}
29 ~sync_connection() { thread_.join(); }
35 thread_ = std::thread{[
this, cfg]() {
36 conn_->async_run(cfg, asio::detached);
43 asio::dispatch(ioc_, [
this]() {
48 template <
class Response>
49 auto exec(request
const& req, Response& resp)
51 asio::dispatch(conn_->get_executor(), asio::deferred([
this, &req, &resp]() {
52 return conn_->async_exec(req, resp, asio::deferred);
58 asio::io_context ioc_{1};
59 std::shared_ptr<connection> conn_;
@ exec
Refers to connection::async_exec operations.
@ run
Refers to connection::async_run operations.