Reflection for RapidJSON
0.0.17
Reflection for serializing/deserializing with RapidJSON
Toggle main menu visibility
Loading...
Searching...
No Matches
jsonserializationcodegenerator.h
Go to the documentation of this file.
1
#ifndef REFLECTIVE_RAPIDJSON_CODE_JSON_SERIALIZATION_GENERATOR_H
2
#define REFLECTIVE_RAPIDJSON_CODE_JSON_SERIALIZATION_GENERATOR_H
3
4
#include "
./serializationcodegenerator.h
"
5
6
#include <c++utilities/application/argumentparser.h>
7
8
namespace
ReflectiveRapidJSON
{
9
14
class
JsonSerializationCodeGenerator
:
public
SerializationCodeGenerator
{
15
public
:
16
struct
Options
{
17
Options
();
18
Options
(
const
Options
&other) =
delete
;
19
void
appendTo
(CppUtilities::Argument *arg);
20
21
CppUtilities::ConfigValueArgument
additionalClassesArg
;
22
CppUtilities::ConfigValueArgument
visibilityArg
;
23
};
24
25
JsonSerializationCodeGenerator
(
CodeFactory
&
factory
,
const
Options
&options);
26
27
void
generate
(std::ostream &os)
const override
;
28
29
protected
:
30
void
computeRelevantClass
(
RelevantClass
&possiblyRelevantClass)
const override
;
31
32
const
Options
&
m_options
;
33
};
34
35
inline
void
JsonSerializationCodeGenerator::Options::appendTo
(CppUtilities::Argument *arg)
36
{
37
arg->addSubArgument(&
additionalClassesArg
);
38
arg->addSubArgument(&
visibilityArg
);
39
}
40
41
}
// namespace ReflectiveRapidJSON
42
43
#endif
// REFLECTIVE_RAPIDJSON_CODE_JSON_SERIALIZATION_GENERATOR_H
ReflectiveRapidJSON::CodeFactory
The CodeFactory class produces additional (reflection) code for a specified list of C++ source files.
Definition
codefactory.h:27
ReflectiveRapidJSON::CodeGenerator::factory
CodeFactory & factory() const
Definition
codegenerator.h:49
ReflectiveRapidJSON::JsonSerializationCodeGenerator::JsonSerializationCodeGenerator
JsonSerializationCodeGenerator(CodeFactory &factory, const Options &options)
Definition
jsonserializationcodegenerator.cpp:29
ReflectiveRapidJSON::JsonSerializationCodeGenerator::computeRelevantClass
void computeRelevantClass(RelevantClass &possiblyRelevantClass) const override
Checks whether possiblyRelevantClass is actually relevant.
Definition
jsonserializationcodegenerator.cpp:40
ReflectiveRapidJSON::JsonSerializationCodeGenerator::m_options
const Options & m_options
Definition
jsonserializationcodegenerator.h:32
ReflectiveRapidJSON::JsonSerializationCodeGenerator::generate
void generate(std::ostream &os) const override
Generates pull() and push() helper functions in the ReflectiveRapidJSON::JsonReflector namespace for ...
Definition
jsonserializationcodegenerator.cpp:62
ReflectiveRapidJSON::SerializationCodeGenerator::SerializationCodeGenerator
SerializationCodeGenerator(CodeFactory &factory)
Definition
serializationcodegenerator.h:55
ReflectiveRapidJSON
Definition
codegenerator.h:15
serializationcodegenerator.h
ReflectiveRapidJSON::JsonSerializationCodeGenerator::Options
Definition
jsonserializationcodegenerator.h:16
ReflectiveRapidJSON::JsonSerializationCodeGenerator::Options::Options
Options(const Options &other)=delete
ReflectiveRapidJSON::JsonSerializationCodeGenerator::Options::visibilityArg
CppUtilities::ConfigValueArgument visibilityArg
Definition
jsonserializationcodegenerator.h:22
ReflectiveRapidJSON::JsonSerializationCodeGenerator::Options::additionalClassesArg
CppUtilities::ConfigValueArgument additionalClassesArg
Definition
jsonserializationcodegenerator.h:21
ReflectiveRapidJSON::JsonSerializationCodeGenerator::Options::Options
Options()
Initializes the CLI arguments which are specific to the JsonSerializationCodeGenerator.
Definition
jsonserializationcodegenerator.cpp:20
ReflectiveRapidJSON::JsonSerializationCodeGenerator::Options::appendTo
void appendTo(CppUtilities::Argument *arg)
Definition
jsonserializationcodegenerator.h:35
ReflectiveRapidJSON::SerializationCodeGenerator::RelevantClass
Definition
serializationcodegenerator.h:21
Generated on
for Reflection for RapidJSON by
1.18.0