26#include <SimoxUtility/meta/type_name.h>
33 "armarx::aron::data::Dict",
34 "armarx::aron::data::Dict",
40 if (
type.getMaybe() != type::Maybe::SHARED_PTR)
42 throw error::ValueNotValidException(
44 "At the moment the unknown any object type must be a shared_ptr! ",
45 std::to_string((int)type.getMaybe()) +
" aka " +
46 type::defaultconversion::string::Maybe2String.at(type.getMaybe()),
53 std::vector<std::string>
56 std::vector<std::string> required_includes = {
57 "<RobotAPI/libraries/aron/core/data/converter/variant/VariantConverter.h>"};
58 return required_includes;
64 std::string& variantAccessor)
const
66 auto block_if_data = std::make_shared<CppBlock>();
70 block_if_data->addLine(variantAccessor +
72 "::armarx::aron::data::readAndWrite<::armarx::aron::data::"
73 "FromVariantConverter<WriterT>>(" +
74 cppAccessor +
"); // of " + cppAccessor);
81 const std::string& variantAccessor)
const
83 auto block_if_data = std::make_shared<CppBlock>();
86 block_if_data->addLine(
89 "::armarx::aron::data::Dict::DynamicCastAndCheck(::armarx::aron::data::readAndWrite<::"
90 "armarx::aron::data::ToVariantConverter<ReaderT>>(" +
91 variantAccessor +
")); // of " + cppAccessor);
98 const std::string& accessor,
100 std::string& variantAccessor)
const
109 simox::alg::join(p.
getPath(),
", ") +
"})); // of " + typeAccessor);
std::vector< std::string > getPath() const
static std::string EscapeAccessor(const std::string &)
static const std::string ARON_PATH_ACCESSOR
static const std::string ARON_WRITER_ACCESSOR
static const std::string ARON_VARIANT_RETURN_ACCESSOR
CppBlockPtr getReadBlock(const std::string &cppAccessor, const std::string &variantAccessor) const final
std::vector< std::string > getRequiredIncludes() const final
CppBlockPtr getWriteBlock(const std::string &cppAccessor, const Path &p, std::string &variantAccessor) const final
AnyObject(const type::AnyObject &e)
CppBlockPtr getWriteTypeBlock(const std::string &typeAccessor, const std::string &cppAccessor, const Path &p, std::string &variantAccessor) const final
const std::map< type::Maybe, std::string > Maybe2CppString
A convenience header to include all aron files (full include, not forward declared)
std::shared_ptr< CppBlock > CppBlockPtr