/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
DataFormats/Common/interface/RefCoreStreamer.h
61 строка
2 KB
Chris Jones
Improvements based on review feedback
19 май 2025, 21:52
19 май 2025, 21:52
7618354
Код
Авторство
О чём код?
#ifndef DataFormats_Common_RefCoreStreamer_h #define DataFormats_Common_RefCoreStreamer_h #include "TClassStreamer.h" #include "TClassRef.h" class TBuffer; namespace edm { class EDProductGetter; class RefCoreStreamer : public TClassStreamer { public: explicit RefCoreStreamer() : cl_("edm::RefCore") {} void operator()(TBuffer& R__b, void* objp) override; TClassStreamer* Generate() const override; private: TClassRef cl_; }; class RefCoreWithIndexStreamer : public TClassStreamer { public: explicit RefCoreWithIndexStreamer() : cl_("edm::RefCoreWithIndex") {} void operator()(TBuffer& R__b, void* objp) override; TClassStreamer* Generate() const override; private: TClassRef cl_; }; void setRefCoreStreamerInTClass(); class RefCoreStreamerGuard { public: RefCoreStreamerGuard(EDProductGetter const* ep) { setRefCoreStreamer(ep); } ~RefCoreStreamerGuard() { unsetRefCoreStreamer(); } RefCoreStreamerGuard(RefCoreStreamerGuard const&) = delete; RefCoreStreamerGuard& operator=(RefCoreStreamerGuard const&) = delete; RefCoreStreamerGuard(RefCoreStreamerGuard&&) = delete; RefCoreStreamerGuard& operator=(RefCoreStreamerGuard&&) = delete; private: static void unsetRefCoreStreamer(); static EDProductGetter const* setRefCoreStreamer(EDProductGetter const* ep); }; class MultiThreadRefCoreStreamerGuard { public: MultiThreadRefCoreStreamerGuard(EDProductGetter const* ep) { setRefCoreStreamer(ep); } ~MultiThreadRefCoreStreamerGuard() { unsetRefCoreStreamer(); } private: static void setRefCoreStreamer(EDProductGetter const* ep); static void unsetRefCoreStreamer(); }; } // namespace edm #endif