xrpld
Loading...
Searching...
No Matches
xrpl::detail::WorkBase< Impl > Class Template Reference

#include <WorkBase.h>

Inheritance diagram for xrpl::detail::WorkBase< Impl >:
Collaboration diagram for xrpl::detail::WorkBase< Impl >:

Public Types

using CallbackType = std::function<void(ErrorCode const&, EndpointType const&, ResponseType&&)>

Public Member Functions

 ~WorkBase () override
Impl & impl ()
void run () override
void cancel () override
void fail (ErrorCode const &ec)
void onResolve (ErrorCode const &ec, ResultsType results)
void onConnect (ErrorCode const &ec, EndpointType const &endpoint)
void onStart ()
void onRequest (ErrorCode const &ec)
void onResponse (ErrorCode const &ec)

Protected Types

using ErrorCode = boost::system::error_code
using EndpointType = boost::asio::ip::tcp::endpoint
using SocketType = boost::asio::ip::tcp::socket
using ResolverType = boost::asio::ip::tcp::resolver
using ResultsType = boost::asio::ip::tcp::resolver::results_type
using RequestType = boost::beast::http::request<boost::beast::http::empty_body>

Protected Attributes

std::string host_
std::string path_
std::string port_
CallbackType cb_
boost::asio::io_context & ios_
boost::asio::strand< boost::asio::io_context::executor_type > strand_
ResolverType resolver_
SocketType socket_
RequestType req_
ResponseType res_
boost::beast::multi_buffer readBuf_
EndpointType lastEndpoint_
bool lastStatus_

Private Member Functions

 WorkBase (std::string host, std::string path, std::string port, boost::asio::io_context &ios, EndpointType lastEndpoint, bool lastStatus, CallbackType cb)
void close ()

Private Attributes

friend Impl

Detailed Description

template<class Impl>
class xrpl::detail::WorkBase< Impl >

Definition at line 23 of file WorkBase.h.

Member Typedef Documentation

◆ ErrorCode

template<class Impl>
using xrpl::detail::WorkBase< Impl >::ErrorCode = boost::system::error_code
protected

Definition at line 26 of file WorkBase.h.

◆ EndpointType

template<class Impl>
using xrpl::detail::WorkBase< Impl >::EndpointType = boost::asio::ip::tcp::endpoint
protected

Definition at line 27 of file WorkBase.h.

◆ CallbackType

template<class Impl>
using xrpl::detail::WorkBase< Impl >::CallbackType = std::function<void(ErrorCode const&, EndpointType const&, ResponseType&&)>

Definition at line 30 of file WorkBase.h.

◆ SocketType

template<class Impl>
using xrpl::detail::WorkBase< Impl >::SocketType = boost::asio::ip::tcp::socket
protected

Definition at line 33 of file WorkBase.h.

◆ ResolverType

template<class Impl>
using xrpl::detail::WorkBase< Impl >::ResolverType = boost::asio::ip::tcp::resolver
protected

Definition at line 34 of file WorkBase.h.

◆ ResultsType

template<class Impl>
using xrpl::detail::WorkBase< Impl >::ResultsType = boost::asio::ip::tcp::resolver::results_type
protected

Definition at line 35 of file WorkBase.h.

◆ RequestType

template<class Impl>
using xrpl::detail::WorkBase< Impl >::RequestType = boost::beast::http::request<boost::beast::http::empty_body>
protected

Definition at line 36 of file WorkBase.h.

Constructor & Destructor Documentation

◆ WorkBase()

template<class Impl>
xrpl::detail::WorkBase< Impl >::WorkBase ( std::string host,
std::string path,
std::string port,
boost::asio::io_context & ios,
EndpointType lastEndpoint,
bool lastStatus,
CallbackType cb )
private

Definition at line 105 of file WorkBase.h.

◆ ~WorkBase()

template<class Impl>
xrpl::detail::WorkBase< Impl >::~WorkBase ( )
override

Definition at line 127 of file WorkBase.h.

Member Function Documentation

◆ impl()

template<class Impl>
Impl & xrpl::detail::WorkBase< Impl >::impl ( )

