1#ifndef XRPL_APP_MISC_DETAIL_WORKFILE_H_INCLUDED
2#define XRPL_APP_MISC_DETAIL_WORKFILE_H_INCLUDED
4#include <xrpld/app/misc/detail/Work.h>
6#include <xrpl/basics/ByteUtilities.h>
7#include <xrpl/basics/FileUtilities.h>
8#include <xrpl/beast/utility/instrumentation.h>
10#include <boost/asio/bind_executor.hpp>
11#include <boost/asio/io_context.hpp>
12#include <boost/asio/strand.hpp>
33 boost::asio::io_context& ios,
46 boost::asio::io_context&
ios_;
47 boost::asio::strand<boost::asio::io_context::executor_type>
strand_;
54 boost::asio::io_context& ios,
59 , strand_(
boost::asio::make_strand(ios))
72 if (!
strand_.running_in_this_thread())
73 return boost::asio::post(
75 boost::asio::bind_executor(
81 XRPL_ASSERT(
cb_,
"ripple::detail::WorkFile::run : callback is set");
82 cb_(ec, fileContents);
boost::system::error_code error_code
WorkFile(std::string const &path, boost::asio::io_context &ios, callback_type cb)
boost::asio::strand< boost::asio::io_context::executor_type > strand_
boost::asio::io_context & ios_
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
constexpr auto megabytes(T value) noexcept
std::error_code make_error_code(ripple::TokenCodecErrc e)
std::string getFileContents(boost::system::error_code &ec, boost::filesystem::path const &sourcePath, std::optional< std::size_t > maxSize=std::nullopt)
T shared_from_this(T... args)