1#ifndef joedb_asio_Server_declared
2#define joedb_asio_Server_declared
7#include <boost/asio/thread_pool.hpp>
8#include <boost/asio/local/stream_protocol.hpp>
9#include <boost/asio/signal_set.hpp>
10#include <boost/asio/awaitable.hpp>
11#include <boost/asio/strand.hpp>
23 void log(std::string_view s);
30 boost::asio::local::stream_protocol::endpoint
endpoint;
31 boost::asio::local::stream_protocol::acceptor
acceptor;
39 boost::asio::local::stream_protocol::socket
socket;
40 boost::asio::strand<boost::asio::thread_pool::executor_type>
strand;
43 boost::asio::awaitable<size_t>
read_buffer(
size_t offset,
size_t size);
50 boost::asio::local::stream_protocol::socket &&
socket
53 void log(std::string_view s);
55 virtual boost::asio::awaitable<void>
run() = 0;
63 boost::asio::local::stream_protocol::socket &&socket
67 int64_t session_id = 0;
69 boost::asio::awaitable<void> listener();
virtual boost::asio::awaitable< void > run()=0
void log(std::string_view s)
boost::asio::awaitable< void > write_buffer()
boost::asio::awaitable< size_t > read_buffer(size_t offset, size_t size)
boost::asio::strand< boost::asio::thread_pool::executor_type > strand
boost::asio::local::stream_protocol::socket socket
Superclass for asio servers.
boost::asio::local::stream_protocol::endpoint endpoint
const std::string endpoint_path
virtual std::unique_ptr< Session > new_session(boost::asio::local::stream_protocol::socket &&socket)=0
void log(std::string_view s)
int get_log_level() const
boost::asio::local::stream_protocol::acceptor acceptor
boost::asio::signal_set interrupt_signals
boost::asio::thread_pool thread_pool
const std::string & get_endpoint_path() const
virtual void cleanup_after_join()