16#ifndef ROOT7_RColumnElement
17#define ROOT7_RColumnElement
26namespace Experimental {
79 void Serialize(
void *destination, std::size_t count)
const {
102template <
typename CppT, EColumnType ColumnT>
108 static_assert(
sizeof(CppT) !=
sizeof(CppT),
"No column mapping for this C++ type");
117 static constexpr size_t kSize =
sizeof(float);
125 static constexpr size_t kSize =
sizeof(double);
133 static constexpr size_t kSize =
sizeof(std::int32_t);
141 static constexpr size_t kSize =
sizeof(std::uint32_t);
149 static constexpr size_t kSize =
sizeof(std::int64_t);
157 static constexpr size_t kSize =
sizeof(std::uint64_t);
173 static constexpr size_t kSize =
sizeof(char);
void Deserialize(void *source, std::size_t count)
virtual void DoSerialize(void *, std::size_t) const
RColumnElementBase(RColumnElementBase &&other)=default
virtual void DoDeserialize(void *, std::size_t) const
void * fRawContent
Points to valid C++ data, either a single value or an array of values.
void * GetRawContent() const
RColumnElementBase(const RColumnElementBase &other)=default
RColumnElementBase & operator=(const RColumnElementBase &other)=delete
void Serialize(void *destination, std::size_t count) const
RColumnElementBase(const RColumnElementBase &elemArray, std::size_t at)
RColumnElementBase(void *rawContent, unsigned int size, bool isMappable)
unsigned int GetSize() const
unsigned int fSize
Size of the C++ value pointed to by fRawContent (not necessarily equal to the on-disk element size)
virtual ~RColumnElementBase()=default
bool fIsMappable
Indicates that *fRawContent is bitwise identical to the physical column element.
RColumnElement(ClusterSize_t *value)
RColumnElement(char *value)
RColumnElement(double *value)
RColumnElement(float *value)
Pairs of C++ type and column type, like float and EColumnType::kReal32.
static constexpr bool kIsMappable
RColumnElement(CppT *value)
RClusterSize ClusterSize_t
Namespace for new ROOT classes and functions.
Wrap the 32bit integer in a struct in order to avoid template specialization clash with std::uint32_t...