Logo ROOT   6.18/05
Reference Guide
List of all members | Classes | Public Member Functions | Private Attributes | Static Private Attributes | List of all members
ROOT::Experimental::Detail::RPageSinkRoot Class Reference

Storage provider that write ntuple pages into a ROOT TFile.

Definition at line 132 of file RPageStorageRoot.hxx.

Classes

struct  RSettings
 

Public Member Functions

 RPageSinkRoot (std::string_view ntupleName, RSettings settings)
 
 RPageSinkRoot (std::string_view ntupleName, std::string_view path)
 
virtual ~RPageSinkRoot ()
 
ColumnHandle_t AddColumn (RColumn *column) final
 Register a new column. More...
 
void CommitCluster (NTupleSize_t nEntries) final
 Finalize the current cluster and create a new one for the following data. More...
 
void CommitDataset () final
 Finalize the current cluster and the entrire data set. More...
 
void CommitPage (ColumnHandle_t columnHandle, const RPage &page) final
 Write a page to the storage. The column must have been added before. More...
 
void Create (RNTupleModel *model) final
 Physically creates the storage container to hold the tree (e.g., a directory in a TFile or a S3 bucket) More...
 
- Public Member Functions inherited from ROOT::Experimental::Detail::RPageSink
 RPageSink (std::string_view treeName)
 
virtual ~RPageSink ()
 
virtual void CommitCluster (NTupleSize_t nEntries)=0
 Finalize the current cluster and create a new one for the following data. More...
 
virtual void CommitDataset ()=0
 Finalize the current cluster and the entrire data set. More...
 
virtual void CommitPage (ColumnHandle_t columnHandle, const RPage &page)=0
 Write a page to the storage. The column must have been added before. More...
 
virtual void Create (RNTupleModel *model)=0
 Physically creates the storage container to hold the tree (e.g., a directory in a TFile or a S3 bucket) More...
 
EPageStorageType GetType () final
 
- Public Member Functions inherited from ROOT::Experimental::Detail::RPageStorage
 RPageStorage ()
 
 RPageStorage (const RPageStorage &other)=delete
 
virtual ~RPageStorage ()
 
virtual ColumnHandle_t AddColumn (RColumn *column)=0
 Register a new column. More...
 
RPagePoolGetPagePool () const
 
virtual EPageStorageType GetType ()=0
 
RPageStorageoperator= (const RPageStorage &other)=delete
 

Private Attributes

ROOT::Experimental::Internal::RClusterFooter fCurrentCluster
 Updated on CommitPage and written and reset on CommitCluster. More...
 
TDirectoryfDirectory
 Currently, an ntuple is stored as a directory in a TFile. More...
 
RMapper fMapper
 
ROOT::Experimental::Internal::RNTupleFooter fNTupleFooter
 
ROOT::Experimental::Internal::RNTupleHeader fNTupleHeader
 
std::string fNTupleName
 
NTupleSize_t fPrevClusterNEntries
 
RSettings fSettings
 

Static Private Attributes

static constexpr std::size_t kPageSize = 32000
 

Additional Inherited Members

- Public Types inherited from ROOT::Experimental::Detail::RPageStorage
using ColumnHandle_t = RColumnHandle
 The column handle identfies a column with the current open page storage. More...
 
- Protected Attributes inherited from ROOT::Experimental::Detail::RPageStorage
std::unique_ptr< RPagePoolfPagePool
 All data is shipped to and from physical storage in pages, and moderated through a page pool. More...
 

#include <ROOT/RPageStorageRoot.hxx>

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

Constructor & Destructor Documentation

◆ RPageSinkRoot() [1/2]

ROOT::Experimental::Detail::RPageSinkRoot::RPageSinkRoot ( std::string_view  ntupleName,
RSettings  settings 
)

Definition at line 31 of file RPageStorageRoot.cxx.

◆ RPageSinkRoot() [2/2]