Definition at line 66 of file WorkBase.h.

◆ run()

template<class Impl>
void xrpl::detail::WorkBase< Impl >::run ( )
overridevirtual

Implements xrpl::detail::Work.

Definition at line 136 of file WorkBase.h.

◆ cancel()

template<class Impl>
void xrpl::detail::WorkBase< Impl >::cancel ( )
overridevirtual

Implements xrpl::detail::Work.

Definition at line 157 of file WorkBase.h.

◆ fail()

template<class Impl>
void xrpl::detail::WorkBase< Impl >::fail ( ErrorCode const & ec)

Definition at line 175 of file WorkBase.h.

◆ onResolve()

template<class Impl>
void xrpl::detail::WorkBase< Impl >::onResolve ( ErrorCode const & ec,
ResultsType results )

Definition at line 186 of file WorkBase.h.

◆ onConnect()

template<class Impl>
void xrpl::detail::WorkBase< Impl >::onConnect ( ErrorCode const & ec,
EndpointType const & endpoint )

Definition at line 205 of file WorkBase.h.

◆ onStart()

template<class Impl>
void xrpl::detail::WorkBase< Impl >::onStart ( )

Definition at line 217 of file WorkBase.h.

◆ onRequest()

template<class Impl>
void xrpl::detail::WorkBase< Impl >::onRequest ( ErrorCode const & ec)

Definition at line 236 of file WorkBase.h.

◆ onResponse()

template<class Impl>
void xrpl::detail::WorkBase< Impl >::onResponse ( ErrorCode const & ec)

Definition at line 253 of file WorkBase.h.

◆ close()

template<class Impl>
void xrpl::detail::WorkBase< Impl >::close ( )
private

Definition at line 266 of file WorkBase.h.

Member Data Documentation

◆ host_

template<class Impl>
std::string xrpl::detail::WorkBase< Impl >::host_
protected

Definition at line 38 of file WorkBase.h.

◆ path_

template<class Impl>
std::string xrpl::detail::WorkBase< Impl >::path_
protected

Definition at line 39 of file WorkBase.h.

◆ port_

template<class Impl>
std::string xrpl::detail::WorkBase< Impl >::port_
protected

Definition at line 40 of file WorkBase.h.

◆ cb_

template<class Impl>
CallbackType xrpl::detail::WorkBase< Impl >::cb_
protected

Definition at line 41 of file WorkBase.h.

◆ ios_

template<class Impl>
boost::asio::io_context& xrpl::detail::WorkBase< Impl >::ios_
protected

Definition at line 42 of file WorkBase.h.

◆ strand_

template<class Impl>
boost::asio::strand<boost::asio::io_context::executor_type> xrpl::detail::WorkBase< Impl >::strand_
protected

Definition at line 43 of file WorkBase.h.

◆ resolver_

template<class Impl>
ResolverType xrpl::detail::WorkBase< Impl >::resolver_
protected

Definition at line 44 of file WorkBase.h.

◆ socket_

template<class Impl>
SocketType xrpl::detail::WorkBase< Impl >::socket_
protected

Definition at line 45 of file WorkBase.h.

◆ req_

template<class Impl>
RequestType xrpl::detail::WorkBase< Impl >::req_
protected

Definition at line 46 of file WorkBase.h.

◆ res_

template<class Impl>
ResponseType xrpl::detail::WorkBase< Impl >::res_
protected

Definition at line 47 of file WorkBase.h.

◆ readBuf_

template<class Impl>
boost::beast::multi_buffer xrpl::detail::WorkBase< Impl >::readBuf_
protected

Definition at line 48 of file WorkBase.h.

◆ lastEndpoint_

template<class Impl>
EndpointType xrpl::detail::WorkBase< Impl >::lastEndpoint_
protected

Definition at line 49 of file WorkBase.h.

◆ lastStatus_

template<class Impl>
bool xrpl::detail::WorkBase< Impl >::lastStatus_
protected

Definition at line 50 of file WorkBase.h.

◆ Impl

template<class Impl>
friend xrpl::detail::WorkBase< Impl >::Impl
private

Definition at line 99 of file WorkBase.h.