Reflection for RapidJSON 0.0.17
Reflection for serializing/deserializing with RapidJSON
Loading...
Searching...
No Matches
ReflectiveRapidJSON::SerializationCodeGenerator Class Reference

The SerializationCodeGenerator class is the common base for (de)serialization related code generation. More...

#include <serializationcodegenerator.h>

Inheritance diagram for ReflectiveRapidJSON::SerializationCodeGenerator:
[legend]
Collaboration diagram for ReflectiveRapidJSON::SerializationCodeGenerator:
[legend]

Classes

struct  RelevantClass

Public Types

enum class  IsRelevant { Yes , No , Maybe }

Public Member Functions

 SerializationCodeGenerator (CodeFactory &factory)
void addDeclaration (clang::Decl *decl) override
 Adds all class declarations (to the internal member variable m_records).
Public Member Functions inherited from ReflectiveRapidJSON::CodeGenerator
 CodeGenerator (CodeFactory &factory)
virtual ~CodeGenerator ()
virtual void generate (std::ostream &os) const =0
 Generates code based on the previously added declarations. The code is written to os.

Protected Member Functions

virtual void computeRelevantClass (RelevantClass &possiblyRelevantClass) const
std::vector< RelevantClass > findRelevantClasses () const
Protected Member Functions inherited from ReflectiveRapidJSON::CodeGenerator
CodeFactory & factory () const
void lazyInitializeSourceManager () const
 Lazy initializes the source manager.
bool isOnlyIncluded (const clang::Decl *declaration) const
 Returns whether the specified declaration is only included and not part of the actual file.

Static Protected Member Functions

static std::vector< const RelevantClass * > findRelevantBaseClasses (const RelevantClass &relevantClass, const std::vector< RelevantClass > &relevantBases)
Static Protected Member Functions inherited from ReflectiveRapidJSON::CodeGenerator
static clang::CXXBaseSpecifier * inheritsFromInstantiationOf (clang::CXXRecordDecl *record, const char *templateClass)
 Returns whether the specified record inherits from an instantiation of the specified templateClass.

Protected Attributes

const char * m_qualifiedNameOfRecords
const char * m_qualifiedNameOfAdaptionRecords

Detailed Description

The SerializationCodeGenerator class is the common base for (de)serialization related code generation.

Definition at line 18 of file serializationcodegenerator.h.

Member Enumeration Documentation

◆ IsRelevant

Enumerator
Yes 
No 
Maybe 

Definition at line 20 of file serializationcodegenerator.h.

Constructor & Destructor Documentation

◆ SerializationCodeGenerator()

ReflectiveRapidJSON::SerializationCodeGenerator::SerializationCodeGenerator ( CodeFactory & factory)
inline

Definition at line 55 of file serializationcodegenerator.h.

Member Function Documentation

◆ addDeclaration()

void ReflectiveRapidJSON::SerializationCodeGenerator::addDeclaration ( clang::Decl * decl)
overridevirtual

Adds all class declarations (to the internal member variable m_records).

Remarks
"AdaptedXXXSerializable" specializations are directly filtered and added to m_adaptionRecords (instead of m_records).

Reimplemented from ReflectiveRapidJSON::CodeGenerator.

Definition at line 29 of file serializationcodegenerator.cpp.

◆ computeRelevantClass()

void ReflectiveRapidJSON::SerializationCodeGenerator::computeRelevantClass ( RelevantClass & possiblyRelevantClass) const
protectedvirtual

◆ findRelevantBaseClasses()

std::vector< const SerializationCodeGenerator::RelevantClass * > ReflectiveRapidJSON::SerializationCodeGenerator::findRelevantBaseClasses ( const RelevantClass & relevantClass,
const std::vector< RelevantClass > & relevantBases )
staticprotected

Definition at line 124 of file serializationcodegenerator.cpp.

◆ findRelevantClasses()

std::vector< SerializationCodeGenerator::RelevantClass > ReflectiveRapidJSON::SerializationCodeGenerator::findRelevantClasses ( ) const
protected

Definition at line 111 of file serializationcodegenerator.cpp.

Member Data Documentation

◆ m_qualifiedNameOfAdaptionRecords

const char* ReflectiveRapidJSON::SerializationCodeGenerator::m_qualifiedNameOfAdaptionRecords
protected

Definition at line 42 of file serializationcodegenerator.h.

◆ m_qualifiedNameOfRecords

const char* ReflectiveRapidJSON::SerializationCodeGenerator::m_qualifiedNameOfRecords
protected

Definition at line 41 of file serializationcodegenerator.h.


The documentation for this class was generated from the following files: