5#ifndef ATHLINKS_TOOLS_SGELVREF_H
6#define ATHLINKS_TOOLS_SGELVREF_H
8#include "AthLinks/DataLink.h"
9#include "AthLinks/ElementLink.h"
14#include <boost/iterator_adaptors.hpp>
18template <
typename DOBJ>
28 template <
typename DOBJ>
48 ELVRef(
typename DataLinkVector::size_type hostIndex,
75 typename DataLinkVector::size_type& shortref);
ElementLinkVector implementation for standalone ROOT.
ElementLink implementation for ROOT usage.
TypeTools::Copy< value_type >::const_pointer ElementConstPointer
Traits::IndexingPolicy IndexingPolicy
ID_type dataID() const
dataID of the host
ElemLink::ID_type ID_type
bool operator==(const ELVRef &rhs) const
ElementLinkVector< DOBJ > ElemLinkVec
stored_index_type m_index
! index of the host dobj
const stored_index_type & index() const
ElementConstPointer cptr() const
element pointer in ElementLink
DataLinkVector::size_type m_shortRef
! the element pointer
ElemLink::IndexingPolicy IndexingPolicy
ELVRef(typename DataLinkVector::size_type hostIndex, index_type elementIndex, const ElemLinkVec &owner)
Constructor from indices.
ELVRef & operator=(const ELVRef &rhs)
STL required.
ElemLink::ElementConstPointer ElementConstPointer
const ElemLink & elementLink() const
get the corresponding ElementLink. O(1)
index_type elementIndex() const
index into container (non-const, calculates and sets on demand):
ELVRef(const ELVRef &rhs)
STL required.
bool toPersistent(const ElemLinkVec &owner)
called by handlers to change state:
ElemLink::index_type index_type
std::vector< DataLink< DOBJ > > DataLinkVector
ElementLink< DOBJ > ElemLink
bool toPersistent(const ElemLinkVec &owner, typename DataLinkVector::size_type &shortref)
ElemLink::stored_index_type stored_index_type
bool toTransient(const ElemLinkVec &owner)
ELVRef(const ElemLink &link=ElemLink())
standard constructor
bool operator<(const ELVRef &rhs) const
IndexingPolicy::stored_index_type stored_index_type