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.
20 IAuxElement::IAuxElement()
22 m_privateStoreState (PrivateStoreState::NO_PRIVATE)
29 * @param index The index of this element in its container.
32 IAuxElement::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.
45 size_t IAuxElement::index() const
52 * @brief True if this element has no private data.
55 bool IAuxElement::noPrivateData() const
57 return m_privateStoreState == PrivateStoreState::NO_PRIVATE;
62 * @brief True if this element currently has private data.
65 bool 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.
76 bool IAuxElement::hadPrivateData() const
78 return m_privateStoreState == PrivateStoreState::HAD_PRIVATE;
83 * @brief Set the index of this element within its container.
86 void 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.
98 void IAuxElement::setNoPrivateData()
100 m_privateStoreState = PrivateStoreState::NO_PRIVATE;
105 * @brief Record that this element currently has private data.
108 void IAuxElement::setHavePrivateData()
110 m_privateStoreState = PrivateStoreState::HAVE_PRIVATE;
115 * @brief Record that this element used to have private data.
118 void IAuxElement::setHadPrivateData()
120 m_privateStoreState = PrivateStoreState::HAD_PRIVATE;