Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RColumnModel.hxx
Go to the documentation of this file.
1/// \file ROOT/RColumnModel.hxx
2/// \ingroup NTuple ROOT7
3/// \author Jakob Blomer <jblomer@cern.ch>
4/// \date 2018-10-09
5/// \warning This is part of the ROOT 7 prototype! It will change without notice. It might trigger earthquakes. Feedback
6/// is welcome!
7
8/*************************************************************************
9 * Copyright (C) 1995-2019, Rene Brun and Fons Rademakers. *
10 * All rights reserved. *
11 * *
12 * For the licensing terms see $ROOTSYS/LICENSE. *
13 * For the list of contributors see $ROOTSYS/README/CREDITS. *
14 *************************************************************************/
15
16#ifndef ROOT7_RColumnModel
17#define ROOT7_RColumnModel
18
19#include <ROOT/RStringView.hxx>
20
21#include <string>
22
23namespace ROOT {
24namespace Experimental {
25
26// clang-format off
27/**
28\class ROOT::Experimental::EColumnType
29\ingroup NTuple
30\brief The available trivial, native content types of a column
31
32More complex types, such as classes, get translated into columns of such simple types by the RField.
33New types need to be accounted for in RColumnElementBase::Generate() and RColumnElementBase::GetBitsOnStorage(), too.
34*/
35// clang-format on
36enum class EColumnType {
37 kUnknown = 0,
38 // type for root columns of (nested) collections; 32bit integers that count relative to the current cluster
39 kIndex,
40 // 64 bit column that uses the lower 32bits as kIndex and the higher 32bits as a dispatch tag; used, e.g.,
41 // in order to serialize std::variant
42 kSwitch,
43 kByte,
44 kChar,
45 kBit,
46 kReal64,
47 kReal32,
48 kReal16,
49 kInt64,
50 kInt32,
51 kInt16,
52 kInt8,
53 kMax,
54};
55
56// clang-format off
57/**
58\class ROOT::Experimental::RColumnModel
59\ingroup NTuple
60\brief Holds the static meta-data of a column in a tree
61*/
62// clang-format on
64private:
67
68public:
70 RColumnModel(EColumnType type, bool isSorted) : fType(type), fIsSorted(isSorted) {}
71
72 EColumnType GetType() const { return fType; }
73 bool GetIsSorted() const { return fIsSorted; }
74
75 bool operator ==(const RColumnModel &other) const {
76 return (fType == other.fType) && (fIsSorted == other.fIsSorted);
77 }
78};
79
80} // namespace Experimental
81} // namespace ROOT
82
83#endif
int type
Definition TGX11.cxx:121
Holds the static meta-data of a column in a tree.
RColumnModel(EColumnType type, bool isSorted)
bool operator==(const RColumnModel &other) const
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...