Reflection for RapidJSON  0.0.15
Reflection for serializing/deserializing with RapidJSON
Classes | Typedefs | Functions
ReflectiveRapidJSON::BinaryReflector Namespace Reference

The BinaryReflector namespace contains BinaryReader and BinaryWriter for automatic binary (de)serialization. More...

Classes

class  BinaryDeserializer
 
class  BinarySerializer
 

Typedefs

template<typename Type >
using IsBuiltInType = Traits::Any< Traits::IsAnyOf< Type, char, std::uint8_t, bool, std::string, std::int16_t, std::uint16_t, std::int32_t, std::uint32_t, std::int64_t, std::uint64_t, float, double >, Traits::IsIteratable< Type >, Traits::IsSpecializingAnyOf< Type, std::pair, std::unique_ptr, std::shared_ptr >, std::is_enum< Type >, IsVariant< Type > >
 
template<typename Type >
using IsCustomType = Traits::Not< IsBuiltInType< Type > >
 

Functions

template<typename Type , Traits::EnableIf< IsCustomType< Type >> * = nullptr>
void readCustomType (BinaryDeserializer &deserializer, Type &customType)
 
template<typename Type , Traits::EnableIf< IsCustomType< Type >> * = nullptr>
void writeCustomType (BinarySerializer &serializer, const Type &customType)
 
template<>
void readCustomType< CppUtilities::DateTime > (BinaryDeserializer &deserializer, CppUtilities::DateTime &dateTime)
 
template<>
void writeCustomType< CppUtilities::DateTime > (BinarySerializer &serializer, const CppUtilities::DateTime &dateTime)
 
template<>
void readCustomType< CppUtilities::TimeSpan > (BinaryDeserializer &deserializer, CppUtilities::TimeSpan &timeSpan)
 
template<>
void writeCustomType< CppUtilities::TimeSpan > (BinarySerializer &serializer, const CppUtilities::TimeSpan &timeSpan)
 

Detailed Description

The BinaryReflector namespace contains BinaryReader and BinaryWriter for automatic binary (de)serialization.

Typedef Documentation

◆ IsBuiltInType

template<typename Type >
using ReflectiveRapidJSON::BinaryReflector::IsBuiltInType = typedef Traits::Any<Traits::IsAnyOf<Type, char, std::uint8_t, bool, std::string, std::int16_t, std::uint16_t, std::int32_t, std::uint32_t, std::int64_t, std::uint64_t, float, double>, Traits::IsIteratable<Type>, Traits::IsSpecializingAnyOf<Type, std::pair, std::unique_ptr, std::shared_ptr>, std::is_enum<Type>, IsVariant<Type> >

Definition at line 45 of file reflector.h.

◆ IsCustomType

template<typename Type >
using ReflectiveRapidJSON::BinaryReflector::IsCustomType = typedef Traits::Not<IsBuiltInType<Type> >

Definition at line 48 of file reflector.h.

Function Documentation

◆ readCustomType()

template<typename Type , Traits::EnableIf< IsCustomType< Type >> * = nullptr>
void ReflectiveRapidJSON::BinaryReflector::readCustomType ( BinaryDeserializer deserializer,
Type &  customType 
)

Definition at line 27 of file reflector-boosthana.h.

◆ readCustomType< CppUtilities::DateTime >()

template<>
void ReflectiveRapidJSON::BinaryReflector::readCustomType< CppUtilities::DateTime > ( BinaryDeserializer deserializer,
CppUtilities::DateTime &  dateTime 
)
inline

Definition at line 19 of file reflector-chronoutilities.h.

◆ readCustomType< CppUtilities::TimeSpan >()

template<>
void ReflectiveRapidJSON::BinaryReflector::readCustomType< CppUtilities::TimeSpan > ( BinaryDeserializer deserializer,
CppUtilities::TimeSpan &  timeSpan 
)
inline

Definition at line 29 of file reflector-chronoutilities.h.

◆ writeCustomType()

template<typename Type , Traits::EnableIf< IsCustomType< Type >> * = nullptr>
void ReflectiveRapidJSON::BinaryReflector::writeCustomType ( BinarySerializer serializer,
const Type &  customType 
)

Definition at line 33 of file reflector-boosthana.h.

◆ writeCustomType< CppUtilities::DateTime >()

template<>
void ReflectiveRapidJSON::BinaryReflector::writeCustomType< CppUtilities::DateTime > ( BinarySerializer serializer,
const CppUtilities::DateTime &  dateTime 
)
inline

Definition at line 24 of file reflector-chronoutilities.h.

◆ writeCustomType< CppUtilities::TimeSpan >()

template<>
void ReflectiveRapidJSON::BinaryReflector::writeCustomType< CppUtilities::TimeSpan > ( BinarySerializer serializer,
const CppUtilities::TimeSpan &  timeSpan 
)
inline

Definition at line 34 of file reflector-chronoutilities.h.