Writer.h
Go to the documentation of this file.
1
/*
2
* This file is part of ArmarX.
3
*
4
* Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T),
5
* Karlsruhe Institute of Technology (KIT), all rights reserved.
6
*
7
* ArmarX is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License version 2 as
9
* published by the Free Software Foundation.
10
*
11
* ArmarX is distributed in the hope that it will be useful, but
12
* WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
18
*
19
* @author Fabian Peller-Konrad (fabian dot peller-konrad at kit dot edu)
20
* @copyright http://www.gnu.org/licenses/gpl-2.0.txt
21
* GNU General Public License
22
*/
23
24
#pragma once
25
26
// STD/STL
27
#include <map>
28
#include <memory>
29
#include <set>
30
#include <vector>
31
32
// Parent class
33
#include <
RobotAPI/libraries/aron/codegeneration/codegenerator/codewriter/CodeWriter.h
>
34
35
// ArmarX
36
#include <
ArmarXCore/libraries/cppgen/CppClass.h
>
37
#include <
ArmarXCore/libraries/cppgen/CppMethod.h
>
38
39
#include <
RobotAPI/libraries/aron/codegeneration/codegenerator/codewriter/cpp/generator/toplevel/IntEnumClass.h
>
40
#include <
RobotAPI/libraries/aron/codegeneration/codegenerator/codewriter/cpp/generator/toplevel/ObjectClass.h
>
41
#include <
RobotAPI/libraries/aron/core/type/variant/All.h
>
42
43
namespace
armarx::aron::codegenerator::cpp
44
{
45
class
Writer
:
virtual
public
codegenerator::CodeWriter
46
{
47
public
:
48
Writer
() =
delete
;
49
Writer
(
const
std::string&,
const
std::vector<std::string>&);
50
51
virtual
~Writer
() =
default
;
52
53
virtual
void
54
generateTypeObjects
(
const
std::vector<typereader::GenerateObjectInfo>&)
override
;
55
virtual
void
56
generateTypeIntEnums
(
const
std::vector<typereader::GenerateIntEnumInfo>&)
override
;
57
58
protected
:
59
virtual
void
addSpecificWriterMethods
()
override
;
60
virtual
void
addSpecificReaderMethods
()
override
;
61
62
CppClassPtr
setupBasicCppClass
(
const
typereader::GenerateInfo
& info,
63
const
Generator
& gen)
const
;
64
CppEnumPtr
setupEnumPtr
(
const
typereader::GenerateInfo
& info,
65
const
generator::IntEnumClass
& gen)
const
;
66
67
void
setupMemberFields
(
CppClassPtr
&,
68
const
std::map<std::string, std::string>& doc_members,
69
const
generator::ObjectClass
&)
const
;
70
void
setupMemberFields
(
CppClassPtr
&,
71
const
std::map<std::string, std::string>& doc_members,
72
const
generator::IntEnumClass
&)
const
;
73
74
private
:
75
static
const
constexpr
char
* OWN_TYPE_NAME =
"OWN_TYPE_NAME"
;
76
};
77
}
// namespace armarx::aron::codegenerator::cpp
armarx::aron::codegenerator::cpp
Definition:
AnyObject.cpp:28
CppMethod.h
armarx::aron::codegenerator::cpp::generator::ObjectClass
Definition:
ObjectClass.h:31
armarx::aron::codegenerator::cpp::Writer::generateTypeObjects
virtual void generateTypeObjects(const std::vector< typereader::GenerateObjectInfo > &) override
Definition:
Writer.cpp:274
armarx::aron::codegenerator::cpp::Writer::addSpecificReaderMethods
virtual void addSpecificReaderMethods() override
Definition:
Writer.cpp:192
armarx::CppClassPtr
std::shared_ptr< CppClass > CppClassPtr
Definition:
CppClass.h:35
All.h
IntEnumClass.h
ObjectClass.h
armarx::CppEnumPtr
std::shared_ptr< CppEnum > CppEnumPtr
Definition:
CppEnum.h:54
armarx::aron::codegenerator::cpp::Writer::setupEnumPtr
CppEnumPtr setupEnumPtr(const typereader::GenerateInfo &info, const generator::IntEnumClass &gen) const
Definition:
Writer.cpp:503
CppClass.h
armarx::aron::codegenerator::cpp::Writer
Definition:
Writer.h:45
CodeWriter.h
armarx::aron::typereader::GenerateInfo
A top-level struct for type-generation information.
Definition:
GenerateInfo.h:38
armarx::aron::codegenerator::cpp::Writer::Writer
Writer()=delete
armarx::aron::codegenerator::cpp::Writer::addSpecificWriterMethods
virtual void addSpecificWriterMethods() override
Definition:
Writer.cpp:87
armarx::aron::codegenerator::cpp::Writer::~Writer
virtual ~Writer()=default
armarx::aron::codegenerator::cpp::Generator
Definition:
Generator.h:62
armarx::aron::codegenerator::cpp::Writer::setupMemberFields
void setupMemberFields(CppClassPtr &, const std::map< std::string, std::string > &doc_members, const generator::ObjectClass &) const
Definition:
Writer.cpp:636
armarx::aron::codegenerator::cpp::Writer::setupBasicCppClass
CppClassPtr setupBasicCppClass(const typereader::GenerateInfo &info, const Generator &gen) const
Definition:
Writer.cpp:541
armarx::aron::codegenerator::CodeWriter
Definition:
CodeWriter.h:45
armarx::aron::codegenerator::cpp::generator::IntEnumClass
Definition:
IntEnumClass.h:34
armarx::aron::codegenerator::cpp::Writer::generateTypeIntEnums
virtual void generateTypeIntEnums(const std::vector< typereader::GenerateIntEnumInfo > &) override
Definition:
Writer.cpp:388
RobotAPI
libraries
aron
codegeneration
codegenerator
codewriter
cpp
Writer.h
Generated on Sat Mar 29 2025 09:17:27 for armarx_documentation by
1.8.17