From e6d209636527107a2ad9403f6ced4d518f492d46 Mon Sep 17 00:00:00 2001 From: Peguen <73380451+Peguen@users.noreply.github.com> Date: Wed, 7 Aug 2024 16:32:54 +0200 Subject: [PATCH] Added config object to monitoring initialization. --- ecal/core/src/ecal_globals.cpp | 2 +- .../src/monitoring/ecal_monitoring_def.cpp | 4 +-- .../core/src/monitoring/ecal_monitoring_def.h | 3 +- .../src/monitoring/ecal_monitoring_impl.cpp | 30 ++++++++----------- .../src/monitoring/ecal_monitoring_impl.h | 8 ++--- 5 files changed, 21 insertions(+), 26 deletions(-) diff --git a/ecal/core/src/ecal_globals.cpp b/ecal/core/src/ecal_globals.cpp index 56634748d4..1f19c0578f 100644 --- a/ecal/core/src/ecal_globals.cpp +++ b/ecal/core/src/ecal_globals.cpp @@ -174,7 +174,7 @@ namespace eCAL { if (monitoring_instance == nullptr) { - monitoring_instance = std::make_unique(); + monitoring_instance = std::make_unique(eCAL::GetConfiguration().monitoring); new_initialization = true; } } diff --git a/ecal/core/src/monitoring/ecal_monitoring_def.cpp b/ecal/core/src/monitoring/ecal_monitoring_def.cpp index e5f115fa4a..b05319c9f3 100644 --- a/ecal/core/src/monitoring/ecal_monitoring_def.cpp +++ b/ecal/core/src/monitoring/ecal_monitoring_def.cpp @@ -29,9 +29,9 @@ namespace eCAL { - CMonitoring::CMonitoring() + CMonitoring::CMonitoring(const Monitoring::Configuration& config_) { - m_monitoring_impl = std::make_unique(); + m_monitoring_impl = std::make_unique(config_); } CMonitoring::~CMonitoring() diff --git a/ecal/core/src/monitoring/ecal_monitoring_def.h b/ecal/core/src/monitoring/ecal_monitoring_def.h index ca567d0c1e..720ec9796a 100644 --- a/ecal/core/src/monitoring/ecal_monitoring_def.h +++ b/ecal/core/src/monitoring/ecal_monitoring_def.h @@ -24,6 +24,7 @@ #pragma once #include +#include #include #include @@ -37,7 +38,7 @@ namespace eCAL class CMonitoring { public: - CMonitoring(); + CMonitoring(const Monitoring::Configuration& = {}); ~CMonitoring(); void Start(); diff --git a/ecal/core/src/monitoring/ecal_monitoring_impl.cpp b/ecal/core/src/monitoring/ecal_monitoring_impl.cpp index f5fb5774fc..eda6dfbf00 100644 --- a/ecal/core/src/monitoring/ecal_monitoring_impl.cpp +++ b/ecal/core/src/monitoring/ecal_monitoring_impl.cpp @@ -41,13 +41,14 @@ namespace eCAL //////////////////////////////////////// // Monitoring Implementation //////////////////////////////////////// - CMonitoringImpl::CMonitoringImpl() : + CMonitoringImpl::CMonitoringImpl(const Monitoring::Configuration& config_) : m_init(false), - m_process_map (std::chrono::milliseconds(Config::GetMonitoringTimeoutMs())), - m_publisher_map (std::chrono::milliseconds(Config::GetMonitoringTimeoutMs())), - m_subscriber_map(std::chrono::milliseconds(Config::GetMonitoringTimeoutMs())), - m_server_map (std::chrono::milliseconds(Config::GetMonitoringTimeoutMs())), - m_clients_map (std::chrono::milliseconds(Config::GetMonitoringTimeoutMs())) + m_process_map (std::chrono::milliseconds(config_.timeout)), + m_publisher_map (std::chrono::milliseconds(config_.timeout)), + m_subscriber_map(std::chrono::milliseconds(config_.timeout)), + m_server_map (std::chrono::milliseconds(config_.timeout)), + m_clients_map (std::chrono::milliseconds(config_.timeout)), + m_config (config_) { } @@ -58,15 +59,8 @@ namespace eCAL // enable loopback to monitor process internal entities as well eCAL::Util::EnableLoopback(true); - // get name of this host - m_host_name = Process::GetHostName(); - // utilize registration receiver to enrich monitor information - g_registration_receiver()->SetCustomApplySampleCallback("monitoring", [this](const auto& sample_){this->ApplySample(sample_, tl_none);}); - - // setup blacklist and whitelist filter strings# - m_topic_filter_excl_s = Config::GetMonitoringFilterExcludeList(); - m_topic_filter_incl_s = Config::GetMonitoringFilterIncludeList(); + g_registration_receiver()->SetCustomApplySampleCallback("monitoring", [this](const auto& sample_){this->ApplySample(sample_, tl_none);}); // setup filtering on by default SetFilterState(true); @@ -83,12 +77,12 @@ namespace eCAL void CMonitoringImpl::SetExclFilter(const std::string& filter_) { - m_topic_filter_excl_s = filter_; + m_config.filter_excl = filter_; } void CMonitoringImpl::SetInclFilter(const std::string& filter_) { - m_topic_filter_incl_s = filter_; + m_config.filter_incl = filter_; } void CMonitoringImpl::SetFilterState(bool state_) @@ -98,13 +92,13 @@ namespace eCAL // create excluding filter list { const std::lock_guard lock(m_topic_filter_excl_mtx); - Tokenize(m_topic_filter_excl_s, m_topic_filter_excl, ",;", true); + Tokenize(m_config.filter_excl, m_topic_filter_excl, ",;", true); } // create including filter list { const std::lock_guard lock(m_topic_filter_incl_mtx); - Tokenize(m_topic_filter_incl_s, m_topic_filter_incl, ",;", true); + Tokenize(m_config.filter_incl, m_topic_filter_incl, ",;", true); } } else diff --git a/ecal/core/src/monitoring/ecal_monitoring_impl.h b/ecal/core/src/monitoring/ecal_monitoring_impl.h index 703bda8594..0bf2aa1d6c 100644 --- a/ecal/core/src/monitoring/ecal_monitoring_impl.h +++ b/ecal/core/src/monitoring/ecal_monitoring_impl.h @@ -24,6 +24,7 @@ #pragma once #include +#include #include "ecal_def.h" #include "util/ecal_expmap.h" @@ -47,7 +48,7 @@ namespace eCAL class CMonitoringImpl { public: - CMonitoringImpl(); + CMonitoringImpl(const Monitoring::Configuration& = {}); ~CMonitoringImpl() = default; void Create(); @@ -149,14 +150,13 @@ namespace eCAL void Tokenize(const std::string& str, StrICaseSetT& tokens, const std::string& delimiters, bool trimEmpty); bool m_init; - std::string m_host_name; + + Monitoring::Configuration m_config; std::mutex m_topic_filter_excl_mtx; - std::string m_topic_filter_excl_s; StrICaseSetT m_topic_filter_excl; std::mutex m_topic_filter_incl_mtx; - std::string m_topic_filter_incl_s; StrICaseSetT m_topic_filter_incl; // database