/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
FWCore/Framework/interface/stream/EDAnalyzerBase.h
73 строки
2 KB
Chris Jones
Require Watchs attributes for stream modules
07 апр 2026, 02:16
07 апр 2026, 02:16
cce45b4
Код
Авторство
О чём код?
#ifndef FWCore_Framework_stream_EDAnalyzerBase_h #define FWCore_Framework_stream_EDAnalyzerBase_h // -*- C++ -*- // // Package: FWCore/Framework // Class : EDAnalyzerBase // /**\class edm::stream::EDAnalyzerBase EDAnalyzerBase.h "FWCore/Framework/interface/stream/EDAnalyzerBase.h" Description: [one line class summary] Usage: <usage> */ // // Original Author: Chris Jones // Created: Fri, 02 Aug 2013 00:11:27 GMT // // system include files // user include files #include "FWCore/Framework/interface/EDConsumerBase.h" #include "FWCore/Framework/interface/Frameworkfwd.h" #include "DataFormats/Provenance/interface/ModuleDescription.h" #include "FWCore/Utilities/interface/StreamID.h" #include "FWCore/ParameterSet/interface/ParameterSetfwd.h" // forward declarations namespace edm { class SignallingProductRegistryFiller; namespace stream { class EDAnalyzerAdaptorBase; class EDAnalyzerBase : public edm::EDConsumerBase { //This needs access to the parentage cache info friend class EDAnalyzerAdaptorBase; public: typedef EDAnalyzerAdaptorBase ModuleType; EDAnalyzerBase(); EDAnalyzerBase(const EDAnalyzerBase&) = delete; // stop default const EDAnalyzerBase& operator=(const EDAnalyzerBase&) = delete; // stop default ~EDAnalyzerBase() override; static void fillDescriptions(ConfigurationDescriptions& descriptions); static void prevalidate(ConfigurationDescriptions& descriptions); static const std::string& baseType(); // Warning: the returned moduleDescription will be invalid during construction ModuleDescription const& moduleDescription() const { return *moduleDescriptionPtr_; } void callWhenNewProductsRegistered(std::function<void(ProductDescription const&)> const& func); private: void registerProductsAndCallbacks(EDAnalyzerBase const*, SignallingProductRegistryFiller* reg); virtual void beginStream(StreamID) {} virtual void analyze(Event const&, EventSetup const&) = 0; virtual void endStream() {} void setModuleDescriptionPtr(ModuleDescription const* iDesc) { moduleDescriptionPtr_ = iDesc; } // ---------- member data -------------------------------- std::function<void(ProductDescription const&)> callWhenNewProductsRegistered_; ModuleDescription const* moduleDescriptionPtr_; }; } // namespace stream } // namespace edm #endif