27#include <SimoxUtility/algorithm/vector.hpp>
28#include <SimoxUtility/meta/type_name.h>
34 {
"armarx::arondto::DateTime",
35 {
"armarx::arondto::DateTime",
36 "armarx::arondto::DateTime",
37 "armarx::core::time::DateTime",
38 "armarx::core::time::DateTime",
39 {
"<RobotAPI/libraries/aron/common/rw/time.h>"},
41 {
"armarx::arondto::Duration",
42 {
"armarx::arondto::Duration",
43 "armarx::arondto::Duration",
44 "armarx::core::time::Duration",
45 "armarx::core::time::Duration",
46 {
"<RobotAPI/libraries/aron/common/rw/time.h>"},
47 {
"armarx::arondto::Frequency",
"armarx::arondto::DateTime"}}}
65 bool b = std::find(
x.disallowedBases.begin(),
66 x.disallowedBases.end(),
80 return x.replacedInstantiatedTypename;
92 return x.replacedTypename;
97 std::vector<std::string>
104 return x.additionalIncludes;
121 std::vector<std::string>
124 std::vector<std::string> ret;
127 for (
const auto& [key, child] :
type.getMemberTypes())
131 ret = simox::alg::appended(ret, child_s->getRequiredIncludes());
142 const std::string& cppAccessor,
144 std::string& variantAccessor)
const
150 std::vector<std::string> templatesQuoted;
151 for (
const auto& t :
type.getTemplateInstantiations())
153 templatesQuoted.push_back(
"\"" + t +
"\"");
156 b->addLine(
"auto " + variantAccessor +
" = " +
157 type.getObjectNameWithTemplateInstantiations() +
"::writeType(" +
161 simox::alg::join(p.
getPath(),
", ") +
"})); // of " + cppAccessor);
168 std::string& variantAccessor)
const
170 CppBlockPtr block_if_data = std::make_shared<CppBlock>();
176 resolved_accessor +
", " + variantAccessor +
", " +
178 simox::alg::join(p.
getPath(),
", ") +
"})); // of " + cppAccessor);
186 CppBlockPtr block_if_data = std::make_shared<CppBlock>();
192 block_if_data->addLine(reset);
196 variantAccessor +
", " + resolved_accessor +
"); // of " +
205 if (has_been_replaced)
210 CppBlockPtr block_if_data = std::make_shared<CppBlock>();
211 block_if_data->addLine(cppAccessor +
nextEl() +
"resetHard();");
218 if (has_been_replaced)
223 auto block_if_data = std::make_shared<CppBlock>();
224 block_if_data->addLine(cppAccessor +
nextEl() +
"resetSoft();");
std::vector< std::string > getPath() const
std::string getRootIdentifier() const
std::string resolveMaybeAccessor(const std::string &) const
CppBlockPtr resolveMaybeResetHardBlock(const CppBlockPtr &, const std::string &) const
CppBlockPtr resolveMaybeReadBlock(const CppBlockPtr &, const std::string &, const std::string &) const
std::string resolveMaybeGeneratorWithSetter(const std::string &, const std::string &args="") const
static std::string EscapeAccessor(const std::string &)
CppBlockPtr resolveMaybeResetSoftBlock(const CppBlockPtr &, const std::string &) const
std::string nextEl() const
static const std::string ARON_READER_ACCESSOR
virtual CppBlockPtr getResetHardBlock(const std::string &cppAccessor) const
static const std::string ARON_PATH_ACCESSOR
static const std::string ARON_WRITER_ACCESSOR
static std::unique_ptr< Generator > FromAronType(const type::Variant &)
static const std::string ARON_VARIANT_RETURN_ACCESSOR
CppBlockPtr resolveMaybeWriteBlock(const CppBlockPtr &, const std::string &) const
CppBlockPtr getReadBlock(const std::string &cppAccessor, const std::string &variantAccessor) const final
std::vector< std::string > getRequiredIncludes() const final
Object(const type::Object &)
CppBlockPtr getResetHardBlock(const std::string &cppAccessor) const final
CppBlockPtr getWriteTypeBlock(const std::string &typeAccessor, const std::string &cppAccessor, const Path &, std::string &variantAccessor) const final
CppBlockPtr getWriteBlock(const std::string &cppAccessor, const Path &, std::string &variantAccessor) const final
CppBlockPtr getResetSoftBlock(const std::string &cppAccessor) const final
std::string getObjectNameWithTemplateInstantiations() const
std::string getObjectNameWithTemplates() const
const std::map< type::Maybe, std::string > Maybe2CppString
std::string checkForClassNameReplacement(const type::Object &t)
bool checkForAllowedReplacement(const type::Object &t)
std::vector< std::string > checkForAdditionalIncludes(const type::Object &t)
const std::map< std::string, DTOObjectReplacement > DTO_REPLACEMENTS
std::string checkForInstantiationTypenameReplacement(const type::Object &t)
A convenience header to include all aron files (full include, not forward declared)
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::shared_ptr< CppBlock > CppBlockPtr