checking if connection to deamon exists

master
moneroexamples 9 years ago
parent 10a264c03b
commit c388078432

@ -44,7 +44,6 @@ namespace xmreg {
class page { class page {
MicroCore* mcore; MicroCore* mcore;
Blockchain* core_storage; Blockchain* core_storage;
rpccalls rpc; rpccalls rpc;
@ -56,14 +55,22 @@ namespace xmreg {
: mcore {_mcore}, : mcore {_mcore},
core_storage {_core_storage}, core_storage {_core_storage},
server_timestamp {std::time(nullptr)} server_timestamp {std::time(nullptr)}
{ {
} }
string string
index(uint64_t page_no = 0, bool refresh_page = false) index(uint64_t page_no = 0, bool refresh_page = false)
{ {
bool is_connected = rpc.check_connection();
cout << "check connection: " << is_connected << endl;
if (!is_connected)
{
return "Connection to the Monero demon does not exist or was lost!";
}
//get current server timestamp //get current server timestamp
server_timestamp = std::time(nullptr); server_timestamp = std::time(nullptr);
@ -87,7 +94,6 @@ namespace xmreg {
{"is_page_zero" , !bool(page_no)}, {"is_page_zero" , !bool(page_no)},
{"next_page" , fmt::format("{:d}", page_no + 1)}, {"next_page" , fmt::format("{:d}", page_no + 1)},
{"prev_page" , fmt::format("{:d}", (page_no > 0 ? page_no - 1 : 0))}, {"prev_page" , fmt::format("{:d}", (page_no > 0 ? page_no - 1 : 0))},
}; };
@ -115,7 +121,11 @@ namespace xmreg {
// get block at the given height i // get block at the given height i
block blk; block blk;
mcore->get_block_by_height(i, blk); if (!mcore->get_block_by_height(i, blk))
{
cerr << "Cant get block: " << i << endl;
continue;
}
// get block's hash // get block's hash
crypto::hash blk_hash = core_storage->get_block_id_by_height(i); crypto::hash blk_hash = core_storage->get_block_id_by_height(i);
@ -238,7 +248,6 @@ namespace xmreg {
string string
mempool() mempool()
{ {
std::vector<tx_info> mempool_txs; std::vector<tx_info> mempool_txs;
if (!rpc.get_mempool(mempool_txs)) if (!rpc.get_mempool(mempool_txs))
@ -313,7 +322,6 @@ namespace xmreg {
private: private:
uint64_t uint64_t
sum_xmr_outputs(const string& json_str) sum_xmr_outputs(const string& json_str)
{ {

@ -23,27 +23,45 @@ namespace xmreg
class rpccalls class rpccalls
{ {
string deamon_url {"http:://127.0.0.1:18081"}; string deamon_url {"http:://127.0.0.1:18081"};
uint64_t timeout_time {200000}; uint64_t timeout_time {20000};
epee::net_utils::http::url_content url;
http_simple_client m_http_client;
boost::mutex m_daemon_rpc_mutex;
string port;
public: public:
rpccalls()
{
epee::net_utils::parse_url(deamon_url, url);
port = std::to_string(url.port);
}
bool
check_connection()
{
m_daemon_rpc_mutex.lock();
return m_http_client.connect(url.host,
port,
timeout_time);
}
uint64_t uint64_t
get_current_height() get_current_height()
{ {
COMMAND_RPC_GET_HEIGHT::request req; COMMAND_RPC_GET_HEIGHT::request req;
COMMAND_RPC_GET_HEIGHT::response res; COMMAND_RPC_GET_HEIGHT::response res;
http_simple_client m_http_client;
// perform RPC call to deamon to get
// its transaction pull
boost::mutex m_daemon_rpc_mutex;
m_daemon_rpc_mutex.lock(); m_daemon_rpc_mutex.lock();
bool r = epee::net_utils::invoke_http_json_remote_command2( bool r = epee::net_utils::invoke_http_json_remote_command2(
deamon_url + "/getheight", deamon_url + "/getheight",
req, res, m_http_client, 200000); req, res, m_http_client, timeout_time);
m_daemon_rpc_mutex.unlock(); m_daemon_rpc_mutex.unlock();
@ -67,15 +85,11 @@ namespace xmreg
COMMAND_RPC_GET_TRANSACTION_POOL::request req; COMMAND_RPC_GET_TRANSACTION_POOL::request req;
COMMAND_RPC_GET_TRANSACTION_POOL::response res; COMMAND_RPC_GET_TRANSACTION_POOL::response res;
http_simple_client m_http_client;
boost::mutex m_daemon_rpc_mutex;
m_daemon_rpc_mutex.lock(); m_daemon_rpc_mutex.lock();
bool r = epee::net_utils::invoke_http_json_remote_command2( bool r = epee::net_utils::invoke_http_json_remote_command2(
deamon_url + "/get_transaction_pool", deamon_url + "/get_transaction_pool",
req, res, m_http_client, 200000); req, res, m_http_client, timeout_time);
m_daemon_rpc_mutex.unlock(); m_daemon_rpc_mutex.unlock();

Loading…
Cancel
Save