Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RColumnElement.hxx File Reference
#include <ROOT/RColumnModel.hxx>
#include <ROOT/RConfig.hxx>
#include <ROOT/RError.hxx>
#include <ROOT/RFloat16.hxx>
#include <ROOT/RNTupleUtil.hxx>
#include <Byteswap.h>
#include <TError.h>
#include <cstring>
#include <cstddef>
#include <cstdint>
#include <memory>
#include <string>
#include <type_traits>
#include <typeinfo>
#include <utility>
Include dependency graph for RColumnElement.hxx:
This graph shows which files directly or indirectly include this file:

Classes

class  ROOT::Experimental::Internal::RColumnElement< CppT, ColumnT >
 
class  ROOT::Experimental::Internal::RColumnElement< bool, EColumnType::kBit >
 
class  ROOT::Experimental::Internal::RColumnElement< bool, EColumnType::kUnknown >
 
class  ROOT::Experimental::Internal::RColumnElement< char, EColumnType::kByte >
 
class  ROOT::Experimental::Internal::RColumnElement< char, EColumnType::kChar >
 
class  ROOT::Experimental::Internal::RColumnElement< char, EColumnType::kUnknown >
 
class  ROOT::Experimental::Internal::RColumnElement< ClusterSize_t, EColumnType::kIndex32 >
 
class  ROOT::Experimental::Internal::RColumnElement< ClusterSize_t, EColumnType::kIndex64 >
 
class  ROOT::Experimental::Internal::RColumnElement< ClusterSize_t, EColumnType::kSplitIndex32 >
 
class  ROOT::Experimental::Internal::RColumnElement< ClusterSize_t, EColumnType::kSplitIndex64 >
 
class  ROOT::Experimental::Internal::RColumnElement< ClusterSize_t, EColumnType::kUnknown >
 
class  ROOT::Experimental::Internal::RColumnElement< double, EColumnType::kReal32 >
 
class  ROOT::Experimental::Internal::RColumnElement< double, EColumnType::kReal64 >
 
class  ROOT::Experimental::Internal::RColumnElement< double, EColumnType::kSplitReal32 >
 
class  ROOT::Experimental::Internal::RColumnElement< double, EColumnType::kSplitReal64 >
 
class  ROOT::Experimental::Internal::RColumnElement< double, EColumnType::kUnknown >
 
class  ROOT::Experimental::Internal::RColumnElement< float, EColumnType::kReal16 >
 
class  ROOT::Experimental::Internal::RColumnElement< float, EColumnType::kReal32 >
 
class  ROOT::Experimental::Internal::RColumnElement< float, EColumnType::kSplitReal32 >
 
class  ROOT::Experimental::Internal::RColumnElement< float, EColumnType::kUnknown >
 
class  ROOT::Experimental::Internal::RColumnElement< RColumnSwitch, EColumnType::kSwitch >
 
class  ROOT::Experimental::Internal::RColumnElement< RColumnSwitch, EColumnType::kUnknown >
 
class  ROOT::Experimental::Internal::RColumnElementBase
 A column element encapsulates the translation between basic C++ types and their column representation. More...
 
class  ROOT::Experimental::Internal::RColumnElementCastLE< CppT, NarrowT >
 Base class for columns storing elements of wider in-memory types, such as 64bit in-memory offsets to Index32 columns. More...
 
class  ROOT::Experimental::Internal::RColumnElementDeltaSplitLE< CppT, NarrowT >
 Base class for delta + split columns (index columns) whose on-storage representation is little-endian. More...
 
class  ROOT::Experimental::Internal::RColumnElementLE< CppT >
 Base class for columns whose on-storage representation is little-endian. More...
 
class  ROOT::Experimental::Internal::RColumnElementSplitLE< CppT, NarrowT >
 Base class for split columns whose on-storage representation is little-endian. More...
 
class  ROOT::Experimental::Internal::RColumnElementZigzagSplitLE< CppT, NarrowT >
 Base class for zigzag + split columns (signed integer columns) whose on-storage representation is little-endian. More...
 
struct  ROOT::Experimental::Internal::RColumnElement< RColumnSwitch, EColumnType::kSwitch >::RSwitchElement
 

Namespaces

namespace  ROOT
 tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tbb::task_arena without forward declaring tbb::interface7
 
namespace  ROOT::Experimental
 
namespace  ROOT::Experimental::Internal
 

Macros

#define __RCOLUMNELEMENT_SPEC_BODY(CppT, BaseT, BitsOnStorage)
 
#define DECLARE_RCOLUMNELEMENT_SPEC(CppT, ColumnT, BitsOnStorage, BaseT, ...)
 These macros are used to declare RColumnElement template specializations below.
 
#define DECLARE_RCOLUMNELEMENT_SPEC_SIMPLE(CppT, ColumnT, BitsOnStorage)
 
#define R__LITTLE_ENDIAN   0
 

Detailed Description

Author
Jakob Blomer jblom.nosp@m.er@c.nosp@m.ern.c.nosp@m.h
Date
2018-10-09
Warning
This is part of the ROOT 7 prototype! It will change without notice. It might trigger earthquakes. Feedback is welcome!

Definition in file RColumnElement.hxx.

Macro Definition Documentation

◆ __RCOLUMNELEMENT_SPEC_BODY

#define __RCOLUMNELEMENT_SPEC_BODY (   CppT,
  BaseT,
  BitsOnStorage 
)
Value:
static constexpr std::size_t kSize = sizeof(CppT); \
static constexpr std::size_t kBitsOnStorage = BitsOnStorage; \
RColumnElement() : BaseT(kSize, kBitsOnStorage) {} \
bool IsMappable() const final \
{ \
return kIsMappable; \
}
@ kSize
Definition TStructNode.h:26

Definition at line 650 of file RColumnElement.hxx.

◆ DECLARE_RCOLUMNELEMENT_SPEC

#define DECLARE_RCOLUMNELEMENT_SPEC (   CppT,
  ColumnT,
  BitsOnStorage,
  BaseT,
  ... 
)
Value:
template <> \
class RColumnElement<CppT, ColumnT> : public BaseT __VA_ARGS__ { \
public: \
__RCOLUMNELEMENT_SPEC_BODY(CppT, BaseT, BitsOnStorage) \
}

These macros are used to declare RColumnElement template specializations below.

Additional arguments can be used to forward template parameters to the base class, e.g.

DECLARE_RCOLUMNELEMENT_SPEC(std::int64_t, EColumnType::kInt32, 32,
RColumnElementCastLE, <std::int64_t, std::int32_t>);
#define DECLARE_RCOLUMNELEMENT_SPEC(CppT, ColumnT, BitsOnStorage, BaseT,...)
These macros are used to declare RColumnElement template specializations below.

Definition at line 664 of file RColumnElement.hxx.

◆ DECLARE_RCOLUMNELEMENT_SPEC_SIMPLE

#define DECLARE_RCOLUMNELEMENT_SPEC_SIMPLE (   CppT,
  ColumnT,
  BitsOnStorage 
)
Value:
template <> \
class RColumnElement<CppT, ColumnT> : public RColumnElementBase { \
public: \
static constexpr bool kIsMappable = true; \
__RCOLUMNELEMENT_SPEC_BODY(CppT, RColumnElementBase, BitsOnStorage) \
}

Definition at line 670 of file RColumnElement.hxx.

◆ R__LITTLE_ENDIAN

#define R__LITTLE_ENDIAN   0

Definition at line 42 of file RColumnElement.hxx.