16#ifndef ROOT7_RPageNullSink
17#define ROOT7_RPageNullSink
25namespace Experimental {
48 auto elementSize = columnHandle.fColumn->GetElement()->GetSize();
62 for (
auto *
f : fields) {
64 for (
auto &descendant : *
f) {
65 connectField(descendant);
79 for (
auto &range : ranges) {
80 for (
auto sealedPageIt = range.fFirst; sealedPageIt != range.fLast; ++sealedPageIt) {
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t bytes
Uses standard C++ memory allocation for the column data pages.
static RPage NewPage(ColumnId_t columnId, std::size_t elementSize, std::size_t nElements)
Reserves memory large enough to hold nElements of the given size.
static void DeletePage(const RPage &page)
Releases the memory pointed to by page and resets the page's information.
Dummy sink that discards all pages.
void ConnectFields(const std::vector< RFieldBase * > &fields, NTupleSize_t firstEntry)
void CommitDataset() final
Finalize the current cluster and the entrire data set.
void CommitSealedPage(DescriptorId_t, const RSealedPage &page) final
Write a preprocessed page to storage. The column must have been added before.
void CommitClusterGroup() final
Write out the page locations (page list envelope) for all the committed clusters since the last call ...
void CommitSealedPageV(std::span< RSealedPageGroup > ranges) final
Write a vector of preprocessed pages to storage. The corresponding columns must have been added befor...
RPageNullSink(std::string_view ntupleName, const RNTupleWriteOptions &options)
void InitImpl(RNTupleModel &model) final
void CommitPage(ColumnHandle_t, const RPage &page) final
Write a page to the storage. The column must have been added before.
std::uint64_t CommitCluster(NTupleSize_t) final
Finalize the current cluster and create a new one for the following data.
void UpdateSchema(const RNTupleModelChangeset &changeset, NTupleSize_t firstEntry) final
Incorporate incremental changes to the model into the ntuple descriptor.
void ReleasePage(RPage &page) final
Every page store needs to be able to free pages it handed out.
RPageAllocatorHeap fPageAllocator
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.
std::uint64_t fNBytesCurrentCluster
const RNTupleDescriptor & GetDescriptor() const final
Return the RNTupleDescriptor being constructed.
ColumnHandle_t AddColumn(DescriptorId_t, const RColumn &column) final
Register a new column.
Abstract interface to write data into an ntuple.
A page is a slice of a column that is mapped into memory.
A field translates read and write calls from/to underlying columns to/from tree values.
The on-storage meta-data of an ntuple.
The RNTupleModel encapulates the schema of an ntuple.
Common user-tunable settings for storing ntuples.
void CallConnectPageSinkOnField(RFieldBase &, RPageSink &, NTupleSize_t firstEntry=0)
std::uint64_t NTupleSize_t
Integer type long enough to hold the maximum number of entries in a column.
std::uint64_t DescriptorId_t
Distriniguishes elements of the same type within a descriptor, e.g. different fields.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
The incremental changes to a RNTupleModel
A sealed page contains the bytes of a page as written to storage (packed & compressed).