Definition at line 43 of file RColumn.hxx.
|
| RColumn (const RColumn &)=delete |
|
| ~RColumn () |
|
void | Append (const void *from) |
|
void | AppendV (const void *from, std::size_t count) |
|
void | ConnectPageSink (DescriptorId_t fieldId, RPageSink &pageSink, NTupleSize_t firstElementIndex=0U) |
| Connect the column to a page sink.
|
|
void | ConnectPageSource (DescriptorId_t fieldId, RPageSource &pageSource) |
| Connect the column to a page source.
|
|
void | Flush () |
|
RClusterIndex | GetClusterIndex (NTupleSize_t globalIndex) |
|
void | GetCollectionInfo (const NTupleSize_t globalIndex, RClusterIndex *collectionStart, ClusterSize_t *collectionSize) |
| For offset columns only, look at the two adjacent values that define a collection's coordinates.
|
|
void | GetCollectionInfo (RClusterIndex clusterIndex, RClusterIndex *collectionStart, ClusterSize_t *collectionSize) |
|
ColumnId_t | GetColumnIdSource () const |
|
RColumnElementBase * | GetElement () const |
|
NTupleSize_t | GetFirstElementIndex () const |
|
NTupleSize_t | GetGlobalIndex (RClusterIndex clusterIndex) |
|
RPageStorage::ColumnHandle_t | GetHandleSink () const |
|
RPageStorage::ColumnHandle_t | GetHandleSource () const |
|
std::uint32_t | GetIndex () const |
|
const RColumnModel & | GetModel () const |
|
NTupleSize_t | GetNElements () const |
|
RPageSink * | GetPageSink () const |
|
RPageSource * | GetPageSource () const |
|
void | GetSwitchInfo (NTupleSize_t globalIndex, RClusterIndex *varIndex, std::uint32_t *tag) |
| Get the currently active cluster id.
|
|
template<typename CppT > |
CppT * | Map (const NTupleSize_t globalIndex) |
|
template<typename CppT > |
CppT * | Map (RClusterIndex clusterIndex) |
|
void | MapPage (const NTupleSize_t index) |
|
void | MapPage (RClusterIndex clusterIndex) |
|
template<typename CppT > |
CppT * | MapV (const NTupleSize_t globalIndex, NTupleSize_t &nItems) |
|
template<typename CppT > |
CppT * | MapV (RClusterIndex clusterIndex, NTupleSize_t &nItems) |
|
RColumn & | operator= (const RColumn &)=delete |
|
void | Read (const NTupleSize_t globalIndex, void *to) |
|
void | Read (RClusterIndex clusterIndex, void *to) |
|
void | ReadV (const NTupleSize_t globalIndex, const ClusterSize_t::ValueType count, void *to) |
|
void | ReadV (RClusterIndex clusterIndex, const ClusterSize_t::ValueType count, void *to) |
|
#include <ROOT/RColumn.hxx>
◆ RColumn() [1/2]
ROOT::Experimental::Internal::RColumn::RColumn |
( |
const RColumnModel & |
model, |
|
|
std::uint32_t |
index |
|
) |
| |
|
private |
◆ RColumn() [2/2]
ROOT::Experimental::Internal::RColumn::RColumn |
( |
const RColumn & |
| ) |
|
|
delete |
◆ ~RColumn()
ROOT::Experimental::Internal::RColumn::~RColumn |
( |
| ) |
|
◆ Append()
void ROOT::Experimental::Internal::RColumn::Append |
( |
const void * |
from | ) |
|
|
inline |
◆ AppendV()
void ROOT::Experimental::Internal::RColumn::AppendV |
( |
const void * |
from, |
|
|
std::size_t |
count |
|
) |
| |
|
inline |
◆ ConnectPageSink()
Connect the column to a page sink.
firstElementIndex
can be used to specify the first column element index with backing storage for this column. On read back, elements before firstElementIndex
will cause the zero page to be mapped.
Definition at line 42 of file RColumn.cxx.
◆ ConnectPageSource()
Connect the column to a page source.
Definition at line 56 of file RColumn.cxx.
◆ Create()
template<typename CppT >
static std::unique_ptr< RColumn > ROOT::Experimental::Internal::RColumn::Create |
( |
const RColumnModel & |
model, |
|
|
std::uint32_t |
index |
|
) |
| |
|
inlinestatic |
◆ Flush()
void ROOT::Experimental::Internal::RColumn::Flush |
( |
| ) |
|
◆ FlushShadowWritePage()
void ROOT::Experimental::Internal::RColumn::FlushShadowWritePage |
( |
| ) |
|
|
inlineprivate |
When the main write page surpasses the 50% fill level, the (full) shadow write page gets flushed.
Definition at line 92 of file RColumn.hxx.
◆ GetClusterIndex()
◆ GetCollectionInfo() [1/2]
For offset columns only, look at the two adjacent values that define a collection's coordinates.
Definition at line 282 of file RColumn.hxx.
◆ GetCollectionInfo() [2/2]
◆ GetColumnIdSource()
ColumnId_t ROOT::Experimental::Internal::RColumn::GetColumnIdSource |
( |
| ) |
const |
|
inline |
◆ GetElement()
◆ GetFirstElementIndex()
NTupleSize_t ROOT::Experimental::Internal::RColumn::GetFirstElementIndex |
( |
| ) |
const |
|
inline |
◆ GetGlobalIndex()
◆ GetHandleSink()
◆ GetHandleSource()
◆ GetIndex()
std::uint32_t ROOT::Experimental::Internal::RColumn::GetIndex |
( |
| ) |
const |
|
inline |
◆ GetModel()
const RColumnModel & ROOT::Experimental::Internal::RColumn::GetModel |
( |
| ) |
const |
|
inline |
◆ GetNElements()
NTupleSize_t ROOT::Experimental::Internal::RColumn::GetNElements |
( |
| ) |
const |
|
inline |
◆ GetPageSink()
RPageSink * ROOT::Experimental::Internal::RColumn::GetPageSink |
( |
| ) |
const |
|
inline |
◆ GetPageSource()
RPageSource * ROOT::Experimental::Internal::RColumn::GetPageSource |
( |
| ) |
const |
|
inline |
◆ GetSwitchInfo()
void ROOT::Experimental::Internal::RColumn::GetSwitchInfo |
( |
NTupleSize_t |
globalIndex, |
|
|
RClusterIndex * |
varIndex, |
|
|
std::uint32_t * |
tag |
|
) |
| |
|
inline |
Get the currently active cluster id.
Definition at line 315 of file RColumn.hxx.
◆ Map() [1/2]
template<typename CppT >
CppT * ROOT::Experimental::Internal::RColumn::Map |
( |
const NTupleSize_t |
globalIndex | ) |
|
|
inline |
◆ Map() [2/2]
template<typename CppT >
CppT * ROOT::Experimental::Internal::RColumn::Map |
( |
RClusterIndex |
clusterIndex | ) |
|
|
inline |
◆ MapPage() [1/2]
void ROOT::Experimental::Internal::RColumn::MapPage |
( |
const NTupleSize_t |
index | ) |
|
◆ MapPage() [2/2]
void ROOT::Experimental::Internal::RColumn::MapPage |
( |
RClusterIndex |
clusterIndex | ) |
|
◆ MapV() [1/2]
◆ MapV() [2/2]
◆ operator=()
RColumn & ROOT::Experimental::Internal::RColumn::operator= |
( |
const RColumn & |
| ) |
|
|
delete |
◆ Read() [1/2]
void ROOT::Experimental::Internal::RColumn::Read |
( |
const NTupleSize_t |
globalIndex, |
|
|
void * |
to |
|
) |
| |
|
inline |
◆ Read() [2/2]
void ROOT::Experimental::Internal::RColumn::Read |
( |
RClusterIndex |
clusterIndex, |
|
|
void * |
to |
|
) |
| |
|
inline |
◆ ReadV() [1/2]
◆ ReadV() [2/2]
◆ SwapWritePagesIfFull()
void ROOT::Experimental::Internal::RColumn::SwapWritePagesIfFull |
( |
| ) |
|
|
inlineprivate |
Used in Append() and AppendV() to switch pages when the main page reached the target size The other page has been flushed when the main page reached 50%.
Definition at line 82 of file RColumn.hxx.
◆ fApproxNElementsPerPage
std::uint32_t ROOT::Experimental::Internal::RColumn::fApproxNElementsPerPage = 0 |
|
private |
For writing, the targeted number of elements, given by fApproxNElementsPerPage
(in the write options) and the element size.
We ensure this value to be >= 2 in Connect() so that we have meaningful "page full" and "page half full" events when writing the page.
Definition at line 66 of file RColumn.hxx.
◆ fColumnIdSource
The column id is used to find matching pages with content when reading.
Definition at line 72 of file RColumn.hxx.
◆ fElement
Used to pack and unpack pages on writing/reading.
Definition at line 76 of file RColumn.hxx.
◆ fFirstElementIndex
NTupleSize_t ROOT::Experimental::Internal::RColumn::fFirstElementIndex = 0 |
|
private |
Global index of the first element in this column; usually == 0, unless it is a deferred column.
Definition at line 74 of file RColumn.hxx.
◆ fHandleSink
◆ fHandleSource
◆ fIndex
std::uint32_t ROOT::Experimental::Internal::RColumn::fIndex |
|
private |
Columns belonging to the same field are distinguished by their order.
E.g. for an std::string field, there is the offset column with index 0 and the character value column with index 1.
Definition at line 50 of file RColumn.hxx.
◆ fModel
◆ fNElements
NTupleSize_t ROOT::Experimental::Internal::RColumn::fNElements = 0 |
|
private |
The number of elements written resp. available in the column.
Definition at line 68 of file RColumn.hxx.
◆ fPageSink
RPageSink* ROOT::Experimental::Internal::RColumn::fPageSink = nullptr |
|
private |
◆ fPageSource
RPageSource* ROOT::Experimental::Internal::RColumn::fPageSource = nullptr |
|
private |
◆ fReadPage
RPage ROOT::Experimental::Internal::RColumn::fReadPage |
|
private |
The currently mapped page for reading.
Definition at line 70 of file RColumn.hxx.
◆ fWritePage
RPage ROOT::Experimental::Internal::RColumn::fWritePage[2] |
|
private |
A set of open pages into which new elements are being written.
The pages are used in rotation. They are 50% bigger than the target size given by the write options. The current page is filled until the target size, but it is only committed once the other write page is filled at least 50%. If a flush occurs earlier, a slightly oversized, single page will be committed.
Definition at line 60 of file RColumn.hxx.
◆ fWritePageIdx
int ROOT::Experimental::Internal::RColumn::fWritePageIdx = 0 |
|
private |
Index of the current write page.
Definition at line 62 of file RColumn.hxx.
The documentation for this class was generated from the following files: