From efb4aab090cb9c1b57b9e7f9988ae1c41f48344f Mon Sep 17 00:00:00 2001 From: Alexey Yurchenko Date: Sat, 11 Sep 2021 22:50:20 +0300 Subject: [PATCH] Fixup to previous commit. Since dbsim implies that logger function is static and global, it cannot use the reporter object, which must be a non-static member of server class. --- dbsim/db_server.cpp | 30 +++++------------------------- dbsim/db_server.hpp | 6 +++--- dbsim/db_simulator.cpp | 3 +-- 3 files changed, 9 insertions(+), 30 deletions(-) diff --git a/dbsim/db_server.cpp b/dbsim/db_server.cpp index 3efef49..dcb9631 100644 --- a/dbsim/db_server.cpp +++ b/dbsim/db_server.cpp @@ -24,13 +24,11 @@ #include "db_simulator.hpp" #include "wsrep/logger.hpp" -#include "wsrep/reporter.hpp" #include #include static wsrep::default_mutex logger_mtx; -static wsrep::reporter* reporter = nullptr; static void logger_fn(wsrep::log::level l, const char* pfx, const char* msg) @@ -50,31 +48,19 @@ logger_fn(wsrep::log::level l, const char* pfx, const char* msg) date.tm_year + 1900, date.tm_mon + 1, date.tm_mday, date.tm_hour, date.tm_min, date.tm_sec, (int)time.tv_nsec/1000000); -#define LOG_STR date_str << pfx << wsrep::log::to_c_string(l) << msg - if (l >= wsrep::log::error && reporter) - { - std::ostringstream os; - os << LOG_STR; - std::cerr << os.str() << std::endl; - auto const tstamp(double(time.tv_sec) + double(time.tv_nsec)*1.0e-9); - reporter->report_log_msg(wsrep::reporter::error, os.str(), tstamp); - } - else - { - std::cerr << LOG_STR << std::endl; - } -#undef LOG_STR + std::cerr << date_str << ' ' << pfx << wsrep::log::to_c_string(l) << ' ' + << msg << std::endl; } db::server::server(simulator& simulator, const std::string& name, - const std::string& address, - const std::string& status_file) + const std::string& address) : simulator_(simulator) , storage_engine_(simulator_.params()) , mutex_() , cond_() , server_service_(*this) + , reporter_(mutex_, name + ".json", 4) , server_state_(server_service_, name, address, "dbsim_" + name + "_data") , last_client_id_(0) @@ -84,12 +70,6 @@ db::server::server(simulator& simulator, , client_threads_() { wsrep::log::logger_fn(logger_fn); - reporter = new wsrep::reporter(mutex_, status_file, 3); -} - -db::server::~server() -{ - delete reporter; } void db::server::applier_thread() @@ -183,5 +163,5 @@ void db::server::log_state_change(enum wsrep::server_state::state from, enum wsrep::server_state::state to) { wsrep::log_info() << "State changed " << from << " -> " << to; - if (reporter) reporter->report_state(to, 0); + reporter_.report_state(to, 0); } diff --git a/dbsim/db_server.hpp b/dbsim/db_server.hpp index 63772b8..9f197be 100644 --- a/dbsim/db_server.hpp +++ b/dbsim/db_server.hpp @@ -22,6 +22,7 @@ #include "wsrep/gtid.hpp" #include "wsrep/client_state.hpp" +#include "wsrep/reporter.hpp" #include "db_storage_engine.hpp" #include "db_server_state.hpp" @@ -41,9 +42,7 @@ namespace db public: server(simulator& simulator, const std::string& name, - const std::string& address, - const std::string& status_file); - ~server(); + const std::string& address); void applier_thread(); void start_applier(); void stop_applier(); @@ -70,6 +69,7 @@ namespace db wsrep::default_mutex mutex_; wsrep::default_condition_variable cond_; db::server_service server_service_; + wsrep::reporter reporter_; db::server_state server_state_; std::atomic last_client_id_; std::atomic last_transaction_id_; diff --git a/dbsim/db_simulator.cpp b/dbsim/db_simulator.cpp index 6bede3d..0971b11 100644 --- a/dbsim/db_simulator.cpp +++ b/dbsim/db_simulator.cpp @@ -137,8 +137,7 @@ void db::simulator::start() std::make_unique( *this, name_os.str(), - address_os.str(), - name_os.str() + "_" + params_.status_file)))); + address_os.str())))); if (it.second == false) { throw wsrep::runtime_error("Failed to add server");