16 #include <nn/pia/common/common_Definitions.h>
31 template <
typename T,
int N>
36 typedef const T* ConstIterator;
44 ConstIterator Begin(
void)
const
46 return &(m_Buffer[0]);
58 return &(m_Buffer[0]);
67 ConstIterator End(
void)
const
69 return &(m_Buffer[m_Elements]);
80 return &(m_Buffer[m_Elements]);
97 SimpleContainer(
const SimpleContainer& rhs)
106 virtual ~SimpleContainer(
void)
118 Result Add(
const T& t)
122 PIA_RETURN_RESULT(ResultBufferIsFull);
126 m_Buffer[m_Elements++] = t;
127 return ResultSuccess();
142 Iterator Erase(Iterator it)
144 if ((Begin() <= it) && (it < End()))
147 for (Iterator i = it; (i + 1) != End(); ++i)
151 PIA_ASSERT(m_Elements > 0);
181 bool IsEmpty(
void)
const
183 return m_Elements == 0;
193 bool IsFull(
void)
const
195 return m_Elements == N;
205 int32_t GetSize(
void)
const
216 SimpleContainer& operator=(
const SimpleContainer& rhs)
218 m_Elements = rhs.m_Elements;
220 for (
int i = 0; i < N; ++i)
222 m_Buffer[i] = rhs.m_Buffer[i];
234 virtual void Trace(uint64_t flag)
const
236 PIA_TRACE(flag,
"----- SimpleContainer::Trace() called. -----");
237 PIA_TRACE(flag,
"Number of elements: %d", m_Elements);
238 PIA_TRACE(flag,
"----- SimpleContainer::Trace() end. -----");