Resolve "Implement Resolution of Memory Links in ARON Data during Query"
Merged
requested to merge 61-implement-resolution-of-memory-links-in-aron-data-during-query into master
Closes #61 (closed)
Edited by Rainer Kartmann
Merge request reports
Activity
added module::armem label
Any Dict in XML
XML syntax:
<Object name='Request'> <ObjectChild key='config'> <AnyDict /> </ObjectChild> </Object>
Generated cpp code:
class PoseTest : public armarx::aron::codegenerator::cpp::AronCppClass { public: using This = armarx::PoseTest; ... ::armarx::aron::data::DictPtr any; // also add include ... template<class WriterInterfaceT> requires armarx::aron::data::isWriter<WriterInterfaceT> typename WriterInterfaceT::ReturnType write(WriterInterfaceT& aron_w, const armarx::aron::Path& aron_p = armarx::aron::Path()) const { using T = typename WriterInterfaceT::ReturnType; std::map<std::string, T> aron_objectMembers; std::optional<T> aron_objectExtends; // members of armarx::PoseTest auto aron_variant_pose = aron_w.writeNull(); aron_variant_pose = aron_w.writeNDArray({4, 4, 4}, "float", reinterpret_cast<const unsigned char*>(pose.data()), armarx::aron::Path(aron_p, {"pose"})); // of pose aron_objectMembers.emplace("pose", aron_variant_pose); { using ConverterImplementation = aron::data::VariantConverter<WriterInterfaceT>; // typename ConverterImplementation::ReaderInputType anyy = any; aron_objectMembers.emplace("any", aron::data::readAndWrite<ConverterImplementation>(this->any)); } return aron_w.writeDict(aron_objectMembers, aron_objectExtends, aron_p); // of top level object armarx::PoseTest } .... template<class ReaderInterfaceT> requires aron::data::isReader<ReaderInterfaceT> void read(ReaderInterfaceT& aron_r, typename ReaderInterfaceT::InputType& input) { using T = typename ReaderInterfaceT::InputType; using TNonConst = typename std::remove_const<T>::type; { const TNonConst* _suppressUnusedWarning; (void) _suppressUnusedWarning; } this->resetSoft(); if (aron_r.readNull(input)) { throw armarx::aron::error::AronException(__PRETTY_FUNCTION__, "The input to the read method must not be null."); } std::map<std::string, TNonConst> aron_objectMembers; aron_r.readDict(input, aron_objectMembers); // of top level object armarx::PoseTest std::string aron_variant_pose_typeAsString; std::vector<int> aron_variant_pose_shape; std::vector<unsigned char> aron_variant_pose_data; aron_r.readNDArray(aron_objectMembers.at("pose"), aron_variant_pose_shape, aron_variant_pose_typeAsString, aron_variant_pose_data); // of pose std::memcpy(reinterpret_cast<unsigned char*>(pose.data()), aron_variant_pose_data.data(), aron_variant_pose_data.size()); { using ConverterImplementation = aron::data::VariantConverter<ReaderInterfaceT>; // typename ConverterImplementation::ReaderInputType anyy = any; this->any = aron::data::readAndWrite<ConverterImplementation>(aron_objectMembers.at("any")); } }
Templates in XML
XML Syntax:
<Template typename="DataT" > <Object name="MemoryLink" > <ObjectChild key="id"> <armarx::armem::arondto::MemoryID /> </ObjectChild> <ObjectChild key="data"> <DataT optional="true" /> </ObjectChild> </Object> </Template>
CPP:
template <class DataT> requires ValueT isAronCppClass<> class MemoryLink { armarx::armem::arondto::MemoryID id; std::option<lValueT> data; ... void write(foo) { ... value->write(foo); } }
added 2 commits
mentioned in issue #82 (closed)
added 109 commits
-
676dde5c...af29eae9 - 102 commits from branch
master
- 3b025e1f - Merge branch 'master' into 61-implement-resolution-of-memory-links-in-aron-data-during-query
- f50b0388 - Add MemoryLink Aron type with a usage example
- 55c23329 - Add extra utilities to aroncommon and armem/util
- b790f250 - Implement MemoryLink resolution in Reader
- cdf7fe77 - Add MemoryLink resolution option to MemoryViewer
- 9f275f85 - Fix InstanceViewer keeping children of NULL items
- a26ca861 - Merge branch 'master' into 61-implement-resolution-of-memory-links-in-aron-data-during-query
Toggle commit list-
676dde5c...af29eae9 - 102 commits from branch
added 27 commits
-
8b802d21...082d819f - 25 commits from branch
master
- c74ba6c2 - Merge branch 'master' into 61-implement-resolution-of-memory-links-in-aron-data-during-query
- 75a7e199 - Fix BOSubObjectFinder templates, clean up Reader
-
8b802d21...082d819f - 25 commits from branch
added 29 commits
-
75a7e199...752a720b - 26 commits from branch
master
- 7a61ab6f - Add missing include
- 507ea228 - Remove unused attribute
- 065e65ec - Merge branch 'master' into 61-implement-resolution-of-memory-links-in-aron-data-during-query
Toggle commit list-
75a7e199...752a720b - 26 commits from branch
mentioned in commit 417ee748
Please register or sign in to reply