Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-03-13 02:31:50

0001 // -*- C++ -*-
0002 //
0003 // Package:     FWCore/Framework
0004 // Class  :     edm::stream::EDAnalyzerBase
0005 //
0006 // Implementation:
0007 //     [Notes on implementation]
0008 //
0009 // Original Author:  Chris Jones
0010 //         Created:  Fri, 02 Aug 2013 23:49:57 GMT
0011 //
0012 
0013 // system include files
0014 
0015 // user include files
0016 #include "FWCore/Framework/interface/stream/EDAnalyzerBase.h"
0017 #include "FWCore/Framework/src/edmodule_mightGet_config.h"
0018 #include "FWCore/Framework/interface/SignallingProductRegistryFiller.h"
0019 
0020 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0021 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0022 
0023 using namespace edm::stream;
0024 //
0025 // constants, enums and typedefs
0026 //
0027 
0028 //
0029 // static data member definitions
0030 //
0031 
0032 //
0033 // constructors and destructor
0034 //
0035 EDAnalyzerBase::EDAnalyzerBase() : moduleDescriptionPtr_(nullptr) {}
0036 
0037 // EDAnalyzerBase::EDAnalyzerBase(const EDAnalyzerBase& rhs)
0038 // {
0039 //    // do actual copying here;
0040 // }
0041 
0042 EDAnalyzerBase::~EDAnalyzerBase() {}
0043 
0044 //
0045 // assignment operators
0046 //
0047 // const EDAnalyzerBase& EDAnalyzerBase::operator=(const EDAnalyzerBase& rhs)
0048 // {
0049 //   //An exception safe implementation is
0050 //   EDAnalyzerBase temp(rhs);
0051 //   swap(rhs);
0052 //
0053 //   return *this;
0054 // }
0055 
0056 //
0057 // member functions
0058 //
0059 void EDAnalyzerBase::callWhenNewProductsRegistered(std::function<void(ProductDescription const&)> const& func) {
0060   callWhenNewProductsRegistered_ = func;
0061 }
0062 
0063 void EDAnalyzerBase::registerProductsAndCallbacks(EDAnalyzerBase const*, SignallingProductRegistryFiller* reg) {
0064   if (callWhenNewProductsRegistered_) {
0065     reg->callForEachBranch(callWhenNewProductsRegistered_);
0066     reg->watchProductAdditions(callWhenNewProductsRegistered_);
0067   }
0068 }
0069 
0070 //
0071 // const member functions
0072 //
0073 
0074 //
0075 // static member functions
0076 //
0077 void EDAnalyzerBase::fillDescriptions(ConfigurationDescriptions& descriptions) {
0078   ParameterSetDescription desc;
0079   desc.setUnknown();
0080   descriptions.addDefault(desc);
0081 }
0082 
0083 void EDAnalyzerBase::prevalidate(ConfigurationDescriptions& iConfig) { edmodule_mightGet_config(iConfig); }
0084 
0085 static const std::string kBaseType("EDAnalyzer");
0086 
0087 const std::string& EDAnalyzerBase::baseType() { return kBaseType; }