From baa48dacc43d89456d6d6c9e2d73a42118864d97 Mon Sep 17 00:00:00 2001 From: Rainer Kartmann <rainer.kartmann@kit.edu> Date: Thu, 24 Jun 2021 20:32:36 +0200 Subject: [PATCH] Add json conversion for MemoryID --- .../RobotAPI/libraries/armem/CMakeLists.txt | 2 ++ .../libraries/armem/core/json_conversions.cpp | 26 +++++++++++++++++++ .../libraries/armem/core/json_conversions.h | 12 +++++++++ 3 files changed, 40 insertions(+) create mode 100644 source/RobotAPI/libraries/armem/core/json_conversions.cpp create mode 100644 source/RobotAPI/libraries/armem/core/json_conversions.h diff --git a/source/RobotAPI/libraries/armem/CMakeLists.txt b/source/RobotAPI/libraries/armem/CMakeLists.txt index 3e0900893..38d9515cc 100644 --- a/source/RobotAPI/libraries/armem/CMakeLists.txt +++ b/source/RobotAPI/libraries/armem/CMakeLists.txt @@ -35,6 +35,7 @@ set(LIB_FILES core/Time.cpp core/ice_conversions.cpp core/aron_conversions.cpp + core/json_conversions.cpp core/base/detail/MemoryItem.cpp core/base/detail/MaxHistorySize.cpp @@ -136,6 +137,7 @@ set(LIB_HEADERS core/SuccessHeader.h core/Time.h core/aron_conversions.h + core/json_conversions.h core/ice_conversions.h core/ice_conversions_templates.h diff --git a/source/RobotAPI/libraries/armem/core/json_conversions.cpp b/source/RobotAPI/libraries/armem/core/json_conversions.cpp new file mode 100644 index 000000000..e4da9d89b --- /dev/null +++ b/source/RobotAPI/libraries/armem/core/json_conversions.cpp @@ -0,0 +1,26 @@ +#include "json_conversions.h" + +#include <RobotAPI/libraries/armem/core/MemoryID.h> + + +void armarx::armem::to_json(nlohmann::json& j, const MemoryID& bo) +{ + j["memoryName"] = bo.memoryName; + j["coreSegmentName"] = bo.coreSegmentName; + j["providerSegmentName"] = bo.providerSegmentName; + j["entityName"] = bo.entityName; + j["timestamp_usec"] = bo.timestamp.toMicroSeconds(); + j["timestamp_datetime"] = toDateTimeMilliSeconds(bo.timestamp); + j["instanceIndex"] = bo.instanceIndex; +} + +void armarx::armem::from_json(const nlohmann::json& j, MemoryID& bo) +{ + j.at("memoryName").get_to(bo.memoryName); + j.at("coreSegmentName").get_to(bo.coreSegmentName); + j.at("providerSegmentName").get_to(bo.providerSegmentName); + j.at("entityName").get_to(bo.entityName); + bo.timestamp = Time::microSeconds(j.at("timestamp_usec").get<int64_t>()); + // j.at("timestamp_datetime").get_to(toDateTimeMilliSeconds(bo.timestamp)); + j.at("instanceIndex").get_to(bo.instanceIndex); +} diff --git a/source/RobotAPI/libraries/armem/core/json_conversions.h b/source/RobotAPI/libraries/armem/core/json_conversions.h new file mode 100644 index 000000000..86e508c22 --- /dev/null +++ b/source/RobotAPI/libraries/armem/core/json_conversions.h @@ -0,0 +1,12 @@ +#pragma once + +#include <SimoxUtility/json/json.hpp> + + +namespace armarx::armem +{ + class MemoryID; + + void to_json(nlohmann::json& j, const MemoryID& bo); + void from_json(const nlohmann::json& j, MemoryID& bo); +} -- GitLab