From 41109c6cb20b623dc2344651bbc6ebf10ee3fb09 Mon Sep 17 00:00:00 2001 From: Fabian Peller <fabian.peller-konrad@kit.edu> Date: Fri, 24 Nov 2023 09:02:13 +0100 Subject: [PATCH] add new public commitLocking methods (similar to commit) to iceAdapter --- .../armem/server/MemoryToIceAdapter.cpp | 44 +++++++++++++++++++ .../armem/server/MemoryToIceAdapter.h | 2 + 2 files changed, 46 insertions(+) diff --git a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp index 1dbb15e5c..194785757 100644 --- a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp +++ b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp @@ -157,6 +157,50 @@ namespace armarx::armem::server return this->_commit(commit, false); } + data::CommitResult + MemoryToIceAdapter::commitLocking(const data::Commit& commitIce, Time timeArrived) + { + ARMARX_TRACE; + ARMARX_CHECK_NOT_NULL(workingMemory); + auto handleException = [](const std::string& what) + { + data::CommitResult result; + data::EntityUpdateResult& r = result.results.emplace_back(); + r.success = false; + r.errorMessage = what; + return result; + }; + + armem::Commit commit; + try + { + ::armarx::armem::fromIce(commitIce, commit, timeArrived); + } + catch (const aron::error::AronNotValidException& e) + { + throw; + return handleException(e.what()); + } + catch (const Ice::Exception& e) + { + throw; + return handleException(e.what()); + } + + armem::CommitResult result = this->commitLocking(commit); + data::CommitResult resultIce; + toIce(resultIce, result); + + return resultIce; + } + + data::CommitResult + MemoryToIceAdapter::commitLocking(const data::Commit& commitIce) + { + ARMARX_TRACE; + return commitLocking(commitIce, armem::Time::Now()); + } + armem::CommitResult MemoryToIceAdapter::commitLocking(const armem::Commit& commit) { diff --git a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h index a451054a2..f6fdfe9ea 100644 --- a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h +++ b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h @@ -37,6 +37,8 @@ namespace armarx::armem::server data::CommitResult commit(const data::Commit& commitIce, Time timeArrived); data::CommitResult commit(const data::Commit& commitIce); armem::CommitResult commit(const armem::Commit& commit); + data::CommitResult commitLocking(const data::Commit& commitIce, Time timeArrived); + data::CommitResult commitLocking(const data::Commit& commitIce); armem::CommitResult commitLocking(const armem::Commit& commit); -- GitLab