summaryrefslogtreecommitdiffstats
path: root/veslibrary/ves_cpplibrary/src/lib/encode/XJsonObjectInstanceImp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'veslibrary/ves_cpplibrary/src/lib/encode/XJsonObjectInstanceImp.cpp')
-rwxr-xr-xveslibrary/ves_cpplibrary/src/lib/encode/XJsonObjectInstanceImp.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/veslibrary/ves_cpplibrary/src/lib/encode/XJsonObjectInstanceImp.cpp b/veslibrary/ves_cpplibrary/src/lib/encode/XJsonObjectInstanceImp.cpp
new file mode 100755
index 0000000..e371f6e
--- /dev/null
+++ b/veslibrary/ves_cpplibrary/src/lib/encode/XJsonObjectInstanceImp.cpp
@@ -0,0 +1,63 @@
+#include "XJsonObjectInstanceImp.h"
+
+XJsonObjectInstanceImp::XJsonObjectInstanceImp():XJsonObjectInstance(nullptr)
+{
+}
+
+void XJsonObjectInstanceImp::setJsonObject(const XJsonObject& jsonObject)
+{
+ jsonObject_ = jsonObject.imp_;
+}
+
+void XJsonObjectInstanceImp::setObjectInstance(const XString& objectInstance)
+{
+ objectInstance_ = objectInstance;
+}
+
+void XJsonObjectInstanceImp::setObjectInstanceEpochMicrosec(XNumber objectInstanceEpochMicrosec)
+{
+ comVals_["objectInstanceEpochMicrosec"] = objectInstanceEpochMicrosec;
+}
+
+void XJsonObjectInstanceImp::setObjectKeys(const XArrayOfXKey& objectKeys)
+{
+ objectKeys_ = objectKeys;
+}
+
+json XJsonObjectInstanceImp::toJson()
+{
+ try
+ {
+ json field;
+
+ //optional val
+ if (jsonObject_)
+ {
+ auto jsobj = dynamic_pointer_cast<XJsonable>(jsonObject_);
+ if (!jsobj->toJson().empty())
+ {
+ field["jsonObject"] = jsobj->toJson();
+ }
+ }
+
+ if (!objectKeys_.empty())
+ {
+ field["objectKeys"] = fromArray(objectKeys_);
+ }
+
+ if (!objectInstance_.empty())
+ {
+ field["objectInstance"] = json::parse(objectInstance_);
+ }
+
+ field = mergeCommonValues(field, comVals_);
+
+ return field;
+ }
+ catch (json::exception& e)
+ {
+ SPDLOG_ERROR("Fail to build XJsonObjectInstance to json object:{}.", e.what());
+ return json();
+ }
+}
+ \ No newline at end of file