Storage provider that reads ntuple pages from a file.
Definition at line 111 of file RPageStorageFile.hxx.
Public Member Functions | |
RPageSourceFile (std::string_view ntupleName, std::string_view path, const RNTupleReadOptions &options) | |
virtual | ~RPageSourceFile () |
std::unique_ptr< RPageSource > | Clone () const final |
The cloned page source creates a new raw file and reader and opens its own file descriptor to the data. 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... | |
Static Public Attributes | |
static constexpr std::size_t | kMaxPageSize = 1024 * 1024 |
Cannot process pages larger than 1MB. More... | |
Protected Member Functions | |
RNTupleDescriptor | AttachImpl () final |
virtual RNTupleDescriptor | AttachImpl ()=0 |
Private Member Functions | |
RPageSourceFile (std::string_view ntupleName, const RNTupleReadOptions &options) | |
RPage | PopulatePageFromCluster (ColumnHandle_t columnHandle, const RClusterDescriptor &clusterDescriptor, ClusterSize_t::ValueType clusterIndex) |
Private Attributes | |
RNTupleDecompressor | fDecompressor |
Helper to unzip pages and header/footer; comprises a 16MB unzip buffer. More... | |
std::unique_ptr< ROOT::Internal::RRawFile > | fFile |
An RRawFile is used to request the necessary byte ranges from a local or a remote file. More... | |
RNTupleMetrics | fMetrics |
std::unique_ptr< RPageAllocatorFile > | fPageAllocator |
Populated pages might be shared; there memory buffer is managed by the RPageAllocatorFile. More... | |
std::shared_ptr< RPagePool > | fPagePool |
The page pool migh, at some point, be used by multiple page sources. More... | |
Internal::RMiniFileReader | fReader |
Takes the fFile to read ntuple blobs from it. More... | |
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/RPageStorageFile.hxx>
|
private |
Definition at line 199 of file RPageStorageFile.cxx.
ROOT::Experimental::Detail::RPageSourceFile::RPageSourceFile | ( | std::string_view | ntupleName, |
std::string_view | path, | ||
const RNTupleReadOptions & | options | ||
) |
Definition at line 209 of file RPageStorageFile.cxx.
|
virtual |
Definition at line 219 of file RPageStorageFile.cxx.
|
finalprotectedvirtual |
Implements ROOT::Experimental::Detail::RPageSource.
Definition at line 224 of file RPageStorageFile.cxx.
|
finalvirtual |
The cloned page source creates a new raw file and reader and opens its own file descriptor to the data.
The meta-data (header and footer) is reread and parsed by the clone.
Implements ROOT::Experimental::Detail::RPageSource.
Definition at line 336 of file RPageStorageFile.cxx.
|
inlinefinalvirtual |
Page storage implementations usually have their own metrics.
Implements ROOT::Experimental::Detail::RPageStorage.
Definition at line 147 of file RPageStorageFile.hxx.
|
finalvirtual |
Another version of PopulatePage that allows to specify cluster-relative indexes.
Implements ROOT::Experimental::Detail::RPageSource.
Definition at line 316 of file RPageStorageFile.cxx.
|
finalvirtual |
Allocates and fills a page that contains the index-th element.
Implements ROOT::Experimental::Detail::RPageSource.
Definition at line 299 of file RPageStorageFile.cxx.
|
private |
Definition at line 245 of file RPageStorageFile.cxx.
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 331 of file RPageStorageFile.cxx.
|
private |
Helper to unzip pages and header/footer; comprises a 16MB unzip buffer.
Definition at line 123 of file RPageStorageFile.hxx.
|
private |
An RRawFile is used to request the necessary byte ranges from a local or a remote file.
Definition at line 125 of file RPageStorageFile.hxx.
|
private |
Definition at line 117 of file RPageStorageFile.hxx.
|
private |
Populated pages might be shared; there memory buffer is managed by the RPageAllocatorFile.
Definition at line 119 of file RPageStorageFile.hxx.
|
private |
The page pool migh, at some point, be used by multiple page sources.
Definition at line 121 of file RPageStorageFile.hxx.
|
private |
Takes the fFile to read ntuple blobs from it.
Definition at line 127 of file RPageStorageFile.hxx.
|
staticconstexpr |
Cannot process pages larger than 1MB.
Definition at line 114 of file RPageStorageFile.hxx.