33 for (
auto f : subfields) {
35 f->AcceptVisitor(visitor);
76 for (
auto iField = subfields.begin(); iField != subfields.end();) {
85 f->AcceptVisitor(visitor);
95 f->AcceptVisitor(visitor);
107 for (
unsigned int i = 0; i <
fLevel; ++i)
123 for (
auto iValue = elems.begin(); iValue != elems.end(); ) {
128 iValue->GetField().AcceptVisitor(elemVisitor);
130 if (++iValue == elems.end())
144 for (
auto iValue = elems.begin(); iValue != elems.end();) {
151 iValue->GetField().AcceptVisitor(visitor);
153 if (++iValue == elems.end()) {
178 if (
fValue.GetRef<
bool>())
202 char prev = std::cout.fill();
203 auto value = std::to_integer<unsigned int>(
fValue.GetRef<std::byte>());
204 fOutput <<
"0x" << std::setw(2) << std::setfill(
'0') << std::hex << value;
205 fOutput << std::resetiosflags(std::ios_base::basefield);
206 std::cout.fill(prev);
220 fOutput << static_cast<int>(
fValue.GetRef<std::int8_t>());
256 fOutput << static_cast<int>(
fValue.GetRef<std::uint8_t>());
292 R__ASSERT(
false &&
"unsupported cardinality size type");
297 constexpr auto nBitsULong =
sizeof(
unsigned long) * 8;
298 const auto *asULongArray =
static_cast<unsigned long *
>(
fValue.GetPtr<
void>().get());
305 for (std::size_t word = 0; word < (field.
GetN() + nBitsULong - 1) / nBitsULong; ++word) {
306 for (std::size_t mask = 0; (mask < nBitsULong) && (i < field.
GetN()); ++mask, ++i) {
307 bool isSet = (asULongArray[word] & (
static_cast<unsigned long>(1) << mask)) != 0;
308 str = std::to_string(isSet) + str;
363 elems[0].GetField().AcceptVisitor(visitor);
376 intValue.GetField().AcceptVisitor(visitor);
388 itemValue.GetField().AcceptVisitor(visitor);
415 int strSize{
static_cast<int>(str.size())};
416 if (strSize <= availableSpace)
417 return str + std::string(availableSpace - strSize,
' ');
418 else if (availableSpace < 3)
419 return std::string(availableSpace,
'.');
420 return std::string(str, 0, availableSpace - 3) +
"...";
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
RPrepareVisitor()=default
unsigned int fDeepestLevel
void VisitFieldZero(const ROOT::RFieldZero &field) final
void VisitField(const ROOT::RFieldBase &field) final
int fAvailableSpaceKeyString
void SetDeepestLevel(int d)
std::string fFieldNoPrefix
void VisitFieldZero(const ROOT::RFieldZero &fieldZero) final
void SetAvailableSpaceForStrings()
Computes how many characters should be placed between the frame symbol and ':' for left and right sid...
void VisitField(const ROOT::RFieldBase &field) final
Prints summary of Field.
RPrintSchemaVisitor(std::ostream &out=std::cout, int deepestLevel=1, int numFields=1)
std::ostream & fOutput
Where to write the printout to.
void VisitVectorField(const ROOT::RVectorField &field) final
void VisitEnumField(const ROOT::REnumField &field) final
void VisitRVecField(const ROOT::RRVecField &field) final
void VisitUInt16Field(const ROOT::RIntegralField< std::uint16_t > &field) final
void VisitCardinalityField(const ROOT::RCardinalityField &field) final
void VisitCharField(const ROOT::RField< char > &field) final
void PrintRecord(const ROOT::RFieldBase &field)
void VisitAtomicField(const ROOT::RAtomicField &field) final
void VisitClassField(const ROOT::RClassField &field) final
void VisitTObjectField(const ROOT::RField< TObject > &field) final
void VisitInt64Field(const ROOT::RIntegralField< std::int64_t > &field) final
void VisitInt32Field(const ROOT::RIntegralField< std::int32_t > &field) final
RPrintOptions fPrintOptions
void PrintName(const ROOT::RFieldBase &field)
void VisitByteField(const ROOT::RField< std::byte > &field) final
void VisitArrayAsVectorField(const ROOT::RArrayAsVectorField &field) final
void VisitStringField(const ROOT::RField< std::string > &field) final
void VisitArrayField(const ROOT::RArrayField &field) final
std::ostream & fOutput
The output is directed to fOutput which may differ from std::cout.
void VisitFloatField(const ROOT::RField< float > &field) final
void VisitRecordField(const ROOT::RRecordField &field) final
void VisitBitsetField(const ROOT::RBitsetField &field) final
void VisitUInt32Field(const ROOT::RIntegralField< std::uint32_t > &field) final
RPrintValueVisitor(ROOT::RFieldBase::RValue value, std::ostream &output, unsigned int level=0, RPrintOptions options=RPrintOptions())
void VisitBoolField(const ROOT::RField< bool > &field) final
void VisitVectorBoolField(const ROOT::RField< std::vector< bool > > &field) final
void VisitInt16Field(const ROOT::RIntegralField< std::int16_t > &field) final
void VisitNullableField(const ROOT::RNullableField &field) final
void VisitDoubleField(const ROOT::RField< double > &field) final
void VisitArrayAsRVecField(const ROOT::RArrayAsRVecField &field) final
void VisitField(const ROOT::RFieldBase &field) final
void VisitProxiedCollectionField(const ROOT::RProxiedCollectionField &field) final
void VisitStreamerField(const ROOT::RStreamerField &field) final
void PrintCollection(const ROOT::RFieldBase &field)
ROOT::RFieldBase::RValue fValue
void VisitInt8Field(const ROOT::RIntegralField< std::int8_t > &field) final
void VisitUInt64Field(const ROOT::RIntegralField< std::uint64_t > &field) final
void VisitUInt8Field(const ROOT::RIntegralField< std::uint8_t > &field) final
Additional classes related to sequence containers.
A field for fixed-size arrays that are represented as std::vector in memory.
Template specializations for C++ std::array and C-style arrays.
Template specializations for C++ std::atomic.
std::vector< RValue > SplitValue(const RValue &value) const final
Creates the list of direct child values given an existing value for this field.
Template specializations for C++ std::bitset.
std::size_t GetN() const
Get the number of bits in the bitset, i.e. the N in std::bitset<N>.
An artificial field that transforms an RNTuple column that contains the offset of collections into co...
const RField< RNTupleCardinality< std::uint32_t > > * As32Bit() const
const RField< RNTupleCardinality< std::uint64_t > > * As64Bit() const
The field for a class with dictionary.
The field for an unscoped or scoped enum with dictionary.
std::vector< RValue > SplitValue(const RValue &value) const final
Creates the list of direct child values given an existing value for this field.
A field translates read and write calls from/to underlying columns to/from tree values.
std::vector< const RFieldBase * > GetConstSubfields() const
virtual std::vector< RValue > SplitValue(const RValue &value) const
Creates the list of direct child values given an existing value for this field.
const std::string & GetFieldName() const
const std::string & GetTypeName() const
The container field for an ntuple model, which itself has no physical representation.
Classes with dictionaries that can be inspected by TClass.
Template specializations for C++ std::optional and std::unique_ptr.
The field for a class representing a collection of elements via TVirtualCollectionProxy.
Template specializations for ROOT's RVec.
The field for an untyped record.
The field for a class using ROOT standard streaming.
Template specializations for C++ std::vector.