CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends
edm::ProcessBlock Class Reference

#include <ProcessBlock.h>

Public Types

using CacheIdentifier_t = unsigned long
 

Public Member Functions

CacheIdentifier_t cacheIdentifier () const
 
template<typename PROD , typename... Args>
void emplace (EDPutTokenT< PROD > token, Args &&... args)
 
template<typename PROD , typename... Args>
void emplace (EDPutToken token, Args &&... args)
 
template<typename PROD >
PROD const & get (EDGetTokenT< PROD > token) const noexcept(false)
 
template<typename PROD >
bool getByToken (EDGetToken token, Handle< PROD > &result) const
 
template<typename PROD >
bool getByToken (EDGetTokenT< PROD > token, Handle< PROD > &result) const
 
template<typename PROD >
Handle< PRODgetHandle (EDGetTokenT< PROD > token) const
 
ModuleCallingContext const * moduleCallingContext () const
 
 ProcessBlock (ProcessBlockPrincipal const &, ModuleDescription const &, ModuleCallingContext const *, bool isAtEnd)
 
std::string const & processName () const
 
template<typename PROD >
void put (EDPutTokenT< PROD > token, std::unique_ptr< PROD > product)
 
template<typename PROD >
void put (EDPutToken token, std::unique_ptr< PROD > product)
 
void setConsumer (EDConsumerBase const *iConsumer)
 
void setProducer (ProducerBase const *iProducer)
 

Private Types

using ProductPtrVec = std::vector< edm::propagate_const< std::unique_ptr< WrapperBase > >>
 

Private Member Functions

void commit_ (std::vector< edm::ProductResolverIndex > const &iShouldPut)
 
template<typename PROD , typename... Args>
void emplaceImpl (EDPutToken::value_type token, Args &&... args)
 
ProcessBlockPrincipal const & processBlockPrincipal () const
 
template<typename PROD >
void putImpl (EDPutToken::value_type token, std::unique_ptr< PROD > product)
 
ProductPtrVecputProducts ()
 
ProductPtrVec const & putProducts () const
 

Private Attributes

ModuleCallingContext const * moduleCallingContext_
 
PrincipalGetAdapter provRecorder_
 
ProductPtrVec putProducts_
 

Friends

class ProducerBase
 
template<typename T >
class stream::ProducingModuleAdaptorBase
 

Detailed Description

Author
W. David Dagenhart, created 19 March, 2020

Definition at line 36 of file ProcessBlock.h.

Member Typedef Documentation

◆ CacheIdentifier_t

using edm::ProcessBlock::CacheIdentifier_t = unsigned long

If you are caching data from the ProcessBlock, you should also keep this number. If this number changes then you know that the data you have cached is invalid. The value of '0' will never be returned so you can use that to denote that you have not yet checked the value.

Definition at line 63 of file ProcessBlock.h.

◆ ProductPtrVec

using edm::ProcessBlock::ProductPtrVec = std::vector<edm::propagate_const<std::unique_ptr<WrapperBase> >>
private

Definition at line 97 of file ProcessBlock.h.

Constructor & Destructor Documentation

◆ ProcessBlock()

edm::ProcessBlock::ProcessBlock ( ProcessBlockPrincipal const &  pbp,
ModuleDescription const &  md,
ModuleCallingContext const *  moduleCallingContext,
bool  isAtEnd 
)

Definition at line 7 of file ProcessBlock.cc.

ModuleCallingContext const * moduleCallingContext() const
Definition: ProcessBlock.h:78
ModuleCallingContext const * moduleCallingContext_
Definition: ProcessBlock.h:103
PrincipalGetAdapter provRecorder_
Definition: ProcessBlock.h:101

Member Function Documentation

◆ cacheIdentifier()

ProcessBlock::CacheIdentifier_t edm::ProcessBlock::cacheIdentifier ( ) const

Definition at line 19 of file ProcessBlock.cc.

