1 #ifndef DataFormats_Common_RefItemGet_h 2 #define DataFormats_Common_RefItemGet_h 17 template <
typename C,
typename T,
typename F,
typename K>
inline 20 T const* item =
finder(*container, key);
24 template<
typename C,
typename T,
typename F,
typename KEY>
27 T const* item =
static_cast<T const*
>(product.
productPtr());
32 if(
nullptr == prodGetter) {
46 item =
func(*prod, key);
47 product.setProductPtr(item);
52 template<
typename C,
typename T,
typename F>
55 T const* item =
static_cast<T const*
>(product.
productPtr());
60 if(getter ==
nullptr) {
64 return static_cast<T const*
>(
prod);
70 item =
func(*prod, key);
71 product.setProductPtr(item);
74 unsigned int thinnedKey =
key;
75 prod =
edm::template getThinnedProduct<C>(product, thinnedKey, getter);
77 item =
func(*prod, thinnedKey);
78 product.setProductPtr(item);
84 template <
typename C,
typename T,
typename F,
typename KEY>
91 template<
typename C,
typename KEY>
98 template<
typename C >
108 if(getter !=
nullptr) {
117 template <
typename C,
typename KEY>
bool isThinnedAvailable(RefCore const &product, KEY const &iKey)
T const * getRefPtr(RefCore const &product, KEY const &iKey)
void setProductPtr(void const *prodPtr) const
bool isThinnedAvailable(unsigned int thinnedKey, EDProductGetter const *prodGetter) const
static bool isThinnedAvailable_(RefCore const &product, KEY const &key)
static T const * getRefPtr_(RefCore const &product, unsigned int key)
void findRefItem(RefCore const &refCore, C const *container, K const &key)
void const * productPtr() const
def template(fileName, svg, replaceme="REPLACEME")
static T const * getRefPtr_(RefCore const &product, KEY const &key)
EDProductGetter const * productGetter() const
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
static bool isThinnedAvailable_(RefCore const &ref, unsigned int key)