cereal
A C++11 library for serialization
|
JSON input and output archives. More...
#include "cereal/cereal.hpp"
#include "cereal/details/util.hpp"
#include "rapidjson/prettywriter.h"
#include "rapidjson/ostreamwrapper.h"
#include "rapidjson/istreamwrapper.h"
#include "rapidjson/document.h"
#include "cereal/external/base64.hpp"
#include <limits>
#include <sstream>
#include <stack>
#include <vector>
#include <string>
Go to the source code of this file.
Classes | |
struct | cereal::RapidJSONException |
An exception thrown when rapidjson fails an internal assertion. More... | |
class | cereal::JSONOutputArchive |
An output archive designed to save data to JSON. More... | |
class | cereal::JSONOutputArchive::Options |
A class containing various advanced options for the JSON archive. More... | |
class | cereal::JSONInputArchive |
An input archive designed to load data from JSON. More... | |
Macros | |
#define | RAPIDJSON_ASSERT_THROWS |
#define | RAPIDJSON_ASSERT(x) |
#define | RAPIDJSON_WRITE_DEFAULT_FLAGS kWriteNanAndInfFlag |
#define | RAPIDJSON_PARSE_DEFAULT_FLAGS kParseFullPrecisionFlag | kParseNanAndInfFlag |
Functions | |
template<class T > | |
void | cereal::prologue (JSONOutputArchive &, NameValuePair< T > const &) |
Prologue for NVPs for JSON archives. More... | |
template<class T > | |
void | cereal::prologue (JSONInputArchive &, NameValuePair< T > const &) |
Prologue for NVPs for JSON archives. | |
template<class T > | |
void | cereal::epilogue (JSONOutputArchive &, NameValuePair< T > const &) |
Epilogue for NVPs for JSON archives. More... | |
template<class T > | |
void | cereal::epilogue (JSONInputArchive &, NameValuePair< T > const &) |
Epilogue for NVPs for JSON archives. More... | |
template<class T > | |
void | cereal::prologue (JSONOutputArchive &, DeferredData< T > const &) |
Prologue for deferred data for JSON archives. More... | |
template<class T > | |
void | cereal::prologue (JSONInputArchive &, DeferredData< T > const &) |
Prologue for deferred data for JSON archives. | |
template<class T > | |
void | cereal::epilogue (JSONOutputArchive &, DeferredData< T > const &) |
Epilogue for deferred for JSON archives. More... | |
template<class T > | |
void | cereal::epilogue (JSONInputArchive &, DeferredData< T > const &) |
Epilogue for deferred for JSON archives. More... | |
template<class T > | |
void | cereal::prologue (JSONOutputArchive &ar, SizeTag< T > const &) |
Prologue for SizeTags for JSON archives. More... | |
template<class T > | |
void | cereal::prologue (JSONInputArchive &, SizeTag< T > const &) |
Prologue for SizeTags for JSON archives. | |
template<class T > | |
void | cereal::epilogue (JSONOutputArchive &, SizeTag< T > const &) |
Epilogue for SizeTags for JSON archives. More... | |
template<class T > | |
void | cereal::epilogue (JSONInputArchive &, SizeTag< T > const &) |
Epilogue for SizeTags for JSON archives. | |
template<class T , traits::EnableIf<!std::is_arithmetic< T >::value, !traits::has_minimal_base_class_serialization< T, traits::has_minimal_output_serialization, JSONOutputArchive >::value, !traits::has_minimal_output_serialization< T, JSONOutputArchive >::value > = traits::sfinae> | |
void | cereal::prologue (JSONOutputArchive &ar, T const &) |
Prologue for all other types for JSON archives (except minimal types) More... | |
template<class T , traits::EnableIf<!std::is_arithmetic< T >::value, !traits::has_minimal_base_class_serialization< T, traits::has_minimal_input_serialization, JSONInputArchive >::value, !traits::has_minimal_input_serialization< T, JSONInputArchive >::value > = traits::sfinae> | |
void | cereal::prologue (JSONInputArchive &ar, T const &) |
Prologue for all other types for JSON archives. More... | |
template<class T , traits::EnableIf<!std::is_arithmetic< T >::value, !traits::has_minimal_base_class_serialization< T, traits::has_minimal_output_serialization, JSONOutputArchive >::value, !traits::has_minimal_output_serialization< T, JSONOutputArchive >::value > = traits::sfinae> | |
void | cereal::epilogue (JSONOutputArchive &ar, T const &) |
Epilogue for all other types other for JSON archives (except minimal types) More... | |
template<class T , traits::EnableIf<!std::is_arithmetic< T >::value, !traits::has_minimal_base_class_serialization< T, traits::has_minimal_input_serialization, JSONInputArchive >::value, !traits::has_minimal_input_serialization< T, JSONInputArchive >::value > = traits::sfinae> | |
void | cereal::epilogue (JSONInputArchive &ar, T const &) |
Epilogue for all other types other for JSON archives. More... | |
void | cereal::prologue (JSONOutputArchive &ar, std::nullptr_t const &) |
Prologue for arithmetic types for JSON archives. | |
void | cereal::prologue (JSONInputArchive &, std::nullptr_t const &) |
Prologue for arithmetic types for JSON archives. | |
void | cereal::epilogue (JSONOutputArchive &, std::nullptr_t const &) |
Epilogue for arithmetic types for JSON archives. | |
void | cereal::epilogue (JSONInputArchive &, std::nullptr_t const &) |
Epilogue for arithmetic types for JSON archives. | |
template<class CharT , class Traits , class Alloc > | |
void | cereal::prologue (JSONOutputArchive &ar, std::basic_string< CharT, Traits, Alloc > const &) |
Prologue for strings for JSON archives. | |
template<class CharT , class Traits , class Alloc > | |
void | cereal::prologue (JSONInputArchive &, std::basic_string< CharT, Traits, Alloc > const &) |
Prologue for strings for JSON archives. | |
template<class CharT , class Traits , class Alloc > | |
void | cereal::epilogue (JSONOutputArchive &, std::basic_string< CharT, Traits, Alloc > const &) |
Epilogue for strings for JSON archives. | |
template<class CharT , class Traits , class Alloc > | |
void | cereal::epilogue (JSONInputArchive &, std::basic_string< CharT, Traits, Alloc > const &) |
Epilogue for strings for JSON archives. | |
template<class T > | |
void | cereal::CEREAL_SAVE_FUNCTION_NAME (JSONOutputArchive &ar, NameValuePair< T > const &t) |
Serializing NVP types to JSON. | |
template<class T > | |
void | cereal::CEREAL_LOAD_FUNCTION_NAME (JSONInputArchive &ar, NameValuePair< T > &t) |
void | cereal::CEREAL_SAVE_FUNCTION_NAME (JSONOutputArchive &ar, std::nullptr_t const &t) |
Saving for nullptr to JSON. | |
void | cereal::CEREAL_LOAD_FUNCTION_NAME (JSONInputArchive &ar, std::nullptr_t &t) |
Loading arithmetic from JSON. | |
template<class T , traits::EnableIf< std::is_arithmetic< T >::value > = traits::sfinae> | |
void | cereal::CEREAL_SAVE_FUNCTION_NAME (JSONOutputArchive &ar, T const &t) |
Saving for arithmetic to JSON. | |
template<class T , traits::EnableIf< std::is_arithmetic< T >::value > = traits::sfinae> | |
void | cereal::CEREAL_LOAD_FUNCTION_NAME (JSONInputArchive &ar, T &t) |
Loading arithmetic from JSON. | |
template<class CharT , class Traits , class Alloc > | |
void | cereal::CEREAL_SAVE_FUNCTION_NAME (JSONOutputArchive &ar, std::basic_string< CharT, Traits, Alloc > const &str) |
saving string to JSON | |
template<class CharT , class Traits , class Alloc > | |
void | cereal::CEREAL_LOAD_FUNCTION_NAME (JSONInputArchive &ar, std::basic_string< CharT, Traits, Alloc > &str) |
loading string from JSON | |
template<class T > | |
void | cereal::CEREAL_SAVE_FUNCTION_NAME (JSONOutputArchive &, SizeTag< T > const &) |
Saving SizeTags to JSON. | |
template<class T > | |
void | cereal::CEREAL_LOAD_FUNCTION_NAME (JSONInputArchive &ar, SizeTag< T > &st) |
Loading SizeTags from JSON. | |
JSON input and output archives.
#define RAPIDJSON_ASSERT | ( | x | ) |
|
inline |
Epilogue for deferred for JSON archives.
Do nothing for the defer wrapper
|
inline |
Epilogue for NVPs for JSON archives.
NVPs do not start or finish nodes - they just set up the names
|
inline |
Epilogue for all other types other for JSON archives.
Epilogue for arithmetic types for JSON archives.
|
inline |
Epilogue for deferred for JSON archives.
NVPs do not start or finish nodes - they just set up the names
|
inline |
Epilogue for NVPs for JSON archives.
NVPs do not start or finish nodes - they just set up the names
|
inline |
Epilogue for SizeTags for JSON archives.
SizeTags are strictly ignored for JSON
|
inline |
Epilogue for all other types other for JSON archives (except minimal types)
Epilogue for arithmetic types for JSON archives.
Finishes the node created in the prologue
Minimal types do not start or finish nodes
|
inline |
Prologue for all other types for JSON archives.
Prologue for arithmetic types for JSON archives.
|
inline |
Prologue for deferred data for JSON archives.
Do nothing for the defer wrapper
|
inline |
Prologue for NVPs for JSON archives.
NVPs do not start or finish nodes - they just set up the names
|
inline |
Prologue for SizeTags for JSON archives.
SizeTags are strictly ignored for JSON, they just indicate that the current node should be made into an array
|
inline |
Prologue for all other types for JSON archives (except minimal types)
Prologue for arithmetic types for JSON archives.
Starts a new node, named either automatically or by some NVP, that may be given data by the type about to be archived
Minimal types do not start or finish nodes