Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Experimental::Internal::RNTupleAnchorS3 Class Reference

Entry point for an RNTuple stored in S3-compatible object storage.

The anchor is serialized as a JSON object and stored at the base URL of the ntuple. It contains the information needed to locate and read the header and footer envelopes. The anchor is always the last object written during CommitDatasetImpl, ensuring atomicity: if the anchor exists, the entire ntuple is complete.

Definition at line 42 of file RPageStorageS3.hxx.

Public Member Functions

 RNTupleAnchorS3 ()=default
 
const std::string & GetCloneTemplate () const
 
std::uint64_t GetFooterObjId () const
 
std::uint64_t GetFooterOffset () const
 
std::uint64_t GetHeaderObjId () const
 
std::uint64_t GetHeaderOffset () const
 
std::uint64_t GetLenFooter () const
 
std::uint64_t GetLenHeader () const
 
std::uint64_t GetNBytesFooter () const
 
std::uint64_t GetNBytesHeader () const
 
const std::string & GetUrlTemplate () const
 
std::uint32_t GetVersionAnchor () const
 
std::uint16_t GetVersionEpoch () const
 
std::uint16_t GetVersionMajor () const
 
std::uint16_t GetVersionMinor () const
 
std::uint16_t GetVersionPatch () const
 
bool operator!= (const RNTupleAnchorS3 &other) const
 
bool operator== (const RNTupleAnchorS3 &other) const
 Field-by-field equality check across all data members.
 
std::string ToJSON () const
 Serialize the anchor to a JSON string suitable for storage at the base URL.
 

Static Public Member Functions

static RResult< RNTupleAnchorS3CreateFromJSON (const std::string &json)
 Deserialize the anchor from a JSON string. Returns an error on malformed or incompatible input.
 

Private Attributes

std::string fCloneTemplate = "${baseurl}/_clone/${name}"
 Pattern for resolving clone (attribute-set) names to base URLs.
 
std::uint64_t fFooterObjId = 0
 Object ID and byte offset of the compressed footer within the S3 object.
 
std::uint64_t fFooterOffset = 0
 
std::uint64_t fHeaderObjId = 0
 Object ID and byte offset of the compressed header within the S3 object.
 
std::uint64_t fHeaderOffset = 0
 
std::uint64_t fLenFooter = 0
 
std::uint64_t fLenHeader = 0
 
std::uint64_t fNBytesFooter = 0
 Compressed and uncompressed sizes of the footer envelope.
 
std::uint64_t fNBytesHeader = 0
 Compressed and uncompressed sizes of the header envelope.
 
std::string fUrlTemplate = "${baseurl}/${objid}"
 Pattern for resolving object IDs to full S3 URLs.
 
std::uint32_t fVersionAnchor = 0
 Allows evolving the anchor JSON schema in future versions.
 
std::uint16_t fVersionEpoch = RNTuple::kVersionEpoch
 Version of the RNTuple binary format supported by the writer.
 
std::uint16_t fVersionMajor = RNTuple::kVersionMajor
 
std::uint16_t fVersionMinor = RNTuple::kVersionMinor
 
std::uint16_t fVersionPatch = RNTuple::kVersionPatch
 

Friends

class RPageSinkS3
 

#include <ROOT/RPageStorageS3.hxx>

Constructor & Destructor Documentation

◆ RNTupleAnchorS3()

ROOT::Experimental::Internal::RNTupleAnchorS3::RNTupleAnchorS3 ( )
default

Member Function Documentation

◆ CreateFromJSON()

ROOT::RResult< ROOT::Experimental::Internal::RNTupleAnchorS3 > ROOT::Experimental::Internal::RNTupleAnchorS3::CreateFromJSON ( const std::string & json)
static

Deserialize the anchor from a JSON string. Returns an error on malformed or incompatible input.

Construct an anchor from a JSON string.

The anchor version is checked first; if it does not match the current version, parsing fails immediately. All remaining fields are extracted with jsonAnchor.at() which throws on missing keys or type mismatches.

Definition at line 80 of file RPageStorageS3.cxx.

◆ GetCloneTemplate()

const std::string & ROOT::Experimental::Internal::RNTupleAnchorS3::GetCloneTemplate ( ) const
inline

Definition at line 90 of file RPageStorageS3.hxx.

◆ GetFooterObjId()

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::GetFooterObjId ( ) const
inline

Definition at line 95 of file RPageStorageS3.hxx.

◆ GetFooterOffset()

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::GetFooterOffset ( ) const
inline

Definition at line 96 of file RPageStorageS3.hxx.

◆ GetHeaderObjId()

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::GetHeaderObjId ( ) const
inline

Definition at line 91 of file RPageStorageS3.hxx.

◆ GetHeaderOffset()

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::GetHeaderOffset ( ) const
inline

Definition at line 92 of file RPageStorageS3.hxx.

◆ GetLenFooter()

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::GetLenFooter ( ) const
inline

Definition at line 98 of file RPageStorageS3.hxx.

◆ GetLenHeader()

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::GetLenHeader ( ) const
inline

Definition at line 94 of file RPageStorageS3.hxx.

◆ GetNBytesFooter()

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::GetNBytesFooter ( ) const
inline

Definition at line 97 of file RPageStorageS3.hxx.

◆ GetNBytesHeader()

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::GetNBytesHeader ( ) const
inline

Definition at line 93 of file RPageStorageS3.hxx.

◆ GetUrlTemplate()

const std::string & ROOT::Experimental::Internal::RNTupleAnchorS3::GetUrlTemplate ( ) const
inline

Definition at line 89 of file RPageStorageS3.hxx.

