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

Generic information about the physical location of data.

Values depend on the concrete storage type. E.g., for a local file fPosition might be a 64bit file offset. Referenced objects on storage can be compressed and therefore we need to store their actual size.

Definition at line 184 of file RNTupleUtil.hxx.

Public Types

enum  ELocatorType : std::uint8_t {
  kTypeFile = 0x00 , kTypeDAOS = 0x02 , kLastSerializableType = 0x7f , kTypePageZero = kLastSerializableType + 1 ,
  kTypeUnknown
}
 Values for the Type field in non-disk locators. More...
 

Public Member Functions

 RNTupleLocator ()=default
 
std::uint64_t GetNBytesOnStorage () const
 
template<typename T >
GetPosition () const
 
std::uint8_t GetReserved () const
 
ELocatorType GetType () const
 
bool operator== (const RNTupleLocator &other) const
 
void SetNBytesOnStorage (std::uint64_t nBytesOnStorage)
 
template<typename T >
void SetPosition (T position)
 
void SetReserved (std::uint8_t reserved)
 
void SetType (ELocatorType type)
 

Private Attributes

std::uint64_t fNBytesOnStorage = 0
 
std::variant< std::uint64_t, RNTupleLocatorObject64fPosition {}
 Simple on-disk locators consisting of a 64-bit offset use variant type uint64_t; extended locators have fPosition.index() > 0.
 
std::uint8_t fReserved = 0
 Reserved for use by concrete storage backends.
 
ELocatorType fType = kTypeFile
 For non-disk locators, the value for the Type field.
 

#include <ROOT/RNTupleUtil.hxx>

Member Enumeration Documentation

◆ ELocatorType

Values for the Type field in non-disk locators.

Serializable types must have the MSb == 0; see doc/BinaryFormatSpecification.md for details

Enumerator
kTypeFile 
kTypeDAOS 
kLastSerializableType 
kTypePageZero 
kTypeUnknown 

Definition at line 188 of file RNTupleUtil.hxx.

Constructor & Destructor Documentation

◆ RNTupleLocator()

ROOT::Experimental::RNTupleLocator::RNTupleLocator ( )
default

Member Function Documentation

◆ GetNBytesOnStorage()

std::uint64_t ROOT::Experimental::RNTupleLocator::GetNBytesOnStorage ( ) const
inline

Definition at line 218 of file RNTupleUtil.hxx.

◆ GetPosition()

template<typename T >
T ROOT::Experimental::RNTupleLocator::GetPosition ( ) const
inline

Definition at line 227 of file RNTupleUtil.hxx.

◆ GetReserved()

std::uint8_t ROOT::Experimental::RNTupleLocator::GetReserved ( ) const
inline

Definition at line 220 of file RNTupleUtil.hxx.

◆ GetType()

ELocatorType ROOT::Experimental::RNTupleLocator::GetType ( ) const
inline

Definition at line 219 of file RNTupleUtil.hxx.

◆ operator==()

bool ROOT::Experimental::RNTupleLocator::operator== ( const RNTupleLocator & other) const
inline

Definition at line 213 of file RNTupleUtil.hxx.

◆ SetNBytesOnStorage()

void ROOT::Experimental::RNTupleLocator::SetNBytesOnStorage ( std::uint64_t nBytesOnStorage)
inline

Definition at line 222 of file RNTupleUtil.hxx.

◆ SetPosition()

template<typename T >
void ROOT::Experimental::RNTupleLocator::SetPosition ( T position)
inline

Definition at line 233 of file RNTupleUtil.hxx.

◆ SetReserved()

void ROOT::Experimental::RNTupleLocator::SetReserved ( std::uint8_t reserved)
inline

Definition at line 224 of file RNTupleUtil.hxx.

◆ SetType()

void ROOT::Experimental::RNTupleLocator::SetType ( ELocatorType type)
inline

Definition at line 223 of file RNTupleUtil.hxx.

Member Data Documentation

◆ fNBytesOnStorage

std::uint64_t ROOT::Experimental::RNTupleLocator::fNBytesOnStorage = 0
private

Definition at line 200 of file RNTupleUtil.hxx.

◆ fPosition

std::variant<std::uint64_t, RNTupleLocatorObject64> ROOT::Experimental::RNTupleLocator::fPosition {}
private

Simple on-disk locators consisting of a 64-bit offset use variant type uint64_t; extended locators have fPosition.index() > 0.

Definition at line 203 of file RNTupleUtil.hxx.

◆ fReserved

std::uint8_t ROOT::Experimental::RNTupleLocator::fReserved = 0
private

Reserved for use by concrete storage backends.

Definition at line 208 of file RNTupleUtil.hxx.

◆ fType

ELocatorType ROOT::Experimental::RNTupleLocator::fType = kTypeFile
private

For non-disk locators, the value for the Type field.

This makes it possible to have different type values even if the payload structure is identical.

Definition at line 206 of file RNTupleUtil.hxx.

Libraries for ROOT::Experimental::RNTupleLocator:

The documentation for this class was generated from the following file: