 |
ATLAS Offline Software
|
Go to the documentation of this file.
13 #ifndef ATHCONTAINERS_TOOLS_DVLINFO_H
14 #define ATHCONTAINERS_TOOLS_DVLINFO_H
21 #include <type_traits>
46 virtual const void*
next() = 0;
89 const std::type_info&
tinfo()
const;
110 virtual void*
make (
size_t nreserve)
const = 0;
119 virtual void push (
void* cont_p,
void* elt_p)
const = 0;
126 virtual size_t size (
void* cont_p)
const = 0;
133 virtual void clear (
void* cont_p)
const = 0;
140 virtual void del (
void* cont_p)
const = 0;
147 virtual void*
clone (
void* cont_p)
const = 0;
219 virtual const void*
next()
override;
223 typename T::const_iterator
m_it;
259 virtual void*
make (
size_t nreserve)
const override;
268 virtual void push (
void* cont_p,
void* elt_p)
const override;
275 virtual size_t size (
void* cont_p)
const override;
282 virtual void clear (
void* cont_p)
const override;
289 virtual void del (
void* cont_p)
const override;
296 virtual void*
clone (
void* cont_p)
const override;
352 const std::type_info& targ_tinfo,
395 #endif // not ATHCONTAINERS_TOOLS_DVLINFO_H
virtual void clear(void *cont_p) const =0
Erase the elements in the container.
virtual DVLIteratorBase * iterator(const void *cont_p) const override
Return a new iterator object.
const std::type_info & tinfo() const
Return the type_info for the container.
virtual void * make(size_t nreserve) const =0
Construct a new container.
DVLInfoBase(const std::type_info &tinfo, const std::type_info &elt_tinfo)
Constructor.
Implementation for iterator helper.
virtual const void * next()=0
Return the next element from the container.
virtual void * make(size_t nreserve) const override
Construct a new container.
Manage index tracking and synchronization of auxiliary data.
virtual size_t size(void *cont_p) const override
Return the size of the container.
Manage index tracking and synchronization of auxiliary data.
std::remove_const< typename Container::base_value_type >::type Elt
The container's element type (with pointer and any const removed).
CLID clid() const
Return the CLID for the container.
const std::type_info & m_tinfo
The type_info of the container.
virtual DVLIteratorBase * iterator(const void *cont_p) const =0
Return a new iterator object.
virtual size_t size(void *cont_p) const =0
Return the size of the container.
T::const_iterator base_iterator
virtual void del(void *cont_p) const override
Delete a container.
virtual void * clone(void *cont_p) const =0
Copy a container.
DVLIterator(const base_iterator &beg, const base_iterator &end)
Constructor.
virtual void clear(void *cont_p) const override
Erase the elements in the container.
virtual const void * next() override
Return the next element from the container.
virtual SG::AuxVectorBase * base(void *cont_p) const override
Return a pointer to the container base.
const std::type_info & m_elt_tinfo
The type_info of the container's element.
T Container
Container type.
static const std::type_info * initHelper()
Helper to create the DVLInfo static instance.
static DVLInfoBase * find(const std::type_info &tinfo)
Find the DVLInfo for the container tinfo.
uint32_t CLID
The Class ID type.
void dvl_update(const T &src, void *target, const DVLInfoBase *targ_info)
Update the elements in the target container from the source.
virtual void * clone(void *cont_p) const override
Copy a container.
void * dvl_convert(const T &src, const DVLInfoBase &targ_info)
Perform DataVector/DataList conversion copying.
virtual ~DVLIteratorBase()
Destructor.
virtual void push(void *cont_p, void *elt_p) const override
Push a new pointer into the container.
const std::type_info & elt_tinfo() const
Return the type_info for the container's element.
virtual SG::AuxVectorBase * base(void *cont_p) const =0
Return a pointer to the container base.
virtual ~DVLInfoBase()
Destructor.
Helper to iterate over a DV container.
virtual void del(void *cont_p) const =0
Delete a container.
virtual void push(void *cont_p, void *elt_p) const =0
Push a new pointer into the container.