45 for (
auto m : m_streamModules) {
52 for (
auto m : m_streamModules) {
55 m_streamModules.clear();
64 m_streamModules.resize(iPrealloc.
numberOfStreams(),
static_cast<T*
>(
nullptr));
72 auto firstMod = m_streamModules[0];
73 if (firstMod->registrationCallback() and m_streamModules.size() > 1) {
76 std::vector<std::function<void(BranchDescription const&)>>
callbacks;
77 callbacks.reserve(m_streamModules.size());
79 for (
auto mod : m_streamModules) {
90 firstMod->registerProducts(firstMod, reg, moduleDescription_);
95 std::vector<ProductResolverIndexAndSkipBit>& iIndices)
const {
96 assert(not m_streamModules.empty());
97 m_streamModules[0]->itemsToGet(iType, iIndices);
100 template <
typename T>
102 std::vector<ProductResolverIndexAndSkipBit>& iIndices)
const {
103 assert(not m_streamModules.empty());
104 m_streamModules[0]->itemsMayGet(iType, iIndices);
107 template <
typename T>
110 assert(not m_streamModules.empty());
111 return m_streamModules[0]->itemsToGetFrom(iType);
114 template <
typename T>
117 assert(not m_streamModules.empty());
118 return m_streamModules[0]->esGetTokenIndicesVector(iTrans);
121 template <
typename T>
124 assert(not m_streamModules.empty());
125 return m_streamModules[0]->esGetTokenRecordIndicesVector(iTrans);
128 template <
typename T>
131 std::vector<ModuleProcessName>& modulesInPreviousProcesses,
133 std::map<std::string, ModuleDescription const*>
const& labelsToDesc,
135 assert(not m_streamModules.empty());
136 return m_streamModules[0]->modulesWhoseProductsAreConsumed(
140 template <
typename T>
142 for (
auto mod : m_streamModules) {
147 template <
typename T>
149 assert(not m_streamModules.empty());
150 return m_streamModules[0]->consumesInfo();
153 template <
typename T>
156 bool iPrefetchMayGet) {
157 for (
auto mod : m_streamModules) {
158 mod->updateLookup(iType, iHelper, iPrefetchMayGet);
161 template <
typename T>
163 for (
auto mod : m_streamModules) {
164 mod->updateLookup(iPI);
168 template <
typename T>
172 for (
auto mod : m_streamModules) {
177 template <
typename T>
180 return m_streamModules[0]->indiciesForPutProducts(iBranchType);
183 template <
typename T>
185 m_streamModules[
id]->beginStream(
id);
187 template <
typename T>
189 m_streamModules[
id]->endStream();
192 template <
typename T>
197 auto mod = m_streamModules[
id];
200 Run r(rp, moduleDescription_, mcc,
false);
208 template <
typename T>
212 auto mod = m_streamModules[
id];
213 Run r(
info, moduleDescription_, mcc,
true);
219 streamEndRunSummary(
mod,
r,
c);
222 template <
typename T>
227 auto mod = m_streamModules[
id];
228 setupLuminosityBlock(
mod, lbp.
index());
237 mod->beginLuminosityBlock(lb,
c);
240 template <
typename T>
244 auto mod = m_streamModules[
id];
252 mod->endLuminosityBlock(lb,
c);
253 streamEndLuminosityBlockSummary(
mod, lb,
c);
256 template <
typename T>
259 assert(not m_streamModules.empty());
260 auto mod = m_streamModules[0];
261 mod->registerThinnedAssociations(registry,
helper);
void doStreamEndLuminosityBlock(StreamID, LumiTransitionInfo const &, ModuleCallingContext const *)
void setConsumer(EDConsumerBase const *iConsumer)
void doRegisterThinnedAssociations(ProductRegistry const &, ThinnedAssociationsHelper &)
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom(BranchType) const
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector(edm::Transition iTrans) 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
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
void doPreallocate(PreallocationConfiguration const &)
virtual ~ProducingModuleAdaptorBase()
void registerProductsAndCallbacks(ProducingModuleAdaptorBase const *, ProductRegistry *reg)
void doStreamBeginRun(StreamID, RunTransitionInfo const &, ModuleCallingContext const *)
void updateLookup(BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
void itemsToGet(BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
unsigned int numberOfStreams() const
std::vector< ESProxyIndex > const & esGetTokenIndicesVector(edm::Transition iTrans) const
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
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts(BranchType iBranchType) const
void convertCurrentProcessAlias(std::string const &processName)
unsigned int numberOfLuminosityBlocks() const
void resolvePutIndicies(BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
void itemsMayGet(BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
LuminosityBlockIndex index() const
std::vector< ConsumesInfo > consumesInfo() const
void doStreamEndRun(StreamID, RunTransitionInfo const &, ModuleCallingContext const *)
T mod(const T &a, const T &b)
std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > > ModuleToResolverIndicies
void deleteModulesEarly()
void doStreamBeginLuminosityBlock(StreamID, LumiTransitionInfo const &, ModuleCallingContext const *)
void doEndStream(StreamID)
void doBeginStream(StreamID)