25namespace Experimental {
77 RPage(
ColumnId_t columnId,
void* buffer, std::size_t capacity, std::size_t elementSize)
99 size_t offset =
fSize;
106 return static_cast<unsigned char *
>(
fBuffer) + offset;
Stores information about the cluster in which this page resides.
RClusterInfo(NTupleSize_t id, NTupleSize_t selfOffset, NTupleSize_t pointeeOffset)
NTupleSize_t fSelfOffset
The first element index of the column in this cluster.
NTupleSize_t fPointeeOffset
For offset columns, also store the cluster offset of the column being referenced.
NTupleSize_t GetPointeeOffset() const
NTupleSize_t GetSelfOffset() const
NTupleSize_t GetId() const
NTupleSize_t fId
The cluster number.
A page is a fixed size slice of a column that is mapped into memory.
RPage(ColumnId_t columnId, void *buffer, std::size_t capacity, std::size_t elementSize)
bool Contains(NTupleSize_t index) const
RClusterInfo fClusterInfo
std::size_t GetSize() const
The space taken by column elements in the buffer.
NTupleSize_t GetNElements() const
std::size_t GetCapacity() const
The total space available in the page.
const RClusterInfo & GetClusterInfo() const
bool operator==(const RPage &other) const
void SetWindow(const NTupleSize_t rangeFirst, const RClusterInfo &clusterInfo)
Seek the page to a certain position of the column.
void ResetCluster(const RClusterInfo &clusterInfo)
NTupleSize_t GetRangeFirst() const
void Reset(NTupleSize_t rangeFirst)
Forget all currently stored elements (size == 0) and set a new starting index.
std::int64_t GetColumnId()
NTupleSize_t GetRangeLast() const
void * TryGrow(std::size_t nElements)
Return a pointer after the last element that has space for nElements new elements.
std::uint64_t NTupleSize_t
Integer type long enough to hold the maximum number of entries in a column.
constexpr ColumnId_t kInvalidColumnId
std::int64_t ColumnId_t
Uniquely identifies a physical column within the scope of the current process, used to tag pages.
Namespace for new ROOT classes and functions.