References edm::Principal::cacheIdentifier(), and processBlockPrincipal().

19  {
21  }
ProcessBlockPrincipal const & processBlockPrincipal() const
Definition: ProcessBlock.cc:25
CacheIdentifier_t cacheIdentifier() const
Definition: Principal.h:179

◆ commit_()

void edm::ProcessBlock::commit_ ( std::vector< edm::ProductResolverIndex > const &  iShouldPut)
private

Definition at line 29 of file ProcessBlock.cc.

References Options::const, edm::get_underlying_safe(), edm::Principal::getProductResolverByIndex(), mps_fire::i, edm::isEndTransition(), eostools::move(), edm::PrincipalGetAdapter::principal(), processBlockPrincipal(), provRecorder_, edm::ProcessBlockPrincipal::put(), putProducts(), edm::PrincipalGetAdapter::putTokenIndexToProductResolverIndex(), and edm::PrincipalGetAdapter::transition().

Referenced by edm::stream::ProducingModuleAdaptorBase< EDProducerBase >::commit().

29  {
30  ProcessBlockPrincipal const& pbp = processBlockPrincipal();
31  size_t nPut = 0;
32  for (size_t i = 0; i < putProducts().size(); ++i) {
33  auto& product = get_underlying_safe(putProducts()[i]);
34  if (product) {
36  ++nPut;
37  }
38  }
39 
40  auto sz = iShouldPut.size();
41  if (sz != 0 and sz != nPut) {
42  //some were missed
43  auto& principal = provRecorder_.principal();
44  for (auto index : iShouldPut) {
45  auto resolver = principal.getProductResolverByIndex(index);
46  if (not resolver->productResolved() and isEndTransition(provRecorder_.transition()) ==
47  resolver->branchDescription().availableOnlyAtEndTransition()) {
48  dynamic_cast<ProductPutterBase const*>(resolver)->putProduct(std::unique_ptr<WrapperBase>());
49  }
50  }
51  }
52 
53  // the cleanup is all or none
54  putProducts().clear();
55  }
ProcessBlockPrincipal const & processBlockPrincipal() const
Definition: ProcessBlock.cc:25
constexpr std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
ProductPtrVec & putProducts()
Definition: ProcessBlock.h:98
ConstProductResolverPtr getProductResolverByIndex(ProductResolverIndex const &oid) const noexcept
Definition: Principal.cc:566
constexpr bool isEndTransition(Transition iValue)
Definition: Transition.h:37
PrincipalGetAdapter provRecorder_
Definition: ProcessBlock.h:101
Principal const & principal() const
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex() const
def move(src, dest)
Definition: eostools.py:511

◆ emplace() [1/2]

template<typename PROD , typename... Args>
void edm::ProcessBlock::emplace ( EDPutTokenT< PROD token,
Args &&...  args 
)

Definition at line 171 of file ProcessBlock.h.

References writedatasetfile::args, PROD, edm::principal_get_adapter_detail::throwOnPutOfUninitializedToken(), unpackBuffers-CaloStage2::token, and UNLIKELY.

Referenced by AlignmentProducerAsAnalyzer::endProcessBlockProduce().

171  {
172  if (UNLIKELY(token.isUninitialized())) {
174  }
175  emplaceImpl<PROD>(token.index(), std::forward<Args>(args)...);
176  }
void throwOnPutOfUninitializedToken(char const *principalType, std::type_info const &productType)
#define PROD(A, B)
#define UNLIKELY(x)
Definition: Likely.h:21

◆ emplace() [2/2]

template<typename PROD , typename... Args>
void edm::ProcessBlock::emplace ( EDPutToken  token,
Args &&...  args 
)

Definition at line 179 of file ProcessBlock.h.

References writedatasetfile::args, edm::PrincipalGetAdapter::getTypeIDForPutTokenIndex(), PROD, provRecorder_, edm::principal_get_adapter_detail::throwOnPutOfUninitializedToken(), edm::principal_get_adapter_detail::throwOnPutOfWrongType(), unpackBuffers-CaloStage2::token, and UNLIKELY.

