16#ifndef ROOT_RPageSinkBuf 
   17#define ROOT_RPageSinkBuf 
   47         std::unique_ptr<unsigned char[]> 
fBuf;
 
 
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
A thread-safe integral performance counter.
 
A non thread-safe integral performance counter.
 
A column is a storage-backed array of a simple, fixed-size type, from which pages can be mapped into ...
 
std::deque< RPageZipItem > fBufferedPages
Using a deque guarantees that element iterators are never invalidated by appends to the end of the it...
 
RColumnBuf & operator=(const RColumnBuf &)=delete
 
RColumnBuf & operator=(RColumnBuf &&)=default
 
RColumnBuf(RColumnBuf &&)=default
 
RPageStorage::SealedPageSequence_t fSealedPages
Pages that have been already sealed by a concurrent task.
 
RSealedPage & RegisterSealedPage()
 
RPageZipItem & BufferPage(RPageStorage::ColumnHandle_t columnHandle)
Returns a reference to the newly buffered page.
 
RColumnBuf(const RColumnBuf &)=delete
 
bool HasSealedPagesOnly() const
 
const RPageStorage::SealedPageSequence_t & GetSealedPages() const
 
RPageStorage::ColumnHandle_t fCol
 
const RPageStorage::ColumnHandle_t & GetHandle() const
 
Wrapper sink that coalesces cluster column page writes.
 
RPage ReservePage(ColumnHandle_t columnHandle, std::size_t nElements) final
Get a new, empty page for the given column that can be filled with up to nElements; nElements must be...
 
void CommitStagedClusters(std::span< RStagedCluster > clusters) final
Commit staged clusters, logically appending them to the ntuple descriptor.
 
std::vector< ColumnHandle_t > fSuppressedColumns
Columns committed as suppressed are stored and passed to the inner sink at cluster commit.
 
RPageSinkBuf(RPageSinkBuf &&)=default
 
RPageSinkBuf & operator=(RPageSinkBuf &&)=default
 
std::unique_ptr< RCounters > fCounters
 
ROOT::DescriptorId_t fNColumns
 
std::uint64_t CommitCluster(ROOT::NTupleSize_t nNewEntries) final
Finalize the current cluster and create a new one for the following data.
 
void FlushClusterImpl(std::function< void(void)> FlushClusterFn)
 
void UpdateSchema(const RNTupleModelChangeset &changeset, ROOT::NTupleSize_t firstEntry) final
Incorporate incremental changes to the model into the ntuple descriptor.
 
void CommitSealedPage(ROOT::DescriptorId_t physicalColumnId, const RSealedPage &sealedPage) final
Write a preprocessed page to storage. The column must have been added before.
 
RPageSinkBuf(std::unique_ptr< RPageSink > inner)
 
ROOT::NTupleSize_t GetNEntries() const final
 
ROOT::DescriptorId_t fNFields
 
void CommitDatasetImpl() final
 
RPageSinkBuf(const RPageSinkBuf &)=delete
 
const ROOT::RNTupleDescriptor & GetDescriptor() const final
Return the RNTupleDescriptor being constructed.
 
void UpdateExtraTypeInfo(const ROOT::RExtraTypeInfoDescriptor &extraTypeInfo) final
Adds an extra type information record to schema.
 
std::unique_ptr< ROOT::RNTupleModel > fInnerModel
The buffered page sink maintains a copy of the RNTupleModel for the inner sink.
 
std::vector< RColumnBuf > fBufferedColumns
Vector of buffered column pages. Indexed by column id.
 
void CommitSealedPageV(std::span< RPageStorage::RSealedPageGroup > ranges) final
Write a vector of preprocessed pages to storage. The corresponding columns must have been added befor...
 
RStagedCluster StageCluster(ROOT::NTupleSize_t nNewEntries) final
Stage the current cluster and create a new one for the following data.
 
void CommitPage(ColumnHandle_t columnHandle, const RPage &page) final
Write a page to the storage. The column must have been added before.
 
void CommitSuppressedColumn(ColumnHandle_t columnHandle) final
Commits a suppressed column for the current cluster.
 
RPageSinkBuf & operator=(const RPageSinkBuf &)=delete
 
void CommitClusterGroup() final
Write out the page locations (page list envelope) for all the committed clusters since the last call ...
 
void InitImpl(ROOT::RNTupleModel &model) final
 
std::unique_ptr< RPageSink > fInnerSink
The inner sink, responsible for actually performing I/O.
 
void ConnectFields(const std::vector< ROOT::RFieldBase * > &fields, ROOT::NTupleSize_t firstEntry)
 
ColumnHandle_t AddColumn(ROOT::DescriptorId_t fieldId, RColumn &column) final
Register a new column.
 
Abstract interface to write data into an ntuple.
 
std::deque< RSealedPage > SealedPageSequence_t
 
RColumnHandle ColumnHandle_t
The column handle identifies a column with the current open page storage.
 
A page is a slice of a column that is mapped into memory.
 
The on-storage metadata of an RNTuple.
 
The RNTupleModel encapulates the schema of an RNTuple.
 
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
 
std::uint64_t DescriptorId_t
Distriniguishes elements of the same type within a descriptor, e.g. different fields.
 
std::uint64_t NTupleSize_t
Integer type long enough to hold the maximum number of entries in a column.
 
The incremental changes to a RNTupleModel
 
RPageStorage::RSealedPage * fSealedPage
 
std::unique_ptr< unsigned char[]> fBuf
 
I/O performance counters that get registered in fMetrics.
 
ROOT::Experimental::Detail::RNTupleTickCounter< ROOT::Experimental::Detail::RNTupleAtomicCounter > & fTimeCpuZip
 
ROOT::Experimental::Detail::RNTupleTickCounter< ROOT::Experimental::Detail::RNTuplePlainCounter > & fTimeCpuCriticalSection
 
ROOT::Experimental::Detail::RNTupleAtomicCounter & fTimeWallZip
 
ROOT::Experimental::Detail::RNTuplePlainCounter & fParallelZip
 
ROOT::Experimental::Detail::RNTuplePlainCounter & fTimeWallCriticalSection
 
A sealed page contains the bytes of a page as written to storage (packed & compressed).