◆ GetVersionAnchor()

std::uint32_t ROOT::Experimental::Internal::RNTupleAnchorS3::GetVersionAnchor ( ) const
inline

Definition at line 84 of file RPageStorageS3.hxx.

◆ GetVersionEpoch()

std::uint16_t ROOT::Experimental::Internal::RNTupleAnchorS3::GetVersionEpoch ( ) const
inline

Definition at line 85 of file RPageStorageS3.hxx.

◆ GetVersionMajor()

std::uint16_t ROOT::Experimental::Internal::RNTupleAnchorS3::GetVersionMajor ( ) const
inline

Definition at line 86 of file RPageStorageS3.hxx.

◆ GetVersionMinor()

std::uint16_t ROOT::Experimental::Internal::RNTupleAnchorS3::GetVersionMinor ( ) const
inline

Definition at line 87 of file RPageStorageS3.hxx.

◆ GetVersionPatch()

std::uint16_t ROOT::Experimental::Internal::RNTupleAnchorS3::GetVersionPatch ( ) const
inline

Definition at line 88 of file RPageStorageS3.hxx.

◆ operator!=()

bool ROOT::Experimental::Internal::RNTupleAnchorS3::operator!= ( const RNTupleAnchorS3 & other) const
inline

Definition at line 82 of file RPageStorageS3.hxx.

◆ operator==()

bool ROOT::Experimental::Internal::RNTupleAnchorS3::operator== ( const RNTupleAnchorS3 & other) const

Field-by-field equality check across all data members.

Definition at line 36 of file RPageStorageS3.cxx.

◆ ToJSON()

std::string ROOT::Experimental::Internal::RNTupleAnchorS3::ToJSON ( ) const

Serialize the anchor to a JSON string suitable for storage at the base URL.

Serialize the anchor to a pretty-printed JSON string (2-space indent).

The checksum is computed over the compact canonical form of the data fields; the stored JSON uses pretty-printing for readability.

Definition at line 51 of file RPageStorageS3.cxx.

Friends And Related Symbol Documentation

◆ RPageSinkS3

friend class RPageSinkS3
friend

Definition at line 43 of file RPageStorageS3.hxx.

Member Data Documentation

◆ fCloneTemplate

std::string ROOT::Experimental::Internal::RNTupleAnchorS3::fCloneTemplate = "${baseurl}/_clone/${name}"
private

Pattern for resolving clone (attribute-set) names to base URLs.

${baseurl} is replaced with the anchor URL, ${name} with the clone name.

Definition at line 59 of file RPageStorageS3.hxx.

◆ fFooterObjId

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fFooterObjId = 0
private

Object ID and byte offset of the compressed footer within the S3 object.

Definition at line 67 of file RPageStorageS3.hxx.

◆ fFooterOffset

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fFooterOffset = 0
private

Definition at line 68 of file RPageStorageS3.hxx.

◆ fHeaderObjId

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fHeaderObjId = 0
private

Object ID and byte offset of the compressed header within the S3 object.

Definition at line 61 of file RPageStorageS3.hxx.

◆ fHeaderOffset

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fHeaderOffset = 0
private

Definition at line 62 of file RPageStorageS3.hxx.

◆ fLenFooter

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fLenFooter = 0
private

Definition at line 71 of file RPageStorageS3.hxx.

◆ fLenHeader

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fLenHeader = 0
private

Definition at line 65 of file RPageStorageS3.hxx.

◆ fNBytesFooter

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fNBytesFooter = 0
private

Compressed and uncompressed sizes of the footer envelope.

Definition at line 70 of file RPageStorageS3.hxx.

◆ fNBytesHeader

std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fNBytesHeader = 0
private

Compressed and uncompressed sizes of the header envelope.

Definition at line 64 of file RPageStorageS3.hxx.

◆ fUrlTemplate

std::string ROOT::Experimental::Internal::RNTupleAnchorS3::fUrlTemplate = "${baseurl}/${objid}"
private

Pattern for resolving object IDs to full S3 URLs.

${baseurl} is replaced with the anchor URL, ${objid} with the numeric object ID. Defaults to the scheme this writer uses; the reader overrides it from the stored anchor.

Definition at line 56 of file RPageStorageS3.hxx.

◆ fVersionAnchor

std::uint32_t ROOT::Experimental::Internal::RNTupleAnchorS3::fVersionAnchor = 0
private

Allows evolving the anchor JSON schema in future versions.

Definition at line 47 of file RPageStorageS3.hxx.

◆ fVersionEpoch

std::uint16_t ROOT::Experimental::Internal::RNTupleAnchorS3::fVersionEpoch = RNTuple::kVersionEpoch
private

Version of the RNTuple binary format supported by the writer.

Definition at line 49 of file RPageStorageS3.hxx.

◆ fVersionMajor

std::uint16_t ROOT::Experimental::Internal::RNTupleAnchorS3::fVersionMajor = RNTuple::kVersionMajor
private

Definition at line 50 of file RPageStorageS3.hxx.

◆ fVersionMinor

std::uint16_t ROOT::Experimental::Internal::RNTupleAnchorS3::fVersionMinor = RNTuple::kVersionMinor
private

Definition at line 51 of file RPageStorageS3.hxx.

◆ fVersionPatch

std::uint16_t ROOT::Experimental::Internal::RNTupleAnchorS3::fVersionPatch = RNTuple::kVersionPatch
private

Definition at line 52 of file RPageStorageS3.hxx.

  • tree/ntuple/inc/ROOT/RPageStorageS3.hxx
  • tree/ntuple/src/RPageStorageS3.cxx