179  {
180  if (UNLIKELY(token.isUninitialized())) {
182  }
183  if (UNLIKELY(provRecorder_.getTypeIDForPutTokenIndex(token.index()) != TypeID{typeid(PROD)})) {
186  }
187  emplaceImpl<PROD>(token.index(), std::forward<Args>(args)...);
188  }
void throwOnPutOfUninitializedToken(char const *principalType, std::type_info const &productType)
PrincipalGetAdapter provRecorder_
Definition: ProcessBlock.h:101
void throwOnPutOfWrongType(std::type_info const &wrongType, TypeID const &rightType)
#define PROD(A, B)
#define UNLIKELY(x)
Definition: Likely.h:21
TypeID const & getTypeIDForPutTokenIndex(EDPutToken::value_type index) const

◆ emplaceImpl()

template<typename PROD , typename... Args>
void edm::ProcessBlock::emplaceImpl ( EDPutToken::value_type  token,
Args &&...  args 
)
private

Definition at line 203 of file ProcessBlock.h.

References writedatasetfile::args, cms::cuda::assert(), edm::detail::do_post_insert_if_available(), eostools::move(), putProducts(), findQualityFiles::size, and l1tPFClustersFromHGC3DClusters_cfi::wp.

203  {
204  assert(index < putProducts().size());
205 
206  std::unique_ptr<Wrapper<PROD>> wp(new Wrapper<PROD>(WrapperBase::Emplace{}, std::forward<Args>(args)...));
207 
208  // The following will call post_insert if T has such a function,
209  // and do nothing if T has no such function.
210  detail::do_post_insert_if_available(wp->bareProduct());
211 
213  }
size
Write out results.
ProductPtrVec & putProducts()
Definition: ProcessBlock.h:98
assert(be >=bs)
void do_post_insert_if_available(T &iProduct)
def move(src, dest)
Definition: eostools.py:511

◆ get()

template<typename PROD >
PROD const & edm::ProcessBlock::get ( EDGetTokenT< PROD token) const
noexcept

Definition at line 135 of file ProcessBlock.h.

References eostools::move(), PROD, edm::PRODUCT_TYPE, and unpackBuffers-CaloStage2::token.

Referenced by Options.Options::__getitem__(), betterConfigParser.BetterConfigParser::__updateDict(), submitPVValidationJobs.BetterConfigParser::__updateDict(), edmtest::TestFindProduct::accessInputProcessBlock(), edmtest::TestFindProduct::beginProcessBlock(), rrapi.RRApi::columns(), rrapi.RRApi::count(), rrapi.RRApi::data(), edmtest::TestFindProduct::endProcessBlock(), betterConfigParser.BetterConfigParser::getCompares(), betterConfigParser.BetterConfigParser::getGeneral(), betterConfigParser.BetterConfigParser::getResultingSection(), submitPVValidationJobs.BetterConfigParser::getResultingSection(), rrapi.RRApi::report(), rrapi.RRApi::reports(), rrapi.RRApi::tables(), rrapi.RRApi::tags(), rrapi.RRApi::templates(), and rrapi.RRApi::workspaces().

135  {
136  BasicHandle bh = provRecorder_.getByToken_(TypeID(typeid(PROD)), PRODUCT_TYPE, token, moduleCallingContext_);
137  return *convert_handle<PROD>(std::move(bh));
138  }
ModuleCallingContext const * moduleCallingContext_
Definition: ProcessBlock.h:103
BasicHandle getByToken_(TypeID const &id, KindOfType kindOfType, EDGetToken token, ModuleCallingContext const *mcc) const
PrincipalGetAdapter provRecorder_
Definition: ProcessBlock.h:101
#define PROD(A, B)
def move(src, dest)
Definition: eostools.py:511

