36 for (
auto f : subFields) {
38 f->AcceptVisitor(visitor);
64 SetAvailableSpaceForStrings();
69 fOutput << fFrameSymbol <<
' ';
71 std::string key = fTreePrefix;
72 key +=
"Field " + fFieldNoPrefix + std::to_string(fFieldNo);
80 fOutput << fFrameSymbol << std::endl;
84 for (
auto iField = subFields.begin(); iField != subFields.end(); ) {
93 f->AcceptVisitor(visitor);
104 f->AcceptVisitor(visitor);
113 if (fPrintOptions.fPrintSingleLine)
116 for (
unsigned int i = 0; i < fLevel; ++i)
123 if (fPrintOptions.fPrintName)
124 fOutput <<
"\"" << field.
GetName() <<
"\": ";
134 for (
auto iValue = elems.begin(); iValue != elems.end(); ) {
139 iValue->GetField()->AcceptVisitor(elemVisitor);
141 if (++iValue == elems.end())
154 fOutput <<
"\"<unsupported type: " << field.
GetType() <<
">\"";
162 if (*fValue.Get<
bool>())
173 fOutput << *fValue.Get<
double>();
181 fOutput << *fValue.Get<
float>();
188 fOutput << *fValue.Get<
char>();
195 fOutput << *fValue.Get<std::int8_t>();
202 fOutput << *fValue.Get<std::int16_t>();
209 fOutput << *fValue.Get<
int>();
216 fOutput << *fValue.Get<std::int64_t>();
224 fOutput <<
"\"" << *fValue.Get<std::string>() <<
"\"";
232 fOutput << static_cast<int>(*fValue.Get<std::uint8_t>());
239 fOutput << *fValue.Get<std::uint16_t>();
246 fOutput << *fValue.Get<std::uint32_t>();
254 fOutput << *fValue.Get<std::uint64_t>();
266 constexpr auto nBitsULong =
sizeof(
unsigned long) * 8;
267 const auto *asULongArray = fValue.Get<
unsigned long>();
274 for (std::size_t word = 0; word < (field.
GetN() + nBitsULong - 1) / nBitsULong; ++word) {
275 for (std::size_t
mask = 0; (
mask < nBitsULong) && (i < field.
GetN()); ++
mask, ++i) {
276 bool isSet = (asULongArray[word] & (
static_cast<unsigned long>(1) <<
mask)) != 0;
277 str = std::to_string(isSet) + str;
280 fOutput << str <<
"\"";
285 PrintCollection(field);
295 for (
auto iValue = elems.begin(); iValue != elems.end(); ) {
296 if (!fPrintOptions.fPrintSingleLine)
297 fOutput << std::endl;
302 iValue->GetField()->AcceptVisitor(visitor);
304 if (++iValue == elems.end()) {
305 if (!fPrintOptions.fPrintSingleLine)
306 fOutput << std::endl;
310 if (fPrintOptions.fPrintSingleLine)
325 for (
auto iValue = elems.begin(); iValue != elems.end(); ) {
326 if (!fPrintOptions.fPrintSingleLine)
327 fOutput << std::endl;
332 iValue->GetField()->AcceptVisitor(visitor);
334 if (++iValue == elems.end()) {
335 if (!fPrintOptions.fPrintSingleLine)
336 fOutput << std::endl;
340 if (fPrintOptions.fPrintSingleLine)
350 PrintCollection(field);
355 PrintCollection(field);
361 PrintCollection(field);
366 PrintCollection(field);
374 int strSize{
static_cast<int>(str.size())};
375 if (strSize <= availableSpace)
376 return str + std::string(availableSpace - strSize,
' ');
377 else if (availableSpace < 3)
378 return std::string(availableSpace,
'.');
379 return std::string(str, 0, availableSpace - 3) +
"...";
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 mask
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
std::string GetName() const
virtual std::vector< RFieldValue > SplitValue(const RFieldValue &value) const
Creates the list of direct child values given a value for this field.
std::string GetType() const
std::vector< RFieldBase * > GetSubFields() const
The generic field for fixed size arrays, which do not need an offset column.
The generic field an std::bitset<N>.
std::size_t GetN() const
Get the number of bits in the bitset, i.e. the N in std::bitset<N>
The field for a class with dictionary.
std::vector< Detail::RFieldValue > SplitValue(const Detail::RFieldValue &value) const final
Creates the list of direct child values given a value for this field.
The field for a class representing a collection of elements via TVirtualCollectionProxy.
The container field for an ntuple model, which itself has no physical representation.
An artificial field that transforms an RNTuple column that contains the offset of collections into co...
Classes with dictionaries that can be inspected by TClass.
Visitor used for a pre-processing run to collect information needed by another visitor class.
void VisitField(const Detail::RFieldBase &field) final
unsigned int fDeepestLevel
void VisitFieldZero(const RFieldZero &field) final
Contains settings for printing and prints a summary of an RField instance.
void SetDeepestLevel(int d)
std::string fFieldNoPrefix
void VisitField(const Detail::RFieldBase &field) final
Prints summary of Field.
void VisitFieldZero(const RFieldZero &fieldZero) final
Renders a JSON value corresponding to the field.
void VisitVectorBoolField(const RField< std::vector< bool > > &field) final
void VisitDoubleField(const RField< double > &field) final
void VisitUInt16Field(const RField< std::uint16_t > &field) final
void VisitCardinalityField(const RField< RNTupleCardinality > &field) final
void VisitArrayField(const RArrayField &field) final
void VisitFloatField(const RField< float > &field) final
void VisitRecordField(const RRecordField &field) final
void VisitStringField(const RField< std::string > &field) final
void VisitInt8Field(const RField< std::int8_t > &field) final
void PrintName(const Detail::RFieldBase &field)
void VisitUInt8Field(const RField< std::uint8_t > &field) final
void VisitBitsetField(const RBitsetField &field) final
void VisitField(const Detail::RFieldBase &field) final
void PrintCollection(const Detail::RFieldBase &field)
void VisitRVecField(const RRVecField &field) final
void VisitUInt64Field(const RField< std::uint64_t > &field) final
void VisitBoolField(const RField< bool > &field) final
void VisitInt16Field(const RField< std::int16_t > &field) final
void VisitVectorField(const RVectorField &field) final
void VisitCharField(const RField< char > &field) final
void VisitCollectionClassField(const RCollectionClassField &field) final
void VisitInt64Field(const RField< std::int64_t > &field) final
void VisitClassField(const RClassField &field) final
void VisitIntField(const RField< int > &field) final
void VisitUInt32Field(const RField< std::uint32_t > &field) final
The type-erased field for a RVec<Type>
The field for an untyped record.
std::vector< Detail::RFieldValue > SplitValue(const Detail::RFieldValue &value) const final
Creates the list of direct child values given a value for this field.
The generic field for a (nested) std::vector<Type> except for std::vector<bool>
Helper type to present an offset column as array of collection sizes. See RField<RNTupleCardinality> ...