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. TODO(jblomer): consider moving this to RNTupleDescriptor
Definition at line 124 of file RNTupleUtil.hxx.
Public Types | |
enum | ELocatorType : std::uint8_t { kTypeFile = 0x00 , kTypeURI = 0x01 , kTypeDAOS = 0x02 } |
Values for the Type field in non-disk locators; see doc/specifications.md for details. More... | |
Public Member Functions | |
template<typename T > | |
const T & | GetPosition () const |
bool | operator== (const RNTupleLocator &other) const |
Public Attributes | |
std::uint32_t | fBytesOnStorage = 0 |
std::variant< std::uint64_t, std::string, RNTupleLocatorObject64 > | fPosition |
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>
enum ROOT::Experimental::RNTupleLocator::ELocatorType : std::uint8_t |
Values for the Type field in non-disk locators; see doc/specifications.md
for details.
Enumerator | |
---|---|
kTypeFile | |
kTypeURI | |
kTypeDAOS |
Definition at line 126 of file RNTupleUtil.hxx.
|
inline |
Definition at line 146 of file RNTupleUtil.hxx.
|
inline |
Definition at line 142 of file RNTupleUtil.hxx.
std::uint32_t ROOT::Experimental::RNTupleLocator::fBytesOnStorage = 0 |
Definition at line 135 of file RNTupleUtil.hxx.
std::variant<std::uint64_t, std::string, RNTupleLocatorObject64> ROOT::Experimental::RNTupleLocator::fPosition |
Simple on-disk locators consisting of a 64-bit offset use variant type uint64_t
; extended locators have fPosition.index()
> 0.
Definition at line 134 of file RNTupleUtil.hxx.
std::uint8_t ROOT::Experimental::RNTupleLocator::fReserved = 0 |
Reserved for use by concrete storage backends.
Definition at line 140 of file RNTupleUtil.hxx.
ELocatorType ROOT::Experimental::RNTupleLocator::fType = kTypeFile |
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 138 of file RNTupleUtil.hxx.