1 #ifndef DataFormats_Common_RefToBaseProd_h 2 #define DataFormats_Common_RefToBaseProd_h 102 template <
typename T>
108 template <
typename T>
115 template <
typename T>
123 template <
typename T>
125 return *operator->();
129 template <
typename T>
132 auto getter = product_.productGetter();
133 if (getter !=
nullptr) {
134 if (product_.isNull()) {
138 std::vector<void const*> pointers;
141 if (
prod ==
nullptr) {
146 if (product_.tryToSetProductPtrForFirstTime(
tmp.get())) {
153 template <
typename T>
158 template <
typename T>
160 return lhs.refCore() == rhs.refCore();
163 template <
typename T>
165 return !(lhs == rhs);
168 template <
typename T>
170 return (lhs.refCore() < rhs.refCore());
173 template <
typename T>
182 template <
typename T>
183 template <
typename C>
185 std::vector<void const*> pointers;
191 template <
typename T>
192 template <
typename C>
195 std::vector<void const*> pointers;
201 template <
typename T>
202 template <
typename C>
205 std::vector<void const*> pointers;
211 template <
typename T>
213 : product_(
id, nullptr, getter,
false) {}
constexpr bool operator==(ELseverityLevel const &e1, ELseverityLevel const &e2) noexcept
void fillView(AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper > const &obj, ProductID const &id, std::vector< void const *> &pointers, FillViewHelperVector &helpers)
~RefToBaseProd()
Destructor.
#define CMS_CLASS_VERSION(_version_)
void const * productPtr() const
void swap(Association< C > &lhs, Association< C > &rhs)
RefCore const & refCore() const
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
ProductID id() const
Accessor for product ID.
EDProductGetter const * productGetter() const
Accessor for product getter.
bool isNonnull() const
Checks for non-null.
product_type const * operator->() const
Member dereference operator.
RefToBaseProd()
Default constructor needed for reading from persistent store. Not for direct use. ...
void setProductPtr(void const *prodPtr) const
RefToBaseProd< T > & operator=(const RefToBaseProd< T > &other)
product_type const * product() const
constexpr bool operator!=(ELseverityLevel const &e1, ELseverityLevel const &e2) noexcept
ProductID id() const
Accessor for product ID.
RefCore const & refCore() const
bool hasCache() const
Checks if product is in memory.
View< T > const * viewPtr() const
bool operator!() const
Checks for null.
EDProductGetter const * productGetter() const
void swap(RefToBaseProd< T > &)
product_type const & operator*() const
Dereference operator.
product_type const * product() const
bool isNull() const
Checks for null.
std::vector< std::pair< edm::ProductID, unsigned long > > FillViewHelperVector