Skip to content
Snippets Groups Projects
Commit 97875eb6 authored by Rainer Kartmann's avatar Rainer Kartmann
Browse files

Pass info objects instead of single arguments

parent 0a0ed3eb
No related branches found
No related tags found
1 merge request!198Refactor/new arch armem
......@@ -147,7 +147,7 @@ namespace armarx::aron::codegenerator::cpp
{
c->addInclude(info.include);
}
CppMethodPtr convert = generator.toSpecializedDataWriterMethod(info.returnType, info.methodName, info.writerClassType, info.enforceConversion);
CppMethodPtr convert = generator.toSpecializedDataWriterMethod(info);
c->addMethod(convert);
}
......@@ -158,7 +158,7 @@ namespace armarx::aron::codegenerator::cpp
{
c->addInclude(info.include);
}
CppMethodPtr convert = generator.toSpecializedDataReaderMethod(info.argumentType, info.methodName, info.readerClassType, info.enforceConversion);
CppMethodPtr convert = generator.toSpecializedDataReaderMethod(info);
c->addMethod(convert);
}
......@@ -169,7 +169,7 @@ namespace armarx::aron::codegenerator::cpp
{
c->addInclude(info.include);
}
CppMethodPtr convert = generator.toSpecializedTypeWriterMethod(info.returnType, info.methodName, info.writerClassType, info.enforceConversion);
CppMethodPtr convert = generator.toSpecializedTypeWriterMethod(info);
c->addMethod(convert);
}
......
......@@ -203,39 +203,39 @@ namespace armarx::aron::codegenerator::cpp
return m;
}
CppMethodPtr Generator::toSpecializedDataWriterMethod(const std::string& returnname, const std::string& methodname, const std::string& writerName, const std::string& enforceConversion) const
CppMethodPtr Generator::toSpecializedDataWriterMethod(const WriterInfo& info) const
{
std::stringstream doc;
doc << "@brief specializedDataWrite() - This method returns a new data from the member data types using a writer implementation. \n";
doc << "@brief " << info.methodName << "() - This method returns a new data from the member data types using a writer implementation. \n";
doc << "@return - the result of the writer implementation";
CppMethodPtr m = CppMethodPtr(new CppMethod(returnname + " " + methodname + "() const", doc.str()));
m->addLine(writerName + " writer;");
m->addLine("return " + enforceConversion + "(this->write(writer));");
CppMethodPtr m = CppMethodPtr(new CppMethod(info.returnType + " " + info.methodName + "() const", doc.str()));
m->addLine(info.writerClassType + " writer;");
m->addLine("return " + info.enforceConversion + "(this->write(writer));");
return m;
}
CppMethodPtr Generator::toSpecializedDataReaderMethod(const std::string& argumentname, const std::string& methodname, const std::string& readerName, const std::string& enforceConversion) const
CppMethodPtr Generator::toSpecializedDataReaderMethod(const ReaderInfo& info) const
{
std::stringstream doc;
doc << "@brief specializedDataRead() - This method sets the struct members to new values given in a reader implementation. \n";
doc << "@brief " << info.methodName << " - This method sets the struct members to new values given in a reader implementation. \n";
doc << "@return - nothing";
CppMethodPtr m = CppMethodPtr(new CppMethod("void " + methodname + "(const " + argumentname + "& input)", doc.str()));
m->addLine(readerName + " reader;");
m->addLine("this->read<"+readerName+"::InputType>(reader, "+enforceConversion+"(input));");
CppMethodPtr m = CppMethodPtr(new CppMethod("void " + info.methodName + "(const " + info.argumentType + "& input)", doc.str()));
m->addLine(info.readerClassType + " reader;");
m->addLine("this->read<" + info.readerClassType + "::InputType>(reader, " + info.enforceConversion + "(input));");
return m;
}
CppMethodPtr Generator::toSpecializedTypeWriterMethod(const std::string& returnname, const std::string& methodname, const std::string& writerName, const std::string& enforceConversion) const
{
std::stringstream doc;
doc << "@brief specializedTypeWrite() - This method returns a new type from the member data types using a writer implementation. \n";
CppMethodPtr Generator::toSpecializedTypeWriterMethod(const WriterInfo& info) const
doc << "@brief " << info.methodName << "() - This method returns a new type from the member data types using a writer implementation. \n";
doc << "@return - the result of the writer implementation";
CppMethodPtr m = CppMethodPtr(new CppMethod("static " + returnname + " " + methodname + "()", doc.str()));
m->addLine(writerName + " writer;");
m->addLine("return " + enforceConversion + "(writeType(writer));");
CppMethodPtr m = CppMethodPtr(new CppMethod("static " + info.returnType + " " + info.methodName + "()", doc.str()));
m->addLine(info.writerClassType + " writer;");
m->addLine("return " + info.enforceConversion + "(writeType(writer));");
return m;
}
......
......@@ -26,6 +26,8 @@
#include <RobotAPI/interface/aron.h>
#include <RobotAPI/libraries/aron/core/Exception.h>
#include <RobotAPI/libraries/aron/core/type/variant/Variant.h>
#include <RobotAPI/libraries/aron/core/codegenerator/helper/ReaderInfo.h>
#include <RobotAPI/libraries/aron/core/codegenerator/helper/WriterInfo.h>
#include <ArmarXCore/libraries/cppgen/CppBlock.h>
#include <ArmarXCore/libraries/cppgen/CppField.h>
......@@ -107,9 +109,9 @@ namespace armarx::aron::codegenerator::cpp
std::string getCoreCppTypename() const;
std::string getFullCppTypename() const;
CppMethodPtr toSpecializedDataWriterMethod(const std::string&, const std::string&, const std::string&, const std::string& enforceType = "") const;
CppMethodPtr toSpecializedDataReaderMethod(const std::string&, const std::string&, const std::string&, const std::string& enforceType = "") const;
CppMethodPtr toSpecializedTypeWriterMethod(const std::string&, const std::string&, const std::string&, const std::string& enforceType = "") const;
CppMethodPtr toSpecializedDataWriterMethod(const WriterInfo& info) const;
CppMethodPtr toSpecializedDataReaderMethod(const ReaderInfo& info) const;
CppMethodPtr toSpecializedTypeWriterMethod(const WriterInfo& info) const;
// virtual override definitions
virtual std::vector<CppFieldPtr> getPublicVariableDeclarations(const std::string&) const;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment