27std::unique_ptr<ROOT::Experimental::Detail::RColumnElementBase>
28ROOT::Experimental::Detail::RColumnElementBase::Generate<void>(
EColumnType type)
31 case EColumnType::kIndex64:
return std::make_unique<RColumnElement<ClusterSize_t, EColumnType::kIndex64>>(
nullptr);
32 case EColumnType::kIndex32:
return std::make_unique<RColumnElement<ClusterSize_t, EColumnType::kIndex32>>(
nullptr);
33 case EColumnType::kSwitch:
return std::make_unique<RColumnElement<RColumnSwitch, EColumnType::kSwitch>>(
nullptr);
34 case EColumnType::kByte:
return std::make_unique<RColumnElement<std::uint8_t, EColumnType::kByte>>(
nullptr);
35 case EColumnType::kChar:
return std::make_unique<RColumnElement<char, EColumnType::kChar>>(
nullptr);
36 case EColumnType::kBit:
return std::make_unique<RColumnElement<bool, EColumnType::kBit>>(
nullptr);
37 case EColumnType::kReal64:
return std::make_unique<RColumnElement<double, EColumnType::kReal64>>(
nullptr);
38 case EColumnType::kReal32:
return std::make_unique<RColumnElement<float, EColumnType::kReal32>>(
nullptr);
39 case EColumnType::kInt64:
return std::make_unique<RColumnElement<std::int64_t, EColumnType::kInt64>>(
nullptr);
40 case EColumnType::kInt32:
return std::make_unique<RColumnElement<std::int32_t, EColumnType::kInt32>>(
nullptr);
41 case EColumnType::kInt16:
return std::make_unique<RColumnElement<std::int16_t, EColumnType::kInt16>>(
nullptr);
42 case EColumnType::kInt8:
return std::make_unique<RColumnElement<std::int8_t, EColumnType::kInt8>>(
nullptr);
44 return std::make_unique<RColumnElement<ClusterSize_t, EColumnType::kSplitIndex64>>(
nullptr);
46 return std::make_unique<RColumnElement<ClusterSize_t, EColumnType::kSplitIndex32>>(
nullptr);
50 return std::make_unique<RColumnElement<std::int64_t, EColumnType::kSplitInt64>>(
nullptr);
52 return std::make_unique<RColumnElement<std::int32_t, EColumnType::kSplitInt32>>(
nullptr);
54 return std::make_unique<RColumnElement<std::int16_t, EColumnType::kSplitInt16>>(
nullptr);
109 default:
return "UNKNOWN";
114 void *dst,
void *
src, std::size_t count)
const
116 bool *boolArray =
reinterpret_cast<bool *
>(
src);
117 char *charArray =
reinterpret_cast<char *
>(dst);
118 std::bitset<8> bitSet;
120 for (; i < count; ++i) {
121 bitSet.set(i % 8, boolArray[i]);
123 char packed = bitSet.to_ulong();
124 charArray[i / 8] = packed;
128 char packed = bitSet.to_ulong();
129 charArray[i / 8] = packed;
134 void *dst,
void *
src, std::size_t count)
const
136 bool *boolArray =
reinterpret_cast<bool *
>(dst);
137 char *charArray =
reinterpret_cast<char *
>(
src);
138 std::bitset<8> bitSet;
139 for (std::size_t i = 0; i < count; i += 8) {
140 bitSet = charArray[i / 8];
141 for (std::size_t j = i; j < std::min(count, i + 8); ++j) {
142 boolArray[j] = bitSet[j % 8];
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t src
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
virtual void Pack(void *destination, void *source, std::size_t count) const
If the on-storage layout and the in-memory layout differ, packing creates an on-disk page from an in-...
virtual std::size_t GetBitsOnStorage() const
static std::string GetTypeName(EColumnType type)
virtual void Unpack(void *destination, void *source, std::size_t count) const
If the on-storage layout and the in-memory layout differ, unpacking creates a memory page from an on-...