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 58 of file RPageStorage.hxx.
Classes | |
struct | RColumnHandle |
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 (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 Attributes | |
std::string | fNTupleName |
#include <ROOT/RPageStorage.hxx>
The column handle identifies a column with the current open page storage.
Definition at line 75 of file RPageStorage.hxx.
|
explicit |
Definition at line 32 of file RPageStorage.cxx.
|
delete |
|
virtual |
Definition at line 36 of file RPageStorage.cxx.
|
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::RPageSink, and ROOT::Experimental::Detail::RPageSource.
|
pure virtual |
Page storage implementations usually have their own metrics.
Implemented in ROOT::Experimental::Detail::RPageSinkFile, and ROOT::Experimental::Detail::RPageSourceFile.
|
pure virtual |
Whether the concrete implementation is a sink or a source.
Implemented in ROOT::Experimental::Detail::RPageSink, and ROOT::Experimental::Detail::RPageSource.
|
delete |
Every page store needs to be able to free pages it handed out.
But Sinks and sources have different means of allocating pages.
Implemented in ROOT::Experimental::Detail::RPageSinkFile, and ROOT::Experimental::Detail::RPageSourceFile.
|
protected |
Definition at line 60 of file RPageStorage.hxx.