Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Experimental::Detail::RColumnElementZigzagSplitLE< CppT, NarrowT > Class Template Reference

template<typename CppT, typename NarrowT>
class ROOT::Experimental::Detail::RColumnElementZigzagSplitLE< CppT, NarrowT >

Base class for zigzag + split columns (signed integer columns) whose on-storage representation is little-endian.

The implementation of Pack and Unpack takes care of splitting and, if necessary, byteswap. The NarrowT target type should be an signed integer, which can be smaller than the CppT source type.

Definition at line 395 of file RColumnElement.hxx.

Public Member Functions

void Pack (void *dst, void *src, std::size_t count) const final
 If the on-storage layout and the in-memory layout differ, packing creates an on-disk page from an in-memory page.
 
void Unpack (void *dst, void *src, std::size_t count) const final
 If the on-storage layout and the in-memory layout differ, unpacking creates a memory page from an on-storage page.
 
- Public Member Functions inherited from ROOT::Experimental::Detail::RColumnElementBase
 RColumnElementBase (const RColumnElementBase &other)=default
 
 RColumnElementBase (RColumnElementBase &&other)=default
 
virtual ~RColumnElementBase ()=default
 
virtual std::size_t GetBitsOnStorage () const
 
std::size_t GetPackedSize (std::size_t nElements=1U) 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
 

Static Public Attributes

static constexpr bool kIsMappable = false
 

Protected Member Functions

 RColumnElementZigzagSplitLE (std::size_t size)
 
- Protected Member Functions inherited from ROOT::Experimental::Detail::RColumnElementBase
 RColumnElementBase (std::size_t size)
 

Additional Inherited Members

- Static Public Member Functions inherited from ROOT::Experimental::Detail::RColumnElementBase
template<typename CppT = void>
static std::unique_ptr< RColumnElementBaseGenerate (EColumnType type)
 If CppT == void, use the default C++ type for the given column type.
 
template<>
std::unique_ptr< RColumnElementBaseGenerate (EColumnType type)
 
template<>
std::unique_ptr< ROOT::Experimental::Detail::RColumnElementBaseGenerate (EColumnType type)
 
static std::size_t GetBitsOnStorage (EColumnType type)
 
static std::string GetTypeName (EColumnType type)
 
- Protected Attributes inherited from ROOT::Experimental::Detail::RColumnElementBase
std::size_t fSize
 Size of the C++ value that corresponds to the on-disk element.
 

#include <ROOT/RColumnElement.hxx>

Inheritance diagram for ROOT::Experimental::Detail::RColumnElementZigzagSplitLE< CppT, NarrowT >:
[legend]

Constructor & Destructor Documentation

◆ RColumnElementZigzagSplitLE()

template<typename CppT , typename NarrowT >
ROOT::Experimental::Detail::RColumnElementZigzagSplitLE< CppT, NarrowT >::RColumnElementZigzagSplitLE ( std::size_t  size)
inlineexplicitprotected

Definition at line 397 of file RColumnElement.hxx.

Member Function Documentation

◆ Pack()

template<typename CppT , typename NarrowT >
void ROOT::Experimental::Detail::RColumnElementZigzagSplitLE< CppT, NarrowT >::Pack ( void *  destination,
void *  source,
std::size_t  count 
) const
inlinefinalvirtual

If the on-storage layout and the in-memory layout differ, packing creates an on-disk page from an in-memory page.

Reimplemented from ROOT::Experimental::Detail::RColumnElementBase.

Definition at line 402 of file RColumnElement.hxx.

◆ Unpack()

template<typename CppT , typename NarrowT >
void ROOT::Experimental::Detail::RColumnElementZigzagSplitLE< CppT, NarrowT >::Unpack ( void *  destination,
void *  source,
std::size_t  count 
) const
inlinefinalvirtual

If the on-storage layout and the in-memory layout differ, unpacking creates a memory page from an on-storage page.

Reimplemented from ROOT::Experimental::Detail::RColumnElementBase.

Definition at line 406 of file RColumnElement.hxx.

Member Data Documentation

◆ kIsMappable

template<typename CppT , typename NarrowT >
constexpr bool ROOT::Experimental::Detail::RColumnElementZigzagSplitLE< CppT, NarrowT >::kIsMappable = false
staticconstexpr

Definition at line 400 of file RColumnElement.hxx.

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