◆ getByToken() [1/2]

template<typename PROD >
bool edm::ProcessBlock::getByToken ( EDGetToken  token,
Handle< PROD > &  result 
) const

Definition at line 107 of file ProcessBlock.h.

References edm::PrincipalGetAdapter::getByToken_(), moduleCallingContext_, eostools::move(), PROD, edm::PRODUCT_TYPE, provRecorder_, mps_fire::result, and unpackBuffers-CaloStage2::token.

Referenced by edmtest::TestFindProduct::endProcessBlock().

107  {
108  result.clear();
109  BasicHandle bh = provRecorder_.getByToken_(TypeID(typeid(PROD)), PRODUCT_TYPE, token, moduleCallingContext_);
110  result = convert_handle<PROD>(std::move(bh)); // throws on conversion error
111  if (result.failedToGet()) {
112  return false;
113  }
114  return true;
115  }
ModuleCallingContext const * moduleCallingContext_
Definition: ProcessBlock.h:103
BasicHandle getByToken_(TypeID const &id, KindOfType kindOfType, EDGetToken token, ModuleCallingContext const *mcc) const
PrincipalGetAdapter provRecorder_
Definition: ProcessBlock.h:101
#define PROD(A, B)
def move(src, dest)
Definition: eostools.py:511

◆ getByToken() [2/2]

template<typename PROD >
bool edm::ProcessBlock::getByToken ( EDGetTokenT< PROD token,
Handle< PROD > &  result 
) const

Definition at line 118 of file ProcessBlock.h.

References edm::PrincipalGetAdapter::getByToken_(), moduleCallingContext_, eostools::move(), PROD, edm::PRODUCT_TYPE, provRecorder_, mps_fire::result, and unpackBuffers-CaloStage2::token.

118  {
119  result.clear();
120  BasicHandle bh = provRecorder_.getByToken_(TypeID(typeid(PROD)), PRODUCT_TYPE, token, moduleCallingContext_);
121  result = convert_handle<PROD>(std::move(bh)); // throws on conversion error
122  if (result.failedToGet()) {
123  return false;
124  }
125  return true;
126  }
ModuleCallingContext const * moduleCallingContext_
Definition: ProcessBlock.h:103
BasicHandle getByToken_(TypeID const &id, KindOfType kindOfType, EDGetToken token, ModuleCallingContext const *mcc) const
PrincipalGetAdapter provRecorder_
Definition: ProcessBlock.h:101
#define PROD(A, B)
def move(src, dest)
Definition: eostools.py:511

◆ getHandle()

template<typename PROD >
Handle< PROD > edm::ProcessBlock::getHandle ( EDGetTokenT< PROD token) const

Definition at line 129 of file ProcessBlock.h.

References edm::PrincipalGetAdapter::getByToken_(), moduleCallingContext_, eostools::move(), PROD, edm::PRODUCT_TYPE, provRecorder_, and unpackBuffers-CaloStage2::token.

Referenced by edmtest::TestFindProduct::endProcessBlock().

129  {
130  BasicHandle bh = provRecorder_.getByToken_(TypeID(typeid(PROD)), PRODUCT_TYPE, token, moduleCallingContext_);
131  return convert_handle<PROD>(std::move(bh));
132  }
ModuleCallingContext const * moduleCallingContext_
Definition: ProcessBlock.h:103
BasicHandle getByToken_(TypeID const &id, KindOfType kindOfType, EDGetToken token, ModuleCallingContext const *mcc) const
PrincipalGetAdapter provRecorder_
Definition: ProcessBlock.h:101
#define PROD(A, B)
def move(src, dest)
Definition: eostools.py:511

◆ moduleCallingContext()

ModuleCallingContext const* edm::ProcessBlock::moduleCallingContext ( ) const
inline

Definition at line 78 of file ProcessBlock.h.

References moduleCallingContext_.

