Go to the documentation of this file. 1 #ifndef DataFormats_Common_EDProductGetter_h
2 #define DataFormats_Common_EDProductGetter_h
39 using OptionalThinnedKey = std::variant<unsigned int, detail::GetThinnedKeyFromExceptionFactory, std::monostate>;
60 unsigned int key)
const = 0;
74 std::vector<WrapperBase const*>& foundContainers,
75 std::vector<unsigned int>&
keys)
const = 0;
110 ProductID
const& productID);
virtual std::optional< std::tuple< WrapperBase const *, unsigned int > > getThinnedProduct(ProductID const &, unsigned int key) const =0
static EDProductGetter const * switchProductGetter(EDProductGetter const *)
These can only be used internally by the framework.
virtual void getThinnedProducts(ProductID const &pid, std::vector< WrapperBase const * > &foundContainers, std::vector< unsigned int > &keys) const =0
virtual WrapperBase const * getIt(ProductID const &) const =0
virtual OptionalThinnedKey getThinnedKeyFrom(ProductID const &parent, unsigned int key, ProductID const &thinned) const =0
EDProductGetter const * mustBeNonZero(EDProductGetter const *prodGetter, std::string refType, ProductID const &productID)
static void assignEDProductGetter(EDProductGetter const *&)
virtual unsigned int transitionIndex_() const =0
std::variant< unsigned int, detail::GetThinnedKeyFromExceptionFactory, std::monostate > OptionalThinnedKey
virtual ~EDProductGetter()
EDProductGetter const & operator=(EDProductGetter const &)=delete
std::function< edm::Exception()> GetThinnedKeyFromExceptionFactory
unsigned int transitionIndex() const