|
|
Go to the documentation of this file. 1 #ifndef DataFormats_Common_RefToBaseProd_h
2 #define DataFormats_Common_RefToBaseProd_h
102 template <
typename T>
109 template <
typename T>
117 template <
typename T>
119 return *operator->();
123 template <
typename T>
126 auto getter = product_.productGetter();
127 if (getter !=
nullptr) {
128 if (product_.isNull()) {
132 std::vector<void const*> pointers;
135 if (
prod ==
nullptr) {
140 if (product_.tryToSetProductPtrForFirstTime(
tmp.get())) {
147 template <
typename T>
152 template <
typename T>
154 return lhs.refCore() == rhs.refCore();
157 template <
typename T>
159 return !(lhs == rhs);
162 template <
typename T>
164 return (lhs.refCore() < rhs.refCore());
167 template <
typename T>
176 template <
typename T>
177 template <
typename C>
179 std::vector<void const*> pointers;
185 template <
typename T>
186 template <
typename C>
189 std::vector<void const*> pointers;
195 template <
typename T>
196 template <
typename C>
199 std::vector<void const*> pointers;
205 template <
typename T>
207 : product_(
id, nullptr, getter,
false) {}
std::vector< std::pair< edm::ProductID, unsigned long > > FillViewHelperVector
EDProductGetter const * productGetter() const
Accessor for product getter.
product_type const * product() const
void setProductPtr(void const *prodPtr) const
ProductID id() const
Accessor for product ID.
bool hasCache() const
Checks if product is in memory.
RefCore const & refCore() const
RefToBaseProd()
Default constructor needed for reading from persistent store. Not for direct use.
void swap(Association< C > &lhs, Association< C > &rhs)
product_type const * get() const
ProductID id() const
Accessor for product ID.
product_type const & operator*() const
Dereference operator.
EDProductGetter const * productGetter() const
RefCore const & refCore() const
bool operator!=(debugging_allocator< X > const &, debugging_allocator< Y > const &) noexcept
bool operator==(debugging_allocator< X > const &, debugging_allocator< Y > const &) noexcept
bool operator<(DetSet< T > const &x, DetSet< T > const &y)
#define CMS_CLASS_VERSION(_version_)
product_type const * product() const
bool isNull() const
Checks for null.
~RefToBaseProd()
Destructor.
bool operator!() const
Checks for null.
void swap(RefToBaseProd< T > &)
View< T > const * viewPtr() const
void const * productPtr() const
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
bool isNonnull() const
Checks for non-null.
product_type const * operator->() const
Member dereference operator.
RefToBaseProd< T > & operator=(const RefToBaseProd< T > &other)
void fillView(AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper > const &obj, ProductID const &id, std::vector< void const * > &pointers, FillViewHelperVector &helpers)