78 { return moduleCallingContext_; }
ModuleCallingContext const * moduleCallingContext_
Definition: ProcessBlock.h:103

◆ processBlockPrincipal()

ProcessBlockPrincipal const & edm::ProcessBlock::processBlockPrincipal ( ) const
private

Definition at line 25 of file ProcessBlock.cc.

References Options::const, edm::PrincipalGetAdapter::principal(), and provRecorder_.

Referenced by cacheIdentifier(), commit_(), and processName().

25  {
26  return dynamic_cast<ProcessBlockPrincipal const&>(provRecorder_.principal());
27  }
PrincipalGetAdapter provRecorder_
Definition: ProcessBlock.h:101
Principal const & principal() const

◆ processName()

std::string const & edm::ProcessBlock::processName ( ) const

Definition at line 23 of file ProcessBlock.cc.

References processBlockPrincipal(), and edm::ProcessBlockPrincipal::processName().

23 { return processBlockPrincipal().processName(); }
ProcessBlockPrincipal const & processBlockPrincipal() const
Definition: ProcessBlock.cc:25
std::string const & processName() const

◆ put() [1/2]

template<typename PROD >
void edm::ProcessBlock::put ( EDPutTokenT< PROD token,
std::unique_ptr< PROD product 
)

Definition at line 141 of file ProcessBlock.h.

References eostools::move(), PROD, edm::PrincipalGetAdapter::productInstanceLabel(), provRecorder_, putImpl(), edm::principal_get_adapter_detail::throwOnPutOfNullProduct(), edm::principal_get_adapter_detail::throwOnPutOfUninitializedToken(), unpackBuffers-CaloStage2::token, and UNLIKELY.

141  {
142  if (UNLIKELY(product.get() == 0)) { // null pointer is illegal
143  TypeID typeID(typeid(PROD));
145  "ProcessBlock", typeID, provRecorder_.productInstanceLabel(token));
146  }
147  if (UNLIKELY(token.isUninitialized())) {
149  }
150  putImpl(token.index(), std::move(product));
151  }
void throwOnPutOfUninitializedToken(char const *principalType, std::type_info const &productType)
void putImpl(EDPutToken::value_type token, std::unique_ptr< PROD > product)
Definition: ProcessBlock.h:191
std::string const & productInstanceLabel(EDPutToken) const
PrincipalGetAdapter provRecorder_
Definition: ProcessBlock.h:101
#define PROD(A, B)
#define UNLIKELY(x)
Definition: Likely.h:21
void throwOnPutOfNullProduct(char const *principalType, TypeID const &productType, std::string const &productInstanceName)
def move(src, dest)
Definition: eostools.py:511

◆ put() [2/2]

template<typename PROD >
void edm::ProcessBlock::put ( EDPutToken  token,
std::unique_ptr< PROD product 
)

Definition at line 154 of file ProcessBlock.h.

References edm::PrincipalGetAdapter::getTypeIDForPutTokenIndex(), eostools::move(), PROD, edm::PrincipalGetAdapter::productInstanceLabel(), provRecorder_, putImpl(), edm::principal_get_adapter_detail::throwOnPutOfNullProduct(), edm::principal_get_adapter_detail::throwOnPutOfUninitializedToken(), edm::principal_get_adapter_detail::throwOnPutOfWrongType(), unpackBuffers-CaloStage2::token, and UNLIKELY.

