/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
PhysicsTools/MVAComputer/interface/ProcessRegistry.icc
72 строки
2 KB
Shahzad Malik Muzaffar
[ANALYSIS] [LLVM16] Code format changes applied
30 май 2023, 13:10
30 май 2023, 13:10
31999fd
Код
Авторство
О чём код?
#ifndef PhysicsTools_Calibration_ProcessRegistry_icc #define PhysicsTools_Calibration_ProcessRegistry_icc // -*- C++ -*- // // Package: Discriminator // Class : ProcessRegistry // // // Author: Christophe Saout <christophe.saout@cern.ch> // Created: Sat Apr 24 15:18 CEST 2007 // #include <string> #include <map> #include "FWCore/Utilities/interface/thread_safety_macros.h" #include "PhysicsTools/MVAComputer/interface/ProcessRegistry.h" namespace PhysicsTools { template <class Base_t, class CalibBase_t, class Parent_t> Base_t *ProcessRegistry<Base_t, CalibBase_t, Parent_t>::Factory::create(const char *name, const CalibBase_t *calib, Parent_t *parent) { return ProcessRegistry::create(name, calib, parent); } template <class Base_t, class CalibBase_t, class Parent_t> tbb::concurrent_unordered_map<std::string, const ProcessRegistry<Base_t, CalibBase_t, Parent_t> *> * ProcessRegistry<Base_t, CalibBase_t, Parent_t>::getRegistry() { CMS_THREAD_SAFE static struct Sentinel { Sentinel() : instance(new RegistryMap) {} ~Sentinel() { delete instance; instance = nullptr; } RegistryMap *instance; } sentinel; return sentinel.instance; } template <class Base_t, class CalibBase_t, class Parent_t> Base_t *ProcessRegistry<Base_t, CalibBase_t, Parent_t>::create(const char *name, const CalibBase_t *calib, Parent_t *parent) { typename RegistryMap::iterator pos = getRegistry()->find(name); if (pos == getRegistry()->end()) return nullptr; return pos->second->instance(name, calib, parent); } template <class Base_t, class CalibBase_t, class Parent_t> void ProcessRegistry<Base_t, CalibBase_t, Parent_t>::registerProcess(const char *name, const ProcessRegistry *process) { (*getRegistry())[name] = process; } template <class Base_t, class CalibBase_t, class Parent_t> void ProcessRegistry<Base_t, CalibBase_t, Parent_t>::unregisterProcess(const char *name) { RegistryMap *map = getRegistry(); if (map) map->unsafe_erase(name); } } // namespace PhysicsTools #endif // PhysicsTools_Calibration_ProcessRegistry_icc