|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #ifndef ATHCONTAINERS_VIEWVECTOR_H
14 #define ATHCONTAINERS_VIEWVECTOR_H
21 #include "AthLinks/ElementLink.h"
91 typedef std::vector<ElementLink<DV> >
Pers_t;
127 template <
class InputIterator>
260 #ifndef XAOD_STANDALONE
279 #ifndef XAOD_STANDALONE
305 if (s_clid == CLID_NULL)
307 static const CLID clid = s_clid;
311 if (s_name ==
nullptr)
316 static const std::string
name = typeNameString();
return name;
326 if (s_clid == CLID_NULL) {
341 #endif // not XAOD_STANDALONE
344 #ifdef XAOD_STANDALONE
349 #define VIEWVECTOR_CLASS_DEF(NAME, CID)
356 #define VIEWVECTOR_CLASS_DEF(NAME, CID) \
358 static const bool clidinit_##CID = ClassID_traits<NAME>::init (CID, #NAME); \
359 CLIDREGISTRY_ADDENTRY(CID, NAME)
363 #endif // not ATHCONTAINERS_VIEWVECTOR_H
ViewVector(const DV &rhs)
Constructor from base vector.
static const std::string & typeName()
DV::const_value_type const_value_type
static const bool s_isConst
ViewVector & operator=(const ViewVector &rhs)=default
Can use compiler-generated assignment op.
ViewVector(SG::OwnershipPolicy ownPolicy=SG::VIEW_ELEMENTS)
Default constructor.
static const std::type_info & typeInfo()
static constexpr bool must_own
If true, then this type must own its contents.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
ViewVector(std::initializer_list< value_type > l)
Constructor from an initializer list.
static std::atomic< CLID > s_clid
ViewVector(size_type n, SG::OwnershipPolicy ownPolicy=SG::VIEW_ELEMENTS)
Sized constructor.
Exceptions that can be thrown from AthContainers.
static const char * typeNameString()
ViewVector(DV &&rhs)
Move constructor from base vector.
DV::value_type value_type
std::integral_constant< bool, s_isDataObject > is_DataObject_tag
static bool init(CLID clid, const char *name)
ViewVector(const ViewVector &)=default
Use the compiler-generated copy constructor.
std::false_type has_version_tag
OwnershipPolicy
describes the possible element ownership policies (see e.g. DataVector)
DV::base_value_type base_value_type
virtual void toPersistent() override
Convert the vector to persistent form.
Provide an interface for finding inheritance information at run time.
Identify view containers to be made persistent.
Default, invalid implementation of ClassID_traits.
Traits class to hold derivation information.
DV::const_iterator const_iterator
ViewVector(InputIterator first, InputIterator last)
Constructor from iterators.
DV::unique_type unique_type
DV::size_type size_type
Basic types, forwarded from the base.
DV::BaseContainer BaseContainer
Hold the persistent representation for a ViewVector.
uint32_t CLID
The Class ID type.
virtual void toTransient() override
Convert the vector to transient form.
static std::atomic< const char * > s_name
std::vector< ElementLink< DV > > Pers_t
The old persistent form of this class.
DV::allocator_type allocator_type
void throwExcMissingViewVectorCLID(const std::type_info &ti)
Throw a SG::ExcMissingViewVectorCLID exception.
void clear(SG::OwnershipPolicy ownPolicy)
static const bool s_isDataObject
flags whether T inherits from DataObject
DV::difference_type difference_type
DV::const_reverse_iterator const_reverse_iterator
std::true_type has_classID_tag
DV::const_reference const_reference
void registerBaseInit()
Helper to ensure that the inheritance information for this class gets initialized.
DataVector< SG::AuxElement > BaseContainer
Hold the persistent representation for a ViewVector.
void clear(SG::OwnershipPolicy ownPolicy, SG::IndexTrackingPolicy trackIndices)
ViewVector(ViewVector &&rhs)
Move constructor.
Represent a list of base classes.
DV::const_pointer const_pointer