Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
jsonrpc_server_impl_base.h
Go to the documentation of this file.
1
#ifndef JSONRPC_SERVER_IMPL_BASE_H
2
#define JSONRPC_SERVER_IMPL_BASE_H
3
4
#include <boost/thread.hpp>
5
#include <boost/bind.hpp>
6
7
#include "
net/jsonrpc_protocol_handler.h
"
8
#include "
net/jsonrpc_server_handlers_map.h
"
9
#include "
net/abstract_tcp_server2.h
"
10
11
namespace
epee
12
{
13
14
template
<
class
t_child_
class
,
class
t_connection_context = epee::net_utils::connection_context_base>
15
class
jsonrpc_server_impl_base
:
public
net_utils::jsonrpc2::i_jsonrpc2_server_handler
<t_connection_context>
16
{
17
18
public
:
19
jsonrpc_server_impl_base
()
20
:
m_net_server
()
21
{}
22
23
explicit
jsonrpc_server_impl_base
(boost::asio::io_service& external_io_service)
24
:
m_net_server
(external_io_service)
25
{}
26
27
bool
init
(
const
std::string& bind_port =
"0"
,
const
std::string& bind_ip =
"0.0.0.0"
)
28
{
29
//set self as callback handler
30
m_net_server
.get_config_object().m_phandler =
static_cast<
t_child_class*
>
(
this
);
31
32
LOG_PRINT_L0
(
"Binding on "
<< bind_ip <<
":"
<< bind_port);
33
bool
res
=
m_net_server
.init_server(bind_port, bind_ip);
34
if
(!
res
)
35
{
36
LOG_ERROR
(
"Failed to bind server"
);
37
return
false
;
38
}
39
return
true
;
40
}
41
42
bool
run
(
size_t
threads_count,
bool
wait =
true
)
43
{
44
//go to loop
45
LOG_PRINT(
"Run net_service loop( "
<< threads_count <<
" threads)..."
, LOG_LEVEL_0);
46
if
(!
m_net_server
.run_server(threads_count, wait))
47
{
48
LOG_ERROR
(
"Failed to run net tcp server!"
);
49
}
50
51
if
(wait)
52
LOG_PRINT(
"net_service loop stopped."
, LOG_LEVEL_0);
53
return
true
;
54
}
55
56
bool
deinit
()
57
{
58
return
m_net_server
.deinit_server();
59
}
60
61
bool
timed_wait_server_stop
(
uint64_t
ms)
62
{
63
return
m_net_server
.timed_wait_server_stop(ms);
64
}
65
66
bool
send_stop_signal
()
67
{
68
m_net_server
.send_stop_signal();
69
return
true
;
70
}
71
72
int
get_binded_port
()
73
{
74
return
m_net_server
.get_binded_port();
75
}
76
77
protected
:
78
net_utils::boosted_tcp_server<net_utils::jsonrpc2::jsonrpc2_connection_handler<t_connection_context>
>
m_net_server
;
79
};
80
81
}
82
83
#endif
/* JSONRPC_SERVER_IMPL_BASE_H */
84
abstract_tcp_server2.h
the connection templated-class for one peer connection
epee::jsonrpc_server_impl_base::jsonrpc_server_impl_base
jsonrpc_server_impl_base()
Definition
jsonrpc_server_impl_base.h:19
epee::jsonrpc_server_impl_base::m_net_server
net_utils::boosted_tcp_server< net_utils::jsonrpc2::jsonrpc2_connection_handler< t_connection_context > > m_net_server
Definition
jsonrpc_server_impl_base.h:78
epee::jsonrpc_server_impl_base::jsonrpc_server_impl_base
jsonrpc_server_impl_base(boost::asio::io_service &external_io_service)
Definition
jsonrpc_server_impl_base.h:23
epee::jsonrpc_server_impl_base::init
bool init(const std::string &bind_port="0", const std::string &bind_ip="0.0.0.0")
Definition
jsonrpc_server_impl_base.h:27
epee::jsonrpc_server_impl_base::get_binded_port
int get_binded_port()
Definition
jsonrpc_server_impl_base.h:72
epee::jsonrpc_server_impl_base::deinit
bool deinit()
Definition
jsonrpc_server_impl_base.h:56
epee::jsonrpc_server_impl_base::send_stop_signal
bool send_stop_signal()
Definition
jsonrpc_server_impl_base.h:66
epee::jsonrpc_server_impl_base::run
bool run(size_t threads_count, bool wait=true)
Definition
jsonrpc_server_impl_base.h:42
epee::jsonrpc_server_impl_base::timed_wait_server_stop
bool timed_wait_server_stop(uint64_t ms)
Definition
jsonrpc_server_impl_base.h:61
epee::net_utils::boosted_tcp_server
Definition
abstract_tcp_server2.h:209
res
const char * res
Definition
hmac_keccak.cpp:41
jsonrpc_protocol_handler.h
jsonrpc_server_handlers_map.h
LOG_ERROR
#define LOG_ERROR(x)
Definition
misc_log_ex.h:98
LOG_PRINT_L0
#define LOG_PRINT_L0(x)
Definition
misc_log_ex.h:99
epee
Definition
ado_db_helper.h:67
uint64_t
unsigned __int64 uint64_t
Definition
stdint.h:136
epee::net_utils::jsonrpc2::i_jsonrpc2_server_handler
Definition
jsonrpc_protocol_handler.h:35
contrib
epee
include
net
jsonrpc_server_impl_base.h
Generated on
for Electroneum by
1.17.0