From 75e6f9abd521fe21fb300536a1f3d776679774ec Mon Sep 17 00:00:00 2001 From: timur <12267899-timur.5@users.noreply.gitlab.com> Date: Mon, 28 Nov 2022 06:38:50 -0400 Subject: [PATCH] SON conn. pool --- .../peerplays_sidechain/common/rpc_client.cpp | 17 ++++++++++++----- .../peerplays_sidechain/common/rpc_client.hpp | 2 ++ .../sidechain_net_handler_hive.cpp | 3 +++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/libraries/plugins/peerplays_sidechain/common/rpc_client.cpp b/libraries/plugins/peerplays_sidechain/common/rpc_client.cpp index aa8fbe87..a8ab651b 100644 --- a/libraries/plugins/peerplays_sidechain/common/rpc_client.cpp +++ b/libraries/plugins/peerplays_sidechain/common/rpc_client.cpp @@ -27,12 +27,9 @@ class rpc_connection { public: rpc_connection(std::string _url, std::string _user, std::string _password, bool _debug_rpc_calls); -protected: - //static std::string retrieve_array_value_from_reply(std::string reply_str, std::string array_path, uint32_t idx); - //static std::string retrieve_value_from_reply(std::string reply_str, std::string value_path); - -public: std::string send_post_request(std::string method, std::string params, bool show_log); + std::string get_url() const; + protected: std::string url; @@ -99,6 +96,11 @@ rpc_connection::rpc_connection(std::string _url, std::string _user, std::string } } +std::string rpc_connection::get_url() const +{ + return url; +} + std::string rpc_client::retrieve_array_value_from_reply(std::string reply_str, std::string array_path, uint32_t idx) { if (reply_str.empty()) { wlog("RPC call ${function}, empty reply string", ("function", __FUNCTION__)); @@ -371,6 +373,11 @@ std::string rpc_client::send_post_request(rpc_connection &conn, std::string meth return conn.send_post_request(method, params, show_log); } +std::string rpc_client::get_connection_url(const rpc_connection &conn) +{ + return conn.get_url(); +} + rpc_client::~rpc_client() { try { diff --git a/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/common/rpc_client.hpp b/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/common/rpc_client.hpp index 62270eeb..31b7b9ee 100644 --- a/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/common/rpc_client.hpp +++ b/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/common/rpc_client.hpp @@ -27,6 +27,8 @@ protected: static std::string retrieve_array_value_from_reply(std::string reply_str, std::string array_path, uint32_t idx); static std::string retrieve_value_from_reply(std::string reply_str, std::string value_path); + static std::string get_connection_url(const rpc_connection &conn); + private: std::vector connections; int n_active_conn; diff --git a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_hive.cpp b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_hive.cpp index 1b62d2b3..3295524b 100644 --- a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_hive.cpp +++ b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_hive.cpp @@ -113,6 +113,9 @@ std::string hive_rpc_client::get_last_irreversible_block_num() { } uint64_t hive_rpc_client::ping(rpc_connection &conn) const { + + ilog("!!!hive_rpc_client::ping() ${url}", ("url", get_connection_url(conn))); + const std::string reply = send_post_request(conn, "database_api.get_dynamic_global_properties", "", debug_rpc_calls); if (!reply.empty()) { std::stringstream ss(reply);