154  {
155  if (UNLIKELY(product.get() == 0)) { // null pointer is illegal
156  TypeID typeID(typeid(PROD));
158  "ProcessBlock", typeID, provRecorder_.productInstanceLabel(token));
159  }
160  if (UNLIKELY(token.isUninitialized())) {
162  }
163  if (UNLIKELY(provRecorder_.getTypeIDForPutTokenIndex(token.index()) != TypeID{typeid(PROD)})) {
166  }
167  putImpl(token.index(), std::move(product));
168  }
void throwOnPutOfUninitializedToken(char const *principalType, std::type_info const &productType)
void putImpl(EDPutToken::value_type token, std::unique_ptr< PROD > product)
Definition: ProcessBlock.h:191
std::string const & productInstanceLabel(EDPutToken) const
PrincipalGetAdapter provRecorder_
Definition: ProcessBlock.h:101
void throwOnPutOfWrongType(std::type_info const &wrongType, TypeID const &rightType)
#define PROD(A, B)
#define UNLIKELY(x)
Definition: Likely.h:21
void throwOnPutOfNullProduct(char const *principalType, TypeID const &productType, std::string const &productInstanceName)
def move(src, dest)
Definition: eostools.py:511
TypeID const & getTypeIDForPutTokenIndex(EDPutToken::value_type index) const

◆ putImpl()

template<typename PROD >
void edm::ProcessBlock::putImpl ( EDPutToken::value_type  token,
std::unique_ptr< PROD product 
)
private

Definition at line 191 of file ProcessBlock.h.

References cms::cuda::assert(), edm::detail::do_post_insert_if_available(), eostools::move(), putProducts(), findQualityFiles::size, and l1tPFClustersFromHGC3DClusters_cfi::wp.

Referenced by put().

191  {
192  // The following will call post_insert if T has such a function,
193  // and do nothing if T has no such function.
194  detail::do_post_insert_if_available(*product.get());
195 
196  assert(index < putProducts().size());
197 
198  std::unique_ptr<Wrapper<PROD>> wp(new Wrapper<PROD>(std::move(product)));
200  }
size
Write out results.
ProductPtrVec & putProducts()
Definition: ProcessBlock.h:98
assert(be >=bs)
void do_post_insert_if_available(T &iProduct)
def move(src, dest)
Definition: eostools.py:511

◆ putProducts() [1/2]

ProductPtrVec& edm::ProcessBlock::putProducts ( )
inlineprivate

Definition at line 98 of file ProcessBlock.h.

References putProducts_.

Referenced by commit_(), emplaceImpl(), and putImpl().

98 { return putProducts_; }
ProductPtrVec putProducts_
Definition: ProcessBlock.h:102

◆ putProducts() [2/2]

ProductPtrVec const& edm::ProcessBlock::putProducts ( ) const
inlineprivate

Definition at line 99 of file ProcessBlock.h.

References putProducts_.

99 { return putProducts_; }
ProductPtrVec putProducts_
Definition: ProcessBlock.h:102

◆ setConsumer()

void edm::ProcessBlock::setConsumer ( EDConsumerBase const *  iConsumer)
inline

Definition at line 53 of file ProcessBlock.h.

References provRecorder_, and edm::PrincipalGetAdapter::setConsumer().

