Number5
Visualisierung 2 Project - Florian Schober (0828151, f.schober@live.com), Andreas Walch (0926780, walch.andreas89@gmail.com)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
IdCache.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Configuration.hpp"
4 
10 template<typename TId>
11 class IdCache
12 {
13  vector<TId> m_unusedIds;
16  public:
21  : m_highestId(static_cast<TId>(1))
22  { }
23 
28  TId createId()
29  {
30  if (m_unusedIds.empty())
31  return m_highestId++;
32 
33  auto id = m_unusedIds.back();
34  m_unusedIds.pop_back();
35  return id;
36  }
41  void deleteId(TId id)
42  {
43  m_unusedIds.push_back(id);
44  }
45 
50  void reset()
51  {
52  m_highestId = static_cast<TId>(1);
53  m_unusedIds.clear();
54  }
55 };
TId createId()
Definition: IdCache.hpp:28
IdCache()
Definition: IdCache.hpp:20
void reset()
Definition: IdCache.hpp:50
void deleteId(TId id)
Definition: IdCache.hpp:41
TId m_highestId
Definition: IdCache.hpp:14
vector< TId > m_unusedIds
Definition: IdCache.hpp:13