void TestSchemaEvolution::gatherAllClasses() { static const char *classes[] = {"TH1F", "TH1S", "TH1D", "TH1I", "TH2F", "TH2S", "TH2D", "TH2I", "TH3F", "TH3S", "TH3D", "TH3I", "TProfile", "TProfile2D", "TF1", 0}; int i = 0; while (classes[i]) { TClass *tcl = TClass::GetClass(classes[i]); if (!tcl) continue; unique_classes_.insert(std::make_pair(classes[i], tcl->GetClassVersion())); analyseClass(tcl); ++i; } }
void TestSchemaEvolution::loopOnBases(TClass *tcl) { TList *bases = tcl->GetListOfBases(); TIter next(bases); while (TObject *obj = next()) { TClass *cl = TClass::GetClass(obj->GetName()); if (cl && cl->HasDictionary()) { unique_classes_.insert(std::make_pair(cl->GetName(), cl->GetClassVersion())); analyseClass(cl); } } }
void TestSchemaEvolution::loopOnDataMembers(TClass *tcl) { TList *dms = tcl->GetListOfDataMembers(); TIter next(dms); while (TObject *obj = next()) { TClass *cl = TClass::GetClass(((TDataMember *)obj)->GetFullTypeName()); if (cl && cl->HasDictionary()) { unique_classes_.insert(std::make_pair(cl->GetName(), cl->GetClassVersion())); analyseClass(cl); } } }