16#ifndef ROOT7_RPageSourceFriends
17#define ROOT7_RPageSourceFriends
26#include <unordered_map>
29namespace Experimental {
77 std::vector<std::unique_ptr<RPageSource>>
fSources;
An in-memory subset of the packed and compressed pages of a cluster.
A collection of Counter objects with a name, a unit, and a description.
Virtual storage that combines several other sources horizontally.
RNTupleMetrics & GetMetrics() final
Returns the default metrics object. Subclasses might alternatively override the method and provide th...
std::unique_ptr< RPageSource > Clone() const final
Open the same storage multiple time, e.g. for reading in multiple threads.
void ReleasePage(RPage &page) final
Every page store needs to be able to free pages it handed out.
RNTupleDescriptor AttachImpl() final
void LoadSealedPage(DescriptorId_t columnId, const RClusterIndex &clusterIndex, RSealedPage &sealedPage) final
Read the packed and compressed bytes of a page into the memory buffer provided by selaedPage.
std::vector< std::unique_ptr< RPageSource > > fSources
DescriptorId_t fNextId
0 is reserved for the friend zero field
std::vector< std::unique_ptr< RCluster > > LoadClusters(std::span< RCluster::RKey > clusterKeys) final
Populates all the pages of the given cluster ids and columns; it is possible that some columns do not...
void AddVirtualField(const RNTupleDescriptor &originDesc, std::size_t originIdx, const RFieldDescriptor &originField, DescriptorId_t virtualParent, const std::string &virtualName)
RNTupleDescriptorBuilder fBuilder
RPage PopulatePage(ColumnHandle_t columnHandle, NTupleSize_t globalIndex) final
Allocates and fills a page that contains the index-th element.
void DropColumn(ColumnHandle_t columnHandle) final
Unregisters a column.
ColumnHandle_t AddColumn(DescriptorId_t fieldId, const RColumn &column) final
Register a new column.
Abstract interface to read data from an ntuple.
A page is a slice of a column that is mapped into memory.
Addresses a column element or field item relative to a particular cluster, instead of a global NTuple...
Meta-data stored for every field of an ntuple.
A helper class for piece-wise construction of an RNTupleDescriptor.
The on-storage meta-data of an ntuple.
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.
constexpr DescriptorId_t kInvalidDescriptorId
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
A bi-directional map of descriptor IDs that translates from physical to virtual column,...
void Insert(ROriginId originId, DescriptorId_t virtualId)
std::unordered_map< DescriptorId_t, ROriginId > fVirtual2Origin
DescriptorId_t GetVirtualId(const ROriginId &originId) const
ROriginId GetOriginId(DescriptorId_t virtualId) const
std::vector< std::unordered_map< DescriptorId_t, DescriptorId_t > > fOrigin2Virtual
A sealed page contains the bytes of a page as written to storage (packed & compressed).