Logo ROOT  
Reference Guide
ROOT::Experimental::Detail::RPageSourceRoot Class Reference

Storage provider that reads ntuple pages from a ROOT TFile.

Definition at line 116 of file RPageStorageRoot.hxx.

Public Member Functions

 RPageSourceRoot (std::string_view ntupleName, std::string_view path, const RNTupleReadOptions &options)
 
virtual ~RPageSourceRoot ()
 
std::unique_ptr< RPageSource > Clone () const final
 Open the same storage multiple time, e.g. for reading in multiple threads. More...
 
RNTupleMetrics & GetMetrics () final
 Page storage implementations usually have their own metrics. More...
 
RPage PopulatePage (ColumnHandle_t columnHandle, const RClusterIndex &clusterIndex) final
 Another version of PopulatePage that allows to specify cluster-relative indexes. More...
 
RPage PopulatePage (ColumnHandle_t columnHandle, NTupleSize_t globalIndex) final
 Allocates and fills a page that contains the index-th element. More...
 
void ReleasePage (RPage &page) final
 Every page store needs to be able to free pages it handed out. More...
 
- Public Member Functions inherited from ROOT::Experimental::Detail::RPageSource
 RPageSource (std::string_view ntupleName, const RNTupleReadOptions &fOptions)
 
virtual ~RPageSource ()
 
ColumnHandle_t AddColumn (DescriptorId_t fieldId, const RColumn &column) final
 Register a new column. More...
 
void Attach ()
 Open the physical storage container for the tree. More...
 
virtual std::unique_ptr< RPageSource > Clone () const =0
 Open the same storage multiple time, e.g. for reading in multiple threads. More...
 
ColumnId_t GetColumnId (ColumnHandle_t columnHandle)
 
const RNTupleDescriptor & GetDescriptor () const
 
NTupleSize_t GetNElements (ColumnHandle_t columnHandle)
 
NTupleSize_t GetNEntries ()
 
EPageStorageType GetType () final
 Whether the concrete implementation is a sink or a source. More...
 
virtual RPage PopulatePage (ColumnHandle_t columnHandle, const RClusterIndex &clusterIndex)=0
 Another version of PopulatePage that allows to specify cluster-relative indexes. More...
 
virtual RPage PopulatePage (ColumnHandle_t columnHandle, NTupleSize_t globalIndex)=0
 Allocates and fills a page that contains the index-th element. More...
 
- Public Member Functions inherited from ROOT::Experimental::Detail::RPageStorage
 RPageStorage (const RPageStorage &other)=delete
 
 RPageStorage (std::string_view name)
 
virtual ~RPageStorage ()
 
virtual ColumnHandle_t AddColumn (DescriptorId_t fieldId, const RColumn &column)=0
 Register a new column. More...
 
virtual RNTupleMetrics & GetMetrics ()=0
 Page storage implementations usually have their own metrics. More...
 
virtual EPageStorageType GetType ()=0
 Whether the concrete implementation is a sink or a source. More...
 
RPageStorage & operator= (const RPageStorage &other)=delete
 
virtual void ReleasePage (RPage &page)=0
 Every page store needs to be able to free pages it handed out. More...
 

Protected Member Functions

RNTupleDescriptor DoAttach () final
 
virtual RNTupleDescriptor DoAttach ()=0
 

Private Member Functions

RPage PopulatePageFromCluster (ColumnHandle_t columnHandle, const RClusterDescriptor &clusterDescriptor, ClusterSize_t::ValueType clusterIndex)
 

Private Attributes

TDirectory * fDirectory = nullptr
 
std::unique_ptr< TFile > fFile
 Currently, an ntuple is stored as a directory in a TFile. More...
 
RNTupleMetrics fMetrics
 
std::unique_ptr< RPageAllocatorKey > fPageAllocator
 
std::shared_ptr< RPagePool > fPagePool
 

Additional Inherited Members

- Public Types inherited from ROOT::Experimental::Detail::RPageStorage
using ColumnHandle_t = RColumnHandle
 The column handle identifies a column with the current open page storage. More...
 
- Static Public Member Functions inherited from ROOT::Experimental::Detail::RPageSource
static std::unique_ptr< RPageSource > Create (std::string_view ntupleName, std::string_view location, const RNTupleReadOptions &options=RNTupleReadOptions())
 Guess the concrete derived page source from the file name (location) More...
 
- Protected Attributes inherited from ROOT::Experimental::Detail::RPageSource
RNTupleDescriptor fDescriptor
 
const RNTupleReadOptions fOptions
 
- Protected Attributes inherited from ROOT::Experimental::Detail::RPageStorage
std::string fNTupleName
 

