summaryrefslogtreecommitdiffstats
path: root/veslibrary/ves_cpplibrary/src/lib/encode/XOtherFieldsImp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'veslibrary/ves_cpplibrary/src/lib/encode/XOtherFieldsImp.cpp')
-rwxr-xr-xveslibrary/ves_cpplibrary/src/lib/encode/XOtherFieldsImp.cpp85
1 files changed, 85 insertions, 0 deletions
diff --git a/veslibrary/ves_cpplibrary/src/lib/encode/XOtherFieldsImp.cpp b/veslibrary/ves_cpplibrary/src/lib/encode/XOtherFieldsImp.cpp
new file mode 100755
index 0000000..e9b4487
--- /dev/null
+++ b/veslibrary/ves_cpplibrary/src/lib/encode/XOtherFieldsImp.cpp
@@ -0,0 +1,85 @@
+#include "XOtherFieldsImp.h"
+
+const std::string XEnumOtherFieldsOtherFieldsVersionMapping[] = {
+ "3.0"
+};
+
+XOtherFieldsImp::XOtherFieldsImp(std::shared_ptr<XCommonEventHeader> header):
+ header_(header),
+ otherFieldsVersion_(XEnumOtherFieldsOtherFieldsVersion3_0)
+{
+
+}
+
+std::string XOtherFieldsImp::toString()
+{
+ try
+ {
+ auto js = toJson();
+ return js.dump();
+ }
+ catch (json::exception& e)
+ {
+ SPDLOG_ERROR("Fail to dump XOtherFields to json string:{}.", e.what());
+ return "";
+ }
+}
+
+void XOtherFieldsImp::setJsonObjects(const XArrayOfJsonObject& jsonObjects)
+{
+ jsonObjects_ = jsonObjects;
+}
+
+void XOtherFieldsImp::setArrayOfNamedHashMap(const XArrayOfNamedHashMap& arrayOfNamedHashMap)
+{
+ arrayOfNamedHashMap_ = arrayOfNamedHashMap;
+}
+
+void XOtherFieldsImp::setHashMap(const XHashMap& hashMap)
+{
+ hashMap_ = hashMap;
+}
+
+json XOtherFieldsImp::toJson()
+{
+ try
+ {
+ json field = {
+ {"otherFieldsVersion", XEnumOtherFieldsOtherFieldsVersionMapping[otherFieldsVersion_]}
+ };
+
+ //optional val
+ if (!jsonObjects_.empty())
+ {
+ field["jsonObjects"] = fromArray(jsonObjects_);
+ }
+
+ if (!arrayOfNamedHashMap_.empty())
+ {
+ field["arrayOfNamedHashMap"] = fromArray(arrayOfNamedHashMap_);
+ }
+
+ if (!hashMap_.empty())
+ {
+ field["hashMap"] = hashMap_;
+ }
+
+ json jsEvent;
+ header_->setDomain(XEnumCommonEventHeaderDomainOther);
+ jsEvent["event"]["commonEventHeader"] = dynamic_pointer_cast<XJsonable>(header_)->toJson();
+ jsEvent["event"]["otherFields"] = field;
+
+ return jsEvent;
+ }
+ catch (json::exception& e)
+ {
+ SPDLOG_ERROR("Fail to build XOtherFields to json object:{}.", e.what());
+ return json();
+ }
+}
+
+std::shared_ptr<XCommonEventHeader> XOtherFieldsImp::getCommonHeader()
+{
+ return header_;
+}
+ \ No newline at end of file