File AccessStats.hpp¶
File List > analysis > stats > AccessStats.hpp
Go to the documentation of this file
#pragma once
#include <string>
#include <vector>
#include <gtl/btree.hpp>
#include <units/units.hpp>
#include <trace/analysis/stats/HyperStats.hpp>
#include <trace/analysis/stats/RiseSetStats.hpp>
#include <trace/analysis/stats/Stats.hpp>
#include <trace/risesets/RiseSetArray.hpp>
#include <trace/trace.fwd.hpp>
#include <trace/types/IdPair.hpp>
#include <trace/types/enums.hpp>
namespace astrea {
namespace trace {
struct AccessStats {
AccessStats() = default;
AccessStats(const AccessArray& accesses);
std::vector<std::string> to_string_vector() const;
const auto& get_riseset_statistics() const { return _stats; }
const auto& get_riseset_statistics(std::size_t receiverId) const { return _stats.at(receiverId); }
const auto& get_access_metric(std::size_t receiverId, const AccessMetric& metric) const
{
return _accessMetrics.at(receiverId).at(metric);
}
const auto& get_access_metrics() const { return _accessMetrics; }
const auto& get_access_statistics(const AccessMetric& metric) const { return _accessStats.at(metric); }
const auto& get_hyper_statistics(const RiseSetMetric& metric) const { return _hyperStats.at(metric); }
auto& get_hyper_statistics(const RiseSetMetric& metric) { return _hyperStats[metric]; }
private:
gtl::btree_map<std::size_t, RiseSetArray> _risesets;
gtl::btree_map<std::size_t, RiseSetStats> _stats;
gtl::btree_map<RiseSetMetric, HyperStats<Time>> _hyperStats;
gtl::btree_map<std::size_t, gtl::btree_map<AccessMetric, Time>> _accessMetrics;
gtl::btree_map<AccessMetric, Stats<Time>> _accessStats;
};
} // namespace trace
} // namespace astrea