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>>();
32 case EColumnType::kIndex32:
return std::make_unique<RColumnElement<ClusterSize_t, EColumnType::kIndex32>>();
33 case EColumnType::kSwitch:
return std::make_unique<RColumnElement<RColumnSwitch, EColumnType::kSwitch>>();
34 case EColumnType::kByte:
return std::make_unique<RColumnElement<std::uint8_t, EColumnType::kByte>>();
35 case EColumnType::kChar:
return std::make_unique<RColumnElement<char, EColumnType::kChar>>();
36 case EColumnType::kBit:
return std::make_unique<RColumnElement<bool, EColumnType::kBit>>();
37 case EColumnType::kReal64:
return std::make_unique<RColumnElement<double, EColumnType::kReal64>>();
38 case EColumnType::kReal32:
return std::make_unique<RColumnElement<float, EColumnType::kReal32>>();
39 case EColumnType::kInt64:
return std::make_unique<RColumnElement<std::int64_t, EColumnType::kInt64>>();
40 case EColumnType::kUInt64:
return std::make_unique<RColumnElement<std::uint64_t, EColumnType::kUInt64>>();
41 case EColumnType::kInt32:
return std::make_unique<RColumnElement<std::int32_t, EColumnType::kInt32>>();
42 case EColumnType::kUInt32:
return std::make_unique<RColumnElement<std::uint32_t, EColumnType::kUInt32>>();
43 case EColumnType::kInt16:
return std::make_unique<RColumnElement<std::int16_t, EColumnType::kInt16>>();
44 case EColumnType::kUInt16:
return std::make_unique<RColumnElement<std::uint16_t, EColumnType::kUInt16>>();
45 case EColumnType::kInt8:
return std::make_unique<RColumnElement<std::int8_t, EColumnType::kInt8>>();
46 case EColumnType::kUInt8:
return std::make_unique<RColumnElement<std::uint8_t, EColumnType::kUInt8>>();
48 return std::make_unique<RColumnElement<ClusterSize_t, EColumnType::kSplitIndex64>>();
50 return std::make_unique<RColumnElement<ClusterSize_t, EColumnType::kSplitIndex32>>();
127 default:
return "UNKNOWN";
132 void *dst,
void *
src, std::size_t count)
const
134 bool *boolArray =
reinterpret_cast<bool *
>(
src);
135 char *charArray =
reinterpret_cast<char *
>(dst);
136 std::bitset<8> bitSet;
138 for (; i < count; ++i) {
139 bitSet.set(i % 8, boolArray[i]);
141 char packed = bitSet.to_ulong();
142 charArray[i / 8] = packed;
146 char packed = bitSet.to_ulong();
147 charArray[i / 8] = packed;
152 void *dst,
void *
src, std::size_t count)
const
154 bool *boolArray =
reinterpret_cast<bool *
>(dst);
155 char *charArray =
reinterpret_cast<char *
>(
src);
156 std::bitset<8> bitSet;
157 for (std::size_t i = 0; i < count; i += 8) {
158 bitSet = charArray[i / 8];
159 for (std::size_t j = i; j < std::min(count, i + 8); ++j) {
160 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-...