TARAXA
packets_stats.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <json/json.h>
4 
5 #include "max_stats.hpp"
6 #include "packets_stats.hpp"
7 
8 namespace taraxa::network::tarcap {
9 
13 class PacketsStats {
14  public:
15  PacketsStats();
16  PacketsStats(const PacketsStats &) = delete;
17  PacketsStats &operator=(const PacketsStats &) = delete;
18  PacketsStats(PacketsStats &&) = delete;
20 
21  ~PacketsStats() = default;
22 
23  using PerPacketStatsMap = std::unordered_map<std::string /*packet name*/, PacketStats>;
24 
25  public:
26  void addPacket(const std::string &packet_type, const PacketStats &packet);
27 
28  std::pair<std::chrono::system_clock::time_point, PacketStats> getAllPacketsStatsCopy() const;
29  Json::Value getStatsJson() const;
30 
34  void resetStats();
35 
36  private:
37  // Time point since which are the stats measured
39 
40  // Stats for all packets types combined
42 
43  // Stas per individual packet type
45  mutable std::shared_mutex mutex_;
46 };
47 
48 } // namespace taraxa::network::tarcap
Stats single packet type.
Definition: packet_stats.hpp:13
Stats for all packet types.
Definition: packets_stats.hpp:13
PacketsStats(const PacketsStats &)=delete
std::shared_mutex mutex_
Definition: packets_stats.hpp:45
std::chrono::system_clock::time_point start_time_
Definition: packets_stats.hpp:38
std::pair< std::chrono::system_clock::time_point, PacketStats > getAllPacketsStatsCopy() const
Definition: packets_stats.cpp:22
std::unordered_map< std::string, PacketStats > PerPacketStatsMap
Definition: packets_stats.hpp:23
void addPacket(const std::string &packet_type, const PacketStats &packet)
Definition: packets_stats.cpp:7
PacketsStats(PacketsStats &&)=delete
PerPacketStatsMap per_packet_stats_
Definition: packets_stats.hpp:44
PacketsStats & operator=(PacketsStats &&)=delete
Json::Value getStatsJson() const
Definition: packets_stats.cpp:35
void resetStats()
Resets stats to zero.
Definition: packets_stats.cpp:27
PacketsStats()
Definition: packets_stats.cpp:5
PacketsStats & operator=(const PacketsStats &)=delete
PacketStats all_packets_stats_
Definition: packets_stats.hpp:41
std::chrono::system_clock::time_point time_point
Definition: watches.hpp:12
Definition: vote_manager.hpp:23