1 #ifndef FWCore_Framework_PrincipalGetAdapter_h
2 #define FWCore_Framework_PrincipalGetAdapter_h
87 #include <type_traits>
113 class ModuleCallingContext;
117 namespace principal_get_adapter_detail {
119 TypeID const& productType,
124 TypeID const& productType,
155 template <
typename PROD>
160 template <
typename PROD>
252 template <
typename PROD>
253 inline std::ostream& operator<<(std::ostream& os, Handle<PROD>
const&
h) {
254 os <<
h.product() <<
" " <<
h.provenance() <<
" " <<
h.id();
273 using no_tag = std::false_type;
274 using yes_tag = std::true_type;
278 template <
typename T,
void (T::*)()>
280 template <
typename T>
282 template <
typename T>
285 template <
typename T>
287 static constexpr
bool value = std::is_same<decltype(has_postinsert_helper<T>(
nullptr)),
yes_tag>
::value &&
299 template <
typename T>
304 template <
typename T>
313 template <
typename PROD>
318 template <
typename PROD>
336 std::vector<Handle<PROD> >
products;
338 typename BasicHandleVec::iterator it = bhv.begin();
339 typename BasicHandleVec::iterator
end = bhv.end();
342 products.push_back(convert_handle<PROD>(
std::move(*it)));
ProcessHistory const & processHistory() const
SharedResourcesAcquirer * resourcesAcquirer_
BasicHandle getByToken_(TypeID const &id, KindOfType kindOfType, EDGetToken token, ModuleCallingContext const *mcc) const
unsigned int processBlockIndex(std::string const &processName) const
void setConsumer(EDConsumerBase const *iConsumer)
BasicHandle getMatchingSequenceByLabel_(TypeID const &typeID, InputTag const &tag, ModuleCallingContext const *mcc) const
size_t numberOfProductsConsumed() const
void operator()(T *p) const
Transition transition() const
Principal const & principal() const
void throwUnregisteredPutException(TypeID const &type, std::string const &productInstanceLabel) const
BasicHandle getByLabel_(TypeID const &tid, InputTag const &tag, ModuleCallingContext const *mcc) const
static PFTauRenderPlugin instance
void throwOnPutOfUninitializedToken(char const *principalType, std::type_info const &productType)
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex() const
no_tag has_postinsert_helper(...)
TypeID const & getTypeIDForPutTokenIndex(EDPutToken::value_type index) const
EDConsumerBase const * consumer_
void setSharedResourcesAcquirer(SharedResourcesAcquirer *iSra)
ProducerBase const * prodBase_
ESProducts< std::remove_reference_t< TArgs >...> products(TArgs &&...args)
void setProducer(ProducerBase const *iProd)
BranchType const & branchType() const
EDProductGetter const * prodGetter() const
ProductID const & getProductID(unsigned int iPutTokenIndex) const
EDConsumerBase const * getConsumer() const
SharedResourcesAcquirer * getSharedResourcesAcquirer() const
void throwOnPutOfWrongType(std::type_info const &wrongType, TypeID const &rightType)
void getManyByType(std::vector< Handle< PROD > > &results, ModuleCallingContext const *mcc) const
std::vector< bool > const & recordProvenanceList() const
PrincipalGetAdapter & operator=(PrincipalGetAdapter const &)=delete
PrincipalGetAdapter(Principal const &pcpl, ModuleDescription const &md, bool isComplete)
ModuleDescription const & moduleDescription() const
BranchDescription const & getBranchDescription(TypeID const &type, std::string const &productInstanceName) const
void getManyByType_(TypeID const &tid, BasicHandleVec &results, ModuleCallingContext const *mcc) const
BasicHandle makeFailToGetException(KindOfType, TypeID const &, EDGetToken) const
Principal const & principal_
std::string const & productInstanceLabel(EDPutToken) const
EDPutToken::value_type getPutTokenIndex(TypeID const &type, std::string const &productInstanceName) const
void operator()(T *) const
void throwOnPrematureRead(char const *principalType, TypeID const &productType, std::string const &moduleLabel, std::string const &productInstanceName)
static constexpr bool value
ModuleDescription const & md_
void throwOnPutOfNullProduct(char const *principalType, TypeID const &productType, std::string const &productInstanceName)
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
bool checkIfComplete() const
void throwAmbiguousException(TypeID const &productType, EDGetToken token) const
void labelsForToken(EDGetToken const &iToken, ProductLabels &oLabels) const
std::vector< BasicHandle > BasicHandleVec