1 #ifndef DataFormats_Common_WrapperBase_h 2 #define DataFormats_Common_WrapperBase_h 32 std::vector<void const*>& view,
35 void setPtr(std::type_info
const& iToType,
37 void const*& oPtr)
const;
40 std::vector<unsigned long>
const& iIndicies,
41 std::vector<void const*>& oPtr)
const;
57 return tableExaminer_();
60 virtual std::type_info
const& dynamicTypeInfo_()
const = 0;
62 virtual std::type_info
const& wrappedTypeInfo_()
const = 0;
69 virtual bool isMergeable_()
const = 0;
70 virtual bool mergeProduct_(
WrapperBase const* newProduct ) = 0;
71 virtual bool hasIsProductEqual_()
const = 0;
72 virtual bool isProductEqual_(
WrapperBase const* newProduct)
const = 0;
74 virtual void do_fillView(
ProductID const&
id,
75 std::vector<void const*>& pointers,
77 virtual void do_setPtr(std::type_info
const& iToType,
79 void const*& oPtr)
const = 0;
81 virtual void do_fillPtrVector(std::type_info
const& iToType,
82 std::vector<unsigned long>
const& iIndicies,
83 std::vector<void const*>& oPtr)
const = 0;
85 virtual std::shared_ptr<soa::TableExaminerBase> tableExaminer_()
const = 0;
bool mergeProduct(WrapperBase const *newProduct)
std::type_info const & dynamicTypeInfo() const
void fillPtrVector(std::vector< T, A > const &obj, std::type_info const &iToType, std::vector< unsigned long > const &iIndicies, std::vector< void const * > &oPtr)
std::shared_ptr< soa::TableExaminerBase > tableExaminer() const
virtual bool isPresent_() const
void setPtr(std::vector< T, A > const &obj, std::type_info const &iToType, unsigned long iIndex, void const *&oPtr)
bool sameType(WrapperBase const &other) const
void fillView(AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper > const &obj, ProductID const &id, std::vector< void const * > &pointers, FillViewHelperVector &helpers)
std::type_info const & wrappedTypeInfo() const
bool hasIsProductEqual() const
std::vector< std::pair< edm::ProductID, unsigned long > > FillViewHelperVector
bool isProductEqual(WrapperBase const *newProduct) const