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

Storage provider that reads ntuple pages from a raw file.

Definition at line 100 of file RPageStorageRaw.hxx.

Public Member Functions

 RPageSourceRaw (std::string_view ntupleName, std::string_view path, const RNTupleReadOptions &options)
 
virtual ~RPageSourceRaw ()
 
std::unique_ptr< RPageSourceClone () const final
 Open the same storage multiple time, e.g. for reading in multiple threads. More...
 
RNTupleMetricsGetMetrics () 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< RPageSourceClone () const =0
 Open the same storage multiple time, e.g. for reading in multiple threads. More...
 
ColumnId_t GetColumnId (ColumnHandle_t columnHandle)
 
const RNTupleDescriptorGetDescriptor () 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 RNTupleMetricsGetMetrics ()=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...
 
RPageStorageoperator= (const RPageStorage &other)=delete
 
virtual void ReleasePage (RPage &page)=0
 Every page store needs to be able to free pages it handed out. More...
 

Static Public Attributes

static constexpr std::size_t kMaxPageSize = 1024 * 1024
 Cannot process pages larger than 1MB. More...
 

Protected Member Functions

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

Private Member Functions

 RPageSourceRaw (std::string_view ntupleName, const RNTupleReadOptions &options)
 
RPage PopulatePageFromCluster (ColumnHandle_t columnHandle, const RClusterDescriptor &clusterDescriptor, ClusterSize_t::ValueType clusterIndex)
 
void Read (void *buffer, std::size_t nbytes, std::uint64_t offset)
 

Private Attributes

RNTuplePlainCounterfCtrNPages = nullptr
 
RNTuplePlainCounterfCtrNRead = nullptr
 
RNTuplePlainCounterfCtrSzRead = nullptr
 
RNTuplePlainCounterfCtrSzUnzip = nullptr
 
RNTupleTickCounter< RNTuplePlainCounter > * fCtrTimeCpuRead = nullptr
 
RNTupleTickCounter< RNTuplePlainCounter > * fCtrTimeCpuUnzip = nullptr
 
RNTuplePlainCounterfCtrTimeWallRead = nullptr
 
RNTuplePlainCounterfCtrTimeWallUnzip = nullptr
 
std::unique_ptr< ROOT::Internal::RRawFilefFile
 
RNTupleMetrics fMetrics
 
std::unique_ptr< RPageAllocatorFilefPageAllocator
 
std::shared_ptr< RPagePoolfPagePool
 
std::unique_ptr< std::array< unsigned char, kMaxPageSize > > fUnzipBuffer
 

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< RPageSourceCreate (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/RPageStorageRaw.hxx>

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

Constructor & Destructor Documentation

◆ RPageSourceRaw() [1/2]

ROOT::Experimental::Detail::RPageSourceRaw::RPageSourceRaw ( std::string_view  ntupleName,
const RNTupleReadOptions options 
)
private

Definition at line 172 of file RPageStorageRaw.cxx.

◆ RPageSourceRaw() [2/2]

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

Definition at line 193 of file RPageStorageRaw.cxx.

◆ ~RPageSourceRaw()

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

Definition at line 203 of file RPageStorageRaw.cxx.

Member Function Documentation

◆ Clone()

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

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

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

Definition at line 352 of file RPageStorageRaw.cxx.

◆ DoAttach()

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

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

Definition at line 218 of file RPageStorageRaw.cxx.

◆ GetMetrics()

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

Page storage implementations usually have their own metrics.

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

Definition at line 139 of file RPageStorageRaw.hxx.

◆ PopulatePage() [1/2]

ROOT::Experimental::Detail::RPage ROOT::Experimental::Detail::RPageSourceRaw::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 332 of file RPageStorageRaw.cxx.

◆ PopulatePage() [2/2]

ROOT::Experimental::Detail::RPage ROOT::Experimental::Detail::RPageSourceRaw::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 315 of file RPageStorageRaw.cxx.

◆ PopulatePageFromCluster()

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

Definition at line 247 of file RPageStorageRaw.cxx.

◆ Read()

void ROOT::Experimental::Detail::RPageSourceRaw::Read ( void buffer,
std::size_t  nbytes,
std::uint64_t  offset 
)
private

Definition at line 208 of file RPageStorageRaw.cxx.

◆ ReleasePage()

void ROOT::Experimental::Detail::RPageSourceRaw::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 347 of file RPageStorageRaw.cxx.

Member Data Documentation

◆ fCtrNPages

RNTuplePlainCounter* ROOT::Experimental::Detail::RPageSourceRaw::fCtrNPages = nullptr
private

Definition at line 115 of file RPageStorageRaw.hxx.

◆ fCtrNRead

RNTuplePlainCounter* ROOT::Experimental::Detail::RPageSourceRaw::fCtrNRead = nullptr
private

Definition at line 112 of file RPageStorageRaw.hxx.

◆ fCtrSzRead

RNTuplePlainCounter* ROOT::Experimental::Detail::RPageSourceRaw::fCtrSzRead = nullptr
private

Definition at line 113 of file RPageStorageRaw.hxx.

◆ fCtrSzUnzip

RNTuplePlainCounter* ROOT::Experimental::Detail::RPageSourceRaw::fCtrSzUnzip = nullptr
private

Definition at line 114 of file RPageStorageRaw.hxx.

◆ fCtrTimeCpuRead

RNTupleTickCounter<RNTuplePlainCounter>* ROOT::Experimental::Detail::RPageSourceRaw::fCtrTimeCpuRead = nullptr
private

Definition at line 118 of file RPageStorageRaw.hxx.

◆ fCtrTimeCpuUnzip

RNTupleTickCounter<RNTuplePlainCounter>* ROOT::Experimental::Detail::RPageSourceRaw::fCtrTimeCpuUnzip = nullptr
private

Definition at line 119 of file RPageStorageRaw.hxx.

◆ fCtrTimeWallRead

RNTuplePlainCounter* ROOT::Experimental::Detail::RPageSourceRaw::fCtrTimeWallRead = nullptr
private

Definition at line 116 of file RPageStorageRaw.hxx.

◆ fCtrTimeWallUnzip

RNTuplePlainCounter* ROOT::Experimental::Detail::RPageSourceRaw::fCtrTimeWallUnzip = nullptr
private

Definition at line 117 of file RPageStorageRaw.hxx.

◆ fFile

std::unique_ptr<ROOT::Internal::RRawFile> ROOT::Experimental::Detail::RPageSourceRaw::fFile
private

Definition at line 109 of file RPageStorageRaw.hxx.

◆ fMetrics

RNTupleMetrics ROOT::Experimental::Detail::RPageSourceRaw::fMetrics
private

Definition at line 111 of file RPageStorageRaw.hxx.

◆ fPageAllocator

std::unique_ptr<RPageAllocatorFile> ROOT::Experimental::Detail::RPageSourceRaw::fPageAllocator
private

Definition at line 106 of file RPageStorageRaw.hxx.

◆ fPagePool

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

Definition at line 107 of file RPageStorageRaw.hxx.

◆ fUnzipBuffer

std::unique_ptr<std::array<unsigned char, kMaxPageSize> > ROOT::Experimental::Detail::RPageSourceRaw::fUnzipBuffer
private

Definition at line 108 of file RPageStorageRaw.hxx.

◆ kMaxPageSize

constexpr std::size_t ROOT::Experimental::Detail::RPageSourceRaw::kMaxPageSize = 1024 * 1024
staticconstexpr

Cannot process pages larger than 1MB.

Definition at line 103 of file RPageStorageRaw.hxx.

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

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