7#include <boost/asio/awaitable.hpp>
8#include <boost/asio/steady_timer.hpp>
9#include <gsl/gsl-lite.hpp>
10#include <spdlog/logger.h>
46 std::chrono::time_point<std::chrono::steady_clock>
last_print_time_ = std::chrono::steady_clock::now();
72 void start(
bool is_blocking);
104 tbb::concurrent_bounded_queue<process::SerializableMsgBuffer>
data_queue_;
void update(const StructData &data_struct)
std::atomic< double > current_hits_ps_
void set_display_period(std::chrono::milliseconds duration)
std::chrono::milliseconds period_
std::chrono::time_point< std::chrono::steady_clock > last_print_time_
std::atomic< uint64_t > last_processed_hit_num_
asio::steady_timer clock_
auto get_processed_hit_rate() const -> double
gsl::not_null< Handler * > processor_
std::atomic< uint64_t > last_read_data_bytes_
DataMonitor(Handler *processor, io_context_type *io_context)
void show_data_speed(bool val=true)
std::shared_ptr< spdlog::logger > console_
auto print_cycle() -> asio::awaitable< void >
auto get_received_bytes_MBps() const -> double
gsl::not_null< io_context_type * > io_context_
void set_speed_string(double speed_MBps)
std::atomic< double > current_received_bytes_MBps_
std::string speed_string_
void read_data_once(std::span< BufferElementType > read_data)
std::size_t received_data_size_
tbb::concurrent_bounded_queue< process::SerializableMsgBuffer > data_queue_
void set_monitor_display_period(std::chrono::milliseconds duration)
std::atomic< uint64_t > total_read_data_bytes_
Handler(const Handler &)=delete
void start(bool is_blocking)
auto get_processed_hit_number() const -> uint64_t
auto get_data_monitor() const -> const auto &
Handler & operator=(Handler &&)=delete
Handler & operator=(const Handler &)=delete
std::atomic< uint64_t > total_processed_hit_numer_
gsl::not_null< App * > app_
Handler(Handler &&)=delete
common::DataPrintMode print_mode_
std::atomic< bool > is_stopped_
TaskDiagram data_processes_
auto get_read_data_bytes() const -> uint64_t
void set_output_filenames(const std::vector< std::string > &filenames)
void set_print_mode(common::DataPrintMode mode)
void set_show_data_speed(bool val=true)
void analysis_loop(bool is_blocking)
asio::thread_pool io_context_type
constexpr auto DEFAULT_DISPLAY_PERIOD