1 #ifndef DataFormats_Common_WrapperInterface_h
2 #define DataFormats_Common_WrapperInterface_h
13 #include "boost/utility.hpp"
19 class WrapperInterface :
public WrapperInterfaceBase,
private boost::noncopyable {
46 std::vector<void const*>& pointers,
49 typeCast(me)->fillView(
id, pointers, helpers);
52 std::type_info
const& iToType,
54 void const*& oPtr)
const {
55 typeCast(me)->setPtr(iToType, iIndex, oPtr);
59 std::type_info
const& iToType,
60 std::vector<unsigned long>
const& iIndicies,
61 std::vector<void const*>& oPtr)
const {
62 typeCast(me)->fillPtrVector(iToType, iIndicies, oPtr);
70 return typeCast(me)->hasIsProductEqual();
boost::shared_ptr< reftobase::RefVectorHolderBase > helper_vector_ptr
static std::type_info const & productTypeInfo()
virtual void do_fillPtrVector(void const *me, std::type_info const &iToType, std::vector< unsigned long > const &iIndicies, std::vector< void const * > &oPtr) const
virtual void do_fillView(void const *me, ProductID const &id, std::vector< void const * > &pointers, helper_vector_ptr &helpers) const
virtual bool mergeProduct_(void *me, void const *newProduct) const
static std::type_info const & typeInfo()
virtual bool isMergeable_(void const *me) const
virtual bool isPresent_(void const *me) const
static Wrapper< T > const * typeCast(void const *me)
virtual std::type_info const & wrappedTypeInfo_() const
virtual bool isProductEqual_(void const *me, void const *newProduct) const
virtual void do_setPtr(void const *me, std::type_info const &iToType, unsigned long iIndex, void const *&oPtr) const
virtual ~WrapperInterface()
virtual std::type_info const & dynamicTypeInfo_() const
virtual bool hasIsProductEqual_(void const *me) const
virtual void deleteProduct_(void const *me) const
static Wrapper< T > * typeCast(void *me)