|
cereal_fwd
Fork of cereal library adding archive supporting forward compatibility
|
Implementation details for extendable binary archive. More...
#include <cereal/cereal.hpp>#include <limits>#include <sstream>#include <queue>#include <assert.h>Go to the source code of this file.
Classes | |
| struct | cereal::extendable_binary_detail::StreamPos |
| Struct to keep position of start and end in stream. More... | |
| class | cereal::extendable_binary_detail::StreamAdapter |
| Class used as an adapter to queue of streams. More... | |
Enumerations | |
| enum | cereal::extendable_binary_detail::FieldType { cereal::extendable_binary_detail::FieldType::omitted_field = 0x0, cereal::extendable_binary_detail::FieldType::positive_integer = 0x1, cereal::extendable_binary_detail::FieldType::negative_integer = 0x2, cereal::extendable_binary_detail::FieldType::floating_point = 0x3, cereal::extendable_binary_detail::FieldType::integer_packed = 0x4, cereal::extendable_binary_detail::FieldType::class_t = 0x5, cereal::extendable_binary_detail::FieldType::pointer = 0x6, cereal::extendable_binary_detail::FieldType::size_tag = 0x7, cereal::extendable_binary_detail::FieldType::packed_array = 0x8, cereal::extendable_binary_detail::FieldType::packed_struct = 0x9, last_field = 0xa, LAST_RESERVED_UNUSED } |
| Describes type of saved field. More... | |
| enum | cereal::extendable_binary_detail::ClassMarkers : std::uint8_t { cereal::extendable_binary_detail::ClassMarkers::None = 0, cereal::extendable_binary_detail::ClassMarkers::EmptyClass = 0x1 << 0, HasVersion = 0x1 << 1 } |
| Markers for FieldType::class_t. More... | |
| enum | cereal::extendable_binary_detail::PointerMarkers : std::uint8_t { cereal::extendable_binary_detail::PointerMarkers::None = 0, Empty = 0x1 << 0, cereal::extendable_binary_detail::PointerMarkers::IsSharedPtr = 0x1 << 1, IsPolymorphicPointer = 0x1 << 2 } |
| Markers for FieldType::pointer. More... | |
| enum | { maxVarintSize = 10 } |
| max size of saved varint More... | |
Functions | |
| std::uint8_t | cereal::extendable_binary_detail::is_little_endian () |
| Returns true if the current machine is little endian. More... | |
| template<std::size_t DataSize> | |
| void | cereal::extendable_binary_detail::swap_bytes (std::uint8_t *data) |
| Swaps the order of bytes for some chunk of memory. More... | |
| ClassMarkers & | cereal::extendable_binary_detail::operator|= (ClassMarkers &l, ClassMarkers r) |
| std::uint8_t | cereal::extendable_binary_detail::operator & (ClassMarkers l, ClassMarkers r) |
| PointerMarkers & | cereal::extendable_binary_detail::operator|= (PointerMarkers &l, PointerMarkers r) |
| std::uint8_t | cereal::extendable_binary_detail::operator & (PointerMarkers l, PointerMarkers r) |
| std::uint8_t | cereal::extendable_binary_detail::writeType (FieldType fieldType, std::uint8_t other) |
| std::pair< FieldType, std::uint8_t > | cereal::extendable_binary_detail::readType (std::uint8_t input) |
| template<class T > | |
| std::uint8_t | cereal::extendable_binary_detail::getHighestBit (T v) |
| Get number of bytes needed to save value. More... | |
| std::uint8_t | cereal::extendable_binary_detail::getHighestBit (std::uint8_t) |
| Get number of bytes needed to save value. More... | |
| template<class T > | |
| T | cereal::extendable_binary_detail::getqNaN () |
| Get quiet not a number value for type. | |
| template<> | |
| float | cereal::extendable_binary_detail::getqNaN () |
| template<> | |
| double | cereal::extendable_binary_detail::getqNaN () |
| std::uint8_t | cereal::extendable_binary_detail::getFloatSizeFromTagSize (std::uint8_t tagSize) |
| Get size of floating point data for size identifier. | |
| template<class T > | |
| std::uint8_t | cereal::extendable_binary_detail::getTagSizeFromFloatType () |
| Get size identifier for floating point type. More... | |
| std::uint8_t | cereal::extendable_binary_detail::getIntSizeFromTagSize (std::uint8_t tagSize) |
| Get number of bytes to load based on value of identifier for integer tag. | |
| std::uint8_t | cereal::extendable_binary_detail::getIntSizeTagFromByteCount (unsigned int byteCount) |
| Get identifier for size for integer tag based on number of bytes being stored. | |
Implementation details for extendable binary archive.
| anonymous enum |
max size of saved varint
enough to save uint64_t 8
|
strong |
Markers for FieldType::class_t.
Max size is four bits
|
strong |
Describes type of saved field.
Max size if four bits, then four bits for field specific encoding
|
strong |
Markers for FieldType::pointer.
Max size is four bits
|
inline |
Get number of bytes needed to save value.
TODO can be done quicker http://stackoverflow.com/questions/2274428/how-to-determine-how-many-bytes-an-integer-needs
| v | value to check |
|
inline |
Get number of bytes needed to save value.
Separate function is needed because of error "shift count >= width of type [-Werror,-Wshift-count-overflow]"
|
inline |
Get size identifier for floating point type.
| T | floating point type |
1.8.13