|
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;
223 typename T::const_iterator
m_it;
259 virtual void*
make (
size_t nreserve)
const;
268 virtual void push (
void* cont_p,
void* elt_p)
const;
275 virtual size_t size (
void* cont_p)
const;
282 virtual void clear (
void* cont_p)
const;
289 virtual void del (
void* cont_p)
const;
296 virtual void*
clone (
void* cont_p)
const;
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 SG::AuxVectorBase * base(void *cont_p) const
Return a pointer to the container base.
const std::type_info & tinfo() const
Return the type_info for the container.
virtual size_t size(void *cont_p) const
Return the size of 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 del(void *cont_p) const
Delete a container.
Manage index tracking and synchronization of auxiliary data.
Manage index tracking and synchronization of auxiliary data.
virtual void * make(size_t nreserve) const
Construct a new container.
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 void push(void *cont_p, void *elt_p) const
Push a new pointer into 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 * clone(void *cont_p) const =0
Copy a container.
DVLIterator(const base_iterator &beg, const base_iterator &end)
Constructor.
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.
virtual void * clone(void *cont_p) const
Copy a container.
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.
void * dvl_convert(const T &src, const DVLInfoBase &targ_info)
Perform DataVector/DataList conversion copying.
virtual ~DVLIteratorBase()
Destructor.
virtual DVLIteratorBase * iterator(const void *cont_p) const
Return a new iterator object.
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 void clear(void *cont_p) const
Erase the elements in the container.
virtual ~DVLInfoBase()
Destructor.
Helper to iterate over a DV container.
virtual void del(void *cont_p) const =0
Delete a container.
virtual const void * next()
Return the next element from the container.
virtual void push(void *cont_p, void *elt_p) const =0
Push a new pointer into the container.