Go to the documentation of this file. 1 #ifndef FWCore_Framework_stream_ProducingModuleAdaptorBase_h
2 #define FWCore_Framework_stream_ProducingModuleAdaptorBase_h
25 #include <unordered_map>
47 class ModuleCallingContext;
48 class ModuleProcessName;
49 class ProductResolverIndexHelper;
51 class PreallocationConfiguration;
52 class ProductResolverIndexAndSkipBit;
53 class ThinnedAssociationsHelper;
60 namespace eventsetup {
66 class ProducingModuleAdaptorBase {
107 std::vector<ModuleProcessName>& modulesInPreviousProcesses,
109 std::map<std::string, ModuleDescription const*>
const& labelsToDesc,
117 std::unordered_multimap<std::string, std::tuple<edm::TypeID const*, const char*, edm::ProductResolverIndex>>;
126 template <
typename F>
139 template <
typename I>
virtual void streamEndRunSummary(T *, edm::Run const &, edm::EventSetup const &)=0
virtual void setupRun(T *, RunIndex)=0
void resolvePutIndicies(BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
virtual void streamEndLuminosityBlockSummary(T *, edm::LuminosityBlock const &, edm::EventSetup const &)=0
void itemsMayGet(BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
void modulesWhoseProductsAreConsumed(std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modules, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
void registerProductsAndCallbacks(ProducingModuleAdaptorBase const *, ProductRegistry *reg)
void doStreamBeginRun(StreamID, RunTransitionInfo const &, ModuleCallingContext const *)
void itemsToGet(BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
virtual ~ProducingModuleAdaptorBase()
void commit_(std::vector< edm::ProductResolverIndex > const &iShouldPut)
virtual bool wantsInputProcessBlocks() const =0
ProducingModuleAdaptorBase()
ModuleDescription moduleDescription_
void updateLookup(BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
std::vector< T * > m_streamModules
virtual void doEndJob()=0
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts(BranchType iBranchType) const
void doRespondToCloseInputFile(FileBlock const &fb)
void createStreamModules(F iFunc)
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
virtual void doEndProcessBlock(ProcessBlockPrincipal const &, ModuleCallingContext const *)=0
virtual bool wantsGlobalLuminosityBlocks() const =0
const std::complex< double > I
void commit_(std::vector< edm::ProductResolverIndex > const &iShouldPut)
virtual void doAccessInputProcessBlock(ProcessBlockPrincipal const &, ModuleCallingContext const *)=0
virtual bool hasAccumulator() const =0
const EDConsumerBase * consumer()
virtual bool wantsProcessBlocks() const =0
void doPreallocate(PreallocationConfiguration const &)
virtual void preallocLumis(unsigned int)
virtual void doEndLuminosityBlock(LumiTransitionInfo const &, ModuleCallingContext const *)=0
virtual bool wantsGlobalRuns() const =0
virtual bool hasAcquire() const =0
virtual void setupStreamModules()=0
const ProducerBase * producer()
virtual void doEndRun(RunTransitionInfo const &, ModuleCallingContext const *)=0
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector(edm::Transition iTrans) const
void doStreamEndRun(StreamID, RunTransitionInfo const &, ModuleCallingContext const *)
void commit(LuminosityBlock &iLumi)
void commit_(std::vector< edm::ProductResolverIndex > const &iShouldPut)
virtual void setupLuminosityBlock(T *, LuminosityBlockIndex)=0
std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > > ModuleToResolverIndicies
std::vector< ESProxyIndex > const & esGetTokenIndicesVector(edm::Transition iTrans) const
bool wantsStreamRuns() const
void doRegisterThinnedAssociations(ProductRegistry const &, ThinnedAssociationsHelper &)
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom(BranchType) const
void setModuleDescription(ModuleDescription const &md)
bool wantsStreamLuminosityBlocks() const
void doStreamEndLuminosityBlock(StreamID, LumiTransitionInfo const &, ModuleCallingContext const *)
void doStreamBeginLuminosityBlock(StreamID, LumiTransitionInfo const &, ModuleCallingContext const *)
void commit(Event &iEvent, I *iID)
virtual void doBeginRun(RunTransitionInfo const &, ModuleCallingContext const *)=0
void doEndStream(StreamID)
std::vector< ConsumesInfo > consumesInfo() const
const ModuleDescription & moduleDescription() const
void doBeginStream(StreamID)
virtual void doBeginLuminosityBlock(LumiTransitionInfo const &, ModuleCallingContext const *)=0
virtual void doBeginProcessBlock(ProcessBlockPrincipal const &, ModuleCallingContext const *)=0
void doRespondToOpenInputFile(FileBlock const &fb)
void commit(ProcessBlock &iProcessBlock)
const ProducingModuleAdaptorBase & operator=(const ProducingModuleAdaptorBase &)=delete
void convertCurrentProcessAlias(std::string const &processName)
virtual void doBeginJob()=0