45 for(
auto m: m_streamModules) {
58 static_cast<T*
>(
nullptr));
65 auto firstMod = m_streamModules[0];
66 if(firstMod->registrationCallback() and m_streamModules.size()>1) {
69 std::vector<std::function<void(BranchDescription const&)>>
callbacks;
70 callbacks.reserve(m_streamModules.size());
72 for(
auto mod: m_streamModules) {
73 callbacks.push_back(
mod->registrationCallback());
77 firstMod->callWhenNewProductsRegistered([callbacks](
BranchDescription const& iBD) {
78 for(
auto c: callbacks) {
83 firstMod->registerProducts(firstMod,reg,moduleDescription_);
89 assert(not m_streamModules.empty());
90 m_streamModules[0]->itemsToGet(iType,iIndices);
96 assert(not m_streamModules.empty());
97 m_streamModules[0]->itemsMayGet(iType,iIndices);
101 std::vector<edm::ProductHolderIndexAndSkipBit>
const&
103 assert(not m_streamModules.empty());
104 return m_streamModules[0]->itemsToGetFromEvent();
107 template<
typename T>
110 std::vector<const char*>& oModuleLabels)
const {
111 assert(not m_streamModules.empty());
112 return m_streamModules[0]->modulesDependentUpon(iProcessName, oModuleLabels);
115 template<
typename T>
119 std::map<std::string, ModuleDescription const*>
const& labelsToDesc,
121 assert(not m_streamModules.empty());
122 return m_streamModules[0]->modulesWhoseProductsAreConsumed(modules, preg, labelsToDesc, processName);
125 template<
typename T>
126 std::vector<edm::ConsumesInfo>
128 assert(not m_streamModules.empty());
129 return m_streamModules[0]->consumesInfo();
132 template<
typename T>
136 for(
auto mod: m_streamModules) {
137 mod->updateLookup(iType,iHelper);
141 template<
typename T>
147 template<
typename T>
150 m_streamModules[id]->beginStream(
id);
152 template<
typename T>
155 m_streamModules[id]->endStream();
158 template<
typename T>
165 auto mod = m_streamModules[id];
168 Run r(rp, moduleDescription_, mcc);
173 template<
typename T>
180 auto mod = m_streamModules[id];
181 Run r(rp, moduleDescription_, mcc);
184 streamEndRunSummary(
mod,r,c);
187 template<
typename T>
193 auto mod = m_streamModules[id];
194 setupLuminosityBlock(
mod,lbp.
index());
198 mod->beginLuminosityBlock(lb, c);
201 template<
typename T>
208 auto mod = m_streamModules[id];
211 mod->endLuminosityBlock(lb, c);
212 streamEndLuminosityBlockSummary(
mod,lb, c);
215 template<
typename T>
218 template<
typename T>
221 template<
typename T>
224 for(
auto m: m_streamModules) {
225 m->preForkReleaseResources();
228 template<
typename T>
231 for(
auto m: m_streamModules) {
232 m->postForkReacquireResources(iChildIndex,iNumberOfChildren);
236 template<
typename T>
240 assert(not m_streamModules.empty());
241 auto mod = m_streamModules[0];
242 mod->registerThinnedAssociations(registry, helper);
void setConsumer(EDConsumerBase const *iConsumer)
void doRegisterThinnedAssociations(ProductRegistry const &, ThinnedAssociationsHelper &)
void doStreamEndRun(StreamID id, RunPrincipal &ep, EventSetup const &c, ModuleCallingContext const *)
void doRespondToOpenInputFile(FileBlock const &fb)
LuminosityBlockIndex index() const
void doPreallocate(PreallocationConfiguration const &)
void doPreForkReleaseResources()
void doStreamBeginLuminosityBlock(StreamID id, LuminosityBlockPrincipal &ep, EventSetup const &c, ModuleCallingContext const *)
std::vector< ConsumesInfo > consumesInfo() const
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those callbacks
virtual ~ProducingModuleAdaptorBase()
void itemsToGet(BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
void registerProductsAndCallbacks(ProducingModuleAdaptorBase const *, ProductRegistry *reg)
void doEndStream(StreamID id)
void doStreamEndLuminosityBlock(StreamID id, LuminosityBlockPrincipal &ep, EventSetup const &c, ModuleCallingContext const *)
ProducingModuleAdaptorBase()
void doBeginStream(StreamID id)
void itemsMayGet(BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
void updateLookup(BranchType iBranchType, ProductHolderIndexHelper const &)
void modulesWhoseProductsAreConsumed(std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
unsigned int numberOfStreams() const
std::vector< ProductHolderIndexAndSkipBit > const & itemsToGetFromEvent() const
void doRespondToCloseInputFile(FileBlock const &fb)
void doStreamBeginRun(StreamID id, RunPrincipal &ep, EventSetup const &c, ModuleCallingContext const *)
T mod(const T &a, const T &b)
void setConsumer(EDConsumerBase const *iConsumer)
void modulesDependentUpon(const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
void doPostForkReacquireResources(unsigned int iChildIndex, unsigned int iNumberOfChildren)