TARAXA
Loading...
Searching...
No Matches
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
9
14 public:
16 PacketsStats(const 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
38 std::chrono::system_clock::time_point start_time_;
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
PacketsStats & operator=(PacketsStats &&)=delete
PerPacketStatsMap per_packet_stats_
Definition packets_stats.hpp:44
PacketsStats & operator=(const 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
PacketStats all_packets_stats_
Definition packets_stats.hpp:41
Definition vote_manager.hpp:24