Referenced by edm::one::EDAnalyzerBase::doAccessInputProcessBlock(), edm::global::EDAnalyzerBase::doAccessInputProcessBlock(), edm::one::EDFilterBase::doAccessInputProcessBlock(), edm::one::EDProducerBase::doAccessInputProcessBlock(), edm::limited::EDAnalyzerBase::doAccessInputProcessBlock(), edm::global::EDProducerBase::doAccessInputProcessBlock(), edm::limited::EDProducerBase::doAccessInputProcessBlock(), edm::global::EDFilterBase::doAccessInputProcessBlock(), edm::limited::EDFilterBase::doAccessInputProcessBlock(), edm::stream::EDAnalyzerAdaptor< T >::doAccessInputProcessBlock(), edm::stream::ProducingModuleAdaptor< T, M, B >::doAccessInputProcessBlock(), edm::one::EDAnalyzerBase::doBeginProcessBlock(), edm::global::EDAnalyzerBase::doBeginProcessBlock(), edm::one::EDFilterBase::doBeginProcessBlock(), edm::one::EDProducerBase::doBeginProcessBlock(), edm::limited::EDAnalyzerBase::doBeginProcessBlock(), edm::global::EDProducerBase::doBeginProcessBlock(), edm::limited::EDProducerBase::doBeginProcessBlock(), edm::global::EDFilterBase::doBeginProcessBlock(), edm::limited::EDFilterBase::doBeginProcessBlock(), edm::stream::EDAnalyzerAdaptor< T >::doBeginProcessBlock(), edm::stream::ProducingModuleAdaptor< T, M, B >::doBeginProcessBlock(), edm::one::EDAnalyzerBase::doEndProcessBlock(), edm::global::EDAnalyzerBase::doEndProcessBlock(), edm::one::EDFilterBase::doEndProcessBlock(), edm::one::EDProducerBase::doEndProcessBlock(), edm::limited::EDAnalyzerBase::doEndProcessBlock(), edm::global::EDProducerBase::doEndProcessBlock(), edm::limited::EDProducerBase::doEndProcessBlock(), edm::global::EDFilterBase::doEndProcessBlock(), edm::limited::EDFilterBase::doEndProcessBlock(), edm::stream::EDAnalyzerAdaptor< T >::doEndProcessBlock(), and edm::stream::ProducingModuleAdaptor< T, M, B >::doEndProcessBlock().

53 { provRecorder_.setConsumer(iConsumer); }
void setConsumer(EDConsumerBase const *iConsumer)
PrincipalGetAdapter provRecorder_
Definition: ProcessBlock.h:101

◆ setProducer()

void edm::ProcessBlock::setProducer ( ProducerBase const *  iProducer)

Definition at line 13 of file ProcessBlock.cc.

References provRecorder_, putProducts_, edm::PrincipalGetAdapter::putTokenIndexToProductResolverIndex(), and edm::PrincipalGetAdapter::setProducer().

Referenced by edm::one::EDFilterBase::doBeginProcessBlock(), edm::one::EDProducerBase::doBeginProcessBlock(), edm::global::EDProducerBase::doBeginProcessBlock(), edm::limited::EDProducerBase::doBeginProcessBlock(), edm::global::EDFilterBase::doBeginProcessBlock(), edm::limited::EDFilterBase::doBeginProcessBlock(), edm::stream::ProducingModuleAdaptor< T, M, B >::doBeginProcessBlock(), edm::one::EDFilterBase::doEndProcessBlock(), edm::one::EDProducerBase::doEndProcessBlock(), edm::limited::EDProducerBase::doEndProcessBlock(), edm::global::EDProducerBase::doEndProcessBlock(), edm::global::EDFilterBase::doEndProcessBlock(), edm::limited::EDFilterBase::doEndProcessBlock(), and edm::stream::ProducingModuleAdaptor< T, M, B >::doEndProcessBlock().

13  {
14  provRecorder_.setProducer(iProducer);
15  //set appropriate size
17  }
ProductPtrVec putProducts_
Definition: ProcessBlock.h:102
void setProducer(ProducerBase const *iProd)
PrincipalGetAdapter provRecorder_
Definition: ProcessBlock.h:101
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex() const

Friends And Related Function Documentation

◆ ProducerBase

friend class ProducerBase
friend

Definition at line 91 of file ProcessBlock.h.

◆ stream::ProducingModuleAdaptorBase

template<typename T >
friend class stream::ProducingModuleAdaptorBase
friend

Definition at line 93 of file ProcessBlock.h.

Member Data Documentation

◆ moduleCallingContext_

ModuleCallingContext const* edm::ProcessBlock::moduleCallingContext_
private

Definition at line 103 of file ProcessBlock.h.

Referenced by getByToken(), getHandle(), and moduleCallingContext().

◆ provRecorder_

PrincipalGetAdapter edm::ProcessBlock::provRecorder_
private

◆ putProducts_

ProductPtrVec edm::ProcessBlock::putProducts_
private

Definition at line 102 of file ProcessBlock.h.

Referenced by putProducts(), and setProducer().