#include <ROOT/RPageStorageRoot.hxx>

Inheritance diagram for ROOT::Experimental::Detail::RPageSourceRoot:
[legend]

Constructor & Destructor Documentation

◆ RPageSourceRoot()

ROOT::Experimental::Detail::RPageSourceRoot::RPageSourceRoot ( std::string_view  ntupleName,
std::string_view  path,
const RNTupleReadOptions &  options 
)

Definition at line 162 of file RPageStorageRoot.cxx.

◆ ~RPageSourceRoot()

ROOT::Experimental::Detail::RPageSourceRoot::~RPageSourceRoot ( )
virtual

Definition at line 173 of file RPageStorageRoot.cxx.

Member Function Documentation

◆ Clone()

std::unique_ptr< ROOT::Experimental::Detail::RPageSource > ROOT::Experimental::Detail::RPageSourceRoot::Clone ( ) const
finalvirtual

Open the same storage multiple time, e.g. for reading in multiple threads.

Implements ROOT::Experimental::Detail::RPageSource.

Definition at line 291 of file RPageStorageRoot.cxx.

◆ DoAttach()

ROOT::Experimental::RNTupleDescriptor ROOT::Experimental::Detail::RPageSourceRoot::DoAttach ( )
finalprotectedvirtual

Implements ROOT::Experimental::Detail::RPageSource.

Definition at line 180 of file RPageStorageRoot.cxx.

◆ GetMetrics()

RNTupleMetrics & ROOT::Experimental::Detail::RPageSourceRoot::GetMetrics ( )
inlinefinalvirtual

Page storage implementations usually have their own metrics.

Implements ROOT::Experimental::Detail::RPageStorage.

Definition at line 141 of file RPageStorageRoot.hxx.

◆ PopulatePage() [1/2]

ROOT::Experimental::Detail::RPage ROOT::Experimental::Detail::RPageSourceRoot::PopulatePage ( ColumnHandle_t  columnHandle,
const RClusterIndex &  clusterIndex 
)
finalvirtual

Another version of PopulatePage that allows to specify cluster-relative indexes.

Implements ROOT::Experimental::Detail::RPageSource.

Definition at line 271 of file RPageStorageRoot.cxx.

◆ PopulatePage() [2/2]

ROOT::Experimental::Detail::RPage ROOT::Experimental::Detail::RPageSourceRoot::PopulatePage ( ColumnHandle_t  columnHandle,
NTupleSize_t  globalIndex 
)
finalvirtual

Allocates and fills a page that contains the index-th element.

Implements ROOT::Experimental::Detail::RPageSource.

Definition at line 254 of file RPageStorageRoot.cxx.

◆ PopulatePageFromCluster()

ROOT::Experimental::Detail::RPage ROOT::Experimental::Detail::RPageSourceRoot::PopulatePageFromCluster ( ColumnHandle_t  columnHandle,
const RClusterDescriptor &  clusterDescriptor,
ClusterSize_t::ValueType  clusterIndex 
)
private

Definition at line 201 of file RPageStorageRoot.cxx.

◆ ReleasePage()

void ROOT::Experimental::Detail::RPageSourceRoot::ReleasePage ( RPage &  page)
finalvirtual

Every page store needs to be able to free pages it handed out.

But Sinks and sources have different means of allocating pages.

Implements ROOT::Experimental::Detail::RPageStorage.

Definition at line 286 of file RPageStorageRoot.cxx.

Member Data Documentation

◆ fDirectory

TDirectory* ROOT::Experimental::Detail::RPageSourceRoot::fDirectory = nullptr
private

Definition at line 124 of file RPageStorageRoot.hxx.

◆ fFile

std::unique_ptr<TFile> ROOT::Experimental::Detail::RPageSourceRoot::fFile
private

Currently, an ntuple is stored as a directory in a TFile.

Definition at line 123 of file RPageStorageRoot.hxx.

◆ fMetrics

RNTupleMetrics ROOT::Experimental::Detail::RPageSourceRoot::fMetrics
private

Definition at line 118 of file RPageStorageRoot.hxx.

◆ fPageAllocator

std::unique_ptr<RPageAllocatorKey> ROOT::Experimental::Detail::RPageSourceRoot::fPageAllocator
private

Definition at line 119 of file RPageStorageRoot.hxx.

◆ fPagePool

std::shared_ptr<RPagePool> ROOT::Experimental::Detail::RPageSourceRoot::fPagePool
private

Definition at line 120 of file RPageStorageRoot.hxx.

Libraries for ROOT::Experimental::Detail::RPageSourceRoot:
[legend]

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