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);
std::variant< unsigned int, detail::GetThinnedKeyFromExceptionFactory, std::monostate > OptionalThinnedKey
EDProductGetter const * mustBeNonZero(EDProductGetter const *prodGetter, std::string refType, ProductID const &productID)
virtual ~EDProductGetter()
static EDProductGetter const * switchProductGetter(EDProductGetter const *)
These can only be used internally by the framework.
unsigned int transitionIndex() const
virtual WrapperBase const * getIt(ProductID const &) const =0
EDProductGetter const & operator=(EDProductGetter const &)=delete
virtual void getThinnedProducts(ProductID const &pid, std::vector< WrapperBase const *> &foundContainers, std::vector< unsigned int > &keys) const =0
virtual std::optional< std::tuple< WrapperBase const *, unsigned int > > getThinnedProduct(ProductID const &, unsigned int key) const =0
virtual unsigned int transitionIndex_() const =0
static void assignEDProductGetter(EDProductGetter const *&)
std::function< edm::Exception()> GetThinnedKeyFromExceptionFactory
virtual OptionalThinnedKey getThinnedKeyFrom(ProductID const &parent, unsigned int key, ProductID const &thinned) const =0