A page is a slice of a column that is mapped into memory.
The page provides an opaque memory buffer for uncompressed, unpacked data. It does not interpret the contents but it does now about the size (and thus the number) of the elements inside as well as the element number range within the backing column/cluster. The memory buffer is not managed by the page. It is normally registered with the page pool and allocated/freed by the page storage.
Classes | |
class | RClusterInfo |
Stores information about the cluster in which this page resides. More... | |
Public Member Functions | |
RPage () | |
RPage (ColumnId_t columnId, void *buffer, ClusterSize_t::ValueType elementSize, ClusterSize_t::ValueType maxElements) | |
~RPage ()=default | |
void | ChangeIds (DescriptorId_t columnId, DescriptorId_t clusterId) |
Used by virtual page sources to map the physical column and cluster IDs to ther virtual counterparts. | |
bool | Contains (const RClusterIndex &clusterIndex) const |
bool | Contains (NTupleSize_t globalIndex) const |
void * | GetBuffer () const |
const RClusterInfo & | GetClusterInfo () const |
ClusterSize_t::ValueType | GetClusterRangeFirst () const |
ClusterSize_t::ValueType | GetClusterRangeLast () const |
ColumnId_t | GetColumnId () const |
std::uint32_t | GetElementSize () const |
NTupleSize_t | GetGlobalRangeFirst () const |
NTupleSize_t | GetGlobalRangeLast () const |
std::uint32_t | GetMaxElements () const |
std::uint32_t | GetNBytes () const |
The space taken by column elements in the buffer. | |
std::uint32_t | GetNElements () const |
void * | GrowUnchecked (ClusterSize_t::ValueType nElements) |
Called during writing: returns a pointer after the last element and increases the element counter in anticipation of the caller filling nElements in the page. | |
bool | IsEmpty () const |
bool | IsNull () const |
bool | IsPageZero () const |
bool | operator!= (const RPage &other) const |
bool | operator== (const RPage &other) const |
void | Reset (NTupleSize_t rangeFirst) |
Forget all currently stored elements (size == 0) and set a new starting index. | |
void | ResetCluster (const RClusterInfo &clusterInfo) |
void | SetWindow (const NTupleSize_t rangeFirst, const RClusterInfo &clusterInfo) |
Seek the page to a certain position of the column. | |
Static Public Member Functions | |
static const void * | GetPageZeroBuffer () |
Return a pointer to the page zero buffer used if there is no on-disk data for a particular deferred column. | |
static RPage | MakePageZero (ColumnId_t columnId, ClusterSize_t::ValueType elementSize) |
Make a 'zero' page for column columnId (that is comprised of 0x00 bytes only). | |
Static Public Attributes | |
static constexpr size_t | kPageZeroSize = 64 * 1024 |
Private Attributes | |
void * | fBuffer |
RClusterInfo | fClusterInfo |
ColumnId_t | fColumnId |
std::uint32_t | fElementSize |
std::uint32_t | fMaxElements |
The capacity of the page in number of elements. | |
std::uint32_t | fNElements |
NTupleSize_t | fRangeFirst |
#include <ROOT/RPage.hxx>
|
inline |
|
default |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
static |
|
inline |
Called during writing: returns a pointer after the last element and increases the element counter in anticipation of the caller filling nElements in the page.
It is the responsibility of the caller to prevent page overflows, i.e. that fNElements + nElements <= fMaxElements
|
inline |
|
inline |
|
inline |
|
inlinestatic |
Make a 'zero' page for column columnId
(that is comprised of 0x00 bytes only).
The caller is responsible for invoking GrowUnchecked()
and SetWindow()
as appropriate.
|
inline |
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
staticconstexpr |