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 412 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::Internal::RColumnElementBase | |
RColumnElementBase (const RColumnElementBase &other)=default | |
RColumnElementBase (RColumnElementBase &&other)=default | |
virtual | ~RColumnElementBase ()=default |
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, std::size_t bitsOnStorage) | |
Protected Member Functions inherited from ROOT::Experimental::Internal::RColumnElementBase | |
RColumnElementBase (std::size_t size, std::size_t bitsOnStorage=0) | |
Additional Inherited Members | |
Static Public Member Functions inherited from ROOT::Experimental::Internal::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::Internal::RColumnElementBase > | Generate (EColumnType type) |
static std::size_t | GetBitsOnStorage (EColumnType type) |
static std::string | GetTypeName (EColumnType type) |
Protected Attributes inherited from ROOT::Experimental::Internal::RColumnElementBase | |
std::size_t | fBitsOnStorage |
std::size_t | fSize |
Size of the C++ value that corresponds to the on-disk element. | |
#include <ROOT/RColumnElement.hxx>
|
inlineexplicitprotected |
Definition at line 414 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::Internal::RColumnElementBase.
Definition at line 422 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::Internal::RColumnElementBase.
Definition at line 426 of file RColumnElement.hxx.
|
staticconstexpr |
Definition at line 420 of file RColumnElement.hxx.