ROOT::Experimental::Detail::RPageSinkRoot::RPageSinkRoot ( std::string_view  ntupleName,
std::string_view  path 
)

Definition at line 42 of file RPageStorageRoot.cxx.

◆ ~RPageSinkRoot()

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

Definition at line 54 of file RPageStorageRoot.cxx.

Member Function Documentation

◆ AddColumn()

ROOT::Experimental::Detail::RPageStorage::ColumnHandle_t ROOT::Experimental::Detail::RPageSinkRoot::AddColumn ( RColumn column)
finalvirtual

Register a new column.

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

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

Definition at line 63 of file RPageStorageRoot.cxx.

◆ CommitCluster()

void ROOT::Experimental::Detail::RPageSinkRoot::CommitCluster ( NTupleSize_t  nEntries)
finalvirtual

Finalize the current cluster and create a new one for the following data.

Implements ROOT::Experimental::Detail::RPageSink.

Definition at line 122 of file RPageStorageRoot.cxx.

◆ CommitDataset()

void ROOT::Experimental::Detail::RPageSinkRoot::CommitDataset ( )
finalvirtual

Finalize the current cluster and the entrire data set.

Implements ROOT::Experimental::Detail::RPageSink.

Definition at line 138 of file RPageStorageRoot.cxx.

◆ CommitPage()

void ROOT::Experimental::Detail::RPageSinkRoot::CommitPage ( ColumnHandle_t  columnHandle,
const RPage page 
)
finalvirtual

Write a page to the storage. The column must have been added before.

Implements ROOT::Experimental::Detail::RPageSink.

Definition at line 107 of file RPageStorageRoot.cxx.

◆ Create()

void ROOT::Experimental::Detail::RPageSinkRoot::Create ( RNTupleModel model)
finalvirtual

Physically creates the storage container to hold the tree (e.g., a directory in a TFile or a S3 bucket)

Implements ROOT::Experimental::Detail::RPageSink.

Definition at line 79 of file RPageStorageRoot.cxx.

Member Data Documentation

◆ fCurrentCluster

ROOT::Experimental::Internal::RClusterFooter ROOT::Experimental::Detail::RPageSinkRoot::fCurrentCluster
private

Updated on CommitPage and written and reset on CommitCluster.

Definition at line 147 of file RPageStorageRoot.hxx.

◆ fDirectory

TDirectory* ROOT::Experimental::Detail::RPageSinkRoot::fDirectory
private

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

Definition at line 144 of file RPageStorageRoot.hxx.

◆ fMapper

RMapper ROOT::Experimental::Detail::RPageSinkRoot::fMapper
private

Definition at line 151 of file RPageStorageRoot.hxx.

◆ fNTupleFooter

ROOT::Experimental::Internal::RNTupleFooter ROOT::Experimental::Detail::RPageSinkRoot::fNTupleFooter
private

Definition at line 149 of file RPageStorageRoot.hxx.

◆ fNTupleHeader

ROOT::Experimental::Internal::RNTupleHeader ROOT::Experimental::Detail::RPageSinkRoot::fNTupleHeader
private

Definition at line 148 of file RPageStorageRoot.hxx.

◆ fNTupleName

std::string ROOT::Experimental::Detail::RPageSinkRoot::fNTupleName
private

Definition at line 142 of file RPageStorageRoot.hxx.

◆ fPrevClusterNEntries

NTupleSize_t ROOT::Experimental::Detail::RPageSinkRoot::fPrevClusterNEntries
private

Definition at line 152 of file RPageStorageRoot.hxx.

◆ fSettings

RSettings ROOT::Experimental::Detail::RPageSinkRoot::fSettings
private

Definition at line 145 of file RPageStorageRoot.hxx.

◆ kPageSize

constexpr std::size_t ROOT::Experimental::Detail::RPageSinkRoot::kPageSize = 32000
staticconstexprprivate

Definition at line 140 of file RPageStorageRoot.hxx.


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