From 1bae07469e8c3fffdad5be98ffd1ba22fb463592 Mon Sep 17 00:00:00 2001 From: Rainer Kartmann <rainer.kartmann@kit.edu> Date: Wed, 30 Aug 2023 18:45:25 +0200 Subject: [PATCH] Add typedef for armarx::armem::wm::EntityInstanceBase<AronDtoT> --- .../armem/core/wm/memory_definitions.h | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/source/RobotAPI/libraries/armem/core/wm/memory_definitions.h b/source/RobotAPI/libraries/armem/core/wm/memory_definitions.h index ae338328d..dcc828782 100644 --- a/source/RobotAPI/libraries/armem/core/wm/memory_definitions.h +++ b/source/RobotAPI/libraries/armem/core/wm/memory_definitions.h @@ -47,6 +47,32 @@ namespace armarx::armem::wm bool equalsDeep(const EntityInstance& other) const; }; + /** + * @brief Entity instance with a concrete ARON DTO type as data. + * + * This is the return type of EntityInstance::withDataAs<AronDtoT>(). + * + * Usage example: + * @code + * #include <RobotAPI/libraries/aron/common/aron/time.aron.generated.h> + * + * armarx::arondto::Duration duration; + * duration.microSeconds = 1000; + * + * armarx::armem::wm::EntityInstance instance; + * instance.data() = duration.toAron(); + * + * const armarx::armem::wm::EntityInstanceBase<armarx::arondto::Duration> cast = + * instance.withDataAs<armarx::arondto::Duration>(); + * + * const armarx::arondto::Duration& durationOut = cast.data(); + * + * assert(durationOut.microseconds == 1000); + * @endcode + */ + template <class AronDtoT> + using EntityInstanceBase = base::EntityInstanceBase<AronDtoT, EntityInstanceMetadata>; + /** * @brief Client-side working memory entity snapshot. * @see base::EntitySnapshotBase @@ -54,6 +80,7 @@ namespace armarx::armem::wm class EntitySnapshot : public base::EntitySnapshotBase<EntityInstance, EntitySnapshot>, public detail::FindInstanceDataMixinForSnapshot<EntitySnapshot> + { public: using base::EntitySnapshotBase<EntityInstance, EntitySnapshot>::EntitySnapshotBase; -- GitLab