Logo ROOT  
Reference Guide
No Matches
ROOT::Experimental::Detail::RColumnElement< CppT, ColumnT > Class Template Reference

template<typename CppT, EColumnType ColumnT>
class ROOT::Experimental::Detail::RColumnElement< CppT, ColumnT >

Pairs of C++ type and column type, like float and EColumnType::kReal32.

A column element points either to the content of an RFieldValue or into a memory mapped page.

The content pointed to by fRawContent can be a single element or the first element of an array. Usually the on-disk element should map bitwise to the in-memory element. Sometimes that's not the case though, for instance on big endian platforms and for exotic physical columns like 8 bit float.

This class does not provide protection around the raw pointer, fRawContent has to be managed correctly by the user of this class.

Definition at line 109 of file RColumnElement.hxx.

Public Member Functions

 RColumnElement (CppT *value)
- Public Member Functions inherited from ROOT::Experimental::Detail::RColumnElementBase
 RColumnElementBase ()
 RColumnElementBase (const RColumnElementBase &elemArray, std::size_t at)
 RColumnElementBase (const RColumnElementBase &other)=default
 RColumnElementBase (RColumnElementBase &&other)=default
 RColumnElementBase (void *rawContent, std::size_t size)
virtual ~RColumnElementBase ()=default
virtual std::size_t GetBitsOnStorage () const
voidGetRawContent () const
std::size_t GetSize () const
virtual bool IsMappable () const
 Derived, typed classes tell whether the on-storage layout is bitwise identical to the memory layout.
RColumnElementBaseoperator= (const RColumnElementBase &other)=delete
RColumnElementBaseoperator= (RColumnElementBase &&other)=default
virtual void Pack (void *destination, void *source, std::size_t count) const
 If the on-storage layout and the in-memory layout differ, packing creates an on-disk page from an in-memory page.
void ReadFrom (void *source, std::size_t count)
 Set the column element or an array of elements from the memory location source.
virtual void Unpack (void *destination, void *source, std::size_t count) const
 If the on-storage layout and the in-memory layout differ, unpacking creates a memory page from an on-storage page.
void WriteTo (void *destination, std::size_t count) const
 Write one or multiple column elements into destination.

Additional Inherited Members

- Static Public Member Functions inherited from ROOT::Experimental::Detail::RColumnElementBase
static std::unique_ptr< RColumnElementBaseGenerate (EColumnType type)
static std::size_t GetBitsOnStorage (EColumnType type)
- Protected Attributes inherited from ROOT::Experimental::Detail::RColumnElementBase
 Points to valid C++ data, either a single value or an array of values.
std::size_t fSize
 Size of the C++ value pointed to by fRawContent (not necessarily equal to the on-disk element size)

#include <ROOT/RColumnElement.hxx>

Inheritance diagram for ROOT::Experimental::Detail::RColumnElement< CppT, ColumnT >:

Constructor & Destructor Documentation

◆ RColumnElement()

template<typename CppT , EColumnType ColumnT>
ROOT::Experimental::Detail::RColumnElement< CppT, ColumnT >::RColumnElement ( CppT *  value)

Definition at line 111 of file RColumnElement.hxx.

  • tree/ntuple/v7/inc/ROOT/RColumnElement.hxx