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>
112 std::vector<char const*>& oModuleLabels)
const {
113 assert(not m_streamModules.empty());
114 return m_streamModules[0]->modulesDependentUpon(iProcessName, iModuleLabel, iPrint, oModuleLabels);
117 template<
typename T>
121 std::map<std::string, ModuleDescription const*>
const& labelsToDesc,
123 assert(not m_streamModules.empty());
124 return m_streamModules[0]->modulesWhoseProductsAreConsumed(modules, preg, labelsToDesc, processName);
127 template<
typename T>
128 std::vector<edm::ConsumesInfo>
130 assert(not m_streamModules.empty());
131 return m_streamModules[0]->consumesInfo();
134 template<
typename T>
138 for(
auto mod: m_streamModules) {
139 mod->updateLookup(iType,iHelper);
143 template<
typename T>
149 template<
typename T>
152 m_streamModules[id]->beginStream(
id);
154 template<
typename T>
157 m_streamModules[id]->endStream();
160 template<
typename T>
167 auto mod = m_streamModules[id];
170 Run r(rp, moduleDescription_, mcc);
175 template<
typename T>
182 auto mod = m_streamModules[id];
183 Run r(rp, moduleDescription_, mcc);
186 streamEndRunSummary(
mod,r,c);
189 template<
typename T>
195 auto mod = m_streamModules[id];
196 setupLuminosityBlock(
mod,lbp.
index());
200 mod->beginLuminosityBlock(lb, c);
203 template<
typename T>
210 auto mod = m_streamModules[id];
213 mod->endLuminosityBlock(lb, c);
214 streamEndLuminosityBlockSummary(
mod,lb, c);
217 template<
typename T>
220 template<
typename T>
223 template<
typename T>
226 for(
auto m: m_streamModules) {
227 m->preForkReleaseResources();
230 template<
typename T>
233 for(
auto m: m_streamModules) {
234 m->postForkReacquireResources(iChildIndex,iNumberOfChildren);
238 template<
typename T>
242 assert(not m_streamModules.empty());
243 auto mod = m_streamModules[0];
244 mod->registerThinnedAssociations(registry, helper);
void doStreamBeginRun(StreamID id, RunPrincipal const &ep, EventSetup const &c, ModuleCallingContext const *)
void setConsumer(EDConsumerBase const *iConsumer)
void doRegisterThinnedAssociations(ProductRegistry const &, ThinnedAssociationsHelper &)
void doRespondToOpenInputFile(FileBlock const &fb)
LuminosityBlockIndex index() const
void modulesDependentUpon(std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
void doPreallocate(PreallocationConfiguration const &)
void doPreForkReleaseResources()
std::vector< ConsumesInfo > consumesInfo() const
void doStreamEndLuminosityBlock(StreamID id, LuminosityBlockPrincipal const &ep, EventSetup const &c, ModuleCallingContext 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)
ProducingModuleAdaptorBase()
void doStreamEndRun(StreamID id, RunPrincipal const &ep, EventSetup const &c, ModuleCallingContext const *)
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)
T mod(const T &a, const T &b)
void setConsumer(EDConsumerBase const *iConsumer)
void doStreamBeginLuminosityBlock(StreamID id, LuminosityBlockPrincipal const &ep, EventSetup const &c, ModuleCallingContext const *)
void doPostForkReacquireResources(unsigned int iChildIndex, unsigned int iNumberOfChildren)