// // 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_ENGINE_HPP #define BOOST_MYSQL_DETAIL_ENGINE_HPP #include #include #include namespace boost { namespace mysql { namespace detail { class engine { public: using executor_type = asio::any_io_executor; virtual ~engine() {} virtual executor_type get_executor() = 0; virtual bool supports_ssl() const = 0; virtual void set_endpoint(const void* endpoint) = 0; virtual void run(any_resumable_ref resumable, error_code& err) = 0; virtual void async_run(any_resumable_ref resumable, asio::any_completion_handler) = 0; }; } // namespace detail } // namespace mysql } // namespace boost #endif