/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
IOPool/Streamer/src/ClassFiller.cc
64 строки
2 KB
Chris Jones
Remove DebugMacros.h
12 ноя 2025, 19:26
12 ноя 2025, 19:26
0b6cf47
Код
Авторство
О чём код?
#include "IOPool/Streamer/interface/ClassFiller.h" #include "FWCore/Utilities/interface/EDMException.h" #include "FWCore/Reflection/interface/DictionaryTools.h" #include "FWCore/Utilities/interface/TypeID.h" #include "FWCore/Reflection/interface/TypeWithDict.h" #include "TClass.h" #include <set> #include <algorithm> #include <iostream> namespace edm::streamer { bool loadCap(std::string const& name, std::vector<std::string>& missingDictionaries) { TypeWithDict typeWithDict = TypeWithDict::byName(name); return checkClassDictionaries(missingDictionaries, name, typeWithDict); } void doBuildRealData(std::string const& name) { TClass* ttest = TClass::GetClass(name.c_str()); if (ttest != nullptr) { ttest->BuildRealData(); } else { throw edm::Exception(errors::Configuration) << "Could not find TClass for " << name << "\n"; } } // --------------------- void loadExtraClasses() { static bool done = false; if (done == false) { std::vector<std::string> missingDictionaries; loadCap(std::string("edm::StreamedProduct"), missingDictionaries); loadCap(std::string("std::vector<edm::StreamedProduct>"), missingDictionaries); loadCap(std::string("edm::SendEvent"), missingDictionaries); loadCap(std::string("std::vector<edm::BranchDescription>"), missingDictionaries); loadCap(std::string("edm::SendJobHeader"), missingDictionaries); if (!missingDictionaries.empty()) { std::string context("Calling loadExtraClasses, checking dictionaries"); throwMissingDictionariesException(missingDictionaries, context); } } done = true; } namespace { TClass* getRootClass(std::string const& name) { TClass* tc = TClass::GetClass(name.c_str()); if (tc == nullptr) { throw edm::Exception(errors::Configuration, "getRootClass") << "could not find TClass for " << name << "\n"; } return tc; } } // namespace // --------------------- TClass* getTClass(std::type_info const& ti) { TypeID const type(ti); return getRootClass(type.className()); } } // namespace edm::streamer