Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
63 lines (43 loc) · 1.21 KB

File metadata and controls

63 lines (43 loc) · 1.21 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#ifndef _DYNAMICIDMANAGER_H
#define _DYNAMICIDMANAGER_H
class IDAllocator;
class DynamicIDManager
{
public:
explicit DynamicIDManager(IDAllocator *allocator)
: m_allocator (allocator),
m_nextID(0),
m_capacity(0) {
m_current = m_idList.begin();
}
DynamicIDManager(IDAllocator* allocator, idx_t initialStart, size_t quantity)
: m_allocator (allocator),
m_nextID(initialStart + quantity),
m_capacity(quantity)
{
m_idList.push_back(t_id(initialStart, quantity));
m_current = m_idList.begin();
}
void reserve(size_t quantity);
void reserveAdditional(size_t quantity);
idx_t begin();
idx_t currentID();
void addBlock(idx_t start, size_t quantity);
// Prefix increment operator
DynamicIDManager& operator++();
size_t capacity() { return m_capacity; }
bool inRange(idx_t id);
private:
DynamicIDManager(); // default constructor disabled
// Methods
bool allocateIDs(size_t quantity, idx_t *start);
IDAllocator* m_allocator;
// Data
typedef std::pair<idx_t, size_t> t_id;
typedef std::list<t_id> t_idList;
t_idList m_idList;
t_idList::iterator m_current;
idx_t m_nextID;
size_t m_capacity;
};
#endif
Morty Proxy This is a proxified and sanitized view of the page, visit original site.