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< RPageSource > | Clone () const final |
Open the same storage multiple time, e.g. for reading in multiple threads. 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 | 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 | |
RNTuplePlainCounter * | fCtrNPages = nullptr |
RNTuplePlainCounter * | fCtrNRead = nullptr |
RNTuplePlainCounter * | fCtrSzRead = nullptr |
RNTuplePlainCounter * | fCtrSzUnzip = nullptr |
RNTupleTickCounter< RNTuplePlainCounter > * | fCtrTimeCpuRead = nullptr |
RNTupleTickCounter< RNTuplePlainCounter > * | fCtrTimeCpuUnzip = nullptr |
RNTuplePlainCounter * | fCtrTimeWallRead = nullptr |
RNTuplePlainCounter * | fCtrTimeWallUnzip = nullptr |
std::unique_ptr< ROOT::Internal::RRawFile > | fFile |
RNTupleMetrics | fMetrics |
std::unique_ptr< RPageAllocatorFile > | fPageAllocator |
std::shared_ptr< RPagePool > | fPagePool |
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< 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/RPageStorageRaw.hxx>
|
private |
Definition at line 172 of file RPageStorageRaw.cxx.
ROOT::Experimental::Detail::RPageSourceRaw::RPageSourceRaw | ( | std::string_view | ntupleName, |
std::string_view | path, | ||
const RNTupleReadOptions & | options | ||
) |
Definition at line 193 of file RPageStorageRaw.cxx.
|
virtual |
Definition at line 203 of file RPageStorageRaw.cxx.
|
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.
|
finalprotectedvirtual |
Implements ROOT::Experimental::Detail::RPageSource.
Definition at line 218 of file RPageStorageRaw.cxx.
|
inlinefinalvirtual |
Page storage implementations usually have their own metrics.
Implements ROOT::Experimental::Detail::RPageStorage.
Definition at line 139 of file RPageStorageRaw.hxx.
|
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.
|
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.
|
private |
Definition at line 247 of file RPageStorageRaw.cxx.
|
private |
Definition at line 208 of file RPageStorageRaw.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 347 of file RPageStorageRaw.cxx.
|
private |
Definition at line 115 of file RPageStorageRaw.hxx.
|
private |
Definition at line 112 of file RPageStorageRaw.hxx.
|
private |
Definition at line 113 of file RPageStorageRaw.hxx.
|
private |
Definition at line 114 of file RPageStorageRaw.hxx.
|
private |
Definition at line 118 of file RPageStorageRaw.hxx.
|
private |
Definition at line 119 of file RPageStorageRaw.hxx.
|
private |
Definition at line 116 of file RPageStorageRaw.hxx.
|
private |
Definition at line 117 of file RPageStorageRaw.hxx.
|
private |
Definition at line 109 of file RPageStorageRaw.hxx.
|
private |
Definition at line 111 of file RPageStorageRaw.hxx.
|
private |
Definition at line 106 of file RPageStorageRaw.hxx.
|
private |
Definition at line 107 of file RPageStorageRaw.hxx.
|
private |
Definition at line 108 of file RPageStorageRaw.hxx.
|
staticconstexpr |
Cannot process pages larger than 1MB.
Definition at line 103 of file RPageStorageRaw.hxx.