xrpld
Loading...
Searching...
No Matches
WorkPlain.h
1#pragma once
2
3#include <xrpld/app/misc/detail/WorkBase.h>
4
5namespace xrpl::detail {
6
7// Work over TCP/IP
8class WorkPlain : public WorkBase<WorkPlain>, public std::enable_shared_from_this<WorkPlain>
9{
10 friend class WorkBase<WorkPlain>;
11
12public:
14 std::string const& host,
15 std::string const& path,
16 std::string const& port,
17 boost::asio::io_context& ios,
18 endpoint_type const& lastEndpoint,
19 bool lastStatus,
20 callback_type cb);
21 ~WorkPlain() override = default;
22
23private:
24 void
25 onConnect(error_code const& ec);
26
29 {
30 return socket_;
31 }
32};
33
34//------------------------------------------------------------------------------
35
37 std::string const& host,
38 std::string const& path,
39 std::string const& port,
40 boost::asio::io_context& ios,
41 endpoint_type const& lastEndpoint,
42 bool lastStatus,
44 : WorkBase(host, path, port, ios, lastEndpoint, lastStatus, cb)
45{
46}
47
48inline void
50{
51 if (ec)
52 {
53 fail(ec);
54 return;
55 }
56
57 onStart();
58}
59
60} // namespace xrpl::detail
void fail(error_code const &ec)
Definition WorkBase.h:176
std::function< void(error_code const &, endpoint_type const &, response_type &&)> callback_type
Definition WorkBase.h:27
boost::asio::ip::tcp::endpoint endpoint_type
Definition WorkBase.h:24
boost::system::error_code error_code
Definition WorkBase.h:23
boost::asio::ip::tcp::socket socket_type
Definition WorkBase.h:31
WorkBase(std::string host, std::string path, std::string port, boost::asio::io_context &ios, endpoint_type lastEndpoint, bool lastStatus, callback_type cb)
Definition WorkBase.h:103
void onConnect(error_code const &ec)
Definition WorkPlain.h:49
WorkPlain(std::string const &host, std::string const &path, std::string const &port, boost::asio::io_context &ios, endpoint_type const &lastEndpoint, bool lastStatus, callback_type cb)
Definition WorkPlain.h:36
~WorkPlain() override=default
socket_type & stream()
Definition WorkPlain.h:28