2 * Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration.
5 * @file AthContainersInterfaces/IAuxElement.icc
6 * @author scott snyder <snyder@bnl.gov>
8 * @brief Flag that a class may have auxiliary data associated with it.
16 * @brief Default constructor.
17 * For an element not in a container.
20IAuxElement::IAuxElement()
22 m_privateStoreState (PrivateStoreState::NO_PRIVATE)
29 * @param index The index of this element in its container.
32IAuxElement::IAuxElement(size_t index)
34 m_privateStoreState (PrivateStoreState::NO_PRIVATE)
36 // Check for overflow.
37 assert (m_index == index);
42 * @brief Return the index of this element within its container.
45size_t IAuxElement::index() const
52 * @brief True if this element has no private data.
55bool IAuxElement::noPrivateData() const
57 return m_privateStoreState == PrivateStoreState::NO_PRIVATE;
62 * @brief True if this element currently has private data.
65bool IAuxElement::havePrivateData() const
67 return m_privateStoreState == PrivateStoreState::HAVE_PRIVATE;
72 * @brief True if this element had private data before it was added
73 * to its current container.
76bool IAuxElement::hadPrivateData() const
78 return m_privateStoreState == PrivateStoreState::HAD_PRIVATE;
83 * @brief Set the index of this element within its container.
86void IAuxElement::setIndex (size_t index)
89 // Check for overflow.
90 assert (m_index == index);
95 * @brief Record that this element does not have private data.
98void IAuxElement::setNoPrivateData()
100 m_privateStoreState = PrivateStoreState::NO_PRIVATE;
105 * @brief Record that this element currently has private data.
108void IAuxElement::setHavePrivateData()
110 m_privateStoreState = PrivateStoreState::HAVE_PRIVATE;
115 * @brief Record that this element used to have private data.
118void IAuxElement::setHadPrivateData()
120 m_privateStoreState = PrivateStoreState::HAD_PRIVATE;