A helper class for serializing and deserialization of the RNTuple binary format.
All serialization and deserialization routines return the number of bytes processed (written or read).
The serialization routines can be called with a nullptr buffer, in which case only the size required to perform a serialization is returned. Deserialization routines must be called with a buffer that is sufficiently large.
Deserialization errors throw exceptions. Only when indicated or when passed as a parameter is the buffer size checked.
Definition at line 64 of file RNTupleSerialize.hxx.
Classes | |
| struct | RClusterGroup |
| struct | RClusterSummary |
| class | RContext |
| The serialization context is used for the piecewise serialization of a descriptor. More... | |
| struct | REnvelopeLink |
Public Types | |
| enum class | EDescriptorDeserializeMode { kRaw , kForWriting , kForReading } |
| using | StreamerInfoMap_t = std::map<Int_t, TVirtualStreamerInfo *> |
Static Public Member Functions | |
| static RResult< std::uint32_t > | DeserializeAttributeSet (const void *buffer, std::uint64_t bufSize, Experimental::Internal::RNTupleAttrSetDescriptorBuilder &attrSetDescBld) |
| static RResult< std::uint32_t > | DeserializeClusterGroup (const void *buffer, std::uint64_t bufSize, RClusterGroup &clusterGroup) |
| static RResult< std::uint32_t > | DeserializeClusterSummary (const void *buffer, std::uint64_t bufSize, RClusterSummary &clusterSummary) |
| static RResult< std::uint32_t > | DeserializeColumnType (const void *buffer, ROOT::ENTupleColumnType &type) |
| static RResult< std::uint32_t > | DeserializeEnvelope (const void *buffer, std::uint64_t bufSize, std::uint16_t expectedType) |
| static RResult< std::uint32_t > | DeserializeEnvelope (const void *buffer, std::uint64_t bufSize, std::uint16_t expectedType, std::uint64_t &xxhash3) |
| static RResult< std::uint32_t > | DeserializeEnvelopeLink (const void *buffer, std::uint64_t bufSize, REnvelopeLink &envelopeLink) |
| static RResult< std::uint32_t > | DeserializeExtraTypeInfoId (const void *buffer, ROOT::EExtraTypeInfoIds &id) |
| static RResult< std::uint32_t > | DeserializeFeatureFlags (const void *buffer, std::uint64_t bufSize, std::vector< std::uint64_t > &flags) |
| static RResult< std::uint32_t > | DeserializeFieldStructure (const void *buffer, ROOT::ENTupleStructure &structure) |
| static RResult< void > | DeserializeFooter (const void *buffer, std::uint64_t bufSize, ROOT::Internal::RNTupleDescriptorBuilder &descBuilder) |
| static RResult< std::uint32_t > | DeserializeFrameHeader (const void *buffer, std::uint64_t bufSize, std::uint64_t &frameSize) |
| static RResult< std::uint32_t > | DeserializeFrameHeader (const void *buffer, std::uint64_t bufSize, std::uint64_t &frameSize, std::uint32_t &nitems) |
| static RResult< void > | DeserializeHeader (const void *buffer, std::uint64_t bufSize, ROOT::Internal::RNTupleDescriptorBuilder &descBuilder) |
| static std::uint32_t | DeserializeInt16 (const void *buffer, std::int16_t &val) |
| static std::uint32_t | DeserializeInt32 (const void *buffer, std::int32_t &val) |
| static std::uint32_t | DeserializeInt64 (const void *buffer, std::int64_t &val) |
| static RResult< std::uint32_t > | DeserializeLocator (const void *buffer, std::uint64_t bufSize, RNTupleLocator &locator) |
| static RResult< void > | DeserializePageList (const void *buffer, std::uint64_t bufSize, ROOT::DescriptorId_t clusterGroupId, RNTupleDescriptor &desc, EDescriptorDeserializeMode mode) |
| static RResult< std::uint32_t > | DeserializeSchemaDescription (const void *buffer, std::uint64_t bufSize, ROOT::Internal::RNTupleDescriptorBuilder &descBuilder) |
| static RResult< StreamerInfoMap_t > | DeserializeStreamerInfos (const std::string &extraTypeInfoContent) |
| static RResult< std::uint32_t > | DeserializeString (const void *buffer, std::uint64_t bufSize, std::string &val) |
| static std::uint32_t | DeserializeUInt16 (const void *buffer, std::uint16_t &val) |
| static std::uint32_t | DeserializeUInt32 (const void *buffer, std::uint32_t &val) |
| static std::uint32_t | DeserializeUInt64 (const void *buffer, std::uint64_t &val) |
| static RResult< std::uint32_t > | SerializeAttributeSet (const Experimental::RNTupleAttrSetDescriptor &attrSetDesc, void *buffer) |
| static RResult< std::uint32_t > | SerializeClusterGroup (const RClusterGroup &clusterGroup, void *buffer) |
| static RResult< std::uint32_t > | SerializeClusterSummary (const RClusterSummary &clusterSummary, void *buffer) |
| static RResult< std::uint32_t > | SerializeColumnType (ROOT::ENTupleColumnType type, void *buffer) |
| static RResult< std::uint32_t > | SerializeEnvelopeLink (const REnvelopeLink &envelopeLink, void *buffer) |
| static RResult< std::uint32_t > | SerializeEnvelopePostscript (unsigned char *envelope, std::uint64_t size) |
| static RResult< std::uint32_t > | SerializeEnvelopePostscript (unsigned char *envelope, std::uint64_t size, std::uint64_t &xxhash3) |
| static std::uint32_t | SerializeEnvelopePreamble (std::uint16_t envelopeType, void *buffer) |
| static RResult< std::uint32_t > | SerializeExtraTypeInfoId (ROOT::EExtraTypeInfoIds id, void *buffer) |
| static RResult< std::uint32_t > | SerializeFeatureFlags (const std::vector< std::uint64_t > &flags, void *buffer) |
| static RResult< std::uint32_t > | SerializeFieldStructure (ROOT::ENTupleStructure structure, void *buffer) |
| While we could just interpret the enums as ints, we make the translation explicit in order to avoid accidentally changing the on-disk numbers when adjusting the enum classes. | |
| static RResult< std::uint32_t > | SerializeFooter (void *buffer, const RNTupleDescriptor &desc, const RContext &context) |
| static RResult< std::uint32_t > | SerializeFramePostscript (void *frame, std::uint64_t size) |
| static RResult< RContext > | SerializeHeader (void *buffer, const RNTupleDescriptor &desc) |
| static std::uint32_t | SerializeInt16 (std::int16_t val, void *buffer) |
| static std::uint32_t | SerializeInt32 (std::int32_t val, void *buffer) |
| static std::uint32_t | SerializeInt64 (std::int64_t val, void *buffer) |
| static std::uint32_t | SerializeListFramePreamble (std::uint32_t nitems, void *buffer) |
| static RResult< std::uint32_t > | SerializeLocator (const RNTupleLocator &locator, void *buffer) |
| static RResult< std::uint32_t > | SerializePageList (void *buffer, const RNTupleDescriptor &desc, std::span< ROOT::DescriptorId_t > physClusterIDs, const RContext &context) |
| static std::uint32_t | SerializeRecordFramePreamble (void *buffer) |
| static RResult< std::uint32_t > | SerializeSchemaDescription (void *buffer, const RNTupleDescriptor &desc, const RContext &context, bool forHeaderExtension=false) |
Serialize the schema description in desc into buffer. | |
| static std::string | SerializeStreamerInfos (const StreamerInfoMap_t &infos) |
| static std::uint32_t | SerializeString (const std::string &val, void *buffer) |
| static std::uint32_t | SerializeUInt16 (std::uint16_t val, void *buffer) |
| static std::uint32_t | SerializeUInt32 (std::uint32_t val, void *buffer) |
| static std::uint32_t | SerializeUInt64 (std::uint64_t val, void *buffer) |
| static std::uint32_t | SerializeXxHash3 (const unsigned char *data, std::uint64_t length, std::uint64_t &xxhash3, void *buffer) |
| Writes a XxHash-3 64bit checksum of the byte range given by data and length. | |
| static RResult< void > | VerifyXxHash3 (const unsigned char *data, std::uint64_t length) |
| static RResult< void > | VerifyXxHash3 (const unsigned char *data, std::uint64_t length, std::uint64_t &xxhash3) |
| Expects an xxhash3 checksum in the 8 bytes following data + length and verifies it. | |
Static Public Attributes | |
| static constexpr std::uint16_t | kEnvelopeTypeFooter = 0x02 |
| static constexpr std::uint16_t | kEnvelopeTypeHeader = 0x01 |
| static constexpr std::uint16_t | kEnvelopeTypePageList = 0x03 |
| static constexpr std::uint16_t | kFlagDeferredColumn = 0x01 |
| static constexpr std::uint16_t | kFlagHasTypeChecksum = 0x04 |
| static constexpr std::uint16_t | kFlagHasValueRange = 0x02 |
| static constexpr std::uint16_t | kFlagIsSoACollection = 0x08 |
| static constexpr std::uint16_t | kFlagProjectedField = 0x02 |
| static constexpr std::uint16_t | kFlagRepetitiveField = 0x01 |
| static constexpr int64_t | kSuppressedColumnMarker = std::numeric_limits<std::int64_t>::min() |
| static constexpr ROOT::DescriptorId_t | kZeroFieldId = std::uint64_t(-2) |
Static Private Member Functions | |
| static RResult< std::vector< ROOT::Internal::RClusterDescriptorBuilder > > | DeserializePageListRaw (const void *buffer, std::uint64_t bufSize, ROOT::DescriptorId_t clusterGroupId, const RNTupleDescriptor &desc) |
#include <ROOT/RNTupleSerialize.hxx>
| using ROOT::Internal::RNTupleSerializer::StreamerInfoMap_t = std::map<Int_t, TVirtualStreamerInfo *> |
Definition at line 88 of file RNTupleSerialize.hxx.
Definition at line 298 of file RNTupleSerialize.hxx.
|
static |
Definition at line 2110 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1342 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1284 of file RNTupleSerialize.cxx.
|
static |
Definition at line 825 of file RNTupleSerialize.cxx.
|
static |
Definition at line 995 of file RNTupleSerialize.cxx.
|
static |
Definition at line 963 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1238 of file RNTupleSerialize.cxx.
|
static |
Definition at line 914 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1103 of file RNTupleSerialize.cxx.
|
static |
Definition at line 887 of file RNTupleSerialize.cxx.
|
static |
Definition at line 2006 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1071 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1038 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1948 of file RNTupleSerialize.cxx.
|
static |
Definition at line 673 of file RNTupleSerialize.cxx.
|
static |
Definition at line 702 of file RNTupleSerialize.cxx.
|
static |
Definition at line 736 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1170 of file RNTupleSerialize.cxx.
|
static |
Definition at line 2284 of file RNTupleSerialize.cxx.
|
staticprivate |
Definition at line 2149 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1532 of file RNTupleSerialize.cxx.
|
static |
Definition at line 2340 of file RNTupleSerialize.cxx.
|
static |
Definition at line 766 of file RNTupleSerialize.cxx.
|
static |
Definition at line 685 of file RNTupleSerialize.cxx.
|
static |
Definition at line 715 of file RNTupleSerialize.cxx.
|
static |
Definition at line 750 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1909 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1318 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1257 of file RNTupleSerialize.cxx.
|
static |
Definition at line 785 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1226 of file RNTupleSerialize.cxx.
|
static |
Definition at line 956 of file RNTupleSerialize.cxx.
|
static |
Definition at line 938 of file RNTupleSerialize.cxx.
|
static |
Definition at line 927 of file RNTupleSerialize.cxx.
|
static |
Definition at line 905 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1080 of file RNTupleSerialize.cxx.
|
static |
While we could just interpret the enums as ints, we make the translation explicit in order to avoid accidentally changing the on-disk numbers when adjusting the enum classes.
Definition at line 870 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1821 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1022 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1683 of file RNTupleSerialize.cxx.
|
static |
Definition at line 663 of file RNTupleSerialize.cxx.
|
static |
Definition at line 690 of file RNTupleSerialize.cxx.
|
static |
Definition at line 720 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1009 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1122 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1723 of file RNTupleSerialize.cxx.
|
static |
Definition at line 1003 of file RNTupleSerialize.cxx.
|
static |
Serialize the schema description in desc into buffer.
If forHeaderExtension is true, serialize only the fields and columns tagged as part of the header extension (see RNTupleDescriptorBuilder::BeginHeaderExtension).
Definition at line 1420 of file RNTupleSerialize.cxx.
|
static |
Definition at line 2326 of file RNTupleSerialize.cxx.
|
static |
Definition at line 755 of file RNTupleSerialize.cxx.
|
static |
Definition at line 680 of file RNTupleSerialize.cxx.
|
static |
Definition at line 710 of file RNTupleSerialize.cxx.
|
static |
Definition at line 745 of file RNTupleSerialize.cxx.
|
static |
Writes a XxHash-3 64bit checksum of the byte range given by data and length.
Definition at line 637 of file RNTupleSerialize.cxx.
|
static |
Definition at line 657 of file RNTupleSerialize.cxx.
|
static |
Expects an xxhash3 checksum in the 8 bytes following data + length and verifies it.
Definition at line 647 of file RNTupleSerialize.cxx.
|
staticconstexpr |
Definition at line 71 of file RNTupleSerialize.hxx.
|
staticconstexpr |
Definition at line 70 of file RNTupleSerialize.hxx.
|
staticconstexpr |
Definition at line 72 of file RNTupleSerialize.hxx.
|
staticconstexpr |
Definition at line 79 of file RNTupleSerialize.hxx.
|
staticconstexpr |
Definition at line 76 of file RNTupleSerialize.hxx.
|
staticconstexpr |
Definition at line 80 of file RNTupleSerialize.hxx.
|
staticconstexpr |
Definition at line 77 of file RNTupleSerialize.hxx.
|
staticconstexpr |
Definition at line 75 of file RNTupleSerialize.hxx.
|
staticconstexpr |
Definition at line 74 of file RNTupleSerialize.hxx.
|
staticconstexpr |
Definition at line 84 of file RNTupleSerialize.hxx.
|
staticconstexpr |
Definition at line 82 of file RNTupleSerialize.hxx.