Reflection for RapidJSON  0.0.8
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, byte, bool, std::string, int16, uint16, int32, uint32, int64, uint64, float32, float64 >, Traits::IsIteratable< Type >, Traits::IsSpecializingAnyOf< Type, std::pair, std::unique_ptr, std::shared_ptr >, std::is_enum< 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< ChronoUtilities::DateTime > (BinaryDeserializer &deserializer, ChronoUtilities::DateTime &dateTime)
 
template<>
void writeCustomType< ChronoUtilities::DateTime > (BinarySerializer &serializer, const ChronoUtilities::DateTime &dateTime)
 
template<>
void readCustomType< ChronoUtilities::TimeSpan > (BinaryDeserializer &deserializer, ChronoUtilities::TimeSpan &timeSpan)
 
template<>
void writeCustomType< ChronoUtilities::TimeSpan > (BinarySerializer &serializer, const ChronoUtilities::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, byte, bool, std::string, int16, uint16, int32, uint32, int64, uint64, float32, float64>, Traits::IsIteratable<Type>, Traits::IsSpecializingAnyOf<Type, std::pair, std::unique_ptr, std::shared_ptr>, std::is_enum<Type> >

Definition at line 43 of file reflector.h.

◆ IsCustomType

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

Definition at line 44 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< ChronoUtilities::DateTime >()

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

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

◆ readCustomType< ChronoUtilities::TimeSpan >()

template<>
void ReflectiveRapidJSON::BinaryReflector::readCustomType< ChronoUtilities::TimeSpan > ( BinaryDeserializer deserializer,
ChronoUtilities::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< ChronoUtilities::DateTime >()

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

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

◆ writeCustomType< ChronoUtilities::TimeSpan >()

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

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