1 #ifndef canvas_Persistency_Common_EDProduct_h 2 #define canvas_Persistency_Common_EDProduct_h 38 virtual std::vector<void const*>
44 virtual std::type_info
const*
51 unsigned long index)
const;
54 std::type_info
const& toType,
55 std::vector<unsigned long>
const&
indices)
const;
69 std::unique_ptr<EDProduct>
93 std::unique_ptr<EDProduct>
102 std::unique_ptr<EDProduct> product)
110 std::type_info
const& wanted_type)
const = 0;
117 unsigned long index)
const = 0;
120 std::type_info
const& toType,
121 std::vector<unsigned long>
const& indices)
const = 0;
129 std::unique_ptr<EDProduct> product) = 0;
132 virtual std::type_info
const*
typeInfo_()
const = 0;
virtual std::unique_ptr< EDProduct > do_createEmptySampledProduct(InputTag const &tag) const =0
virtual unsigned do_getRangeSetID() const =0
virtual std::vector< void const * > do_getElementAddresses(std::type_info const &toType, std::vector< unsigned long > const &indices) const =0
virtual void do_insertIfSampledProduct(std::string const &dataset, SubRunID const &id, std::unique_ptr< EDProduct > product)=0
virtual void do_combine(EDProduct const *)=0
virtual bool isPresent_() const =0
virtual std::type_info const * typeInfo() const
virtual std::unique_ptr< EDProduct > do_makePartner(std::type_info const &wanted_type) const =0
std::unique_ptr< EDProduct > makePartner(std::type_info const &wanted_type) const
constexpr std::array< std::size_t, geo::vect::dimension< Vector >)> indices()
Returns a sequence of indices valid for a vector of the specified type.
product_typeids_t getTypeIDs() const
unsigned getRangeSetID() const
void combine(EDProduct *p)
virtual void const * do_getElementAddress(std::type_info const &toType, unsigned long index) const =0
std::unique_ptr< EDProduct > createEmptySampledProduct(InputTag const &tag) const
virtual void do_setRangeSetID(unsigned)=0
virtual std::type_info const * typeInfo_() const =0
void insertIfSampledProduct(std::string const &dataset, SubRunID const &id, std::unique_ptr< EDProduct > product)
std::map< product_metatype, TypeID > product_typeids_t
std::vector< void const * > getElementAddresses(std::type_info const &toType, std::vector< unsigned long > const &indices) const
virtual std::string productSize() const
virtual ~EDProduct()=default
void setRangeSetID(unsigned const id)
void const * getElementAddress(std::type_info const &toType, unsigned long index) const
virtual product_typeids_t do_getTypeIDs() const =0
virtual std::vector< void const * > getView() const