diff options
Diffstat (limited to 'veslibrary/ves_cpplibrary/src/lib/encode/XCounterImp.cpp')
-rw-r--r-- | veslibrary/ves_cpplibrary/src/lib/encode/XCounterImp.cpp | 55 |
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 |