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. | |
RColumnElementBase & | operator= (const RColumnElementBase &other)=delete |
RColumnElementBase & | operator= (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< RColumnElementBase > | Generate (EColumnType type) |
If CppT == void, use the default C++ type for the given column type. | |
template<> | |
std::unique_ptr< RColumnElementBase > | Generate (EColumnType type) |
template<> | |
std::unique_ptr< ROOT::Experimental::Detail::RColumnElementBase > | Generate (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>
|
inlineexplicitprotected |
Definition at line 397 of file RColumnElement.hxx.
|
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.
|
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.
|
staticconstexpr |
Definition at line 400 of file RColumnElement.hxx.