3#include <xrpl/beast/utility/WrappedSink.h>
4#include <xrpl/beast/utility/instrumentation.h>
5#include <xrpl/server/Port.h>
6#include <xrpl/server/detail/LowestLayer.h>
7#include <xrpl/server/detail/io_list.h>
9#include <boost/asio.hpp>
19template <
class Handler,
class Impl>
34 boost::asio::executor_work_guard<boost::asio::executor>
work_;
35 boost::asio::strand<boost::asio::executor>
strand_;
42 boost::asio::executor
const& executor,
53 return *
static_cast<Impl*
>(
this);
59template <
class Handler,
class Impl>
63 boost::asio::executor
const& executor,
76 , work_(boost::asio::make_work_guard(executor))
77 , strand_(boost::asio::make_strand(executor))
81template <
class Handler,
class Impl>
85 if (!
strand_.running_in_this_thread())
A generic endpoint for log messages.
Wraps a Journal::Sink to prefix its output with a string.
boost::system::error_code error_code
boost::asio::executor_work_guard< boost::asio::executor > work_
boost::asio::strand< boost::asio::executor > strand_
boost::asio::basic_waitable_timer< clock_type > waitable_timer
boost::asio::ip::tcp::endpoint endpoint_type
endpoint_type remoteAddress_
BasePeer(Port const &port, Handler &handler, boost::asio::executor const &executor, endpoint_type remoteAddress, beast::Journal journal)
std::chrono::system_clock clock_type
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
decltype(auto) getLowestLayer(T &t) noexcept
Configuration information for a Server listening port.