summaryrefslogtreecommitdiffstats
path: root/veslibrary/ves_cpplibrary/src/lib/encode/XCounterImp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'veslibrary/ves_cpplibrary/src/lib/encode/XCounterImp.cpp')
-rw-r--r--veslibrary/ves_cpplibrary/src/lib/encode/XCounterImp.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/veslibrary/ves_cpplibrary/src/lib/encode/XCounterImp.cpp b/veslibrary/ves_cpplibrary/src/lib/encode/XCounterImp.cpp
new file mode 100644
index 0000000..96036a8
--- /dev/null
+++ b/veslibrary/ves_cpplibrary/src/lib/encode/XCounterImp.cpp
@@ -0,0 +1,55 @@
+#include "XCounterImp.h"
+
+const std::string XEnumCounterCriticalityMapping[] = {
+ "CRIT",
+ "MAJ"
+};
+
+XCounterImp::XCounterImp(XEnumCounterCriticality criticality,
+ const XHashMap& hashMap,
+ const XString& thresholdCrossed) :
+ criticality_(criticality),
+ hashMap_(hashMap),
+ thresholdCrossed_(thresholdCrossed)
+{
+
+}
+
+void XCounterImp::setThresholdCrossed(const XString& thresholdCrossed)
+{
+ comVals_["thresholdCrossed"] = thresholdCrossed;
+}
+
+void XCounterImp::setHashMap(const XHashMap& hashMap)
+{
+ hashMap_ = hashMap;
+}
+
+void XCounterImp::setCriticality(XEnumCounterCriticality criticality)
+{
+ auto val = XEnumCounterCriticalityMapping[criticality];
+ comVals_["criticality"] = val;
+}
+
+json XCounterImp::toJson()
+{
+ try
+ {
+ json field = {
+ { "thresholdCrossed", thresholdCrossed_ },
+ { "hashMap", hashMap_ },
+ { "criticality", XEnumCounterCriticalityMapping[criticality_] }
+ };
+
+ //optional val
+
+ field = mergeCommonValues(field, comVals_);
+
+ return field;
+ }
+ catch (json::exception& e)
+ {
+ SPDLOG_ERROR("Fail to build XCounter to json object:{}.", e.what());
+ return json();
+ }
+} \ No newline at end of file