Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
// -*- C++ -*-
//
// Package:     FWCore/Framework
// Class  :     edm::stream::EDAnalyzerBase
//
// Implementation:
//     [Notes on implementation]
//
// Original Author:  Chris Jones
//         Created:  Fri, 02 Aug 2013 23:49:57 GMT
//

// system include files

// user include files
#include "FWCore/Framework/interface/stream/EDAnalyzerBase.h"
#include "FWCore/Framework/src/edmodule_mightGet_config.h"
#include "FWCore/Framework/interface/SignallingProductRegistryFiller.h"

#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"

using namespace edm::stream;
//
// constants, enums and typedefs
//

//
// static data member definitions
//

//
// constructors and destructor
//
EDAnalyzerBase::EDAnalyzerBase() : moduleDescriptionPtr_(nullptr) {}

// EDAnalyzerBase::EDAnalyzerBase(const EDAnalyzerBase& rhs)
// {
//    // do actual copying here;
// }

EDAnalyzerBase::~EDAnalyzerBase() {}

//
// assignment operators
//
// const EDAnalyzerBase& EDAnalyzerBase::operator=(const EDAnalyzerBase& rhs)
// {
//   //An exception safe implementation is
//   EDAnalyzerBase temp(rhs);
//   swap(rhs);
//
//   return *this;
// }

//
// member functions
//
void EDAnalyzerBase::callWhenNewProductsRegistered(std::function<void(ProductDescription const&)> const& func) {
  callWhenNewProductsRegistered_ = func;
}

void EDAnalyzerBase::registerProductsAndCallbacks(EDAnalyzerBase const*, SignallingProductRegistryFiller* reg) {
  if (callWhenNewProductsRegistered_) {
    reg->callForEachBranch(callWhenNewProductsRegistered_);
    reg->watchProductAdditions(callWhenNewProductsRegistered_);
  }
}

//
// const member functions
//

//
// static member functions
//
void EDAnalyzerBase::fillDescriptions(ConfigurationDescriptions& descriptions) {
  ParameterSetDescription desc;
  desc.setUnknown();
  descriptions.addDefault(desc);
}

void EDAnalyzerBase::prevalidate(ConfigurationDescriptions& iConfig) { edmodule_mightGet_config(iConfig); }

static const std::string kBaseType("EDAnalyzer");

const std::string& EDAnalyzerBase::baseType() { return kBaseType; }