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::ProductResolverIndexAndSkipBit>
const&
103 assert(not m_streamModules.empty());
104 return m_streamModules[0]->itemsToGetFrom(iType);
107 template<
typename T>
111 std::map<std::string, ModuleDescription const*>
const& labelsToDesc,
113 assert(not m_streamModules.empty());
114 return m_streamModules[0]->modulesWhoseProductsAreConsumed(modules, preg, labelsToDesc, processName);
117 template<
typename T>
120 for(
auto mod: m_streamModules) {
121 mod->convertCurrentProcessAlias(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 bool iPrefetchMayGet) {
137 for(
auto mod: m_streamModules) {
138 mod->updateLookup(iType,iHelper,iPrefetchMayGet);
142 template<
typename T>
145 std::unordered_multimap<std::string, edm::ProductResolverIndex>
const& iIndicies,
147 m_streamModules[0]->resolvePutIndicies(iBranchType,iIndicies,moduleLabel);
151 template<
typename T>
152 std::vector<edm::ProductResolverIndex>
const&
154 return m_streamModules[0]->indiciesForPutProducts(iBranchType);
157 template<
typename T>
163 template<
typename T>
166 m_streamModules[
id]->beginStream(
id);
168 template<
typename T>
171 m_streamModules[
id]->endStream();
174 template<
typename T>
181 auto mod = m_streamModules[
id];
184 Run r(rp, moduleDescription_, mcc);
189 template<
typename T>
196 auto mod = m_streamModules[
id];
197 Run r(rp, moduleDescription_, mcc);
200 streamEndRunSummary(
mod,r,c);
203 template<
typename T>
209 auto mod = m_streamModules[
id];
210 setupLuminosityBlock(
mod,lbp.
index());
214 mod->beginLuminosityBlock(lb, c);
217 template<
typename T>
224 auto mod = m_streamModules[
id];
227 mod->endLuminosityBlock(lb, c);
228 streamEndLuminosityBlockSummary(
mod,lb, c);
231 template<
typename T>
234 template<
typename T>
237 template<
typename T>
240 for(
auto m: m_streamModules) {
241 m->preForkReleaseResources();
244 template<
typename T>
247 for(
auto m: m_streamModules) {
248 m->postForkReacquireResources(iChildIndex,iNumberOfChildren);
252 template<
typename T>
256 assert(not m_streamModules.empty());
257 auto mod = m_streamModules[0];
258 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 resolvePutIndicies(BranchType iBranchType, std::unordered_multimap< std::string, edm::ProductResolverIndex > const &iIndicies, std::string const &moduleLabel)
void doRespondToOpenInputFile(FileBlock const &fb)
void itemsToGet(BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
LuminosityBlockIndex index() const
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom(BranchType) const
void doPreallocate(PreallocationConfiguration const &)
void doPreForkReleaseResources()
std::vector< ConsumesInfo > consumesInfo() const
void doStreamEndLuminosityBlock(StreamID id, LuminosityBlockPrincipal const &ep, EventSetup const &c, ModuleCallingContext const *)
virtual ~ProducingModuleAdaptorBase()
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts(BranchType iBranchType) const
void registerProductsAndCallbacks(ProducingModuleAdaptorBase const *, ProductRegistry *reg)
void doEndStream(StreamID id)
void updateLookup(BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
ProducingModuleAdaptorBase()
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::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those callbacks
void doStreamEndRun(StreamID id, RunPrincipal const &ep, EventSetup const &c, ModuleCallingContext const *)
void doBeginStream(StreamID id)
void convertCurrentProcessAlias(std::string const &processName)
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
void doRespondToCloseInputFile(FileBlock const &fb)
void itemsMayGet(BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
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)