79 RPage(
void *buffer,
RPageAllocator *pageAllocator, std::uint32_t elementSize, std::uint32_t maxElements)
93 other.fPageAllocator =
nullptr;
98 std::swap(
fBuffer, other.fBuffer);
154 return static_cast<unsigned char *
>(
fBuffer) + offset;
Abstract interface to allocate and release pages.
Stores information about the cluster in which this page resides.
ROOT::NTupleSize_t GetIndexOffset() const
ROOT::NTupleSize_t fIndexOffset
The first element index of the column in this cluster.
RClusterInfo(ROOT::DescriptorId_t id, ROOT::NTupleSize_t indexOffset)
ROOT::DescriptorId_t GetId() const
ROOT::DescriptorId_t fId
The cluster number.
ROOT::NTupleSize_t GetGlobalRangeLast() const
RPage(void *buffer, RPageAllocator *pageAllocator, std::uint32_t elementSize, std::uint32_t maxElements)
std::uint32_t GetNElements() const
RClusterInfo fClusterInfo
std::size_t GetNBytes() const
The space taken by column elements in the buffer.
void * GrowUnchecked(std::uint32_t nElements)
Increases the number elements in the page.
RPage & operator=(RPage &&other)
bool operator==(const RPage &other) const
void Reset(ROOT::NTupleSize_t rangeFirst)
Forget all currently stored elements (size == 0) and set a new starting index.
ROOT::NTupleSize_t GetLocalRangeLast() const
static constexpr size_t kPageZeroSize
std::uint32_t GetElementSize() const
static const void * GetPageZeroBuffer()
Return a pointer to the page zero buffer used if there is no on-disk data for a particular deferred c...
std::uint32_t GetMaxElements() const
std::size_t GetCapacity() const
RPageAllocator * fPageAllocator
The allocator used to allocate fBuffer. Can be null if the buffer doesn't need to be freed.
std::uint32_t fMaxElements
The capacity of the page in number of elements.
RPage & operator=(const RPage &)=delete
bool Contains(ROOT::NTupleSize_t globalIndex) const
ROOT::NTupleSize_t fRangeFirst
bool operator!=(const RPage &other) const
RPage(const RPage &)=delete
void SetWindow(const ROOT::NTupleSize_t rangeFirst, const RClusterInfo &clusterInfo)
Seek the page to a certain position of the column.
std::uint32_t fElementSize
const RClusterInfo & GetClusterInfo() const
ROOT::NTupleSize_t GetGlobalRangeFirst() const
ROOT::NTupleSize_t GetLocalRangeFirst() const
bool Contains(RNTupleLocalIndex localIndex) const
void ResetCluster(const RClusterInfo &clusterInfo)
Addresses a column element or field item relative to a particular cluster, instead of a global NTuple...
ROOT::NTupleSize_t GetIndexInCluster() const
ROOT::DescriptorId_t GetClusterId() const
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.