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