1 #ifndef DataFormats_Common_RefCore_h 2 #define DataFormats_Common_RefCore_h 17 class RefCoreWithIndex;
37 cachePtr_.store(iOther.cachePtr_.load(std::memory_order_relaxed), std::memory_order_relaxed);
41 cachePtr_.store(iOther.cachePtr_.load(std::memory_order_relaxed), std::memory_order_relaxed);
100 void wrongTypeException(std::type_info
const& expectedType, std::type_info
const& actualType)
const;
146 return !(lhs == rhs);
void pushBackItem(RefCore const &productToBeInserted, bool checkPointer)
bool operator<(DetSet< T > const &x, DetSet< T > const &y)
RefCore(void const *iCache, ProcessIndex iProcessIndex, ProductIndex iProductIndex)
void setProductPtr(void const *prodPtr) const
int isTransientInt() const
bool isThinnedAvailable(unsigned int thinnedKey, EDProductGetter const *prodGetter) const
bool tryToSetProductPtrForFirstTime(void const *prodPtr) const
void swap(RefCore &) noexcept
WrapperBase const * getProductPtr(std::type_info const &type, EDProductGetter const *prodGetter) const
bool tryToSetCacheItemForFirstTime(std::atomic< void const * > &iCache, void const *iNewValue)
WrapperBase const * tryToGetProductPtr(std::type_info const &type, EDProductGetter const *prodGetter) const
bool operator==(debugging_allocator< X > const &, debugging_allocator< Y > const &) noexcept
ProductIndex productIndex_
bool cachePtrIsInvalid() const
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
WrapperBase const * getThinnedProductPtr(std::type_info const &type, unsigned int &thinnedKey, EDProductGetter const *prodGetter) const
#define SETCACHEISPRODUCTPTR_IMPL(_item_)
void const * productPtr() const
void productNotFoundException(std::type_info const &type) const
bool operator!=(debugging_allocator< X > const &, debugging_allocator< Y > const &) noexcept
ProcessIndex processIndex_
const std::uintptr_t kCacheIsProductPtrMask
unsigned short ProcessIndex
RefCore & operator=(RefCore const &)
void setId(ProductID const &iId)
RefCore & operator=(RefCore &&iOther) noexcept
RefCore(RefCore &&iOther) noexcept
void setCacheIsProductPtr(const void *iItem) const
EDProductGetter const * productGetter() const
std::atomic< void const * > cachePtr_
#define PRODUCTGETTER_IMPL
unsigned short ProductIndex
void setProductGetter(EDProductGetter const *prodGetter) const
void pushBackRefItem(RefCore const &productToBeInserted)
void setCacheIsProductGetter(EDProductGetter const *iGetter) const
#define SETCACHEISPRODUCTGETTER_IMPL(_getter_)
void wrongTypeException(std::type_info const &expectedType, std::type_info const &actualType) const
void nullPointerForTransientException(std::type_info const &type) const
#define SETTRANSIENT_IMPL