SST 15.0
Structural Simulation Toolkit
statgroup.h
1// Copyright 2009-2025 NTESS. Under the terms
2// of Contract DE-NA0003525 with NTESS, the U.S.
3// Government retains certain rights in this software.
4//
5// Copyright (c) 2009-2025, NTESS
6// All rights reserved.
7//
8// This file is part of the SST software package. For license
9// information, see the LICENSE file in the top level directory of the
10// distribution.
11
12#ifndef SST_CORE_STATAPI_STATGROUP_H
13#define SST_CORE_STATAPI_STATGROUP_H
14
15#include "sst/core/serialization/serializer.h"
16#include "sst/core/sst_types.h"
17#include "sst/core/unitAlgebra.h"
18
19#include <string>
20#include <vector>
21
22namespace SST {
23class ConfigStatGroup;
24namespace Statistics {
25class StatisticBase;
26class StatisticOutput;
28
29/* A group of statistics that share a statistic output object*/
30class StatisticGroup
31{
32public:
33 StatisticGroup() :
34 isDefault(true),
35 name("default") {};
36 StatisticGroup(const ConfigStatGroup& csg, StatisticProcessingEngine* engine);
37
38 bool containsStatistic(const StatisticBase* stat) const;
39 bool claimsStatistic(const StatisticBase* stat) const;
40 void addStatistic(StatisticBase* stat);
41
42 bool isDefault;
43 std::string name;
44 StatisticOutput* output;
45 UnitAlgebra outputFreq;
46 size_t outputId;
47
48 std::vector<ComponentId_t> components;
49 std::vector<std::string> statNames;
50 std::vector<StatisticBase*> stats;
51
52 void restartGroup(StatisticProcessingEngine* engine);
53 void serialize_order(SST::Core::Serialization::serializer& ser);
54};
55
56} // namespace Statistics
57} // namespace SST
58
59#endif // SST_CORE_STATAPI_STATGROUP_H
Definition configGraph.h:175
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition serializer.h:45
Forms the base class for statistics gathering within SST.
Definition statbase.h:49
Forms the base class for statistics output generation within the SST core.
Definition statoutput.h:52
An SST core component that handles timing and event processing informing all registered Statistics to...
Definition statengine.h:58
Performs Unit math in full precision.
Definition unitAlgebra.h:107