1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
#pragma once
#include <nlohmann/json.hpp>
namespace metric_definition
{
// clang-format off
enum class MetricType{
Invalid,
Numeric,
Discrete,
Gauge,
Counter,
Countdown,
String,
};
enum class ImplementationType{
Invalid,
PhysicalSensor,
Calculated,
Synthesized,
DigitalMeter,
};
enum class MetricDataType{
Invalid,
Boolean,
DateTime,
Decimal,
Integer,
String,
Enumeration,
};
enum class Calculable{
Invalid,
NonCalculatable,
Summable,
NonSummable,
};
enum class CalculationAlgorithmEnum{
Invalid,
Average,
Maximum,
Minimum,
OEM,
};
NLOHMANN_JSON_SERIALIZE_ENUM(MetricType, {
{MetricType::Invalid, "Invalid"},
{MetricType::Numeric, "Numeric"},
{MetricType::Discrete, "Discrete"},
{MetricType::Gauge, "Gauge"},
{MetricType::Counter, "Counter"},
{MetricType::Countdown, "Countdown"},
{MetricType::String, "String"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(ImplementationType, {
{ImplementationType::Invalid, "Invalid"},
{ImplementationType::PhysicalSensor, "PhysicalSensor"},
{ImplementationType::Calculated, "Calculated"},
{ImplementationType::Synthesized, "Synthesized"},
{ImplementationType::DigitalMeter, "DigitalMeter"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(MetricDataType, {
{MetricDataType::Invalid, "Invalid"},
{MetricDataType::Boolean, "Boolean"},
{MetricDataType::DateTime, "DateTime"},
{MetricDataType::Decimal, "Decimal"},
{MetricDataType::Integer, "Integer"},
{MetricDataType::String, "String"},
{MetricDataType::Enumeration, "Enumeration"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(Calculable, {
{Calculable::Invalid, "Invalid"},
{Calculable::NonCalculatable, "NonCalculatable"},
{Calculable::Summable, "Summable"},
{Calculable::NonSummable, "NonSummable"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(CalculationAlgorithmEnum, {
{CalculationAlgorithmEnum::Invalid, "Invalid"},
{CalculationAlgorithmEnum::Average, "Average"},
{CalculationAlgorithmEnum::Maximum, "Maximum"},
{CalculationAlgorithmEnum::Minimum, "Minimum"},
{CalculationAlgorithmEnum::OEM, "OEM"},
});
}
// clang-format on
|