Meta-data for a set of ntuple clusters.
The cluster descriptor is built in two phases. In a first phase, the descriptor has only summary data, i.e. the ID and the event range. In a second phase, page locations and column ranges are added. Both phases are populated by the RClusterDescriptorBuilder. Clusters usually span across all available columns but in some cases they can describe only a subset of the columns, for instance when describing friend ntuples.
Definition at line 193 of file RNTupleDescriptor.hxx.
Classes | |
struct | RColumnRange |
The window of element indexes of a particular column in a particular cluster. More... | |
struct | RPageRange |
Records the parition of data into pages for a particular column in a particular cluster. More... | |
Public Member Functions | |
RClusterDescriptor ()=default | |
RClusterDescriptor (const RClusterDescriptor &other)=delete | |
RClusterDescriptor (DescriptorId_t clusterId, std::uint64_t firstEntryIndex, std::uint64_t nEntries) | |
RClusterDescriptor (RClusterDescriptor &&other)=default | |
RClusterDescriptor | Clone () const |
bool | ContainsColumn (DescriptorId_t columnId) const |
std::uint64_t | GetBytesOnStorage () const |
std::unordered_set< DescriptorId_t > | GetColumnIds () const |
const RColumnRange & | GetColumnRange (DescriptorId_t columnId) const |
NTupleSize_t | GetFirstEntryIndex () const |
DescriptorId_t | GetId () const |
ClusterSize_t | GetNEntries () const |
const RPageRange & | GetPageRange (DescriptorId_t columnId) const |
bool | HasPageLocations () const |
RClusterDescriptor & | operator= (const RClusterDescriptor &other)=delete |
RClusterDescriptor & | operator= (RClusterDescriptor &&other)=default |
bool | operator== (const RClusterDescriptor &other) const |
Private Member Functions | |
void | EnsureHasPageLocations () const |
Private Attributes | |
DescriptorId_t | fClusterId = kInvalidDescriptorId |
std::unordered_map< DescriptorId_t, RColumnRange > | fColumnRanges |
NTupleSize_t | fFirstEntryIndex = kInvalidNTupleIndex |
Clusters can be swapped by adjusting the entry offsets. | |
bool | fHasPageLocations = false |
ClusterSize_t | fNEntries = kInvalidClusterIndex |
std::unordered_map< DescriptorId_t, RPageRange > | fPageRanges |
Friends | |
class | RClusterDescriptorBuilder |
#include <ROOT/RNTupleDescriptor.hxx>
|
default |
|
inline |
Definition at line 286 of file RNTupleDescriptor.hxx.
|
delete |
|
default |
ROOT::Experimental::RClusterDescriptor ROOT::Experimental::RClusterDescriptor::Clone | ( | ) | const |
Definition at line 181 of file RNTupleDescriptor.cxx.
bool ROOT::Experimental::RClusterDescriptor::ContainsColumn | ( | DescriptorId_t | columnId | ) | const |
Definition at line 156 of file RNTupleDescriptor.cxx.
|
private |
Definition at line 175 of file RNTupleDescriptor.cxx.
std::uint64_t ROOT::Experimental::RClusterDescriptor::GetBytesOnStorage | ( | ) | const |
Definition at line 163 of file RNTupleDescriptor.cxx.
std::unordered_set< ROOT::Experimental::DescriptorId_t > ROOT::Experimental::RClusterDescriptor::GetColumnIds | ( | ) | const |
Definition at line 146 of file RNTupleDescriptor.cxx.
|
inline |
Definition at line 302 of file RNTupleDescriptor.hxx.
|
inline |
Definition at line 300 of file RNTupleDescriptor.hxx.
|
inline |
Definition at line 299 of file RNTupleDescriptor.hxx.
|
inline |
Definition at line 301 of file RNTupleDescriptor.hxx.
|
inline |
Definition at line 307 of file RNTupleDescriptor.hxx.
|
inline |
Definition at line 315 of file RNTupleDescriptor.hxx.
|
delete |
|
default |
bool ROOT::Experimental::RClusterDescriptor::operator== | ( | const RClusterDescriptor & | other | ) | const |
Definition at line 138 of file RNTupleDescriptor.cxx.
|
friend |
Definition at line 194 of file RNTupleDescriptor.hxx.
|
private |
Definition at line 271 of file RNTupleDescriptor.hxx.
|
private |
Definition at line 278 of file RNTupleDescriptor.hxx.
|
private |
Clusters can be swapped by adjusting the entry offsets.
Definition at line 273 of file RNTupleDescriptor.hxx.
|
private |
Definition at line 276 of file RNTupleDescriptor.hxx.
|
private |
Definition at line 275 of file RNTupleDescriptor.hxx.
|
private |
Definition at line 279 of file RNTupleDescriptor.hxx.