3#include <xrpld/app/misc/detail/Work.h>
5#include <xrpl/basics/ByteUtilities.h>
6#include <xrpl/basics/FileUtilities.h>
7#include <xrpl/beast/utility/instrumentation.h>
9#include <boost/asio/bind_executor.hpp>
10#include <boost/asio/io_context.hpp>
11#include <boost/asio/strand.hpp>
41 boost::asio::io_context&
ios_;
42 boost::asio::strand<boost::asio::io_context::executor_type>
strand_;
48 : path_(path), cb_(
std::move(cb)), ios_(ios), strand_(
boost::asio::make_strand(ios))
61 if (!
strand_.running_in_this_thread())
62 return boost::asio::post(
68 XRPL_ASSERT(
cb_,
"xrpl::detail::WorkFile::run : callback is set");
69 cb_(ec, fileContents);
boost::asio::strand< boost::asio::io_context::executor_type > strand_
boost::system::error_code error_code
WorkFile(std::string const &path, boost::asio::io_context &ios, callback_type cb)
boost::asio::io_context & ios_
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
std::error_code make_error_code(xrpl::TokenCodecErrc e)
std::string getFileContents(boost::system::error_code &ec, boost::filesystem::path const &sourcePath, std::optional< std::size_t > maxSize=std::nullopt)
constexpr auto megabytes(T value) noexcept
T shared_from_this(T... args)