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,
154 template <
typename PROD>
218 template <
typename T>
253 template <
typename PROD>
254 inline std::ostream& operator<<(std::ostream& os, Handle<PROD>
const&
h) {
255 os <<
h.product() <<
" " <<
h.provenance() <<
" " <<
h.id();
265 template <
typename T>
267 if constexpr (not std::derived_from<T, DoNotSortUponInsertion> and
requires(
T&
p) {
p.post_insert(); }) {
268 iProduct.post_insert();
277 template <
typename PROD>
279 return isComplete() || !hasMergeProductFunction<PROD>();
EDPutToken::value_type getPutTokenIndex(TypeID const &type, std::string const &productInstanceName) const
SharedResourcesAcquirer * resourcesAcquirer_
void setConsumer(EDConsumerBase const *iConsumer)
void labelsForToken(EDGetToken const &iToken, ProductLabels &oLabels) const
static PFTauRenderPlugin instance
void throwOnPutOfUninitializedToken(char const *principalType, std::type_info const &productType)
BasicHandle getByLabel_(TypeID const &tid, InputTag const &tag, ModuleCallingContext const *mcc) const
EDProductGetter const * prodGetter() const
EDConsumerBase const * consumer_
SharedResourcesAcquirer * getSharedResourcesAcquirer() const
Transition transition() const
void setSharedResourcesAcquirer(SharedResourcesAcquirer *iSra)
static constexpr bool hasMergeProductFunction()
ProducerBase const * prodBase_
ProcessHistory const & processHistory() const
std::string const & productInstanceLabel(EDPutToken) const
void throwAmbiguousException(TypeID const &productType, EDGetToken token) const
void setProducer(ProducerBase const *iProd)
std::vector< bool > const & recordProvenanceList() const
BranchType const & branchType() const
BasicHandle getByToken_(TypeID const &id, KindOfType kindOfType, EDGetToken token, ModuleCallingContext const *mcc) const
EDConsumerBase const * getConsumer() const
ProductID const & getProductID(unsigned int iPutTokenIndex) const
Principal const & principal() const
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex() const
void throwOnPutOfWrongType(std::type_info const &wrongType, TypeID const &rightType)
void throwUnregisteredPutException(TypeID const &type, std::string const &productInstanceLabel) const
PrincipalGetAdapter & operator=(PrincipalGetAdapter const &)=delete
PrincipalGetAdapter(Principal const &pcpl, ModuleDescription const &md, bool isComplete)
unsigned int processBlockIndex(std::string const &processName) const
BranchDescription const & getBranchDescription(TypeID const &type, std::string const &productInstanceName) const
Principal const & principal_
void do_post_insert_if_available(T &iProduct)
BasicHandle getMatchingSequenceByLabel_(TypeID const &typeID, InputTag const &tag, ModuleCallingContext const *mcc) const
size_t numberOfProductsConsumed() const
bool checkIfComplete() const
void throwOnPrematureRead(char const *principalType, TypeID const &productType, std::string const &moduleLabel, std::string const &productInstanceName)
BasicHandle makeFailToGetException(KindOfType, TypeID const &, EDGetToken) const
ModuleDescription const & moduleDescription() const
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.
TypeID const & getTypeIDForPutTokenIndex(EDPutToken::value_type index) const
std::vector< BasicHandle > BasicHandleVec