Logo ROOT  
Reference Guide
ROOT::Experimental::Detail::RPageStorage Class Referenceabstract

Common functionality of an ntuple storage for both reading and writing.

The RPageStore provides access to a storage container that keeps the bits of pages and clusters comprising an ntuple. Concrete implementations can use a TFile, a raw file, an object store, and so on.

Definition at line 66 of file RPageStorage.hxx.


struct  RColumnHandle
struct  RSealedPage
 A sealed page contains the bytes of a page as written to storage (packed & compressed). More...
class  RTaskScheduler
 The interface of a task scheduler to schedule page (de)compression tasks. More...

Public Types

using ColumnHandle_t = RColumnHandle
 The column handle identifies a column with the current open page storage. More...

Public Member Functions

 RPageStorage (const RPageStorage &other)=delete
 RPageStorage (RPageStorage &&other)=default
 RPageStorage (std::string_view name)
virtual ~RPageStorage ()
virtual ColumnHandle_t AddColumn (DescriptorId_t fieldId, const RColumn &column)=0
 Register a new column. More...
virtual void DropColumn (ColumnHandle_t columnHandle)=0
 Unregisters a column. More...
virtual RNTupleMetricsGetMetrics ()=0
 Page storage implementations have their own metrics. More...
const std::string & GetNTupleName () const
 Returns the NTuple name. More...
virtual EPageStorageType GetType ()=0
 Whether the concrete implementation is a sink or a source. More...
RPageStorageoperator= (const RPageStorage &other)=delete
RPageStorageoperator= (RPageStorage &&other)=default
virtual void ReleasePage (RPage &page)=0
 Every page store needs to be able to free pages it handed out. More...
void SetTaskScheduler (RTaskScheduler *taskScheduler)

Protected Attributes

std::string fNTupleName
RTaskSchedulerfTaskScheduler = nullptr

#include <ROOT/RPageStorage.hxx>

Inheritance diagram for ROOT::Experimental::Detail::RPageStorage:

Member Typedef Documentation

◆ ColumnHandle_t

The column handle identifies a column with the current open page storage.

Definition at line 121 of file RPageStorage.hxx.

Constructor & Destructor Documentation

◆ RPageStorage() [1/3]

ROOT::Experimental::Detail::RPageStorage::RPageStorage ( std::string_view  name)

Definition at line 37 of file RPageStorage.cxx.

◆ RPageStorage() [2/3]

ROOT::Experimental::Detail::RPageStorage::RPageStorage ( const RPageStorage other)

◆ RPageStorage() [3/3]

ROOT::Experimental::Detail::RPageStorage::RPageStorage ( RPageStorage &&  other)

◆ ~RPageStorage()

ROOT::Experimental::Detail::RPageStorage::~RPageStorage ( )

Definition at line 41 of file RPageStorage.cxx.

Member Function Documentation

◆ AddColumn()

virtual ColumnHandle_t ROOT::Experimental::Detail::RPageStorage::AddColumn ( DescriptorId_t  fieldId,
const RColumn column 
pure virtual

Register a new column.

When reading, the column must exist in the ntuple on disk corresponding to the meta-data. When writing, every column can only be attached once.

Implemented in ROOT::Experimental::Detail::RPageSourceFriends, ROOT::Experimental::Detail::RPageSink, and ROOT::Experimental::Detail::RPageSource.

◆ DropColumn()

virtual void ROOT::Experimental::Detail::RPageStorage::DropColumn ( ColumnHandle_t  columnHandle)
pure virtual

Unregisters a column.

A page source decreases the reference counter for the corresponding active column. For a page sink, dropping columns is currently a no-op.

Implemented in ROOT::Experimental::Detail::RPageSourceFriends, ROOT::Experimental::Detail::RPageSource, and ROOT::Experimental::Detail::RPageSink.

◆ GetMetrics()

virtual RNTupleMetrics & ROOT::Experimental::Detail::RPageStorage::GetMetrics ( )
pure virtual

Page storage implementations have their own metrics.

The RPageSink and RPageSource classes provide a default set of metrics.

Implemented in ROOT::Experimental::Detail::RPageSinkBuf, ROOT::Experimental::Detail::RPageSourceFriends, ROOT::Experimental::Detail::RPageSink, and ROOT::Experimental::Detail::RPageSource.

◆ GetNTupleName()

const std::string & ROOT::Experimental::Detail::RPageStorage::GetNTupleName ( ) const

Returns the NTuple name.

Definition at line 138 of file RPageStorage.hxx.

◆ GetType()

virtual EPageStorageType ROOT::Experimental::Detail::RPageStorage::GetType ( )
pure virtual

Whether the concrete implementation is a sink or a source.

Implemented in ROOT::Experimental::Detail::RPageSink, and ROOT::Experimental::Detail::RPageSource.

◆ operator=() [1/2]

RPageStorage & ROOT::Experimental::Detail::RPageStorage::operator= ( const RPageStorage other)

◆ operator=() [2/2]

RPageStorage & ROOT::Experimental::Detail::RPageStorage::operator= ( RPageStorage &&  other)

◆ ReleasePage()

virtual void ROOT::Experimental::Detail::RPageStorage::ReleasePage ( RPage page)
pure virtual

◆ SetTaskScheduler()

void ROOT::Experimental::Detail::RPageStorage::SetTaskScheduler ( RTaskScheduler taskScheduler)

Definition at line 140 of file RPageStorage.hxx.

Member Data Documentation

◆ fNTupleName

std::string ROOT::Experimental::Detail::RPageStorage::fNTupleName

Definition at line 98 of file RPageStorage.hxx.

◆ fTaskScheduler

RTaskScheduler* ROOT::Experimental::Detail::RPageStorage::fTaskScheduler = nullptr

Definition at line 99 of file RPageStorage.hxx.

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